@stridge/kit 0.1.0-alpha.5 → 0.1.0-alpha.50

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 (394) hide show
  1. package/README.md +22 -6
  2. package/dist/KitProvider.d.ts +29 -0
  3. package/dist/KitProvider.js +1 -1
  4. package/dist/_internal/deposit/widgets/index.d.ts +3 -1
  5. package/dist/_internal/deposit/widgets/index.js +1 -1
  6. package/dist/_internal/drivers/stridge/index.d.ts +3 -2
  7. package/dist/_internal/drivers/stridge/index.js +1 -1
  8. package/dist/_internal/withdraw/driver/index.d.ts +2 -2
  9. package/dist/_internal/withdraw/widgets/index.d.ts +3 -1
  10. package/dist/_internal/withdraw/widgets/index.js +1 -1
  11. package/dist/activity-history/compound/index.d.ts +9 -0
  12. package/dist/activity-history/compound/index.js +1 -0
  13. package/dist/deposit/compound/index.d.ts +4 -3
  14. package/dist/drivers/stridge/catalog.d.ts +54 -0
  15. package/dist/drivers/stridge/catalog.js +1 -0
  16. package/dist/drivers/stridge/createStridgeDepositDriver.d.ts +10 -1
  17. package/dist/drivers/stridge/createStridgeDepositDriver.js +1 -1
  18. package/dist/drivers/stridge/createStridgeWithdrawDriver.d.ts +37 -14
  19. package/dist/drivers/stridge/createStridgeWithdrawDriver.js +1 -1
  20. package/dist/drivers/stridge/internal/ensureWalletChain.js +1 -0
  21. package/dist/drivers/stridge/internal/pollOnce.js +1 -1
  22. package/dist/drivers/stridge/internal/resolveAddEthereumChain.js +1 -0
  23. package/dist/drivers/stridge/internal/retry.js +1 -0
  24. package/dist/drivers/stridge/internal/supportedChains.js +1 -0
  25. package/dist/drivers/stridge/types.d.ts +20 -14
  26. package/dist/drivers/stridge/types.js +1 -1
  27. package/dist/drivers/stridge/wagmiSigner.js +1 -1
  28. package/dist/drivers/stridge-mock/createStridgeMockDriver.d.ts +4 -2
  29. package/dist/drivers/stridge-mock/createStridgeMockDriver.js +1 -1
  30. package/dist/drivers/stridge-mock/createStridgeMockWithdrawDriver.d.ts +17 -4
  31. package/dist/drivers/stridge-mock/createStridgeMockWithdrawDriver.js +1 -1
  32. package/dist/drivers/stridge-mock/fixtures.d.ts +14 -12
  33. package/dist/drivers/stridge-mock/fixtures.js +1 -1
  34. package/dist/events/bus/createBus.d.ts +7 -0
  35. package/dist/events/bus/createBus.js +1 -0
  36. package/dist/events/bus/flowIdRegistry.d.ts +17 -0
  37. package/dist/events/bus/flowIdRegistry.js +1 -0
  38. package/dist/events/bus/index.js +1 -0
  39. package/dist/events/bus/metadata.js +1 -0
  40. package/dist/events/context.js +1 -0
  41. package/dist/events/emit/index.js +1 -0
  42. package/dist/events/emit/mapFailure.js +1 -0
  43. package/dist/events/emit/useDepositEmissions.js +1 -0
  44. package/dist/events/emit/useKitEmitter.js +1 -0
  45. package/dist/events/emit/useWithdrawEmissions.js +1 -0
  46. package/dist/events/hooks/index.d.ts +6 -0
  47. package/dist/events/hooks/index.js +1 -0
  48. package/dist/events/hooks/useCurrentFlowId.d.ts +6 -0
  49. package/dist/events/hooks/useCurrentFlowId.js +1 -0
  50. package/dist/events/hooks/useStableHandler.js +1 -0
  51. package/dist/events/hooks/useStridgeEvent.d.ts +8 -0
  52. package/dist/events/hooks/useStridgeEvent.js +1 -0
  53. package/dist/events/hooks/useStridgeEventBus.d.ts +33 -0
  54. package/dist/events/hooks/useStridgeEventBus.js +1 -0
  55. package/dist/events/hooks/useStridgeEvents.d.ts +6 -0
  56. package/dist/events/hooks/useStridgeEvents.js +1 -0
  57. package/dist/events/hooks/useStridgeFlowEvent.d.ts +8 -0
  58. package/dist/events/hooks/useStridgeFlowEvent.js +1 -0
  59. package/dist/events/hooks/useStridgeFlowEvents.d.ts +6 -0
  60. package/dist/events/hooks/useStridgeFlowEvents.js +1 -0
  61. package/dist/events/index.d.ts +14 -0
  62. package/dist/events/index.js +1 -0
  63. package/dist/events/publish.js +1 -0
  64. package/dist/events/types/deposit.d.ts +235 -0
  65. package/dist/events/types/envelope.d.ts +145 -0
  66. package/dist/events/types/index.d.ts +31 -0
  67. package/dist/events/types/kit.d.ts +23 -0
  68. package/dist/events/types/withdraw.d.ts +150 -0
  69. package/dist/flows/deposit/dialog/DepositDialog.d.ts +20 -82
  70. package/dist/flows/deposit/dialog/DepositDialog.js +1 -1
  71. package/dist/flows/deposit/dialog/WalletRequiredState.js +1 -0
  72. package/dist/flows/deposit/dialog/WalletRequiredState.styles.js +1 -0
  73. package/dist/flows/deposit/driver/payloads.d.ts +17 -4
  74. package/dist/flows/deposit/driver/transformers/balanceToBalancesPayload.d.ts +2 -0
  75. package/dist/flows/deposit/driver/transformers/balanceToBalancesPayload.js +1 -1
  76. package/dist/flows/deposit/driver/transformers/index.d.ts +1 -0
  77. package/dist/flows/deposit/driver/transformers/quoteToPayload.d.ts +2 -0
  78. package/dist/flows/deposit/driver/transformers/settlementToPayload.d.ts +25 -0
  79. package/dist/flows/deposit/driver/transformers/startToAddressesPayload.d.ts +2 -0
  80. package/dist/flows/deposit/driver/transformers/startToAddressesPayload.js +1 -1
  81. package/dist/flows/deposit/driver/transformers/startToBrandPayload.d.ts +1 -0
  82. package/dist/flows/deposit/driver/transformers/startToTargetPayload.d.ts +2 -0
  83. package/dist/flows/deposit/driver/transformers/startToTargetPayload.js +1 -1
  84. package/dist/flows/deposit/driver/transformers/walletAddressToWalletPayload.d.ts +1 -0
  85. package/dist/flows/deposit/driver/types.d.ts +64 -3
  86. package/dist/flows/deposit/orchestrator/controller.js +1 -1
  87. package/dist/flows/deposit/orchestrator/reducer.js +1 -1
  88. package/dist/flows/deposit/orchestrator/types.d.ts +103 -1
  89. package/dist/flows/deposit/orchestrator/useDeposit.d.ts +45 -1
  90. package/dist/flows/deposit/orchestrator/useDeposit.js +1 -1
  91. package/dist/flows/deposit/widgets/activity-history/DepositHistoryDetail.d.ts +40 -0
  92. package/dist/flows/deposit/widgets/activity-history/DepositHistoryDetail.js +1 -0
  93. package/dist/flows/deposit/widgets/activity-history/DepositHistoryList.d.ts +38 -0
  94. package/dist/flows/deposit/widgets/activity-history/DepositHistoryList.js +1 -0
  95. package/dist/flows/deposit/widgets/activity-history/index.d.ts +2 -0
  96. package/dist/flows/deposit/widgets/activity-history/index.js +1 -0
  97. package/dist/flows/deposit/widgets/activity-history/useDepositActivityHistorySource.js +1 -0
  98. package/dist/flows/deposit/widgets/amount-entry/AmountEntry.d.ts +32 -5
  99. package/dist/flows/deposit/widgets/amount-entry/AmountEntry.js +1 -1
  100. package/dist/flows/deposit/widgets/amount-entry/footerIntent.js +1 -0
  101. package/dist/flows/deposit/widgets/asset-picker/AssetPicker.d.ts +22 -4
  102. package/dist/flows/deposit/widgets/asset-picker/AssetPicker.js +1 -1
  103. package/dist/flows/deposit/widgets/confirm-deposit/ConfirmDeposit.d.ts +37 -4
  104. package/dist/flows/deposit/widgets/confirm-deposit/ConfirmDeposit.js +1 -1
  105. package/dist/flows/deposit/widgets/deposit/Deposit.d.ts +33 -4
  106. package/dist/flows/deposit/widgets/deposit/Deposit.js +1 -1
  107. package/dist/flows/deposit/widgets/deposit/compound/Deposit.d.ts +32 -0
  108. package/dist/flows/deposit/widgets/deposit/compound/Deposit.js +1 -1
  109. package/dist/flows/deposit/widgets/deposit/compound/Deposit.styles.js +1 -1
  110. package/dist/flows/deposit/widgets/deposit/compound/components/Boundary.d.ts +29 -0
  111. package/dist/flows/deposit/widgets/deposit/compound/components/Boundary.js +1 -0
  112. package/dist/flows/deposit/widgets/deposit/compound/components/Guards.d.ts +28 -0
  113. package/dist/flows/deposit/widgets/deposit/compound/components/Guards.js +1 -0
  114. package/dist/flows/deposit/widgets/deposit/compound/components/Header.d.ts +10 -0
  115. package/dist/flows/deposit/widgets/deposit/compound/components/Header.js +1 -1
  116. package/dist/flows/deposit/widgets/deposit/compound/components/Method.d.ts +6 -0
  117. package/dist/flows/deposit/widgets/deposit/compound/components/Method.js +1 -1
  118. package/dist/flows/deposit/widgets/deposit/compound/components/Steps.d.ts +24 -0
  119. package/dist/flows/deposit/widgets/deposit/compound/components/Steps.js +1 -0
  120. package/dist/flows/deposit/widgets/deposit/compound/index.d.ts +1 -0
  121. package/dist/flows/deposit/widgets/deposit/compound/types.d.ts +6 -3
  122. package/dist/flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.d.ts +41 -1
  123. package/dist/flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.js +1 -1
  124. package/dist/flows/deposit/widgets/deposit-status-banner/compound/DepositStatusBanner.js +1 -1
  125. package/dist/flows/deposit/widgets/deposit-status-banner/compound/components/Hero.js +1 -1
  126. package/dist/flows/deposit/widgets/deposit-status-banner/compound/components/PrimaryAction.js +1 -1
  127. package/dist/flows/deposit/widgets/deposit-status-banner/compound/types.d.ts +5 -5
  128. package/dist/flows/deposit/widgets/error-state/ErrorState.d.ts +39 -4
  129. package/dist/flows/deposit/widgets/error-state/ErrorState.js +1 -1
  130. package/dist/flows/deposit/widgets/processing-state/ProcessingState.d.ts +30 -4
  131. package/dist/flows/deposit/widgets/processing-state/ProcessingState.js +1 -1
  132. package/dist/flows/deposit/widgets/success-state/SuccessState.d.ts +38 -4
  133. package/dist/flows/deposit/widgets/success-state/SuccessState.js +1 -1
  134. package/dist/flows/deposit/widgets/transfer-crypto/TransferCrypto.d.ts +34 -3
  135. package/dist/flows/deposit/widgets/transfer-crypto/TransferCrypto.js +1 -1
  136. package/dist/flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.d.ts +1 -1
  137. package/dist/flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.styles.js +1 -1
  138. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Address.js +1 -1
  139. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Disclosure.d.ts +5 -2
  140. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Disclosure.js +1 -1
  141. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Header.d.ts +5 -0
  142. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Header.js +1 -1
  143. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/QrCode.d.ts +4 -10
  144. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/QrCode.js +1 -1
  145. package/dist/flows/deposit/widgets/transfer-crypto/compound/types.d.ts +16 -2
  146. package/dist/flows/shared/transformers/computeQuoteAttrs.d.ts +1 -0
  147. package/dist/flows/shared/transformers/index.d.ts +1 -0
  148. package/dist/flows/shared/transformers/pickRelevantSettlement.d.ts +1 -0
  149. package/dist/flows/shared/transformers/pickRelevantSettlement.js +1 -1
  150. package/dist/flows/shared/transformers/testnets.js +1 -0
  151. package/dist/flows/withdraw/bindings/WithdrawBindings.d.ts +92 -0
  152. package/dist/flows/withdraw/bindings/WithdrawBindings.js +1 -0
  153. package/dist/flows/withdraw/bindings/index.d.ts +1 -0
  154. package/dist/flows/withdraw/bindings/index.js +1 -0
  155. package/dist/flows/withdraw/dialog/WithdrawDialog.d.ts +35 -71
  156. package/dist/flows/withdraw/dialog/WithdrawDialog.js +1 -1
  157. package/dist/flows/withdraw/driver/dto.d.ts +8 -7
  158. package/dist/flows/withdraw/driver/payloads.d.ts +16 -1
  159. package/dist/flows/withdraw/driver/transformers/settlementToWithdrawalPayload.js +1 -1
  160. package/dist/flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js +1 -1
  161. package/dist/flows/withdraw/driver/types.d.ts +111 -14
  162. package/dist/flows/withdraw/orchestrator/controller.js +1 -1
  163. package/dist/flows/withdraw/orchestrator/index.d.ts +1 -1
  164. package/dist/flows/withdraw/orchestrator/reducer.js +1 -1
  165. package/dist/flows/withdraw/orchestrator/types.d.ts +201 -32
  166. package/dist/flows/withdraw/orchestrator/useWithdraw.d.ts +36 -1
  167. package/dist/flows/withdraw/orchestrator/useWithdraw.js +1 -1
  168. package/dist/flows/withdraw/widgets/activity-history/WithdrawHistoryDetail.d.ts +39 -0
  169. package/dist/flows/withdraw/widgets/activity-history/WithdrawHistoryDetail.js +1 -0
  170. package/dist/flows/withdraw/widgets/activity-history/WithdrawHistoryList.d.ts +36 -0
  171. package/dist/flows/withdraw/widgets/activity-history/WithdrawHistoryList.js +1 -0
  172. package/dist/flows/withdraw/widgets/activity-history/index.d.ts +2 -0
  173. package/dist/flows/withdraw/widgets/activity-history/index.js +1 -0
  174. package/dist/flows/withdraw/widgets/activity-history/useWithdrawActivityHistorySource.js +1 -0
  175. package/dist/flows/withdraw/widgets/withdraw/compound/Withdraw.d.ts +60 -0
  176. package/dist/flows/withdraw/widgets/withdraw/compound/Withdraw.js +1 -0
  177. package/dist/flows/withdraw/widgets/withdraw/compound/Withdraw.slots.d.ts +13 -0
  178. package/dist/flows/withdraw/widgets/withdraw/compound/Withdraw.slots.js +1 -0
  179. package/dist/flows/withdraw/widgets/withdraw/compound/components/Boundary.d.ts +29 -0
  180. package/dist/flows/withdraw/widgets/withdraw/compound/components/Boundary.js +1 -0
  181. package/dist/flows/withdraw/widgets/withdraw/compound/components/Guards.d.ts +25 -0
  182. package/dist/flows/withdraw/widgets/withdraw/compound/components/Guards.js +1 -0
  183. package/dist/flows/withdraw/widgets/withdraw/compound/components/Steps.d.ts +27 -0
  184. package/dist/flows/withdraw/widgets/withdraw/compound/components/Steps.js +1 -0
  185. package/dist/flows/withdraw/widgets/withdraw/compound/index.d.ts +3 -0
  186. package/dist/flows/withdraw/widgets/withdraw/compound/index.js +1 -0
  187. package/dist/flows/withdraw/widgets/withdraw-error/WithdrawError.d.ts +45 -2
  188. package/dist/flows/withdraw/widgets/withdraw-error/WithdrawError.js +1 -1
  189. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.d.ts +32 -12
  190. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.js +1 -1
  191. package/dist/flows/withdraw/widgets/withdraw-form/compound/WithdrawForm.js +1 -1
  192. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/Header.d.ts +6 -1
  193. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/Header.js +1 -1
  194. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/RecipientField.d.ts +7 -5
  195. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/RecipientField.js +1 -1
  196. package/dist/flows/withdraw/widgets/withdraw-form/compound/types.d.ts +15 -5
  197. package/dist/flows/withdraw/widgets/withdraw-form/validation.js +1 -1
  198. package/dist/flows/withdraw/widgets/withdraw-in-progress/WithdrawInProgress.d.ts +39 -3
  199. package/dist/flows/withdraw/widgets/withdraw-in-progress/WithdrawInProgress.js +1 -1
  200. package/dist/flows/withdraw/widgets/withdraw-success/WithdrawSuccess.d.ts +46 -2
  201. package/dist/flows/withdraw/widgets/withdraw-success/WithdrawSuccess.js +1 -1
  202. package/dist/i18n/index.d.ts +5 -4
  203. package/dist/i18n/index.js +1 -1
  204. package/dist/i18n/locales/ar.js +1 -1
  205. package/dist/i18n/locales/es.js +1 -1
  206. package/dist/i18n/locales/source-keys.d.ts +12 -0
  207. package/dist/i18n/locales/source-keys.js +0 -0
  208. package/dist/icons/index.d.ts +3 -1
  209. package/dist/icons/index.js +1 -1
  210. package/dist/index.d.ts +22 -9
  211. package/dist/index.js +1 -1
  212. package/dist/package.js +1 -1
  213. package/dist/scope/KitPortalScope.js +1 -1
  214. package/dist/scope/KitScope.d.ts +18 -1
  215. package/dist/scope/KitScope.js +1 -1
  216. package/dist/scope/context.d.ts +17 -1
  217. package/dist/scope/index.d.ts +1 -1
  218. package/dist/shared/attribution/Attribution.js +1 -0
  219. package/dist/shared/attribution/Attribution.slots.js +1 -0
  220. package/dist/shared/attribution/Attribution.styles.js +1 -0
  221. package/dist/shared/attribution/index.js +1 -0
  222. package/dist/shared/chains/index.d.ts +48 -29
  223. package/dist/shared/chains/index.js +1 -1
  224. package/dist/shared/constants/brand-intercom.js +1 -0
  225. package/dist/shared/cuer/Cuer.js +1 -1
  226. package/dist/shared/dialog/Frame.js +1 -1
  227. package/dist/shared/dialog/LoadingState.js +1 -0
  228. package/dist/shared/dialog/LoadingState.styles.js +1 -0
  229. package/dist/shared/dialog/StepTransition.js +1 -1
  230. package/dist/shared/dialog/useDirectionalChevronTransform.js +1 -1
  231. package/dist/shared/driver/types.d.ts +4 -3
  232. package/dist/shared/i18n/KitI18nProvider.d.ts +11 -8
  233. package/dist/shared/i18n/KitI18nProvider.js +1 -1
  234. package/dist/shared/i18n/createKitI18n.d.ts +79 -16
  235. package/dist/shared/i18n/createKitI18n.js +1 -1
  236. package/dist/shared/i18n/useLingui.d.ts +11 -3
  237. package/dist/shared/icons/HistoryIcon.d.ts +12 -0
  238. package/dist/shared/icons/HistoryIcon.js +1 -0
  239. package/dist/shared/icons/LogoIcon.d.ts +13 -0
  240. package/dist/shared/icons/LogoIcon.js +1 -0
  241. package/dist/shared/merchant-link/MerchantLink.d.ts +1 -0
  242. package/dist/shared/merchant-link/MerchantLink.js +1 -0
  243. package/dist/shared/merchant-link/MerchantLinkButton.d.ts +1 -0
  244. package/dist/shared/merchant-link/MerchantLinkButton.js +1 -0
  245. package/dist/shared/merchant-link/index.d.ts +1 -0
  246. package/dist/shared/merchant-link/index.js +1 -0
  247. package/dist/shared/merchant-link/resolveMerchantLink.js +1 -0
  248. package/dist/shared/orchestrator/useSettlementWatcher.js +1 -1
  249. package/dist/shared/primitives/TxHashValue/TxHashValue.js +1 -1
  250. package/dist/shared/support/SupportConfigContext.d.ts +1 -0
  251. package/dist/shared/support/SupportConfigContext.js +1 -0
  252. package/dist/shared/support/SupportLink.d.ts +1 -0
  253. package/dist/shared/support/SupportLink.js +1 -0
  254. package/dist/shared/support/SupportSpinner.d.ts +1 -0
  255. package/dist/shared/support/SupportSpinner.js +1 -0
  256. package/dist/shared/support/index.d.ts +2 -0
  257. package/dist/shared/support/index.js +1 -0
  258. package/dist/shared/support/intercom-loader.d.ts +17 -0
  259. package/dist/shared/support/intercom-loader.js +1 -0
  260. package/dist/shared/support/types.d.ts +43 -0
  261. package/dist/shared/support/useIntercomMerchantContext.d.ts +27 -0
  262. package/dist/shared/support/useIntercomMerchantContext.js +1 -0
  263. package/dist/shared/support/useIntercomShutdownOnUnmount.js +1 -0
  264. package/dist/shared/support/useMerchantContext.d.ts +1 -0
  265. package/dist/shared/support/useMerchantContext.js +1 -0
  266. package/dist/shared/support/useSupportTrigger.js +1 -0
  267. package/dist/shared/terms/TermsConfigContext.d.ts +1 -0
  268. package/dist/shared/terms/TermsConfigContext.js +1 -0
  269. package/dist/shared/terms/TermsLink.d.ts +1 -0
  270. package/dist/shared/terms/TermsLink.js +1 -0
  271. package/dist/shared/terms/index.d.ts +1 -0
  272. package/dist/shared/terms/index.js +1 -0
  273. package/dist/shared/terms/types.d.ts +43 -0
  274. package/dist/shared/ui/Card/Card.styles.js +1 -1
  275. package/dist/shared/ui/Details/Details.d.ts +9 -1
  276. package/dist/shared/ui/Details/Details.styles.js +1 -1
  277. package/dist/shared/ui/Dialog/Dialog.js +1 -1
  278. package/dist/shared/ui/Dialog/Dialog.styles.js +1 -1
  279. package/dist/shared/ui/Select/Select.js +1 -1
  280. package/dist/shared/ui/SelectableTile/SelectableTile.d.ts +21 -8
  281. package/dist/shared/ui/SelectableTile/SelectableTile.js +1 -1
  282. package/dist/shared/ui/Steps/Steps.d.ts +52 -0
  283. package/dist/shared/ui/Steps/Steps.js +1 -0
  284. package/dist/shared/ui/Steps/Steps.slots.d.ts +7 -0
  285. package/dist/shared/ui/Steps/Steps.slots.js +1 -0
  286. package/dist/shared/ui/Steps/Steps.styles.js +1 -0
  287. package/dist/shared/ui/Steps/index.d.ts +2 -0
  288. package/dist/shared/ui/Steps/index.js +1 -0
  289. package/dist/shared/ui/WalletRow/WalletRow.d.ts +1 -1
  290. package/dist/shared/ui/WalletRow/WalletRow.js +1 -1
  291. package/dist/shared/utils/logos/types.d.ts +1 -1
  292. package/dist/shared/utils/useDeepMemo.js +1 -0
  293. package/dist/shared/wallet/ConnectWalletContext.d.ts +17 -0
  294. package/dist/shared/wallet/ConnectWalletContext.js +1 -0
  295. package/dist/shared/widgets/activity-history/ActivityTrigger.js +1 -0
  296. package/dist/shared/widgets/activity-history/ActivityTrigger.styles.js +1 -0
  297. package/dist/shared/widgets/activity-history/adapters/settlementToWidgetProps.js +1 -0
  298. package/dist/shared/widgets/activity-history/compound/ActivityHistory.d.ts +95 -0
  299. package/dist/shared/widgets/activity-history/compound/ActivityHistory.js +1 -0
  300. package/dist/shared/widgets/activity-history/compound/ActivityHistory.slots.d.ts +22 -0
  301. package/dist/shared/widgets/activity-history/compound/ActivityHistory.slots.js +1 -0
  302. package/dist/shared/widgets/activity-history/compound/ActivityHistory.styles.js +1 -0
  303. package/dist/shared/widgets/activity-history/compound/ActivityHistoryDetail.d.ts +75 -0
  304. package/dist/shared/widgets/activity-history/compound/ActivityHistoryDetail.js +1 -0
  305. package/dist/shared/widgets/activity-history/compound/Row.slots.d.ts +21 -0
  306. package/dist/shared/widgets/activity-history/compound/Row.slots.js +1 -0
  307. package/dist/shared/widgets/activity-history/compound/Row.styles.js +1 -0
  308. package/dist/shared/widgets/activity-history/compound/components/Empty.d.ts +15 -0
  309. package/dist/shared/widgets/activity-history/compound/components/Empty.js +1 -0
  310. package/dist/shared/widgets/activity-history/compound/components/ErrorView.d.ts +26 -0
  311. package/dist/shared/widgets/activity-history/compound/components/ErrorView.js +1 -0
  312. package/dist/shared/widgets/activity-history/compound/components/HistoryHeader.d.ts +39 -0
  313. package/dist/shared/widgets/activity-history/compound/components/HistoryHeader.js +1 -0
  314. package/dist/shared/widgets/activity-history/compound/components/List.d.ts +23 -0
  315. package/dist/shared/widgets/activity-history/compound/components/List.js +1 -0
  316. package/dist/shared/widgets/activity-history/compound/components/Row.d.ts +54 -0
  317. package/dist/shared/widgets/activity-history/compound/components/Row.js +1 -0
  318. package/dist/shared/widgets/activity-history/compound/components/StatusPip.js +1 -0
  319. package/dist/shared/widgets/activity-history/compound/context.d.ts +79 -0
  320. package/dist/shared/widgets/activity-history/compound/context.js +1 -0
  321. package/dist/shared/widgets/activity-history/index.js +1 -0
  322. package/dist/shared/widgets/activity-history/payloads.d.ts +81 -0
  323. package/dist/shared/widgets/activity-history/transformers/historyResponseToPayload.js +1 -0
  324. package/dist/shared/widgets/activity-history/transformers/resolveDirection.js +1 -0
  325. package/dist/shared/widgets/amount-entry/compound/AmountEntry.d.ts +4 -1
  326. package/dist/shared/widgets/amount-entry/compound/AmountEntry.js +1 -1
  327. package/dist/shared/widgets/amount-entry/compound/AmountEntry.slots.d.ts +1 -0
  328. package/dist/shared/widgets/amount-entry/compound/AmountEntry.slots.js +1 -1
  329. package/dist/shared/widgets/amount-entry/compound/AmountEntry.styles.js +1 -1
  330. package/dist/shared/widgets/amount-entry/compound/components/Header.d.ts +6 -1
  331. package/dist/shared/widgets/amount-entry/compound/components/Header.js +1 -1
  332. package/dist/shared/widgets/amount-entry/compound/components/Hero/Hero.js +1 -1
  333. package/dist/shared/widgets/amount-entry/compound/components/Hero/SwapBackdrop.js +1 -1
  334. package/dist/shared/widgets/amount-entry/compound/components/Notice.d.ts +7 -0
  335. package/dist/shared/widgets/amount-entry/compound/components/Notice.js +1 -0
  336. package/dist/shared/widgets/amount-entry/compound/types.d.ts +26 -1
  337. package/dist/shared/widgets/asset-picker/compound/AssetPicker.js +1 -1
  338. package/dist/shared/widgets/asset-picker/compound/AssetPicker.styles.js +1 -1
  339. package/dist/shared/widgets/asset-picker/compound/components/Asset.d.ts +7 -1
  340. package/dist/shared/widgets/asset-picker/compound/components/Asset.js +1 -1
  341. package/dist/shared/widgets/asset-picker/compound/components/Header.d.ts +6 -1
  342. package/dist/shared/widgets/asset-picker/compound/components/Header.js +1 -1
  343. package/dist/shared/widgets/asset-picker/compound/types.d.ts +14 -0
  344. package/dist/shared/widgets/confirm-transfer/compound/ConfirmTransfer.styles.js +1 -1
  345. package/dist/shared/widgets/confirm-transfer/compound/components/Disclaimer.d.ts +4 -3
  346. package/dist/shared/widgets/confirm-transfer/compound/components/Disclaimer.js +1 -1
  347. package/dist/shared/widgets/confirm-transfer/compound/components/QuoteTimer.js +1 -1
  348. package/dist/shared/widgets/error-state/compound/components/AssetValue.js +1 -1
  349. package/dist/shared/widgets/error-state/compound/components/HelpInfo.js +1 -1
  350. package/dist/shared/widgets/error-state/compound/components/MoreDetails.d.ts +1 -1
  351. package/dist/shared/widgets/error-state/compound/components/MoreDetails.js +1 -1
  352. package/dist/shared/widgets/error-state/compound/components/StatusValue.js +1 -1
  353. package/dist/shared/widgets/processing-state/compound/ProcessingState.d.ts +1 -5
  354. package/dist/shared/widgets/processing-state/compound/ProcessingState.js +1 -1
  355. package/dist/shared/widgets/processing-state/compound/ProcessingState.slots.d.ts +0 -1
  356. package/dist/shared/widgets/processing-state/compound/ProcessingState.slots.js +1 -1
  357. package/dist/shared/widgets/processing-state/compound/ProcessingState.styles.js +1 -1
  358. package/dist/shared/widgets/processing-state/compound/components/Details.d.ts +6 -1
  359. package/dist/shared/widgets/processing-state/compound/components/Details.js +1 -1
  360. package/dist/shared/widgets/processing-state/compound/components/Header.d.ts +4 -3
  361. package/dist/shared/widgets/processing-state/compound/components/Header.js +1 -1
  362. package/dist/shared/widgets/processing-state/compound/components/Hero.d.ts +14 -7
  363. package/dist/shared/widgets/processing-state/compound/components/Hero.js +1 -1
  364. package/dist/shared/widgets/processing-state/compound/components/Rows.js +1 -1
  365. package/dist/shared/widgets/processing-state/compound/components/StatusPill.js +1 -1
  366. package/dist/shared/widgets/processing-state/compound/components/splitAmount.js +1 -0
  367. package/dist/shared/widgets/processing-state/compound/index.d.ts +1 -1
  368. package/dist/shared/widgets/processing-state/compound/types.d.ts +11 -29
  369. package/dist/shared/widgets/success-state/compound/components/Actions.js +1 -1
  370. package/dist/shared/widgets/success-state/compound/components/AssetValue.js +1 -1
  371. package/dist/shared/widgets/success-state/compound/components/MoreDetails.d.ts +1 -1
  372. package/dist/shared/widgets/success-state/compound/components/MoreDetails.js +1 -1
  373. package/dist/shared/widgets/success-state/compound/components/RouteValue.js +1 -1
  374. package/dist/shared/widgets/success-state/compound/components/StatusPill.js +1 -1
  375. package/dist/shared/widgets/success-state/compound/types.d.ts +5 -5
  376. package/dist/stridge/StridgeProvider.d.ts +165 -35
  377. package/dist/stridge/StridgeProvider.js +1 -1
  378. package/dist/stridge/depositOwner.js +1 -0
  379. package/dist/stridge/optionalWagmi.js +1 -0
  380. package/dist/stridge/stubs.js +1 -1
  381. package/dist/styles/index.css +228 -10
  382. package/dist/types.d.ts +5 -4
  383. package/dist/ui/index.d.ts +3 -1
  384. package/dist/ui/index.js +1 -1
  385. package/dist/withdraw/compound/index.d.ts +5 -2
  386. package/dist/withdraw/compound/index.js +1 -1
  387. package/dist/withdraw/dialog/index.d.ts +3 -1
  388. package/package.json +15 -7
  389. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.d.ts +0 -36
  390. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.js +0 -1
  391. package/dist/shared/widgets/processing-state/compound/components/Actions.d.ts +0 -17
  392. package/dist/shared/widgets/processing-state/compound/components/Actions.js +0 -1
  393. package/dist/stridge/StridgeContext.d.ts +0 -29
  394. package/dist/stridge/StridgeContext.js +0 -1
@@ -0,0 +1 @@
1
+ async function e(e,r={}){let i=r.baseDelayMs??500,a=r.jitterMs??250;try{return await e()}catch(r){if(!t(r))throw r;return await n(i+Math.random()*a),await e()}}function t(e){if(!e||typeof e!=`object`)return!0;let t=e;return t.name===`AbortError`?!1:typeof t.status==`number`?t.status>=500||t.status===429:!0}function n(e){return new Promise(t=>setTimeout(t,e))}export{e as withOneShotRetry};
@@ -0,0 +1 @@
1
+ import{KNOWN_TESTNET_EIP155_IDS as e}from"../../../flows/shared/transformers/testnets.js";function t(t){if(!t)return;let n=new Set;for(let r of t.assets)r.chain_type===`EVM`&&(typeof r.eip155_id!=`number`||!Number.isFinite(r.eip155_id)||r.eip155_id<=0||e.has(r.eip155_id)||n.add(r.eip155_id));if(n.size!==0)return Array.from(n).join(`,`)}export{t as buildEvmChainsParam};
@@ -34,11 +34,6 @@ interface StridgePollIntervals {
34
34
  type StridgeEnvironment = "production" | "staging";
35
35
  /** Default {@link StridgeEnvironment} when {@link StridgeDriverConfig.environment} is omitted. */
36
36
  declare const STRIDGE_DEFAULT_ENVIRONMENT = "production";
37
- /**
38
- * Default low-balance / amount-entry floor in USD used when {@link StridgeDriverConfig.minDepositUsd}
39
- * is omitted. Hosts can override per project (some perp DEXes want a higher floor than $3).
40
- */
41
- declare const STRIDGE_DEFAULT_MIN_DEPOSIT_USD = 3;
42
37
  /**
43
38
  * Settlement destination for `gateway/start`. Mirrors the wire shape so hosts don't have to reach
44
39
  * for the SDK's `GatewayStartRequest.destination` type — every field corresponds 1:1.
@@ -81,11 +76,19 @@ interface StridgeDriverConfig {
81
76
  */
82
77
  destination: StridgeDriverDestination;
83
78
  /**
84
- * Low-balance / amount-entry USD floor. Drives the asset-picker's "Low balance" pill and the
85
- * amount-entry hero's `min` / `initialAmount` (via {@link toKitTarget}). Defaults to
86
- * {@link STRIDGE_DEFAULT_MIN_DEPOSIT_USD} when omitted.
79
+ * Low-balance / amount-entry USD floor. Drives the asset-picker's "Low Balance" pill and the
80
+ * amount-entry hero's `min` / `initialAmount`. The kit ships no default — when omitted, the
81
+ * floor is unset and the picker / amount-entry surface neither a "Low Balance" pill nor a
82
+ * minimum CTA. Hosts that want a floor opt in by passing the USD value here.
83
+ */
84
+ minAmountUsd?: number;
85
+ /**
86
+ * Optional upper USD bound on the deposit amount. When set, the amount-entry treats
87
+ * `min(walletBalanceUsd, maxAmountUsd)` as the effective ceiling — typing above it surfaces
88
+ * an inline notice and the footer CTA snaps the amount down on click. Omit to let the
89
+ * wallet balance be the only ceiling.
87
90
  */
88
- minDepositUsd?: number;
91
+ maxAmountUsd?: number;
89
92
  /**
90
93
  * Optional metadata persisted on the UDA at `gateway/start` time. Echoed back on
91
94
  * `gateway/{owner}` and webhook payloads. Treat as untrusted display data.
@@ -104,12 +107,15 @@ interface StridgeDriverConfig {
104
107
  /** Polling cadence overrides. */
105
108
  pollIntervals?: StridgePollIntervals;
106
109
  /**
107
- * Wagmi config used to sign and broadcast transfers. Receipt polling is intentionally NOT
110
+ * Wagmi config used to sign and broadcast transfers. Optional when omitted, the driver
111
+ * still bootstraps for read-only paths (balances, addresses, brand, quotes) and the
112
+ * transfer-crypto method path, but {@link DepositDriver.submitDeposit} throws a user-readable
113
+ * error since signing has no connector to talk to. Receipt polling is intentionally NOT
108
114
  * routed through this — the driver uses an internal Stridge RPC client (see `rpc.ts`) so
109
- * deposits don't depend on the host's wagmi public client (which falls
110
- * through to viem's hard-coded public defaults — unreliable for live tx flow).
115
+ * deposits don't depend on the host's wagmi public client (which falls through to viem's
116
+ * hard-coded public defaults — unreliable for live tx flow).
111
117
  */
112
- wagmiConfig: Config;
118
+ wagmiConfig?: Config;
113
119
  /**
114
120
  * Advanced escape hatch: inject a custom Stridge RPC client (e.g. for tests or a self-hosted
115
121
  * proxy). Defaults to a client that targets `https://${chainId}.nodes.stridge.com`.
@@ -142,4 +148,4 @@ interface StridgeDriverConfig {
142
148
  };
143
149
  }
144
150
  //#endregion
145
- export { STRIDGE_DEFAULT_ENVIRONMENT, STRIDGE_DEFAULT_MIN_DEPOSIT_USD, StridgeDriverConfig, StridgeDriverDestination, StridgeEnvironment, StridgePollIntervals, StridgeTokenIconResolverEntry };
151
+ export { STRIDGE_DEFAULT_ENVIRONMENT, StridgeDriverConfig, StridgeDriverDestination, StridgeEnvironment, StridgePollIntervals, StridgeTokenIconResolverEntry };
@@ -1 +1 @@
1
- const e=`production`,t=3;export{e as STRIDGE_DEFAULT_ENVIRONMENT,t as STRIDGE_DEFAULT_MIN_DEPOSIT_USD};
1
+ const e=`production`;export{e as STRIDGE_DEFAULT_ENVIRONMENT};
@@ -1 +1 @@
1
- import{numberToHex as e}from"viem";import{getAccount as t,getConnectorClient as n,switchChain as r}from"wagmi/actions";function i(i){return{async signAndBroadcastStep(o,s){a(s);let c=t(i.wagmiConfig);if(!c.address)throw Error(`Connect a wallet to sign and submit the deposit.`);c.chainId!==o.chainId&&await r(i.wagmiConfig,{chainId:o.chainId}),a(s);let l=o.from??c.address;if(!l)throw Error(`Stridge driver: no connected wallet address available to broadcast the deposit tx.`);return await(await n(i.wagmiConfig,{chainId:o.chainId})).request({method:`eth_sendTransaction`,params:[{from:l,to:o.to,data:o.data,value:e(o.value),chainId:e(o.chainId)}]})}}}function a(e){if(e.aborted)throw new DOMException(`Aborted`,`AbortError`)}export{i as createWagmiSigner};
1
+ import{ensureWalletChain as e}from"./internal/ensureWalletChain.js";import{numberToHex as t}from"viem";import{getAccount as n,getConnectorClient as r}from"wagmi/actions";function i(i){return{async signAndBroadcastStep(o,s){a(s);let c=n(i.wagmiConfig);if(!c.address)throw Error(`Connect a wallet to sign and submit the deposit.`);await e(o.chainId,{wagmiConfig:i.wagmiConfig,getSupportedAssets:i.getSupportedAssets,explorers:i.explorers}),a(s);let l=o.from??c.address;if(!l)throw Error(`Stridge driver: no connected wallet address available to broadcast the deposit tx.`);return await(await r(i.wagmiConfig,{chainId:o.chainId})).request({method:`eth_sendTransaction`,params:[{from:l,to:o.to,data:o.data,value:t(o.value),chainId:t(o.chainId)}]})}}}function a(e){if(e.aborted)throw new DOMException(`Aborted`,`AbortError`)}export{i as createWagmiSigner};
@@ -23,6 +23,8 @@ interface MockDriverLatency {
23
23
  processingTerminal?: number;
24
24
  /** Path B — `watchSourceTx` listener fires after this many ms. */
25
25
  transferDetected?: number;
26
+ /** `refreshHistory` resolves after this many ms (lets the activity surface flash its skeleton). */
27
+ refreshHistory?: number;
26
28
  }
27
29
  /**
28
30
  * Configuration for {@link createStridgeMockDriver}. Every field is optional — calling the
@@ -38,8 +40,8 @@ interface CreateStridgeMockDriverInput {
38
40
  getI18n?: () => I18n;
39
41
  /** Connected wallet info. When omitted, defaults to {@link DEFAULT_WALLET_INFO}. */
40
42
  wallet?: WalletInfo;
41
- /** Optional minimum-deposit USD floor surfaced on `target.payload.minDepositUsd`. */
42
- minDepositUsd?: number;
43
+ /** Optional minimum-deposit USD floor surfaced on `target.payload.minAmountUsd`. */
44
+ minAmountUsd?: number;
43
45
  /**
44
46
  * Settlement-destination override — a `{ chain, symbol }` selector resolved against the
45
47
  * mock's bundled catalog ({@link SAMPLE_DEPOSIT_CHAINS} via {@link resolveMockAsset}). Drives
@@ -1 +1 @@
1
- import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{shortenAddress as t}from"../../shared/format/shortenAddress.js";import{createEntityStore as n}from"./store.js";import{DEFAULT_BRAND_PAYLOAD as r,DEFAULT_WALLET_INFO as i,STUB_DEPOSIT_ADDRESSES_RAW as a,STUB_GATEWAY_POLL_RESPONSE as o,STUB_GATEWAY_SETTLEMENT_DTO as s,STUB_GATEWAY_START_RESPONSE as c,STUB_ONCHAIN_BALANCE_RESPONSE as l,STUB_QUOTE_RESPONSE as u,STUB_SUPPORTED_ASSETS_RESPONSE as d,buildDefaultAddressesPayload as f,buildDefaultBalances as p,buildDefaultFailurePayload as m,buildDefaultPendingPayload as h,buildDefaultQuotePayload as g,buildDefaultSuccessPayload as _,buildDefaultTargetPayload as v,buildDefaultTargetRaw as y,buildDefaultWalletPayload as b,resolveMockAsset as x}from"./fixtures.js";const S={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3,transferDetected:4e3};function C(r={}){let a=r.getI18n??(()=>e),c=r.wallet??i,l=x(r.asset),d=n(w(a(),c,r.minDepositUsd,l,r.initialState)),f={...S,...r.latency??{}},p=r.autoSettleTo??`succeeded`,v=r.pendingTriggerToSuccessMs===void 0?3500:r.pendingTriggerToSuccessMs,y=new Set,b=new Set,C=new Set,E=!1,D,O;function k(){D!==void 0&&(clearTimeout(D),D=void 0),O!==void 0&&(clearTimeout(O),O=void 0),E=!1}function A(){if(E)return;E=!0;let e=a();D=setTimeout(()=>{D=void 0;let t={status:`ready`,payload:h(e,l),raw:s,response:o};d.update({settlement:t});for(let e of y)e(t);O=setTimeout(()=>{if(O=void 0,p===`succeeded`){let t={status:`ready`,payload:_(e,l),raw:s,response:o};d.update({settlement:t});for(let e of y)e(t)}else if(p===`failed`){let t={status:`ready`,payload:m(e,void 0,l),raw:s,response:o};d.update({settlement:t});for(let e of y)e(t)}E=!1},f.processingTerminal)},f.processingPendingDelay)}let j={getSnapshot(){return d.getSnapshot()},subscribe(e){return d.subscribe(e)},async requestQuote(e,t){d.update({quote:{status:`loading`}}),await T(f.quote,t);let n=a(),r=Date.now()+3e4;d.update({quote:{status:`ready`,payload:g(n,r,l),raw:u,response:u}})},async submitDeposit(e,t){return await T(f.submit,t),p!==`none`&&A(),{hash:`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,explorerUrl:`https://etherscan.io/tx/0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`}},watchBalances(e,t,n){C.add(t);let r=d.getSnapshot().balances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>C.delete(t),{once:!0})},watchSourceTx(e,t,n){b.add(t);let r=setTimeout(()=>{n.aborted||t({hash:`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,explorerUrl:`https://etherscan.io/tx/0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`})},f.transferDetected);n.addEventListener(`abort`,()=>{clearTimeout(r),b.delete(t)},{once:!0})},watchSettlement(e,t,n){y.add(t);let r=d.getSnapshot().settlement;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>y.delete(t),{once:!0})},async fetchActiveSettlement(e,t){let n=d.getSnapshot().settlement;return n.status!==`ready`||n.payload.kind!==`pending`?null:{payload:n.payload,raw:n.raw,response:n.response}}},M=0,N=null;function P(){N!==null&&(clearTimeout(N),N=null)}function F(e){M+=1;let n=`0x${M.toString(16).padStart(8,`0`)}${e.value.length>10?e.value.slice(10):`0`.repeat(56)}`;return{value:n,formatted:t(n)}}function I(e,t){if(e)return e.replace(/(\/tx\/|\/address\/)(0x[0-9a-fA-F]+)/,(e,n)=>`${n}${t}`)}let L={triggerSettlementPending(e){let t=h(a(),l),n=t.txHash?F(t.txHash):void 0,r=n?I(t.txExplorerUrl,n.value):void 0,i={status:`ready`,payload:{...t,...n?{txHash:n}:{},...r?{txExplorerUrl:r}:{},...e},raw:s,response:o};P(),d.update({settlement:i});for(let e of y)e(i);v!==null&&v>=0&&(N=setTimeout(()=>{N=null,L.triggerSettlementSuccess()},v))},triggerSettlementSuccess(e){P();let t=_(a(),l),n=F(t.depositTx.hash),r=I(t.depositTx.explorerUrl,n.value),i={status:`ready`,payload:{...t,depositTx:{...t.depositTx,hash:n,...r?{explorerUrl:r}:{}},...e},raw:s,response:o};d.update({settlement:i});for(let e of y)e(i)},triggerSettlementFailure(e,t){P();let n=m(a(),e,l),r=F(n.txHash),i=I(n.txExplorerUrl,r.value),c={status:`ready`,payload:{...n,txHash:r,...i?{txExplorerUrl:i}:{},...t},raw:s,response:o};d.update({settlement:c});for(let e of y)e(c)},triggerQuoteFailure(e){d.update({quote:{status:`error`,error:e}})},reset(){P(),k(),d.replace(w(a(),c,r.minDepositUsd,l,r.initialState))}};return{driver:j,triggers:L}}function w(e,t,n,i,o){let s={brand:{status:`ready`,payload:r,raw:c.metadata,response:c},target:{status:`ready`,payload:v(e,n,i),raw:y(i),response:d},addresses:{status:`ready`,payload:f(e,n),raw:a,response:c},balances:{status:`ready`,payload:p(e),raw:l,response:l},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:b(e,t),raw:t,response:t}};return o?{...s,...o}:s}function T(e,t){return new Promise((n,r)=>{if(t.aborted){r(E());return}let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),r(E())};t.addEventListener(`abort`,a,{once:!0})})}function E(){if(typeof DOMException==`function`)return new DOMException(`Aborted`,`AbortError`);let e=Error(`Aborted`);return e.name=`AbortError`,e}export{C as createStridgeMockDriver};
1
+ import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{shortenAddress as t}from"../../shared/format/shortenAddress.js";import{historyResponseToPayload as n}from"../../shared/widgets/activity-history/transformers/historyResponseToPayload.js";import{createEntityStore as r}from"./store.js";import{DEFAULT_BRAND_PAYLOAD as i,DEFAULT_WALLET_INFO as a,STUB_DEPOSIT_ADDRESSES_RAW as o,STUB_GATEWAY_POLL_RESPONSE as s,STUB_GATEWAY_SETTLEMENT_DTO as c,STUB_GATEWAY_START_RESPONSE as l,STUB_ONCHAIN_BALANCE_RESPONSE as u,STUB_QUOTE_RESPONSE as d,STUB_SUPPORTED_ASSETS_RESPONSE as f,buildDefaultAddressesPayload as p,buildDefaultBalances as m,buildDefaultFailurePayload as h,buildDefaultPendingPayload as g,buildDefaultQuotePayload as _,buildDefaultSuccessPayload as v,buildDefaultTargetPayload as y,buildDefaultTargetRaw as b,buildDefaultWalletPayload as x,buildMockHistoryResponse as S,resolveMockAsset as C}from"./fixtures.js";const w={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3,transferDetected:4e3,refreshHistory:400};function T(i={}){let o=i.getI18n??(()=>e),l=i.wallet??a,u=C(i.asset),f=r(E(o(),l,i.minAmountUsd,u,i.initialState)),p={...w,...i.latency??{}},m=i.autoSettleTo??`succeeded`,y=i.pendingTriggerToSuccessMs===void 0?3500:i.pendingTriggerToSuccessMs,b=new Set,x=new Set,T=new Set,O=!1,k,A;function j(){k!==void 0&&(clearTimeout(k),k=void 0),A!==void 0&&(clearTimeout(A),A=void 0),O=!1}function M(){if(O)return;O=!0;let e=o();k=setTimeout(()=>{k=void 0;let t={status:`ready`,payload:g(e,u),raw:c,response:s};f.update({settlement:t});for(let e of b)e(t);A=setTimeout(()=>{if(A=void 0,m===`succeeded`){let t={status:`ready`,payload:v(e,u),raw:c,response:s};f.update({settlement:t});for(let e of b)e(t)}else if(m===`failed`){let t={status:`ready`,payload:h(e,void 0,u),raw:c,response:s};f.update({settlement:t});for(let e of b)e(t)}O=!1},p.processingTerminal)},p.processingPendingDelay)}let N={getSnapshot(){return f.getSnapshot()},subscribe(e){return f.subscribe(e)},arm(){},async requestQuote(e,t){f.update({quote:{status:`loading`}}),await D(p.quote,t);let n=o(),r=Date.now()+3e4;f.update({quote:{status:`ready`,payload:_(n,r,u),raw:d,response:d}})},async submitDeposit(e,t){return await D(p.submit,t),m!==`none`&&M(),{hash:`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,explorerUrl:`https://etherscan.io/tx/0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`}},watchBalances(e,t,n){T.add(t);let r=f.getSnapshot().balances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>T.delete(t),{once:!0})},invalidateBalances(){let e=f.getSnapshot().balances;for(let t of T)t(e)},watchSourceTx(e,t,n){x.add(t);let r=setTimeout(()=>{n.aborted||t({hash:`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,explorerUrl:`https://etherscan.io/tx/0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`})},p.transferDetected);n.addEventListener(`abort`,()=>{clearTimeout(r),x.delete(t)},{once:!0})},watchSettlement(e,t,n){b.add(t);let r=f.getSnapshot().settlement;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>b.delete(t),{once:!0})},async fetchActiveSettlement(e,t){let n=f.getSnapshot().settlement;return n.status!==`ready`||n.payload.kind!==`pending`?null:{payload:n.payload,raw:n.raw,response:n.response}},refreshHistory(e){P(e)},watchHistory(e){let t,n=()=>{e.aborted||(P(e),t=setTimeout(n,5e3))};e.addEventListener(`abort`,()=>{t!==void 0&&clearTimeout(t)},{once:!0}),n()}};function P(e){let t=f.getSnapshot().history;(t.status===`idle`||t.status===`error`)&&f.update({history:{status:`loading`}}),(async()=>{try{await D(p.refreshHistory,e)}catch{return}if(e.aborted)return;let t=o(),r=S(l.address),i=n(r,{i18n:t,ownerAddress:l.address});f.update({history:{status:`ready`,payload:i,raw:r.udas,response:r}})})()}let F=0,I=null;function L(){I!==null&&(clearTimeout(I),I=null)}function R(e){F+=1;let n=`0x${F.toString(16).padStart(8,`0`)}${e.value.length>10?e.value.slice(10):`0`.repeat(56)}`;return{value:n,formatted:t(n)}}function z(e,t){if(e)return e.replace(/(\/tx\/|\/address\/)(0x[0-9a-fA-F]+)/,(e,n)=>`${n}${t}`)}let B={triggerSettlementPending(e){let t=g(o(),u),n=t.txHash?R(t.txHash):void 0,r=n?z(t.txExplorerUrl,n.value):void 0,i={status:`ready`,payload:{...t,...n?{txHash:n}:{},...r?{txExplorerUrl:r}:{},...e},raw:c,response:s};L(),f.update({settlement:i});for(let e of b)e(i);y!==null&&y>=0&&(I=setTimeout(()=>{I=null,B.triggerSettlementSuccess()},y))},triggerSettlementSuccess(e){L();let t=v(o(),u),n=R(t.depositTx.hash),r=z(t.depositTx.explorerUrl,n.value),i={status:`ready`,payload:{...t,depositTx:{...t.depositTx,hash:n,...r?{explorerUrl:r}:{}},...e},raw:c,response:s};f.update({settlement:i});for(let e of b)e(i)},triggerSettlementFailure(e,t){L();let n=h(o(),e,u),r=R(n.txHash),i=z(n.txExplorerUrl,r.value),a={status:`ready`,payload:{...n,txHash:r,...i?{txExplorerUrl:i}:{},...t},raw:c,response:s};f.update({settlement:a});for(let e of b)e(a)},triggerQuoteFailure(e){f.update({quote:{status:`error`,error:e}})},reset(){L(),j(),f.replace(E(o(),l,i.minAmountUsd,u,i.initialState))}};return{driver:N,triggers:B}}function E(e,t,n,r,a){let s={brand:{status:`ready`,payload:i,raw:l.metadata,response:l},target:{status:`ready`,payload:y(e,n,r),raw:b(r),response:f},addresses:{status:`ready`,payload:p(e,n),raw:o,response:l},balances:{status:`ready`,payload:m(e),raw:u,response:u},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:x(e,t),raw:t,response:t},history:{status:`idle`}};return a?{...s,...a}:s}function D(e,t){return new Promise((n,r)=>{if(t.aborted){r(O());return}let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),r(O())};t.addEventListener(`abort`,a,{once:!0})})}function O(){if(typeof DOMException==`function`)return new DOMException(`Aborted`,`AbortError`);let e=Error(`Aborted`);return e.name=`AbortError`,e}export{T as createStridgeMockDriver};
@@ -6,10 +6,11 @@ import { I18n } from "@lingui/core";
6
6
 
7
7
  //#region src/drivers/stridge-mock/createStridgeMockWithdrawDriver.d.ts
8
8
  declare const DEFAULT_LATENCY: {
9
- /** `requestQuote` resolves after this many ms. */quote: number; /** `submitWithdrawal` resolves after this many ms. */
10
- submit: number; /** Time between `submitWithdrawal` returning and the settlement entity flipping to `pending`. */
9
+ /** `requestQuote` resolves after this many ms. */quote: number; /** `prepareWithdrawal` resolves after this many ms. */
10
+ submit: number; /** Time between `prepareWithdrawal` returning and the settlement entity flipping to `pending`. */
11
11
  processingPendingDelay: number; /** Time between `pending` and the terminal verdict. */
12
- processingTerminal: number;
12
+ processingTerminal: number; /** `refreshHistory` resolves after this many ms — lets the activity surface flash its skeleton. */
13
+ refreshHistory: number;
13
14
  };
14
15
  /**
15
16
  * Bundled fixture: a single withdrawable USDC@BSC row matching the V2 mock + apps/demo currency.
@@ -93,10 +94,22 @@ interface CreateStridgeMockWithdrawDriverInput {
93
94
  /**
94
95
  * Settlement asset override — same shape as the deposit factory's `asset` field. Drives the
95
96
  * withdrawable-balance row, the quote receive-side, and every settlement banner so the
96
- * picker's `(chain, symbol)` is reflected end-to-end. Unknown combinations fall back to USDC
97
+ * picker's `(networkId, symbol)` is reflected end-to-end. Unknown combinations fall back to USDC
97
98
  * on BSC via {@link resolveMockAsset}.
98
99
  */
99
100
  asset?: MockAssetSelection;
101
+ /**
102
+ * Optional lower USD bound on the withdraw amount. Mirrors the live driver's option —
103
+ * populates {@link WithdrawSnapshot.minAmountUsd} so the form's "Min $X" gate fires under the
104
+ * mock too.
105
+ */
106
+ minAmountUsd?: number;
107
+ /**
108
+ * Optional upper USD bound on the withdraw amount. Mirrors the live driver's option —
109
+ * populates {@link WithdrawSnapshot.maxAmountUsd} so the form's "Max $X" gate fires under the
110
+ * mock too.
111
+ */
112
+ maxAmountUsd?: number;
100
113
  }
101
114
  /**
102
115
  * Deterministic in-memory {@link WithdrawDriver} backed by the V2 mockup fixtures. Used by
@@ -1 +1 @@
1
- "use client";import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{formatDurationCompact as t}from"../../shared/format/formatDurationCompact.js";import{formatTimestamp as n}from"../../shared/format/formatTimestamp.js";import{shortenAddress as r}from"../../shared/format/shortenAddress.js";import{supportedAssetsToReceiveOptionsPayload as i}from"../../flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js";import{DEFAULT_MOCK_ASSET as a,buildDefaultSupportedAssetsResponse as o,resolveMockAsset as s}from"./fixtures.js";const c=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,l=`0xd41f5e9e5b1c2c4d8e7a0bf3a9e6c1d2b8f5d4c3e2a1b0c9d8e7f6a5b4c3d2e1`;function u(e){return{symbol:e.symbol,decimals:e.decimals,address:e.address,isNative:e.isNative,assetLogoUrl:e.assetLogoUrl,networkName:e.networkName,eip155Id:e.eip155IdString,networkId:e.networkId,chainLogoUrl:e.chainLogoUrl}}function d(e){return`${e.explorerBase}/tx/`}const f={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3},p=u(a),m=4.00613;function h(e=a){let t=u(e);return[{networkId:t.networkId,networkName:t.networkName,eip155Id:t.eip155Id,...t.chainLogoUrl?{chainLogoUrl:t.chainLogoUrl}:{},symbol:t.symbol,decimals:t.decimals,address:t.address,...t.assetLogoUrl?{assetLogoUrl:t.assetLogoUrl}:{},isNative:t.isNative,amount:{value:4.01,formatted:`4.01`},amountUsd:{value:4.01,formatted:`$4.01`}}]}function g(e=m,t=a){let n=D(e);return{receiveAsset:u(t),receiveAmount:{value:e,formatted:n},receiveAmountUsd:{value:e,formatted:`$${e.toFixed(2)}`},breakdown:{selectedRoute:{provider:`mock`,scenario:`same_chain_same_token`,label:`Mock · same chain same token`},networkCost:{value:0,formatted:`$0.00`},priceImpact:{value:0,formatted:`0.00%`}},quoteTotalSeconds:30,expiresAt:Date.now()+3e4}}function _(t=e,i=m,o=c,s=l,f=a){let p=Date.now();return{kind:`pending`,receiveAsset:u(f),receiveAmount:{value:i,formatted:D(i)},recipient:{value:o,formatted:r(o)},submittedAt:{value:p,formatted:n(p,t)},txHash:{value:s,formatted:r(s)},txExplorerUrl:`${d(f)}${s}`}}function v(i=e,o=m,s=c,f=14,p=l,h=a,g=`0xa17b4c9e2d68f0a5c3b91e7f4d52a86b09c1d7e3f8a4b2c5d6e9f0a1b2c3d4e5`){let _=Date.now(),v=f*1e3,y=_-v;return{kind:`succeeded`,receiveAsset:u(h),receiveAmount:{value:o,formatted:D(o)},recipient:{value:s,formatted:r(s)},submittedAt:{value:y,formatted:n(y,i)},filledAt:{value:_,formatted:n(_,i)},totalTime:{value:f,formatted:t(v,i)},txHash:{value:p,formatted:r(p)},txExplorerUrl:`${d(h)}${p}`,completionTx:{hash:{value:g,formatted:r(g)},explorerUrl:`${d(h)}${g}`}}}function y(t=e,i=`unknown`,o=m,s=c,f=l,p=a){let h=Date.now(),g=h-5e3;return{kind:`failed`,failureKind:i,receiveAsset:u(p),receiveAmount:{value:o,formatted:D(o)},recipient:{value:s,formatted:r(s)},submittedAt:{value:g,formatted:n(g,t)},failedAt:{value:h,formatted:n(h,t)},txHash:{value:f,formatted:r(f)},txExplorerUrl:`${d(p)}${f}`}}function b(t={}){let n={...f,...t.latency},r=t.autoSettleTo??`succeeded`,a=t.pendingTriggerToSuccessMs===void 0?3500:t.pendingTriggerToSuccessMs,p=t.getI18n??(()=>e),b=s(t.asset),S=u(b),D=d(b),O=h(b),k=x(O),A=o(),j=i(A),M={withdrawableBalances:t.initialState?.withdrawableBalances??{status:`ready`,payload:O,raw:k,response:k},receiveOptions:t.initialState?.receiveOptions??{status:`ready`,payload:j,raw:A.assets,response:A},quote:t.initialState?.quote??{status:`idle`},settlement:t.initialState?.settlement??{status:`idle`}},N=M,P=new Set,F=new Set,I=new Set,L=new Set,R=()=>{for(let e of P)e()},z=e=>{if(N={...N,...e},R(),e.settlement)for(let e of F)e(N.settlement);if(e.withdrawableBalances)for(let e of I)e(N.withdrawableBalances)},B=(e,t)=>{let n=setTimeout(()=>{L.delete(n),e()},t);L.add(n)},V=null,H=!1,U=0;function W(){return U+=1,`0x${U.toString(16).padStart(8,`0`)}${l.slice(10)}`}let G={getSnapshot:()=>N,subscribe(e){return P.add(e),()=>{P.delete(e)}},async requestQuote(e,t){z({quote:{status:`loading`}}),await E(n.quote,t);let r=g(e.amount,b),i=C(r,e.amount,S);z({quote:{status:`ready`,payload:r,raw:i,response:i}})},async submitWithdrawal(e,t){await E(n.submit,t),V={amount:e.amount,recipient:e.recipientAddress};let r=W(),i={hash:r,explorerUrl:`${D}${r}`};return K(e.amount,e.recipientAddress,r,t),i},watchSettlement(e,t,n){F.add(t);let r=N.settlement;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>F.delete(t),{once:!0})},watchWithdrawableBalances(e,t,n){I.add(t);let r=N.withdrawableBalances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>I.delete(t),{once:!0})}};function K(e,t,i,a){H||(H=!0,B(()=>{if(a.aborted){H=!1;return}let o=_(p(),e,t,i,b),s=w(o,S);if(z({settlement:{status:`ready`,payload:o,raw:s,response:T(s,o)}}),r===`none`){H=!1;return}B(()=>{if(H=!1,a.aborted)return;let n=r===`succeeded`?v(p(),e,t,14,i,b):y(p(),`unknown`,e,t,i,b),o=w(n,S);z({settlement:{status:`ready`,payload:n,raw:o,response:T(o,n)}})},n.processingTerminal)},n.processingPendingDelay))}let q={triggerWithdrawalInProgress(e){let{amount:t,recipient:n}=J(),r={..._(p(),t,n,W(),b),...e},i=w(r,S);z({settlement:{status:`ready`,payload:r,raw:i,response:T(i,r)}}),a!==null&&B(()=>q.triggerWithdrawalSuccess(),a)},triggerWithdrawalSuccess(e){let{amount:t,recipient:n}=J(),r={...v(p(),t,n,14,W(),b),...e},i=w(r,S);z({settlement:{status:`ready`,payload:r,raw:i,response:T(i,r)}})},triggerWithdrawalFailed(e,t){let{amount:n,recipient:r}=J(),i={...y(p(),e,n,r,W(),b),...t},a=w(i,S);z({settlement:{status:`ready`,payload:i,raw:a,response:T(a,i)}})},triggerQuoteFailure(e){z({quote:{status:`error`,error:e}})},reset(){for(let e of L)clearTimeout(e);L.clear(),H=!1,V=null,U=0,N=M,R()}};function J(){return{amount:V?.amount??m,recipient:V?.recipient??c}}return{driver:G,triggers:q}}function x(e){let t=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{wallet_address:`0xMockWallet000000000000000000000000000000`,fetched_at:new Date(0).toISOString(),total_usd:t.toFixed(2),chains:e.map(e=>({eip155_id:e.eip155Id?Number(e.eip155Id):0,stridge_network_id:e.networkId??``,network_name:e.networkName.toLowerCase(),label:e.networkName,scanner_url:``,native_symbol:``,subtotal_usd:(e.amountUsd?.value??0).toFixed(2),tokens:[{token_address:e.address,symbol:e.symbol,name:e.symbol,decimals:e.decimals,logo:e.assetLogoUrl??``,is_native:e.isNative,is_spam:!1,raw_amount:S(e.amount.value,e.decimals).toString(),amount:e.amount.value.toString(),amount_usd:(e.amountUsd?.value??0).toFixed(2),usd_price:e.amount.value>0?((e.amountUsd?.value??0)/e.amount.value).toFixed(6):`0`,price_change_24h_pct:`0`}]}))}}function S(e,t){if(!Number.isFinite(e)||e<0)return 0n;let[n,r=``]=e.toFixed(t).split(`.`),i=r.padEnd(t,`0`).slice(0,t);return BigInt((n??`0`)+i)}function C(e,t,n=p){let r=S(e.receiveAmount.value,e.receiveAsset.decimals).toString(),i=S(t,n.decimals).toString(),a=t>0?(e.receiveAmount.value/t).toFixed(6):`1`;return{from:{network_id:Number(n.eip155Id??56),asset_address:n.address,amount:i},to:{network_id:Number(e.receiveAsset.eip155Id??56),asset_address:e.receiveAsset.address,amount:r},exchange_rate:a,fees:{total_fee:`0`},route:{provider:`mock`,scenario:`same_chain_same_token`,estimated_time_seconds:30},expires_at:new Date(e.expiresAt).toISOString()}}function w(e,t=p){let n=new Date(e.submittedAt.value).toISOString(),r=e.kind===`succeeded`?`completed`:e.kind===`failed`?`failed`:`routing`,i=e.kind===`succeeded`?e.filledAt.value:e.kind===`failed`?e.failedAt.value:e.submittedAt.value,a={tx_id:(e.kind===`succeeded`?e.txHash.value:e.txHash?.value)??``,asset_symbol:t.symbol,asset_address:t.address,eip155_id:t.eip155Id??`56`,network_id:t.networkId??`9006`,network_name:t.networkName.toLowerCase(),raw_amount:S(e.receiveAmount.value,t.decimals).toString(),amount:e.receiveAmount.value.toString(),confirmed_at:n},o={address:e.recipient.value,asset_address:e.receiveAsset.address,asset_symbol:e.receiveAsset.symbol,eip155_id:e.receiveAsset.eip155Id??``,network_id:e.receiveAsset.networkId??``,network_name:e.receiveAsset.networkName.toLowerCase(),raw_amount:S(e.receiveAmount.value,e.receiveAsset.decimals).toString(),amount:e.receiveAmount.value.toString(),...e.kind===`succeeded`?{settled_at:new Date(e.filledAt.value).toISOString(),...e.completionTx?{tx_id:e.completionTx.hash.value}:{}}:{}};return{id:`mock-settlement-${e.recipient.value}-${a.tx_id}`,status:r,created_at:n,updated_at:new Date(i).toISOString(),events:[],fees:{raw_amount:`0`},from:a,to:o,route:{provider:`mock`,scenario:`withdraw_v1`},...e.kind===`failed`?{error:e.failureKind}:{}}}function T(e,t){let n=t.kind!==`pending`;return{owner:`0xMockOwner`,uda_id:`mock-uda`,created_at:e.created_at,updated_at:e.updated_at,is_terminal:n,status:t.kind===`succeeded`?`completed`:t.kind===`failed`?`failed`:`to_pending`,destination:{address:t.recipient.value,asset_address:t.receiveAsset.address,asset_decimals:t.receiveAsset.decimals,asset_symbol:t.receiveAsset.symbol,eip155_id:t.receiveAsset.eip155Id??``,network_id:t.receiveAsset.networkId??``,network_name:t.receiveAsset.networkName},settlements:[e]}}function E(e,t){return new Promise((n,r)=>{if(t.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),t.removeEventListener(`abort`,a),r(new DOMException(`Aborted`,`AbortError`))};t.addEventListener(`abort`,a)})}function D(e){return Number.isInteger(e)?e.toFixed(2):e.toFixed(5)}export{h as buildDefaultWithdrawableBalances,y as buildDefaultWithdrawalFailurePayload,_ as buildDefaultWithdrawalPendingPayload,g as buildDefaultWithdrawalQuotePayload,v as buildDefaultWithdrawalSuccessPayload,b as createStridgeMockWithdrawDriver};
1
+ "use client";import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{formatDurationCompact as t}from"../../shared/format/formatDurationCompact.js";import{formatTimestamp as n}from"../../shared/format/formatTimestamp.js";import{formatUsd as r}from"../../shared/format/formatUsd.js";import{shortenAddress as i}from"../../shared/format/shortenAddress.js";import{historyResponseToPayload as a}from"../../shared/widgets/activity-history/transformers/historyResponseToPayload.js";import{supportedAssetsToReceiveOptionsPayload as o}from"../../flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js";import{DEFAULT_MOCK_ASSET as s,buildDefaultSupportedAssetsResponse as c,buildMockHistoryResponse as l,resolveMockAsset as u}from"./fixtures.js";const d=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,f=`0x70997970C51812dc3A010C7d01b50e0d17dc79C8`,p=`0xd41f5e9e5b1c2c4d8e7a0bf3a9e6c1d2b8f5d4c3e2a1b0c9d8e7f6a5b4c3d2e1`;function m(e){return{symbol:e.symbol,decimals:e.decimals,address:e.address,isNative:e.isNative,assetLogoUrl:e.assetLogoUrl,networkName:e.networkName,eip155Id:e.eip155IdString,networkId:e.networkId,chainLogoUrl:e.chainLogoUrl}}function h(e){return`${e.explorerBase}/tx/`}const g={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3,refreshHistory:400},_=m(s),v=4.00613;function y(e=s){let t=m(e);return[{networkId:t.networkId,networkName:t.networkName,eip155Id:t.eip155Id,...t.chainLogoUrl?{chainLogoUrl:t.chainLogoUrl}:{},symbol:t.symbol,decimals:t.decimals,address:t.address,...t.assetLogoUrl?{assetLogoUrl:t.assetLogoUrl}:{},isNative:t.isNative,amount:{value:4.01,formatted:`4.01`},amountUsd:{value:4.01,formatted:`$4.01`}}]}function b(e=v,t=s){let n=j(e);return{receiveAsset:m(t),receiveAmount:{value:e,formatted:n},receiveAmountUsd:{value:e,formatted:`$${e.toFixed(2)}`},breakdown:{selectedRoute:{provider:`mock`,scenario:`same_chain_same_token`,label:`Mock · same chain same token`},networkCost:{value:0,formatted:`$0.00`},priceImpact:{value:0,formatted:`0.00%`}},quoteTotalSeconds:30,expiresAt:Date.now()+3e4}}function x(t=e,a=v,o=d,c=p,l=s){let u=Date.now();return{kind:`pending`,receiveAsset:m(l),receiveAmount:{value:a,formatted:j(a)},receiveAmountUsd:{value:a,formatted:r(a,t)},recipient:{value:o,formatted:i(o)},submittedAt:{value:u,formatted:n(u,t)},txHash:{value:c,formatted:i(c)},txExplorerUrl:`${h(l)}${c}`}}function S(r=e,a=v,o=d,c=14,l=p,u=s,f=`0xa17b4c9e2d68f0a5c3b91e7f4d52a86b09c1d7e3f8a4b2c5d6e9f0a1b2c3d4e5`){let g=Date.now(),_=c*1e3,y=g-_;return{kind:`succeeded`,receiveAsset:m(u),receiveAmount:{value:a,formatted:j(a)},recipient:{value:o,formatted:i(o)},submittedAt:{value:y,formatted:n(y,r)},filledAt:{value:g,formatted:n(g,r)},totalTime:{value:c,formatted:t(_,r)},txHash:{value:l,formatted:i(l)},txExplorerUrl:`${h(u)}${l}`,completionTx:{hash:{value:f,formatted:i(f)},explorerUrl:`${h(u)}${f}`}}}function C(t=e,r=`unknown`,a=v,o=d,c=p,l=s){let u=Date.now(),f=u-5e3;return{kind:`failed`,failureKind:r,receiveAsset:m(l),receiveAmount:{value:a,formatted:j(a)},recipient:{value:o,formatted:i(o)},submittedAt:{value:f,formatted:n(f,t)},failedAt:{value:u,formatted:n(u,t)},txHash:{value:c,formatted:i(c)},txExplorerUrl:`${h(l)}${c}`}}function w(t={}){let n={...g,...t.latency},i=t.autoSettleTo??`succeeded`,s=t.pendingTriggerToSuccessMs===void 0?3500:t.pendingTriggerToSuccessMs,h=t.getI18n??(()=>e),_=u(t.asset),w=m(_),E=y(_),j=T(E),M=c(),N=o(M),P=t.initialState?.minAmountUsd??(t.minAmountUsd===void 0?void 0:{value:t.minAmountUsd,formatted:r(t.minAmountUsd,h())}),F=t.initialState?.maxAmountUsd??(t.maxAmountUsd===void 0?void 0:{value:t.maxAmountUsd,formatted:r(t.maxAmountUsd,h())}),I={withdrawableBalances:t.initialState?.withdrawableBalances??{status:`ready`,payload:E,raw:j,response:j},receiveOptions:t.initialState?.receiveOptions??{status:`ready`,payload:N,raw:M.assets,response:M},quote:t.initialState?.quote??{status:`idle`},settlement:t.initialState?.settlement??{status:`idle`},history:t.initialState?.history??{status:`idle`},...P?{minAmountUsd:P}:{},...F?{maxAmountUsd:F}:{}},L=I,R=new Set,z=new Set,B=new Set,V=new Set,H=()=>{for(let e of R)e()},U=e=>{if(L={...L,...e},H(),e.settlement)for(let e of z)e(L.settlement);if(e.withdrawableBalances)for(let e of B)e(L.withdrawableBalances)},W=(e,t)=>{let n=setTimeout(()=>{V.delete(n),e()},t);V.add(n)},G=null,K=!1,q=0;function J(){return q+=1,`0x${q.toString(16).padStart(8,`0`)}${p.slice(10)}`}let Y={getSnapshot:()=>L,subscribe(e){return R.add(e),()=>{R.delete(e)}},arm(){},async requestQuote(e,t){U({quote:{status:`loading`}}),await A(n.quote,t);let r=b(e.amount,_),i=D(r,e.amount,w);U({quote:{status:`ready`,payload:r,raw:i,response:i}})},async prepareWithdrawal(e,t){await A(n.submit,t),G={amount:e.amount,recipient:e.recipientAddress};let r=J();return Z(e.amount,e.recipientAddress,r,t),{depositTarget:{address:`0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC`,chainId:Number(_.eip155IdString),tokenSymbol:_.symbol,tokenAddress:_.address,tokenDecimals:_.decimals,isNative:_.isNative,amount:e.amount},correlation:{owner:f}}},watchSettlement(e,t,n){z.add(t);let r=L.settlement;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>z.delete(t),{once:!0})},watchWithdrawableBalances(e,t,n){B.add(t);let r=L.withdrawableBalances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>B.delete(t),{once:!0})},refreshHistory(e){X(e)},watchHistory(e){let t,n=()=>{e.aborted||(X(e),t=setTimeout(n,5e3))};e.addEventListener(`abort`,()=>{t!==void 0&&clearTimeout(t)},{once:!0}),n()}};function X(e){let t=L.history;(t.status===`idle`||t.status===`error`)&&U({history:{status:`loading`}}),(async()=>{try{await A(n.refreshHistory,e)}catch{return}if(e.aborted)return;let t=h(),r=l(f);U({history:{status:`ready`,payload:a(r,{i18n:t,ownerAddress:f}),raw:r.udas,response:r}})})()}function Z(e,t,r,a){K||(K=!0,W(()=>{if(a.aborted){K=!1;return}let o=x(h(),e,t,r,_),s=O(o,w);if(U({settlement:{status:`ready`,payload:o,raw:s,response:k(s,o)}}),i===`none`){K=!1;return}W(()=>{if(K=!1,a.aborted)return;let n=i===`succeeded`?S(h(),e,t,14,r,_):C(h(),`unknown`,e,t,r,_),o=O(n,w);U({settlement:{status:`ready`,payload:n,raw:o,response:k(o,n)}})},n.processingTerminal)},n.processingPendingDelay))}let Q={triggerWithdrawalInProgress(e){let{amount:t,recipient:n}=$(),r={...x(h(),t,n,J(),_),...e},i=O(r,w);U({settlement:{status:`ready`,payload:r,raw:i,response:k(i,r)}}),s!==null&&W(()=>Q.triggerWithdrawalSuccess(),s)},triggerWithdrawalSuccess(e){let{amount:t,recipient:n}=$(),r={...S(h(),t,n,14,J(),_),...e},i=O(r,w);U({settlement:{status:`ready`,payload:r,raw:i,response:k(i,r)}})},triggerWithdrawalFailed(e,t){let{amount:n,recipient:r}=$(),i={...C(h(),e,n,r,J(),_),...t},a=O(i,w);U({settlement:{status:`ready`,payload:i,raw:a,response:k(a,i)}})},triggerQuoteFailure(e){U({quote:{status:`error`,error:e}})},reset(){for(let e of V)clearTimeout(e);V.clear(),K=!1,G=null,q=0,L=I,H()}};function $(){return{amount:G?.amount??v,recipient:G?.recipient??d}}return{driver:Y,triggers:Q}}function T(e){let t=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{wallet_address:`0xMockWallet000000000000000000000000000000`,fetched_at:new Date(0).toISOString(),total_usd:t.toFixed(2),chains:e.map(e=>({eip155_id:e.eip155Id?Number(e.eip155Id):0,stridge_network_id:e.networkId??``,network_name:e.networkName.toLowerCase(),label:e.networkName,scanner_url:``,native_symbol:``,subtotal_usd:(e.amountUsd?.value??0).toFixed(2),tokens:[{token_address:e.address,symbol:e.symbol,name:e.symbol,decimals:e.decimals,logo:e.assetLogoUrl??``,is_native:e.isNative,is_spam:!1,raw_amount:E(e.amount.value,e.decimals).toString(),amount:e.amount.value.toString(),amount_usd:(e.amountUsd?.value??0).toFixed(2),usd_price:e.amount.value>0?((e.amountUsd?.value??0)/e.amount.value).toFixed(6):`0`,price_change_24h_pct:`0`}]}))}}function E(e,t){if(!Number.isFinite(e)||e<0)return 0n;let[n,r=``]=e.toFixed(t).split(`.`),i=r.padEnd(t,`0`).slice(0,t);return BigInt((n??`0`)+i)}function D(e,t,n=_){let r=E(e.receiveAmount.value,e.receiveAsset.decimals).toString(),i=E(t,n.decimals).toString(),a=t>0?(e.receiveAmount.value/t).toFixed(6):`1`;return{from:{network_id:Number(n.eip155Id??56),asset_address:n.address,amount:i},to:{network_id:Number(e.receiveAsset.eip155Id??56),asset_address:e.receiveAsset.address,amount:r},exchange_rate:a,fees:{total_fee:`0`},route:{provider:`mock`,scenario:`same_chain_same_token`,estimated_time_seconds:30},expires_at:new Date(e.expiresAt).toISOString()}}function O(e,t=_){let n=new Date(e.submittedAt.value).toISOString(),r=e.kind===`succeeded`?`completed`:e.kind===`failed`?`failed`:`routing`,i=e.kind===`succeeded`?e.filledAt.value:e.kind===`failed`?e.failedAt.value:e.submittedAt.value,a={tx_id:(e.kind===`succeeded`?e.txHash.value:e.txHash?.value)??``,asset_symbol:t.symbol,asset_address:t.address,eip155_id:t.eip155Id??`56`,network_id:t.networkId??`9006`,network_name:t.networkName.toLowerCase(),raw_amount:E(e.receiveAmount.value,t.decimals).toString(),amount:e.receiveAmount.value.toString(),confirmed_at:n},o={address:e.recipient.value,asset_address:e.receiveAsset.address,asset_symbol:e.receiveAsset.symbol,eip155_id:e.receiveAsset.eip155Id??``,network_id:e.receiveAsset.networkId??``,network_name:e.receiveAsset.networkName.toLowerCase(),raw_amount:E(e.receiveAmount.value,e.receiveAsset.decimals).toString(),amount:e.receiveAmount.value.toString(),...e.kind===`succeeded`?{settled_at:new Date(e.filledAt.value).toISOString(),...e.completionTx?{tx_id:e.completionTx.hash.value}:{}}:{}};return{id:`mock-settlement-${e.recipient.value}-${a.tx_id}`,status:r,created_at:n,updated_at:new Date(i).toISOString(),events:[],fees:{raw_amount:`0`},from:a,to:o,route:{provider:`mock`,scenario:`withdraw_v1`},...e.kind===`failed`?{error:e.failureKind}:{}}}function k(e,t){let n=t.kind!==`pending`;return{owner:`0xMockOwner`,uda_id:`mock-uda`,created_at:e.created_at,updated_at:e.updated_at,is_terminal:n,status:t.kind===`succeeded`?`completed`:t.kind===`failed`?`failed`:`to_pending`,destination:{address:t.recipient.value,asset_address:t.receiveAsset.address,asset_decimals:t.receiveAsset.decimals,asset_symbol:t.receiveAsset.symbol,eip155_id:t.receiveAsset.eip155Id??``,network_id:t.receiveAsset.networkId??``,network_name:t.receiveAsset.networkName},settlements:[e]}}function A(e,t){return new Promise((n,r)=>{if(t.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),t.removeEventListener(`abort`,a),r(new DOMException(`Aborted`,`AbortError`))};t.addEventListener(`abort`,a)})}function j(e){return Number.isInteger(e)?e.toFixed(2):e.toFixed(5)}export{y as buildDefaultWithdrawableBalances,C as buildDefaultWithdrawalFailurePayload,x as buildDefaultWithdrawalPendingPayload,b as buildDefaultWithdrawalQuotePayload,S as buildDefaultWithdrawalSuccessPayload,w as createStridgeMockWithdrawDriver};
@@ -1,7 +1,7 @@
1
1
  import { SettlementFailureKind } from "../../shared/driver/types.js";
2
2
  import { AddressItemPayload, BalanceItemPayload, BrandPayload, QuotePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, TargetPayload, WalletInfo, WalletPayload } from "../../flows/deposit/driver/payloads.js";
3
3
  import { I18n } from "@lingui/core";
4
- import { DepositAddressDto, GatewayPollResponse, GatewaySettlementDto, GatewayStartResponse, OnchainBalanceResponse, QuoteResponse, SupportedAssetDto, SupportedAssetsResponse } from "@stridge/sdk";
4
+ import { DepositAddressDto, GatewayPollResponse, GatewaySettlementDto, GatewayStartResponse, GatewayUdaDto, OnchainBalanceResponse, QuoteResponse, SupportedAssetDto, SupportedAssetsResponse } from "@stridge/sdk";
5
5
 
6
6
  //#region src/drivers/stridge-mock/fixtures.d.ts
7
7
  /**
@@ -16,7 +16,7 @@ declare const DEFAULT_WALLET_INFO: WalletInfo;
16
16
  declare const DEFAULT_BRAND_PAYLOAD: BrandPayload;
17
17
  /**
18
18
  * Resolved destination-asset record the mock driver seeds every entity from. Hosts that need
19
- * to demo a non-default `(chain, symbol)` pass {@link MockAssetSelection} through the factory;
19
+ * to demo a non-default `(networkId, symbol)` pass {@link MockAssetSelection} through the factory;
20
20
  * the driver resolves it once via {@link resolveMockAsset} and threads this shape into every
21
21
  * builder, so target / quote / settlement payloads all stay coherent against the same asset.
22
22
  */
@@ -42,11 +42,13 @@ interface MockAsset {
42
42
  nativeSymbol: string;
43
43
  }
44
44
  /**
45
- * Selector accepted by {@link resolveMockAsset}. `chain` is the gateway's `network_name`
46
- * (case-insensitive, e.g. `"bsc"` / `"BSC"`), `symbol` the asset ticker (`"USDC"`).
45
+ * Selector accepted by {@link resolveMockAsset}. `networkId` is the Stridge network id
46
+ * (`"9006"`) the same wire value `StridgeAsset.networkId` carries and is also matched,
47
+ * case-insensitively, against the gateway's `network_name` (`"bsc"` / `"BSC"`) so legacy
48
+ * callers keep working. `symbol` is the asset ticker (`"USDC"`).
47
49
  */
48
50
  interface MockAssetSelection {
49
- chain: string;
51
+ networkId: string;
50
52
  symbol: string;
51
53
  }
52
54
  /**
@@ -54,23 +56,23 @@ interface MockAssetSelection {
54
56
  * {@link buildDefaultTargetRaw}() with no asset override.
55
57
  */
56
58
  declare const DEFAULT_TARGET_RAW: SupportedAssetDto;
57
- declare function buildDefaultTargetPayload(i18n: I18n, minDepositUsd?: number, asset?: MockAsset): TargetPayload;
59
+ declare function buildDefaultTargetPayload(i18n: I18n, minAmountUsd?: number, asset?: MockAsset): TargetPayload;
58
60
  /**
59
- * Build the bundled deposit-address fixtures. When `minDepositUsd` is set, every row carries a
60
- * formatted per-chain `minDepositUsd` so the transfer-crypto picker renders `Min $X` next to the
61
+ * Build the bundled deposit-address fixtures. When `minAmountUsd` is set, every row carries a
62
+ * formatted per-chain `minAmountUsd` so the transfer-crypto picker renders `Min $X` next to the
61
63
  * Chains label and on each option row — the same display the captured-production payload showed.
62
64
  */
63
- declare function buildDefaultAddressesPayload(i18n: I18n, minDepositUsd?: number): ReadonlyArray<AddressItemPayload>;
65
+ declare function buildDefaultAddressesPayload(i18n: I18n, minAmountUsd?: number): ReadonlyArray<AddressItemPayload>;
64
66
  /**
65
67
  * Static-i18n form of {@link buildDefaultAddressesPayload} — kept for callers that pre-import the
66
- * canonical mock list without a live `I18n` handle. Excludes per-row `minDepositUsd`; callers that
68
+ * canonical mock list without a live `I18n` handle. Excludes per-row `minAmountUsd`; callers that
67
69
  * want it must use the builder.
68
70
  */
69
71
  declare const DEFAULT_ADDRESSES_PAYLOAD: ReadonlyArray<AddressItemPayload>;
70
72
  /**
71
73
  * Default source-side balance list — derived from the captured `/v1/balance/onchain/{wallet}`
72
74
  * response for `0xf39Fd6…2266` against the production UDA, filtered through routability +
73
- * spam-drop + the kit's `minDepositUsd` floor (rows whose `amountUsd` is below the floor ride in
75
+ * spam-drop + the kit's `minAmountUsd` floor (rows whose `amountUsd` is below the floor ride in
74
76
  * as `lowBalance + disabled` so the picker dims them out instead of dropping them).
75
77
  *
76
78
  * Captured snapshot (chain × token, after routability filter):
@@ -87,7 +89,7 @@ declare function buildDefaultBalances(i18n: I18n): ReadonlyArray<BalanceItemPayl
87
89
  * Default quote payload. Captured production scenario: 5 USDC on Ethereum routed to the
88
90
  * destination asset (USDC on BSC by default) via LIFI cross-chain. Total time around 28m on
89
91
  * the wire — same number {@link DEFAULT_SUCCESS_PAYLOAD} uses for `totalTime`. Pass `asset` to
90
- * retarget the receive side at a different `(chain, symbol)` while keeping the same numeric
92
+ * retarget the receive side at a different `(networkId, symbol)` while keeping the same numeric
91
93
  * route shape.
92
94
  */
93
95
  declare function buildDefaultQuotePayload(i18n: I18n, expiresAt: number, asset?: MockAsset): QuotePayload;
@@ -1 +1 @@
1
- import{formatDurationCompact as e}from"../../shared/format/formatDurationCompact.js";import{formatPercent as t}from"../../shared/format/formatPercent.js";import{formatTimestamp as n}from"../../shared/format/formatTimestamp.js";import{formatTokenAmount as r}from"../../shared/format/formatTokenAmount.js";import{formatUsd as i}from"../../shared/format/formatUsd.js";import{shortenAddress as a}from"../../shared/format/shortenAddress.js";const o=`Stridge ACME`,s=`0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266`,c=`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,l=`0x268a11a1002eb7026e3a77999872695ee3a920e5c46172a43aa396da10ac5296`,u=`0xcae135e02df387bba14e231988126295a663c8d9f8e90c1ead5876cc2fee036d`,d=1778167499e3,f=1778169184e3,p=1778086787e3,m=1778087105e3,h=`0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d`,g=`https://cdn.stridge.com/assets/usdc.svg`,_=`https://cdn.stridge.com/assets/usdt.svg`,v={1:`https://cdn.stridge.com/networks/60.svg`,8453:`https://cdn.stridge.com/networks/8453.svg`,42161:`https://cdn.stridge.com/networks/9001.svg`},y=`https://cdn.stridge.com/networks/9006.svg`,b=`https://cdn.stridge.com/networks/966.svg`,x=`0x166872371d1EB43B62c25861Bb7B1be4d5f09F56`,S={address:s,chainId:56},C={name:o},w={networkId:`9006`,networkName:`BSC`,eip155IdString:`56`,eip155IdNumber:56,chainLogoUrl:y,explorerBase:`https://bscscan.com`,symbol:`USDC`,decimals:18,address:h,assetLogoUrl:g,isNative:!1,nativeSymbol:`BNB`};function T(e){if(!e)return w;let t=e.chain.toLowerCase(),n=k.find(e=>e.networkName.toLowerCase()===t);if(!n)return w;let r=n.acceptedAssets.find(t=>t.symbol.toUpperCase()===e.symbol.toUpperCase());if(!r)return w;let i=n.acceptedAssets.find(e=>e.isNative);return{networkId:M[n.eip155Id]??n.eip155Id,networkName:n.networkName,eip155IdString:n.eip155Id,eip155IdNumber:Number(n.eip155Id),chainLogoUrl:n.chainLogoUrl,explorerBase:n.explorerBase,symbol:r.symbol,decimals:r.decimals,address:r.address,assetLogoUrl:r.assetLogoUrl??n.chainLogoUrl,isNative:r.isNative,nativeSymbol:i?.symbol??r.symbol}}function E(e=w){return{network_id:e.networkId,network_name:e.networkName,network_symbol:e.networkName.toLowerCase(),eip155_id:e.eip155IdNumber,native_currency:{symbol:e.nativeSymbol,name:e.nativeSymbol,decimals:18,logo:e.chainLogoUrl},assets:[{symbol:e.symbol,decimals:e.decimals,address:e.address,logo:e.assetLogoUrl}]}}const D=E();function O(e,t,n=w){return{networkId:n.networkId,networkName:n.networkName,eip155Id:n.eip155IdString,chainLogoUrl:n.chainLogoUrl,symbol:n.symbol,decimals:n.decimals,address:n.address,assetLogoUrl:n.assetLogoUrl,isNative:n.isNative,...t===void 0?{}:{minDepositUsd:{value:t,formatted:i(t,e)}}}}const k=[{eip155Id:`1`,networkName:`Ethereum`,chainLogoUrl:v[1],explorerBase:`https://etherscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[1]},{symbol:`TUSD`,address:`0x0000000000085d4780B73119b644AE5ecd22b376`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`},{symbol:`PAXG`,address:`0x45804880De22913dAFE09f4980848ECE6EcbAf78`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/paxg.svg`},{symbol:`DAI`,address:`0x6B175474E89094C44Da98b954EedeAC495271d0F`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`},{symbol:`PYUSD`,address:`0x6c3ea9036406852006290770BEdFcAbA0e23A0e8`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/pyusd.svg`},{symbol:`USDC`,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`},{symbol:`WETH`,address:`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`},{symbol:`USDT`,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,decimals:6,isNative:!1,assetLogoUrl:_}]},{eip155Id:`56`,networkName:`BSC`,chainLogoUrl:y,explorerBase:`https://bscscan.com`,acceptedAssets:[{symbol:`BNB`,address:``,decimals:18,isNative:!0,assetLogoUrl:y},{symbol:`WETH`,address:`0x2170Ed0880ac9A755fd29B2688956BD959F933F8`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`},{symbol:`TUSD`,address:`0x40af3827F39D0EAcBF4A168f8D4ee67c121D11c9`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`},{symbol:`USDT`,address:`0x55d398326f99059fF775485246999027B3197955`,decimals:18,isNative:!1,assetLogoUrl:_},{symbol:`USDC`,address:h,decimals:18,isNative:!1,assetLogoUrl:g}]},{eip155Id:`8453`,networkName:`Base`,chainLogoUrl:v[8453],explorerBase:`https://basescan.org`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[8453]},{symbol:`WETH`,address:`0x4200000000000000000000000000000000000006`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`},{symbol:`DAI`,address:`0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`},{symbol:`USDC`,address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`},{symbol:`USDT`,address:`0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2`,decimals:6,isNative:!1,assetLogoUrl:_}]},{eip155Id:`42161`,networkName:`Arbitrum`,chainLogoUrl:v[42161],explorerBase:`https://arbiscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[42161]},{symbol:`TUSD`,address:`0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`},{symbol:`WETH`,address:`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`},{symbol:`USDC`,address:`0xaf88d065e77c8cC2239327C5EDb3A432268e5831`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`},{symbol:`DAI`,address:`0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`},{symbol:`USDT`,address:`0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9`,decimals:6,isNative:!1,assetLogoUrl:_}]},{eip155Id:`137`,networkName:`Polygon`,chainLogoUrl:b,explorerBase:`https://polygonscan.com`,acceptedAssets:[{symbol:`POL`,address:``,decimals:18,isNative:!0,assetLogoUrl:b},{symbol:`TUSD`,address:`0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`},{symbol:`USDC`,address:`0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`},{symbol:`WETH`,address:`0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`},{symbol:`DAI`,address:`0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`},{symbol:`USDT`,address:`0xc2132D05D31c914a87C6611C10748AEb04B58e8F`,decimals:6,isNative:!1,assetLogoUrl:_}]}];function A(e,t){let n=t===void 0?{}:{minDepositUsd:{value:t,formatted:i(t,e)}};return k.map(({eip155Id:e,networkName:t,chainLogoUrl:r,explorerBase:i,acceptedAssets:o})=>({eip155Id:e,networkName:t,chainLogoUrl:r,address:{value:x,formatted:a(x)},explorerUrl:`${i}/address/${x}`,acceptedAssets:o,...n}))}const j=k.map(({eip155Id:e,networkName:t,chainLogoUrl:n,explorerBase:r,acceptedAssets:i})=>({eip155Id:e,networkName:t,chainLogoUrl:n,address:{value:x,formatted:a(x)},explorerUrl:`${r}/address/${x}`,acceptedAssets:i})),M={1:`60`,56:`9006`,137:`9001`,8453:`8453`,42161:`42161`};function N(){return{assets:k.map(e=>{let t=e.acceptedAssets.find(e=>e.isNative),n=e.acceptedAssets.filter(e=>!e.isNative);return{eip155_id:Number(e.eip155Id),network_id:M[e.eip155Id]??e.eip155Id,network_name:e.networkName.toLowerCase(),network_symbol:e.networkName.toLowerCase(),assets:n.map(e=>({address:e.address,decimals:e.decimals,logo:e.assetLogoUrl??``,name:e.symbol,symbol:e.symbol})),native_currency:{symbol:t?.symbol??``,name:t?.symbol??``,decimals:t?.decimals??18,logo:t?.assetLogoUrl??e.chainLogoUrl}}})}}function P(e){return[{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDC`,decimals:18,address:h,assetLogoUrl:g,chainLogoUrl:y,isNative:!1,amount:{value:42.805864,formatted:r(42.805864,e,{compact:!0})},amountUsd:{value:42.81,formatted:i(42.81,e)},priceUsd:1},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`BNB`,decimals:18,address:``,assetLogoUrl:y,chainLogoUrl:y,isNative:!0,amount:{value:.016699,formatted:r(.016699,e,{compact:!0})},amountUsd:{value:10.86,formatted:i(10.86,e)},priceUsd:650.41},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDT`,decimals:6,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,assetLogoUrl:_,chainLogoUrl:v[1],isNative:!1,amount:{value:.757479,formatted:r(.757479,e,{compact:!0})},amountUsd:{value:.76,formatted:i(.76,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDT`,decimals:18,address:`0x55d398326f99059fF775485246999027B3197955`,assetLogoUrl:_,chainLogoUrl:y,isNative:!1,amount:{value:.595218,formatted:r(.595218,e,{compact:!0})},amountUsd:{value:.6,formatted:i(.6,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`ETH`,decimals:18,address:``,assetLogoUrl:v[1],chainLogoUrl:v[1],isNative:!0,amount:{value:167e-6,formatted:r(167e-6,e,{compact:!0})},amountUsd:{value:.39,formatted:i(.39,e)},priceUsd:2316.86,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,chainLogoUrl:v[1],isNative:!1,amount:{value:.10408,formatted:r(.10408,e,{compact:!0})},amountUsd:{value:.1,formatted:i(.1,e)},priceUsd:1,lowBalance:!0,disabled:!0}]}function F(e,n,a=w){return{heroAmountUsd:{value:1.999758,formatted:i(1.999758,e)},sendAsset:{symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,isNative:!1,chainId:1,networkName:`Ethereum`,eip155Id:`1`,chainLogoUrl:v[1]},sendAmount:{value:2,formatted:r(2,e)},receiveAsset:{symbol:a.symbol,decimals:a.decimals,address:a.address,assetLogoUrl:a.assetLogoUrl,isNative:a.isNative,chainId:a.eip155IdNumber,networkName:a.networkName,eip155Id:a.eip155IdString,chainLogoUrl:a.chainLogoUrl},receiveAmount:{value:1.9958,formatted:r(1.9958,e)},quoteTotalSeconds:30,expiresAt:n,etaSeconds:30,breakdown:{selectedRoute:{provider:`lifi`,scenario:`cross_chain_diff_token`,label:`LIFI · cross chain diff token`},networkCost:{value:.0042,formatted:i(.0042,e)},priceImpact:{value:.21,formatted:t(.21,e)}}}}function I(e,t=w){return{kind:`pending`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},creditedAsset:{symbol:t.symbol,decimals:t.decimals,address:t.address,assetLogoUrl:t.assetLogoUrl,isNative:t.isNative},creditedTo:o,txHash:{value:c,formatted:a(c)},txExplorerUrl:`https://etherscan.io/tx/${c}`,detectedAt:{value:d,formatted:n(d,e)},submittedAt:{value:d,formatted:n(d,e)},receiveAmount:{value:4.983615,formatted:r(4.983615,e)}}}function L(t,i=w){let u=f-d;return{kind:`succeeded`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:4.983615,formatted:r(4.983615,t)},routeHops:[{provider:`LIFI`,chainId:1},{provider:`LIFI`,chainId:i.eip155IdNumber}],totalTime:{value:u,formatted:e(u,t)},depositTx:{hash:{value:c,formatted:a(c)},explorerUrl:`https://etherscan.io/tx/${c}`},completionTx:{hash:{value:l,formatted:a(l)},explorerUrl:`${i.explorerBase}/tx/${l}`},submittedAt:{value:d,formatted:n(d,t)},filledAt:{value:f,formatted:n(f,t)}}}function R(e,t=`execution-reverted`,i=w){return{kind:`failed`,failureKind:t,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:0,formatted:r(0,e)},txHash:{value:u,formatted:a(u)},txExplorerUrl:`https://etherscan.io/tx/${u}`,submittedAt:{value:p,formatted:n(p,e)},failedAt:{value:m,formatted:n(m,e)}}}function z(e,t=S){let n=P(e).reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{address:{value:t.address,formatted:a(t.address)},...t.chainId===void 0?{}:{chainId:t.chainId},balanceTotalUsd:{value:n,formatted:i(n,e)}}}const B={deposit_addresses:[],metadata:{brand_name:o}},V=[],H={assets:[]},U={chains:[]},W={},G={id:`mock-settlement`,status:`completed`,created_at:new Date(d).toISOString(),updated_at:new Date(f).toISOString()},K={settlements:[],is_terminal:!1};function q(e,t,n,r){return t===`pending`?I(e,n&&typeof n!=`string`?n:void 0):t===`succeeded`?L(e,n&&typeof n!=`string`?n:void 0):R(e,typeof n==`string`?n:void 0,r)}export{j as DEFAULT_ADDRESSES_PAYLOAD,C as DEFAULT_BRAND_PAYLOAD,w as DEFAULT_MOCK_ASSET,D as DEFAULT_TARGET_RAW,S as DEFAULT_WALLET_INFO,V as STUB_DEPOSIT_ADDRESSES_RAW,K as STUB_GATEWAY_POLL_RESPONSE,G as STUB_GATEWAY_SETTLEMENT_DTO,B as STUB_GATEWAY_START_RESPONSE,U as STUB_ONCHAIN_BALANCE_RESPONSE,W as STUB_QUOTE_RESPONSE,H as STUB_SUPPORTED_ASSETS_RESPONSE,A as buildDefaultAddressesPayload,P as buildDefaultBalances,R as buildDefaultFailurePayload,I as buildDefaultPendingPayload,F as buildDefaultQuotePayload,L as buildDefaultSuccessPayload,N as buildDefaultSupportedAssetsResponse,O as buildDefaultTargetPayload,E as buildDefaultTargetRaw,z as buildDefaultWalletPayload,q as buildSettlementPayload,T as resolveMockAsset};
1
+ import{formatDurationCompact as e}from"../../shared/format/formatDurationCompact.js";import{formatPercent as t}from"../../shared/format/formatPercent.js";import{formatTimestamp as n}from"../../shared/format/formatTimestamp.js";import{formatTokenAmount as r}from"../../shared/format/formatTokenAmount.js";import{formatUsd as i}from"../../shared/format/formatUsd.js";import{shortenAddress as a}from"../../shared/format/shortenAddress.js";const o=`Stridge ACME`,s=`0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266`,c=`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,l=`0x268a11a1002eb7026e3a77999872695ee3a920e5c46172a43aa396da10ac5296`,u=`0xcae135e02df387bba14e231988126295a663c8d9f8e90c1ead5876cc2fee036d`,d=1778167499e3,f=1778169184e3,p=1778086787e3,m=1778087105e3,h=`0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d`,g=`https://cdn.stridge.com/assets/usdc.svg`,_=`https://cdn.stridge.com/assets/usdt.svg`,v={1:`https://cdn.stridge.com/networks/60.svg`,8453:`https://cdn.stridge.com/networks/8453.svg`,42161:`https://cdn.stridge.com/networks/9001.svg`},y=`https://cdn.stridge.com/networks/9006.svg`,b=`https://cdn.stridge.com/networks/966.svg`,x=`0x166872371d1EB43B62c25861Bb7B1be4d5f09F56`,S={address:s,chainId:56},C={name:o},w={networkId:`9006`,networkName:`BSC`,eip155IdString:`56`,eip155IdNumber:56,chainLogoUrl:y,explorerBase:`https://bscscan.com`,symbol:`USDC`,decimals:18,address:h,assetLogoUrl:g,isNative:!1,nativeSymbol:`BNB`};function T(e){if(!e)return w;let t=e.networkId.toLowerCase(),n=k.find(n=>n.networkName.toLowerCase()===t||(M[n.eip155Id]??n.eip155Id)===e.networkId);if(!n)return w;let r=n.acceptedAssets.find(t=>t.symbol.toUpperCase()===e.symbol.toUpperCase());if(!r)return w;let i=n.acceptedAssets.find(e=>e.isNative);return{networkId:M[n.eip155Id]??n.eip155Id,networkName:n.networkName,eip155IdString:n.eip155Id,eip155IdNumber:Number(n.eip155Id),chainLogoUrl:n.chainLogoUrl,explorerBase:n.explorerBase,symbol:r.symbol,decimals:r.decimals,address:r.address,assetLogoUrl:r.assetLogoUrl??n.chainLogoUrl,isNative:r.isNative,nativeSymbol:i?.symbol??r.symbol}}function E(e=w){return{network_id:e.networkId,network_name:e.networkName,network_symbol:e.networkName.toLowerCase(),chain_type:`EVM`,eip155_id:e.eip155IdNumber,native_currency:{symbol:e.nativeSymbol,name:e.nativeSymbol,decimals:18,logo:e.chainLogoUrl},assets:[{symbol:e.symbol,decimals:e.decimals,address:e.address,logo:e.assetLogoUrl}]}}const D=E();function O(e,t,n=w){return{networkId:n.networkId,networkName:n.networkName,eip155Id:n.eip155IdString,chainLogoUrl:n.chainLogoUrl,symbol:n.symbol,decimals:n.decimals,address:n.address,assetLogoUrl:n.assetLogoUrl,isNative:n.isNative,...t===void 0?{}:{minAmountUsd:{value:t,formatted:i(t,e)}}}}const k=[{eip155Id:`1`,networkName:`Ethereum`,chainLogoUrl:v[1],explorerBase:`https://etherscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[1],priceImpact:`0.15`},{symbol:`TUSD`,address:`0x0000000000085d4780B73119b644AE5ecd22b376`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.18`},{symbol:`PAXG`,address:`0x45804880De22913dAFE09f4980848ECE6EcbAf78`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/paxg.svg`,priceImpact:`0.42`},{symbol:`DAI`,address:`0x6B175474E89094C44Da98b954EedeAC495271d0F`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.09`},{symbol:`PYUSD`,address:`0x6c3ea9036406852006290770BEdFcAbA0e23A0e8`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/pyusd.svg`,priceImpact:`0.21`},{symbol:`USDC`,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`WETH`,address:`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.31`},{symbol:`USDT`,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`56`,networkName:`BSC`,chainLogoUrl:y,explorerBase:`https://bscscan.com`,acceptedAssets:[{symbol:`BNB`,address:``,decimals:18,isNative:!0,assetLogoUrl:y,priceImpact:`0.21`},{symbol:`WETH`,address:`0x2170Ed0880ac9A755fd29B2688956BD959F933F8`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.34`},{symbol:`TUSD`,address:`0x40af3827F39D0EAcBF4A168f8D4ee67c121D11c9`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.2`},{symbol:`USDT`,address:`0x55d398326f99059fF775485246999027B3197955`,decimals:18,isNative:!1,assetLogoUrl:_,priceImpact:`0.08`},{symbol:`USDC`,address:h,decimals:18,isNative:!1,assetLogoUrl:g,priceImpact:`0.06`}]},{eip155Id:`8453`,networkName:`Base`,chainLogoUrl:v[8453],explorerBase:`https://basescan.org`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[8453],priceImpact:`0.19`},{symbol:`WETH`,address:`0x4200000000000000000000000000000000000006`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.29`},{symbol:`DAI`,address:`0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.11`},{symbol:`USDC`,address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.04`},{symbol:`USDT`,address:`0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`42161`,networkName:`Arbitrum`,chainLogoUrl:v[42161],explorerBase:`https://arbiscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[42161],priceImpact:`0.17`},{symbol:`TUSD`,address:`0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.16`},{symbol:`WETH`,address:`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.27`},{symbol:`USDC`,address:`0xaf88d065e77c8cC2239327C5EDb3A432268e5831`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`DAI`,address:`0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.1`},{symbol:`USDT`,address:`0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.06`}]},{eip155Id:`137`,networkName:`Polygon`,chainLogoUrl:b,explorerBase:`https://polygonscan.com`,acceptedAssets:[{symbol:`POL`,address:``,decimals:18,isNative:!0,assetLogoUrl:b,priceImpact:`0.33`},{symbol:`TUSD`,address:`0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.22`},{symbol:`USDC`,address:`0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.08`},{symbol:`WETH`,address:`0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.36`},{symbol:`DAI`,address:`0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.13`},{symbol:`USDT`,address:`0xc2132D05D31c914a87C6611C10748AEb04B58e8F`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.09`}]}];function A(e,t){let n=t===void 0?{}:{minAmountUsd:{value:t,formatted:i(t,e)}};return k.map(({eip155Id:e,networkName:t,chainLogoUrl:r,explorerBase:i,acceptedAssets:o})=>({eip155Id:e,networkName:t,chainLogoUrl:r,address:{value:x,formatted:a(x)},explorerUrl:`${i}/address/${x}`,acceptedAssets:o,...n}))}const j=k.map(({eip155Id:e,networkName:t,chainLogoUrl:n,explorerBase:r,acceptedAssets:i})=>({eip155Id:e,networkName:t,chainLogoUrl:n,address:{value:x,formatted:a(x)},explorerUrl:`${r}/address/${x}`,acceptedAssets:i})),M={1:`60`,56:`9006`,137:`966`,8453:`8453`,42161:`9001`};function N(){return{assets:k.map(e=>{let t=e.acceptedAssets.find(e=>e.isNative),n=e.acceptedAssets.filter(e=>!e.isNative);return{eip155_id:Number(e.eip155Id),network_id:M[e.eip155Id]??e.eip155Id,network_name:e.networkName.toLowerCase(),network_symbol:e.networkName.toLowerCase(),chain_type:`EVM`,assets:n.map(e=>({address:e.address,decimals:e.decimals,logo:e.assetLogoUrl??``,name:e.symbol,symbol:e.symbol,...e.priceImpact?{price_impact:e.priceImpact}:{}})),native_currency:{symbol:t?.symbol??``,name:t?.symbol??``,decimals:t?.decimals??18,logo:t?.assetLogoUrl??e.chainLogoUrl,...t?.priceImpact?{price_impact:t.priceImpact}:{}}}})}}function P(e){return[{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDC`,decimals:18,address:h,assetLogoUrl:g,chainLogoUrl:y,isNative:!1,amount:{value:42.805864,formatted:r(42.805864,e,{compact:!0})},amountUsd:{value:42.81,formatted:i(42.81,e)},priceUsd:1},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`BNB`,decimals:18,address:``,assetLogoUrl:y,chainLogoUrl:y,isNative:!0,amount:{value:.016699,formatted:r(.016699,e,{compact:!0})},amountUsd:{value:10.86,formatted:i(10.86,e)},priceUsd:650.41},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDT`,decimals:6,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,assetLogoUrl:_,chainLogoUrl:v[1],isNative:!1,amount:{value:.757479,formatted:r(.757479,e,{compact:!0})},amountUsd:{value:.76,formatted:i(.76,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDT`,decimals:18,address:`0x55d398326f99059fF775485246999027B3197955`,assetLogoUrl:_,chainLogoUrl:y,isNative:!1,amount:{value:.595218,formatted:r(.595218,e,{compact:!0})},amountUsd:{value:.6,formatted:i(.6,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`ETH`,decimals:18,address:``,assetLogoUrl:v[1],chainLogoUrl:v[1],isNative:!0,amount:{value:167e-6,formatted:r(167e-6,e,{compact:!0})},amountUsd:{value:.39,formatted:i(.39,e)},priceUsd:2316.86,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,chainLogoUrl:v[1],isNative:!1,amount:{value:.10408,formatted:r(.10408,e,{compact:!0})},amountUsd:{value:.1,formatted:i(.1,e)},priceUsd:1,lowBalance:!0,disabled:!0}]}function F(e,n,a=w){return{heroAmountUsd:{value:1.999758,formatted:i(1.999758,e)},sendAsset:{symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,isNative:!1,chainId:1,networkName:`Ethereum`,eip155Id:`1`,chainLogoUrl:v[1]},sendAmount:{value:2,formatted:r(2,e)},receiveAsset:{symbol:a.symbol,decimals:a.decimals,address:a.address,assetLogoUrl:a.assetLogoUrl,isNative:a.isNative,chainId:a.eip155IdNumber,networkName:a.networkName,eip155Id:a.eip155IdString,chainLogoUrl:a.chainLogoUrl},receiveAmount:{value:1.9958,formatted:r(1.9958,e)},quoteTotalSeconds:30,expiresAt:n,etaSeconds:30,breakdown:{selectedRoute:{provider:`lifi`,scenario:`cross_chain_diff_token`,label:`LIFI · cross chain diff token`},networkCost:{value:.0042,formatted:i(.0042,e)},priceImpact:{value:.21,formatted:t(.21,e)}}}}function I(e,t=w){return{kind:`pending`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},creditedAsset:{symbol:t.symbol,decimals:t.decimals,address:t.address,assetLogoUrl:t.assetLogoUrl,isNative:t.isNative},creditedTo:o,txHash:{value:c,formatted:a(c)},txExplorerUrl:`https://etherscan.io/tx/${c}`,detectedAt:{value:d,formatted:n(d,e)},submittedAt:{value:d,formatted:n(d,e)},receiveAmount:{value:4.983615,formatted:r(4.983615,e)}}}function L(t,i=w){let u=f-d;return{kind:`succeeded`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:4.983615,formatted:r(4.983615,t)},routeHops:[{provider:`LIFI`,chainId:1},{provider:`LIFI`,chainId:i.eip155IdNumber}],totalTime:{value:u,formatted:e(u,t)},depositTx:{hash:{value:c,formatted:a(c)},explorerUrl:`https://etherscan.io/tx/${c}`},completionTx:{hash:{value:l,formatted:a(l)},explorerUrl:`${i.explorerBase}/tx/${l}`},submittedAt:{value:d,formatted:n(d,t)},filledAt:{value:f,formatted:n(f,t)}}}function R(e,t=`execution-reverted`,i=w){return{kind:`failed`,failureKind:t,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:0,formatted:r(0,e)},txHash:{value:u,formatted:a(u)},txExplorerUrl:`https://etherscan.io/tx/${u}`,submittedAt:{value:p,formatted:n(p,e)},failedAt:{value:m,formatted:n(m,e)}}}function z(e,t=S){let n=P(e).reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{address:{value:t.address,formatted:a(t.address)},...t.chainId===void 0?{}:{chainId:t.chainId},balanceTotalUsd:{value:n,formatted:i(n,e)}}}const B={deposit_addresses:[],metadata:{brand_name:o}},V=[],H={assets:[]},U={chains:[]},W={},G={id:`mock-settlement`,status:`completed`,created_at:new Date(d).toISOString(),updated_at:new Date(f).toISOString()},K={settlements:[],is_terminal:!1},q=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,J=`https://cdn.stridge.com/assets/usdc.svg`;function Y(e,t=Date.now()){let n=6e4,r=60*n,i=24*r,a=[X({id:`mock-history-deposit-pending`,status:`routing`,updatedAtMs:t-12*n,createdAtMs:t-15*n,amountUsd:`25.00`,toAddress:e}),X({id:`mock-history-deposit-success-recent`,status:`completed`,updatedAtMs:t-6*r,createdAtMs:t-6*r-23e3,amountUsd:`42.50`,toAddress:e}),X({id:`mock-history-deposit-success-yesterday`,status:`completed`,updatedAtMs:t-i-2*r,createdAtMs:t-i-2*r-17e3,amountUsd:`8.20`,toAddress:e}),X({id:`mock-history-deposit-success-week`,status:`completed`,updatedAtMs:t-9*i,createdAtMs:t-9*i-14e3,amountUsd:`120.00`,toAddress:e})],o=[Z({id:`mock-history-withdraw-failed`,status:`failed`,updatedAtMs:t-3*i,createdAtMs:t-3*i-9e4,amountUsd:`15.00`,error:`transaction failed on chain`}),Z({id:`mock-history-withdraw-success-recent`,status:`completed`,updatedAtMs:t-18*r,createdAtMs:t-18*r-12e3,amountUsd:`60.00`}),Z({id:`mock-history-withdraw-success-week`,status:`completed`,updatedAtMs:t-11*i,createdAtMs:t-11*i-19e3,amountUsd:`200.00`})];return{owner:e,filter:{},udas:[{uda_id:`mock-uda-deposit`,owner:e,is_terminal:!1,status:`from_detected`,created_at:new Date(t-30*i).toISOString(),updated_at:new Date(t-12*n).toISOString(),destination:{address:e,asset_address:h,asset_symbol:`USDC`,asset_decimals:18,network_id:`9006`,network_name:`BSC`,eip155_id:`56`},settlements:a,metadata:{kit_flow:`deposit`}},{uda_id:`mock-uda-withdraw`,owner:e,is_terminal:!1,status:`completed`,created_at:new Date(t-25*i).toISOString(),updated_at:new Date(t-18*r).toISOString(),destination:{address:q,asset_address:``,asset_decimals:18,asset_symbol:`ETH`,network_id:`60`,network_name:`Ethereum`,eip155_id:`1`},settlements:o,metadata:{kit_flow:`withdraw`}}]}}function X(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J},to:{address:e.toAddress,asset_address:h,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function Z(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},...e.error?{error:e.error}:{},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J},to:{address:q,asset_address:``,asset_symbol:`ETH`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:`https://cdn.stridge.com/networks/60.svg`,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function Q(e,t,n,r){return t===`pending`?I(e,n&&typeof n!=`string`?n:void 0):t===`succeeded`?L(e,n&&typeof n!=`string`?n:void 0):R(e,typeof n==`string`?n:void 0,r)}export{j as DEFAULT_ADDRESSES_PAYLOAD,C as DEFAULT_BRAND_PAYLOAD,w as DEFAULT_MOCK_ASSET,D as DEFAULT_TARGET_RAW,S as DEFAULT_WALLET_INFO,V as STUB_DEPOSIT_ADDRESSES_RAW,K as STUB_GATEWAY_POLL_RESPONSE,G as STUB_GATEWAY_SETTLEMENT_DTO,B as STUB_GATEWAY_START_RESPONSE,U as STUB_ONCHAIN_BALANCE_RESPONSE,W as STUB_QUOTE_RESPONSE,H as STUB_SUPPORTED_ASSETS_RESPONSE,A as buildDefaultAddressesPayload,P as buildDefaultBalances,R as buildDefaultFailurePayload,I as buildDefaultPendingPayload,F as buildDefaultQuotePayload,L as buildDefaultSuccessPayload,N as buildDefaultSupportedAssetsResponse,O as buildDefaultTargetPayload,E as buildDefaultTargetRaw,z as buildDefaultWalletPayload,Y as buildMockHistoryResponse,Q as buildSettlementPayload,T as resolveMockAsset};
@@ -0,0 +1,7 @@
1
+ import { StridgeEvent } from "../types/index.js";
2
+
3
+ //#region src/events/bus/createBus.d.ts
4
+ /** Handler shape — accepts a typed event, returns nothing (return values are ignored). */
5
+ type EventHandler<TEvent extends StridgeEvent = StridgeEvent> = (event: TEvent) => void;
6
+ //#endregion
7
+ export { EventHandler };
@@ -0,0 +1 @@
1
+ function e(){let e=new Set,t=new Set,n=new Map,r=!1;function i(e,t){try{e(t)}catch(e){console.error(`[stridge/kit] handler for "${t.type}" threw:`,e)}}function a(a){if(r)return;if(a.tier===`flow`)for(let t of e)i(t,a);for(let e of t)i(e,a);let o=n.get(a.type);if(o)for(let e of o)i(e,a)}function o(e,t){return e.add(t),()=>{e.delete(t)}}function s(e,t){let r=n.get(e);return r||(r=new Set,n.set(e,r)),r.add(t),()=>{let r=n.get(e);r&&(r.delete(t),r.size===0&&n.delete(e))}}return{emit:a,subscribeToFlow:t=>o(e,t),subscribeToFlowEvent:(e,t)=>s(e,t),subscribeToAll:e=>o(t,e),subscribeToEvent:(e,t)=>s(e,t),dispose:()=>{r=!0,e.clear(),t.clear(),n.clear()}}}export{e as createBus};
@@ -0,0 +1,17 @@
1
+ //#region src/events/bus/flowIdRegistry.d.ts
2
+ /**
3
+ * Per-flow session id (`flowId`) lifecycle.
4
+ *
5
+ * One `flowId` is minted at `<flow>.opened` (synchronously, before the event is emitted, so
6
+ * the opened event carries the id). The same id rides every subsequent event in that
7
+ * session. Retired after the terminal event (`*.settlement.succeeded` /
8
+ * `*.settlement.failed` / `*.cancelled`). Reopening the same flow type mints a fresh id —
9
+ * sessions are not merged across opens.
10
+ *
11
+ * The registry also serves `useCurrentFlowId(flow)` — consumers can read the active id
12
+ * without subscribing to the bus.
13
+ */
14
+ /** Flow types eligible for a `flowId`. `kit` is excluded — `kit:*` events carry `flowId: null`. */
15
+ type FlowIdKey = "deposit" | "withdraw";
16
+ //#endregion
17
+ export { FlowIdKey };
@@ -0,0 +1 @@
1
+ const e=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`;function t(){let t=``,n=typeof globalThis<`u`?globalThis.crypto:void 0;if(n?.getRandomValues){let r=new Uint8Array(10);n.getRandomValues(r);for(let n=0;n<10;n+=1)t+=e[(r[n]??0)%62];return t}for(let n=0;n<10;n+=1)t+=e[Math.floor(Math.random()*62)];return t}function n(){let e={deposit:null,withdraw:null},n={deposit:new Set,withdraw:new Set};function r(e){for(let t of n[e])try{t()}catch(t){console.error(`[stridge/kit] flowId listener for "${e}" threw:`,t)}}return{open(n){e[n]!==null&&process.env.NODE_ENV!==`production`&&console.warn(`[stridge/kit] minted a new "${n}" flowId while a previous session was still active — the previous flowId is being discarded. This usually means the kit emitted opened twice without an intervening terminal/cancelled event.`);let i=t();return e[n]=i,r(n),i},close(t){e[t]!==null&&(e[t]=null,r(t))},current(t){return e[t]},subscribe(e,t){return n[e].add(t),()=>{n[e].delete(t)}}}}export{n as createFlowIdRegistry};
@@ -0,0 +1 @@
1
+ import"./createBus.js";import"./flowIdRegistry.js";import"./metadata.js";
@@ -0,0 +1 @@
1
+ const e=Object.freeze({});function t(){let t={deposit:e,withdraw:e};return{snapshot(n,r){if(!r||Object.keys(r).length===0){t[n]=e;return}t[n]=Object.freeze({...r})},read(e){return t[e]},clear(n){t[n]=e}}}export{t as createMetadataStore};
@@ -0,0 +1 @@
1
+ "use client";import{createContext as e}from"react";const t=e(null);export{t as StridgeEventsContext};
@@ -0,0 +1 @@
1
+ import"./mapFailure.js";import"./useDepositEmissions.js";import"./useKitEmitter.js";import"./useWithdrawEmissions.js";
@@ -0,0 +1 @@
1
+ const e=new Set([`UserRejectedRequestError`,`ACTION_REJECTED`]);function t(t){return!t||e.has(t)?`internal`:t===`TimeoutError`||t===`ETIMEDOUT`?`timeout`:t===`NetworkError`||t===`ERR_NETWORK`||t===`ECONNREFUSED`||t===`FETCH_FAILED`?`network`:t===`RATE_LIMITED`||t===`TooManyRequestsError`?`rate_limited`:t===`UNAUTHORIZED`||t===`InvalidProjectKeyError`?`unauthorized`:t===`INSUFFICIENT_FUNDS`||t===`InsufficientBalanceError`?`insufficient_funds`:t===`INVALID_INPUT`||t===`ValidationError`?`invalid_input`:t===`QUOTE_EXPIRED`||t===`QuoteExpiredError`?`quote_expired`:t===`TX_REVERTED`||t===`TransactionRevertedError`||t===`TransactionExecutionError`?`tx_reverted`:t===`TX_DROPPED`||t===`TransactionReplacedError`?`tx_dropped`:t===`SETTLEMENT_LOST`||t===`SettlementNotFoundError`?`settlement_lost`:`internal`}function n(e){return e===`network`||e===`timeout`||e===`rate_limited`}function r(e,r){let i=t(e.code);return{code:i,reason:e.reason,retryable:n(i),...r===void 0?{}:{cause:r}}}export{r as mapFailureInfoToPayload};
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(n){let r=o(e),i=s(n.metadata);i.current=n.metadata,t({state:n.state,settlement:n.settlement,quote:n.quote,fireFsm:(e,t)=>{r&&d(r,e,t,i.current)},fireSettlement:(e,t)=>{r&&p(r,e,t,n.state)},fireQuote:(e,t)=>{r&&t.status===`ready`&&e!==`ready`&&a(r,{type:`deposit.quote.resolved`,flow:`deposit`,tier:`flow`,payload:{quote:t.payload}})}})}function l(e){if(e.name!==`deposit`){if(e.name===`transferCrypto`)return{method:`transfer`};if(e.name===`assetPicker`)return{method:`wallet`};if(e.name===`amountEntry`||e.name===`confirmDeposit`)return{method:`wallet`,asset:e.ctx.asset};if(e.name===`processing`||e.name===`success`)return e.ctx.method===`transfer`?{method:`transfer`}:{method:`wallet`}}}function u(e){return e.name===`confirmDeposit`?e.ctx.phase.kind===`submitting`?`submitting`:`confirming`:e.name===`processing`?`processing`:e.name===`deposit`||e.name===`assetPicker`||e.name===`amountEntry`||e.name===`transferCrypto`?`quoting`:`unknown`}function d(e,t,o,s){if(o.name===`confirmDeposit`&&t.name===`confirmDeposit`){f(e,t.ctx.phase,o.ctx.phase,o);return}if(t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`deposit`,s,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:l(o)}}),a(e,{type:`deposit.step.changed`,flow:`deposit`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`deposit`&&o.name===`assetPicker`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`wallet`}}),t.name===`deposit`&&o.name===`transferCrypto`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`transfer`}}),t.name===`assetPicker`&&o.name===`amountEntry`&&a(e,{type:`deposit.asset.clicked`,flow:`deposit`,tier:`ui`,payload:{asset:o.ctx.asset}}),t.name===`amountEntry`&&o.name===`confirmDeposit`&&a(e,{type:`deposit.amount.submitted`,flow:`deposit`,tier:`ui`,payload:{amount:o.ctx.amount}}),o.name===`confirmDeposit`&&f(e,t.name===`confirmDeposit`?t.ctx.phase:void 0,o.ctx.phase,o),t.name===`confirmDeposit`&&o.name===`processing`&&a(e,{type:`deposit.submission.broadcast`,flow:`deposit`,tier:`flow`,payload:{tx:o.ctx.tx}}),t.name!==`error`&&o.name===`error`&&o.ctx.failure){let r=t.name===`confirmDeposit`?t.ctx.phase:void 0,i=n(o.ctx.failure);r?.kind===`submitting`&&a(e,{type:`deposit.submission.failed`,flow:`deposit`,tier:`flow`,payload:i}),a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...i,kind:`unknown`}})}o.name!==`closed`&&t.name!==`closed`&&`backTarget`in t.ctx&&o.name===t.ctx.backTarget&&a(e,{type:`deposit.back.clicked`,flow:`deposit`,tier:`ui`,payload:{fromStep:t.name}}),t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`deposit.cancelled`,flow:`deposit`,tier:`flow`,payload:{phase:u(t)}}),r(e,`deposit`,{type:`deposit.closed`,flow:`deposit`,tier:`ui`,payload:{atStep:t.name}}))}}function f(e,t,r,i){t?.kind!==r.kind&&((r.kind===`loading`||r.kind===`regenerating`)&&(a(e,{type:`deposit.quote.requested`,flow:`deposit`,tier:`flow`,payload:{input:{asset:i.ctx.asset,amount:i.ctx.amount}}}),r.kind===`regenerating`&&(t?.kind===`submitting`?a(e,{type:`deposit.submission.declined`,flow:`deposit`,tier:`flow`,payload:{}}):t?.kind===`ready`&&a(e,{type:`deposit.quote.expired`,flow:`deposit`,tier:`flow`,payload:{}}))),r.kind===`failed`&&a(e,{type:`deposit.quote.failed`,flow:`deposit`,tier:`flow`,payload:n(r.failure)}),r.kind===`submitting`&&a(e,{type:`deposit.submission.confirmed`,flow:`deposit`,tier:`ui`,payload:{}}))}function p(e,t,r,o){if(r.status!==`ready`&&r.status!==`stale`)return;let s=r.payload;if(s.kind===`pending`){t===null?(o.name===`closed`&&i(e,`deposit`,void 0,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:void 0}}),a(e,{type:`deposit.settlement.resumed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}})):a(e,{type:`deposit.settlement.progressed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}if(s.kind===`succeeded`){a(e,{type:`deposit.settlement.succeeded`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}s.kind===`failed`&&a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...n({reason:m(s.failureKind)}),kind:s.failureKind,...s.txHash?.value?{txHash:s.txHash.value}:{}}})}function m(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useDepositEmissions};
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{publishEvent as t}from"../publish.js";import{use as n,useCallback as r}from"react";function i(){let i=n(e);return r(e=>{i&&t(i,e)},[i])}export{i as useKitEmitter};
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(r){let i=o(e),c=s(r.metadata);c.current=r.metadata,t({state:r.state,settlement:r.settlement,quote:r.quote,fireFsm:(e,t)=>{i&&u(i,e,t,c.current)},fireSettlement:(e,t)=>{i&&d(i,t)},fireQuote:(e,t)=>{i&&t.status!==e&&(t.status===`ready`&&a(i,{type:`withdraw.quote.resolved`,flow:`withdraw`,tier:`flow`,payload:{quote:t.payload}}),t.status===`error`&&a(i,{type:`withdraw.quote.failed`,flow:`withdraw`,tier:`flow`,payload:n({reason:t.error.message||`Quote failed.`,...t.error.name?{code:t.error.name}:{}},t.error)}))}})}function l(e){return e.name===`form`?`quoting`:e.name===`submitting`?`confirming`:e.name===`inProgress`?`processing`:`unknown`}function u(e,t,o,s){let c=t.name===`form`&&!!t.ctx?.notice;if(o.name===`form`&&o.ctx?.notice&&!c&&a(e,{type:`withdraw.submission.declined`,flow:`withdraw`,tier:`flow`,payload:{}}),t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`withdraw`,s,{type:`withdraw.opened`,flow:`withdraw`,tier:`ui`,payload:{}}),a(e,{type:`withdraw.step.changed`,flow:`withdraw`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`form`&&o.name===`submitting`&&a(e,{type:`withdraw.submission.confirmed`,flow:`withdraw`,tier:`ui`,payload:{}}),t.name===`submitting`&&o.name===`inProgress`&&o.ctx.tx&&a(e,{type:`withdraw.submission.broadcast`,flow:`withdraw`,tier:`flow`,payload:{input:o.ctx.input,tx:o.ctx.tx}}),o.name===`error`){let t=o.ctx.failure;if(t!==void 0&&o.ctx.tx===void 0&&t){let r=n(t);a(e,{type:`withdraw.submission.failed`,flow:`withdraw`,tier:`flow`,payload:r}),a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...r,kind:`unknown`}})}}t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`withdraw.cancelled`,flow:`withdraw`,tier:`flow`,payload:{phase:l(t)}}),r(e,`withdraw`,{type:`withdraw.closed`,flow:`withdraw`,tier:`ui`,payload:{atStep:t.name}}))}}function d(e,t){if(t.status!==`ready`&&t.status!==`stale`)return;let r=t.payload;if(r.kind===`pending`){a(e,{type:`withdraw.settlement.progressed`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}if(r.kind===`succeeded`){a(e,{type:`withdraw.settlement.succeeded`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}r.kind===`failed`&&a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...n({reason:f(r.failureKind)}),kind:r.failureKind,...r.txHash?.value?{txHash:r.txHash.value}:{}}})}function f(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useWithdrawEmissions};
@@ -0,0 +1,6 @@
1
+ import { useCurrentFlowId } from "./useCurrentFlowId.js";
2
+ import { useStridgeEvent } from "./useStridgeEvent.js";
3
+ import { PublicStridgeEventBus, useStridgeEventBus } from "./useStridgeEventBus.js";
4
+ import { useStridgeEvents } from "./useStridgeEvents.js";
5
+ import { useStridgeFlowEvent } from "./useStridgeFlowEvent.js";
6
+ import { useStridgeFlowEvents } from "./useStridgeFlowEvents.js";
@@ -0,0 +1 @@
1
+ import"./useCurrentFlowId.js";import"./useStridgeEvent.js";import"./useStridgeEventBus.js";import"./useStridgeEvents.js";import"./useStridgeFlowEvent.js";import"./useStridgeFlowEvents.js";
@@ -0,0 +1,6 @@
1
+ import { FlowIdKey } from "../bus/flowIdRegistry.js";
2
+
3
+ //#region src/events/hooks/useCurrentFlowId.d.ts
4
+ declare function useCurrentFlowId(flow: FlowIdKey): string | null;
5
+ //#endregion
6
+ export { useCurrentFlowId };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{use as t,useCallback as n,useSyncExternalStore as r}from"react";function i(i){let a=t(e);return r(n(e=>a?a.flowIds.subscribe(i,e):()=>void 0,[a,i]),n(()=>a?a.flowIds.current(i):null,[a,i]),()=>null)}export{i as useCurrentFlowId};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as e,useRef as t}from"react";function n(n){let r=t(n);return e(()=>{r.current=n},[n]),r}export{n as useStableHandler};
@@ -0,0 +1,8 @@
1
+ import { StridgeEvent } from "../types/index.js";
2
+
3
+ //#region src/events/hooks/useStridgeEvent.d.ts
4
+ declare function useStridgeEvent<TType extends StridgeEvent["type"]>(type: TType, handler: (event: Extract<StridgeEvent, {
5
+ type: TType;
6
+ }>) => void): void;
7
+ //#endregion
8
+ export { useStridgeEvent };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i,a){let o=n(e),s=t(a);r(()=>{if(o)return o.bus.subscribeToEvent(i,e=>s.current(e))},[o,s,i])}export{i as useStridgeEvent};
@@ -0,0 +1,33 @@
1
+ import { FlowEvent, StridgeEvent } from "../types/index.js";
2
+ import { EventHandler } from "../bus/createBus.js";
3
+
4
+ //#region src/events/hooks/useStridgeEventBus.d.ts
5
+ /**
6
+ * Subset of {@link StridgeEventBus} exposed publicly. `emit` and `dispose` are
7
+ * kit-internal — consumers only ever subscribe.
8
+ *
9
+ * `subscribeToFlow` / `subscribeToFlowEvent` narrow the handler to `flow:*` events only
10
+ * (headless-safe). `subscribeToAll` / `subscribeToEvent` are the firehose — they see every
11
+ * event the kit emits regardless of tier.
12
+ */
13
+ interface PublicStridgeEventBus {
14
+ subscribeToFlow: (handler: EventHandler<FlowEvent>) => () => void;
15
+ subscribeToFlowEvent: <TType extends FlowEvent["type"]>(type: TType, handler: EventHandler<Extract<FlowEvent, {
16
+ type: TType;
17
+ }>>) => () => void;
18
+ subscribeToAll: (handler: EventHandler<StridgeEvent>) => () => void;
19
+ subscribeToEvent: <TType extends StridgeEvent["type"]>(type: TType, handler: EventHandler<Extract<StridgeEvent, {
20
+ type: TType;
21
+ }>>) => () => void;
22
+ }
23
+ /**
24
+ * Returns the provider-scoped bus accessor, or `null` when no `<StridgeProvider>` is
25
+ * mounted above. Always guard with `if (!bus) return;` in your subscription setup.
26
+ *
27
+ * The returned object identity is stable across renders as long as the provider's bus
28
+ * doesn't change, so consumers can safely list it in `useEffect` dep arrays without
29
+ * re-subscribing every render.
30
+ */
31
+ declare function useStridgeEventBus(): PublicStridgeEventBus | null;
32
+ //#endregion
33
+ export { PublicStridgeEventBus, useStridgeEventBus };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{use as t,useMemo as n}from"react";function r(){let r=t(e);return n(()=>r?{subscribeToFlow:r.bus.subscribeToFlow,subscribeToFlowEvent:r.bus.subscribeToFlowEvent,subscribeToAll:r.bus.subscribeToAll,subscribeToEvent:r.bus.subscribeToEvent}:null,[r])}export{r as useStridgeEventBus};
@@ -0,0 +1,6 @@
1
+ import { StridgeEvent } from "../types/index.js";
2
+
3
+ //#region src/events/hooks/useStridgeEvents.d.ts
4
+ declare function useStridgeEvents(handler: (event: StridgeEvent) => void): void;
5
+ //#endregion
6
+ export { useStridgeEvents };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i){let a=n(e),o=t(i);r(()=>{if(a)return a.bus.subscribeToAll(e=>o.current(e))},[a,o])}export{i as useStridgeEvents};
@@ -0,0 +1,8 @@
1
+ import { FlowEvent } from "../types/index.js";
2
+
3
+ //#region src/events/hooks/useStridgeFlowEvent.d.ts
4
+ declare function useStridgeFlowEvent<TType extends FlowEvent["type"]>(type: TType, handler: (event: Extract<FlowEvent, {
5
+ type: TType;
6
+ }>) => void): void;
7
+ //#endregion
8
+ export { useStridgeFlowEvent };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i,a){let o=n(e),s=t(a);r(()=>{if(o)return o.bus.subscribeToFlowEvent(i,e=>s.current(e))},[o,s,i])}export{i as useStridgeFlowEvent};
@@ -0,0 +1,6 @@
1
+ import { FlowEvent } from "../types/index.js";
2
+
3
+ //#region src/events/hooks/useStridgeFlowEvents.d.ts
4
+ declare function useStridgeFlowEvents(handler: (event: FlowEvent) => void): void;
5
+ //#endregion
6
+ export { useStridgeFlowEvents };
@@ -0,0 +1 @@
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i){let a=n(e),o=t(i);r(()=>{if(a)return a.bus.subscribeToFlow(e=>o.current(e))},[a,o])}export{i as useStridgeFlowEvents};