@stridge/kit 0.1.0-alpha.4 → 0.1.0-alpha.41

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 (251) 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/drivers/stridge/index.d.ts +3 -2
  5. package/dist/_internal/drivers/stridge/index.js +1 -1
  6. package/dist/_internal/withdraw/driver/index.d.ts +2 -2
  7. package/dist/deposit/compound/index.d.ts +3 -3
  8. package/dist/drivers/stridge/catalog.d.ts +54 -0
  9. package/dist/drivers/stridge/catalog.js +1 -0
  10. package/dist/drivers/stridge/createStridgeDepositDriver.d.ts +9 -0
  11. package/dist/drivers/stridge/createStridgeDepositDriver.js +1 -1
  12. package/dist/drivers/stridge/createStridgeWithdrawDriver.d.ts +34 -13
  13. package/dist/drivers/stridge/createStridgeWithdrawDriver.js +1 -1
  14. package/dist/drivers/stridge/internal/ensureWalletChain.js +1 -0
  15. package/dist/drivers/stridge/internal/resolveAddEthereumChain.js +1 -0
  16. package/dist/drivers/stridge/internal/retry.js +1 -0
  17. package/dist/drivers/stridge/internal/supportedChains.js +1 -0
  18. package/dist/drivers/stridge/types.d.ts +20 -14
  19. package/dist/drivers/stridge/types.js +1 -1
  20. package/dist/drivers/stridge/wagmiSigner.js +1 -1
  21. package/dist/drivers/stridge-mock/createStridgeMockDriver.d.ts +2 -2
  22. package/dist/drivers/stridge-mock/createStridgeMockDriver.js +1 -1
  23. package/dist/drivers/stridge-mock/createStridgeMockWithdrawDriver.d.ts +15 -3
  24. package/dist/drivers/stridge-mock/createStridgeMockWithdrawDriver.js +1 -1
  25. package/dist/drivers/stridge-mock/fixtures.d.ts +13 -11
  26. package/dist/drivers/stridge-mock/fixtures.js +1 -1
  27. package/dist/events/bus/createBus.d.ts +7 -0
  28. package/dist/events/bus/createBus.js +1 -0
  29. package/dist/events/bus/flowIdRegistry.d.ts +17 -0
  30. package/dist/events/bus/flowIdRegistry.js +1 -0
  31. package/dist/events/bus/index.js +1 -0
  32. package/dist/events/bus/metadata.js +1 -0
  33. package/dist/events/context.js +1 -0
  34. package/dist/events/emit/index.js +1 -0
  35. package/dist/events/emit/mapFailure.js +1 -0
  36. package/dist/events/emit/useDepositEmissions.js +1 -0
  37. package/dist/events/emit/useKitEmitter.js +1 -0
  38. package/dist/events/emit/useWithdrawEmissions.js +1 -0
  39. package/dist/events/hooks/index.d.ts +6 -0
  40. package/dist/events/hooks/index.js +1 -0
  41. package/dist/events/hooks/useCurrentFlowId.d.ts +6 -0
  42. package/dist/events/hooks/useCurrentFlowId.js +1 -0
  43. package/dist/events/hooks/useStableHandler.js +1 -0
  44. package/dist/events/hooks/useStridgeEvent.d.ts +8 -0
  45. package/dist/events/hooks/useStridgeEvent.js +1 -0
  46. package/dist/events/hooks/useStridgeEventBus.d.ts +33 -0
  47. package/dist/events/hooks/useStridgeEventBus.js +1 -0
  48. package/dist/events/hooks/useStridgeEvents.d.ts +6 -0
  49. package/dist/events/hooks/useStridgeEvents.js +1 -0
  50. package/dist/events/hooks/useStridgeFlowEvent.d.ts +8 -0
  51. package/dist/events/hooks/useStridgeFlowEvent.js +1 -0
  52. package/dist/events/hooks/useStridgeFlowEvents.d.ts +6 -0
  53. package/dist/events/hooks/useStridgeFlowEvents.js +1 -0
  54. package/dist/events/index.d.ts +14 -0
  55. package/dist/events/index.js +1 -0
  56. package/dist/events/publish.js +1 -0
  57. package/dist/events/types/deposit.d.ts +235 -0
  58. package/dist/events/types/envelope.d.ts +145 -0
  59. package/dist/events/types/index.d.ts +31 -0
  60. package/dist/events/types/kit.d.ts +23 -0
  61. package/dist/events/types/withdraw.d.ts +150 -0
  62. package/dist/flows/deposit/dialog/DepositDialog.d.ts +14 -81
  63. package/dist/flows/deposit/dialog/DepositDialog.js +1 -1
  64. package/dist/flows/deposit/dialog/WalletRequiredState.js +1 -0
  65. package/dist/flows/deposit/dialog/WalletRequiredState.styles.js +1 -0
  66. package/dist/flows/deposit/driver/payloads.d.ts +10 -4
  67. package/dist/flows/deposit/driver/transformers/balanceToBalancesPayload.js +1 -1
  68. package/dist/flows/deposit/driver/transformers/startToAddressesPayload.js +1 -1
  69. package/dist/flows/deposit/driver/transformers/startToTargetPayload.js +1 -1
  70. package/dist/flows/deposit/driver/types.d.ts +11 -0
  71. package/dist/flows/deposit/orchestrator/controller.js +1 -1
  72. package/dist/flows/deposit/orchestrator/types.d.ts +30 -1
  73. package/dist/flows/deposit/orchestrator/useDeposit.d.ts +45 -1
  74. package/dist/flows/deposit/orchestrator/useDeposit.js +1 -1
  75. package/dist/flows/deposit/widgets/amount-entry/AmountEntry.d.ts +1 -1
  76. package/dist/flows/deposit/widgets/amount-entry/AmountEntry.js +1 -1
  77. package/dist/flows/deposit/widgets/amount-entry/footerIntent.js +1 -0
  78. package/dist/flows/deposit/widgets/confirm-deposit/ConfirmDeposit.js +1 -1
  79. package/dist/flows/deposit/widgets/deposit/Deposit.js +1 -1
  80. package/dist/flows/deposit/widgets/deposit/compound/components/Method.d.ts +6 -0
  81. package/dist/flows/deposit/widgets/deposit/compound/components/Method.js +1 -1
  82. package/dist/flows/deposit/widgets/deposit/compound/types.d.ts +6 -3
  83. package/dist/flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.d.ts +7 -0
  84. package/dist/flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.js +1 -1
  85. package/dist/flows/deposit/widgets/deposit-status-banner/compound/DepositStatusBanner.js +1 -1
  86. package/dist/flows/deposit/widgets/deposit-status-banner/compound/components/Hero.js +1 -1
  87. package/dist/flows/deposit/widgets/deposit-status-banner/compound/components/PrimaryAction.js +1 -1
  88. package/dist/flows/deposit/widgets/processing-state/ProcessingState.js +1 -1
  89. package/dist/flows/deposit/widgets/transfer-crypto/TransferCrypto.js +1 -1
  90. package/dist/flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.d.ts +1 -1
  91. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Address.js +1 -1
  92. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Disclosure.d.ts +2 -1
  93. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Disclosure.js +1 -1
  94. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/QrCode.d.ts +4 -10
  95. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/QrCode.js +1 -1
  96. package/dist/flows/shared/transformers/pickRelevantSettlement.js +1 -1
  97. package/dist/flows/shared/transformers/testnets.js +1 -0
  98. package/dist/flows/withdraw/bindings/WithdrawBindings.d.ts +92 -0
  99. package/dist/flows/withdraw/bindings/WithdrawBindings.js +1 -0
  100. package/dist/flows/withdraw/bindings/index.d.ts +1 -0
  101. package/dist/flows/withdraw/bindings/index.js +1 -0
  102. package/dist/flows/withdraw/dialog/WithdrawDialog.d.ts +35 -71
  103. package/dist/flows/withdraw/dialog/WithdrawDialog.js +1 -1
  104. package/dist/flows/withdraw/driver/payloads.d.ts +16 -1
  105. package/dist/flows/withdraw/driver/transformers/settlementToWithdrawalPayload.js +1 -1
  106. package/dist/flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js +1 -1
  107. package/dist/flows/withdraw/driver/types.d.ts +76 -13
  108. package/dist/flows/withdraw/orchestrator/controller.js +1 -1
  109. package/dist/flows/withdraw/orchestrator/index.d.ts +1 -1
  110. package/dist/flows/withdraw/orchestrator/reducer.js +1 -1
  111. package/dist/flows/withdraw/orchestrator/types.d.ts +131 -32
  112. package/dist/flows/withdraw/orchestrator/useWithdraw.d.ts +36 -1
  113. package/dist/flows/withdraw/orchestrator/useWithdraw.js +1 -1
  114. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.d.ts +5 -13
  115. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.js +1 -1
  116. package/dist/flows/withdraw/widgets/withdraw-form/compound/WithdrawForm.js +1 -1
  117. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/RecipientField.d.ts +7 -5
  118. package/dist/flows/withdraw/widgets/withdraw-form/compound/components/RecipientField.js +1 -1
  119. package/dist/flows/withdraw/widgets/withdraw-form/compound/types.d.ts +15 -5
  120. package/dist/flows/withdraw/widgets/withdraw-form/validation.js +1 -1
  121. package/dist/flows/withdraw/widgets/withdraw-in-progress/WithdrawInProgress.d.ts +2 -1
  122. package/dist/flows/withdraw/widgets/withdraw-in-progress/WithdrawInProgress.js +1 -1
  123. package/dist/flows/withdraw/widgets/withdraw-success/WithdrawSuccess.js +1 -1
  124. package/dist/i18n/index.d.ts +5 -4
  125. package/dist/i18n/index.js +1 -1
  126. package/dist/i18n/locales/ar.js +1 -1
  127. package/dist/i18n/locales/es.js +1 -1
  128. package/dist/i18n/locales/source-keys.d.ts +12 -0
  129. package/dist/i18n/locales/source-keys.js +0 -0
  130. package/dist/icons/index.d.ts +2 -1
  131. package/dist/icons/index.js +1 -1
  132. package/dist/index.d.ts +21 -9
  133. package/dist/index.js +1 -1
  134. package/dist/package.js +1 -1
  135. package/dist/scope/KitPortalScope.js +1 -1
  136. package/dist/scope/KitScope.d.ts +18 -1
  137. package/dist/scope/KitScope.js +1 -1
  138. package/dist/scope/context.d.ts +17 -1
  139. package/dist/scope/index.d.ts +1 -1
  140. package/dist/shared/attribution/Attribution.js +1 -0
  141. package/dist/shared/attribution/Attribution.slots.js +1 -0
  142. package/dist/shared/attribution/Attribution.styles.js +1 -0
  143. package/dist/shared/attribution/index.js +1 -0
  144. package/dist/shared/chains/index.d.ts +48 -29
  145. package/dist/shared/chains/index.js +1 -1
  146. package/dist/shared/constants/brand-intercom.js +1 -0
  147. package/dist/shared/cuer/Cuer.js +1 -0
  148. package/dist/shared/cuer/QrCode.js +1 -0
  149. package/dist/shared/cuer/index.js +1 -0
  150. package/dist/shared/dialog/Frame.js +1 -1
  151. package/dist/shared/dialog/LoadingState.js +1 -0
  152. package/dist/shared/dialog/LoadingState.styles.js +1 -0
  153. package/dist/shared/dialog/StepTransition.js +1 -1
  154. package/dist/shared/driver/types.d.ts +4 -3
  155. package/dist/shared/i18n/KitI18nProvider.d.ts +11 -8
  156. package/dist/shared/i18n/KitI18nProvider.js +1 -1
  157. package/dist/shared/i18n/createKitI18n.d.ts +79 -16
  158. package/dist/shared/i18n/createKitI18n.js +1 -1
  159. package/dist/shared/i18n/useLingui.d.ts +11 -3
  160. package/dist/shared/icons/LogoIcon.d.ts +13 -0
  161. package/dist/shared/icons/LogoIcon.js +1 -0
  162. package/dist/shared/merchant-link/MerchantLink.d.ts +1 -0
  163. package/dist/shared/merchant-link/MerchantLink.js +1 -0
  164. package/dist/shared/merchant-link/MerchantLinkButton.d.ts +1 -0
  165. package/dist/shared/merchant-link/MerchantLinkButton.js +1 -0
  166. package/dist/shared/merchant-link/index.d.ts +1 -0
  167. package/dist/shared/merchant-link/index.js +1 -0
  168. package/dist/shared/merchant-link/resolveMerchantLink.js +1 -0
  169. package/dist/shared/orchestrator/useSettlementWatcher.js +1 -1
  170. package/dist/shared/primitives/TxHashValue/TxHashValue.js +1 -1
  171. package/dist/shared/support/SupportConfigContext.d.ts +1 -0
  172. package/dist/shared/support/SupportConfigContext.js +1 -0
  173. package/dist/shared/support/SupportLink.d.ts +1 -0
  174. package/dist/shared/support/SupportLink.js +1 -0
  175. package/dist/shared/support/SupportSpinner.d.ts +1 -0
  176. package/dist/shared/support/SupportSpinner.js +1 -0
  177. package/dist/shared/support/index.d.ts +2 -0
  178. package/dist/shared/support/index.js +1 -0
  179. package/dist/shared/support/intercom-loader.d.ts +17 -0
  180. package/dist/shared/support/intercom-loader.js +1 -0
  181. package/dist/shared/support/types.d.ts +43 -0
  182. package/dist/shared/support/useIntercomMerchantContext.d.ts +27 -0
  183. package/dist/shared/support/useIntercomMerchantContext.js +1 -0
  184. package/dist/shared/support/useIntercomShutdownOnUnmount.js +1 -0
  185. package/dist/shared/support/useMerchantContext.d.ts +1 -0
  186. package/dist/shared/support/useMerchantContext.js +1 -0
  187. package/dist/shared/support/useSupportTrigger.js +1 -0
  188. package/dist/shared/terms/TermsConfigContext.d.ts +1 -0
  189. package/dist/shared/terms/TermsConfigContext.js +1 -0
  190. package/dist/shared/terms/TermsLink.d.ts +1 -0
  191. package/dist/shared/terms/TermsLink.js +1 -0
  192. package/dist/shared/terms/index.d.ts +1 -0
  193. package/dist/shared/terms/index.js +1 -0
  194. package/dist/shared/terms/types.d.ts +43 -0
  195. package/dist/shared/ui/Card/Card.styles.js +1 -1
  196. package/dist/shared/ui/Details/Details.d.ts +9 -1
  197. package/dist/shared/ui/Details/Details.styles.js +1 -1
  198. package/dist/shared/ui/Dialog/Dialog.js +1 -1
  199. package/dist/shared/ui/Dialog/Dialog.styles.js +1 -1
  200. package/dist/shared/ui/Select/Select.js +1 -1
  201. package/dist/shared/ui/WalletRow/WalletRow.d.ts +1 -1
  202. package/dist/shared/ui/WalletRow/WalletRow.js +1 -1
  203. package/dist/shared/utils/useDeepMemo.js +1 -0
  204. package/dist/shared/wallet/ConnectWalletContext.d.ts +17 -0
  205. package/dist/shared/wallet/ConnectWalletContext.js +1 -0
  206. package/dist/shared/widgets/amount-entry/compound/components/Hero/Hero.js +1 -1
  207. package/dist/shared/widgets/amount-entry/compound/components/Hero/SwapBackdrop.js +1 -1
  208. package/dist/shared/widgets/asset-picker/compound/components/Asset.d.ts +7 -1
  209. package/dist/shared/widgets/asset-picker/compound/components/Asset.js +1 -1
  210. package/dist/shared/widgets/confirm-transfer/compound/components/Disclaimer.d.ts +4 -3
  211. package/dist/shared/widgets/confirm-transfer/compound/components/Disclaimer.js +1 -1
  212. package/dist/shared/widgets/error-state/compound/components/AssetValue.js +1 -1
  213. package/dist/shared/widgets/error-state/compound/components/HelpInfo.js +1 -1
  214. package/dist/shared/widgets/error-state/compound/components/StatusValue.js +1 -1
  215. package/dist/shared/widgets/processing-state/compound/ProcessingState.d.ts +1 -5
  216. package/dist/shared/widgets/processing-state/compound/ProcessingState.js +1 -1
  217. package/dist/shared/widgets/processing-state/compound/ProcessingState.slots.d.ts +0 -1
  218. package/dist/shared/widgets/processing-state/compound/ProcessingState.slots.js +1 -1
  219. package/dist/shared/widgets/processing-state/compound/ProcessingState.styles.js +1 -1
  220. package/dist/shared/widgets/processing-state/compound/components/Details.d.ts +6 -1
  221. package/dist/shared/widgets/processing-state/compound/components/Details.js +1 -1
  222. package/dist/shared/widgets/processing-state/compound/components/Header.d.ts +4 -3
  223. package/dist/shared/widgets/processing-state/compound/components/Header.js +1 -1
  224. package/dist/shared/widgets/processing-state/compound/components/Hero.d.ts +14 -7
  225. package/dist/shared/widgets/processing-state/compound/components/Hero.js +1 -1
  226. package/dist/shared/widgets/processing-state/compound/components/Rows.js +1 -1
  227. package/dist/shared/widgets/processing-state/compound/components/StatusPill.js +1 -1
  228. package/dist/shared/widgets/processing-state/compound/components/splitAmount.js +1 -0
  229. package/dist/shared/widgets/processing-state/compound/index.d.ts +1 -1
  230. package/dist/shared/widgets/processing-state/compound/types.d.ts +7 -26
  231. package/dist/shared/widgets/success-state/compound/components/Actions.js +1 -1
  232. package/dist/shared/widgets/success-state/compound/components/AssetValue.js +1 -1
  233. package/dist/shared/widgets/success-state/compound/components/RouteValue.js +1 -1
  234. package/dist/shared/widgets/success-state/compound/components/StatusPill.js +1 -1
  235. package/dist/stridge/StridgeProvider.d.ts +165 -35
  236. package/dist/stridge/StridgeProvider.js +1 -1
  237. package/dist/stridge/depositOwner.js +1 -0
  238. package/dist/stridge/optionalWagmi.js +1 -0
  239. package/dist/stridge/stubs.js +1 -1
  240. package/dist/styles/index.css +126 -10
  241. package/dist/types.d.ts +5 -4
  242. package/dist/ui/index.js +1 -1
  243. package/dist/withdraw/compound/index.d.ts +2 -2
  244. package/dist/withdraw/dialog/index.d.ts +3 -1
  245. package/package.json +13 -9
  246. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.d.ts +0 -36
  247. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.js +0 -1
  248. package/dist/shared/widgets/processing-state/compound/components/Actions.d.ts +0 -17
  249. package/dist/shared/widgets/processing-state/compound/components/Actions.js +0 -1
  250. package/dist/stridge/StridgeContext.d.ts +0 -29
  251. package/dist/stridge/StridgeContext.js +0 -1
@@ -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{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.minAmountUsd,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)},arm(){},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.minAmountUsd,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};
@@ -6,8 +6,8 @@ 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
12
  processingTerminal: number;
13
13
  };
@@ -93,10 +93,22 @@ interface CreateStridgeMockWithdrawDriverInput {
93
93
  /**
94
94
  * Settlement asset override — same shape as the deposit factory's `asset` field. Drives the
95
95
  * 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
96
+ * picker's `(networkId, symbol)` is reflected end-to-end. Unknown combinations fall back to USDC
97
97
  * on BSC via {@link resolveMockAsset}.
98
98
  */
99
99
  asset?: MockAssetSelection;
100
+ /**
101
+ * Optional lower USD bound on the withdraw amount. Mirrors the live driver's option —
102
+ * populates {@link WithdrawSnapshot.minAmountUsd} so the form's "Min $X" gate fires under the
103
+ * mock too.
104
+ */
105
+ minAmountUsd?: number;
106
+ /**
107
+ * Optional upper USD bound on the withdraw amount. Mirrors the live driver's option —
108
+ * populates {@link WithdrawSnapshot.maxAmountUsd} so the form's "Max $X" gate fires under the
109
+ * mock too.
110
+ */
111
+ maxAmountUsd?: number;
100
112
  }
101
113
  /**
102
114
  * 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{supportedAssetsToReceiveOptionsPayload as a}from"../../flows/withdraw/driver/transformers/supportedAssetsToReceiveOptionsPayload.js";import{DEFAULT_MOCK_ASSET as o,buildDefaultSupportedAssetsResponse as s,resolveMockAsset as c}from"./fixtures.js";const l=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,u=`0xd41f5e9e5b1c2c4d8e7a0bf3a9e6c1d2b8f5d4c3e2a1b0c9d8e7f6a5b4c3d2e1`;function d(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 f(e){return`${e.explorerBase}/tx/`}const p={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3},m=d(o),h=4.00613;function g(e=o){let t=d(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 _(e=h,t=o){let n=O(e);return{receiveAsset:d(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 v(t=e,a=h,s=l,c=u,p=o){let m=Date.now();return{kind:`pending`,receiveAsset:d(p),receiveAmount:{value:a,formatted:O(a)},receiveAmountUsd:{value:a,formatted:r(a,t)},recipient:{value:s,formatted:i(s)},submittedAt:{value:m,formatted:n(m,t)},txHash:{value:c,formatted:i(c)},txExplorerUrl:`${f(p)}${c}`}}function y(r=e,a=h,s=l,c=14,p=u,m=o,g=`0xa17b4c9e2d68f0a5c3b91e7f4d52a86b09c1d7e3f8a4b2c5d6e9f0a1b2c3d4e5`){let _=Date.now(),v=c*1e3,y=_-v;return{kind:`succeeded`,receiveAsset:d(m),receiveAmount:{value:a,formatted:O(a)},recipient:{value:s,formatted:i(s)},submittedAt:{value:y,formatted:n(y,r)},filledAt:{value:_,formatted:n(_,r)},totalTime:{value:c,formatted:t(v,r)},txHash:{value:p,formatted:i(p)},txExplorerUrl:`${f(m)}${p}`,completionTx:{hash:{value:g,formatted:i(g)},explorerUrl:`${f(m)}${g}`}}}function b(t=e,r=`unknown`,a=h,s=l,c=u,p=o){let m=Date.now(),g=m-5e3;return{kind:`failed`,failureKind:r,receiveAsset:d(p),receiveAmount:{value:a,formatted:O(a)},recipient:{value:s,formatted:i(s)},submittedAt:{value:g,formatted:n(g,t)},failedAt:{value:m,formatted:n(m,t)},txHash:{value:c,formatted:i(c)},txExplorerUrl:`${f(p)}${c}`}}function x(t={}){let n={...p,...t.latency},i=t.autoSettleTo??`succeeded`,o=t.pendingTriggerToSuccessMs===void 0?3500:t.pendingTriggerToSuccessMs,f=t.getI18n??(()=>e),m=c(t.asset),x=d(m),C=g(m),O=S(C),k=s(),A=a(k),j=t.initialState?.minAmountUsd??(t.minAmountUsd===void 0?void 0:{value:t.minAmountUsd,formatted:r(t.minAmountUsd,f())}),M=t.initialState?.maxAmountUsd??(t.maxAmountUsd===void 0?void 0:{value:t.maxAmountUsd,formatted:r(t.maxAmountUsd,f())}),N={withdrawableBalances:t.initialState?.withdrawableBalances??{status:`ready`,payload:C,raw:O,response:O},receiveOptions:t.initialState?.receiveOptions??{status:`ready`,payload:A,raw:k.assets,response:k},quote:t.initialState?.quote??{status:`idle`},settlement:t.initialState?.settlement??{status:`idle`},...j?{minAmountUsd:j}:{},...M?{maxAmountUsd:M}:{}},P=N,F=new Set,I=new Set,L=new Set,R=new Set,z=()=>{for(let e of F)e()},B=e=>{if(P={...P,...e},z(),e.settlement)for(let e of I)e(P.settlement);if(e.withdrawableBalances)for(let e of L)e(P.withdrawableBalances)},V=(e,t)=>{let n=setTimeout(()=>{R.delete(n),e()},t);R.add(n)},H=null,U=!1,W=0;function G(){return W+=1,`0x${W.toString(16).padStart(8,`0`)}${u.slice(10)}`}let K={getSnapshot:()=>P,subscribe(e){return F.add(e),()=>{F.delete(e)}},arm(){},async requestQuote(e,t){B({quote:{status:`loading`}}),await D(n.quote,t);let r=_(e.amount,m),i=w(r,e.amount,x);B({quote:{status:`ready`,payload:r,raw:i,response:i}})},async prepareWithdrawal(e,t){await D(n.submit,t),H={amount:e.amount,recipient:e.recipientAddress};let r=G();return q(e.amount,e.recipientAddress,r,t),{depositTarget:{address:`0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC`,chainId:Number(m.eip155IdString),tokenSymbol:m.symbol,tokenAddress:m.address,tokenDecimals:m.decimals,isNative:m.isNative,amount:e.amount},correlation:{owner:`0x70997970C51812dc3A010C7d01b50e0d17dc79C8`}}},watchSettlement(e,t,n){I.add(t);let r=P.settlement;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>I.delete(t),{once:!0})},watchWithdrawableBalances(e,t,n){L.add(t);let r=P.withdrawableBalances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>L.delete(t),{once:!0})}};function q(e,t,r,a){U||(U=!0,V(()=>{if(a.aborted){U=!1;return}let o=v(f(),e,t,r,m),s=T(o,x);if(B({settlement:{status:`ready`,payload:o,raw:s,response:E(s,o)}}),i===`none`){U=!1;return}V(()=>{if(U=!1,a.aborted)return;let n=i===`succeeded`?y(f(),e,t,14,r,m):b(f(),`unknown`,e,t,r,m),o=T(n,x);B({settlement:{status:`ready`,payload:n,raw:o,response:E(o,n)}})},n.processingTerminal)},n.processingPendingDelay))}let J={triggerWithdrawalInProgress(e){let{amount:t,recipient:n}=Y(),r={...v(f(),t,n,G(),m),...e},i=T(r,x);B({settlement:{status:`ready`,payload:r,raw:i,response:E(i,r)}}),o!==null&&V(()=>J.triggerWithdrawalSuccess(),o)},triggerWithdrawalSuccess(e){let{amount:t,recipient:n}=Y(),r={...y(f(),t,n,14,G(),m),...e},i=T(r,x);B({settlement:{status:`ready`,payload:r,raw:i,response:E(i,r)}})},triggerWithdrawalFailed(e,t){let{amount:n,recipient:r}=Y(),i={...b(f(),e,n,r,G(),m),...t},a=T(i,x);B({settlement:{status:`ready`,payload:i,raw:a,response:E(a,i)}})},triggerQuoteFailure(e){B({quote:{status:`error`,error:e}})},reset(){for(let e of R)clearTimeout(e);R.clear(),U=!1,H=null,W=0,P=N,z()}};function Y(){return{amount:H?.amount??h,recipient:H?.recipient??l}}return{driver:K,triggers:J}}function S(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:C(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 C(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 w(e,t,n=m){let r=C(e.receiveAmount.value,e.receiveAsset.decimals).toString(),i=C(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 T(e,t=m){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:C(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:C(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 E(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 D(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 O(e){return Number.isInteger(e)?e.toFixed(2):e.toFixed(5)}export{g as buildDefaultWithdrawableBalances,b as buildDefaultWithdrawalFailurePayload,v as buildDefaultWithdrawalPendingPayload,_ as buildDefaultWithdrawalQuotePayload,y as buildDefaultWithdrawalSuccessPayload,x as createStridgeMockWithdrawDriver};
@@ -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]},{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?{}:{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})),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};
@@ -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};
@@ -0,0 +1,14 @@
1
+ import { FlowIdKey } from "./bus/flowIdRegistry.js";
2
+ import { useCurrentFlowId } from "./hooks/useCurrentFlowId.js";
3
+ import { FailureCode, FailurePayloadBase, StridgeEventBase, StridgeEventFlow, StridgeEventTier } from "./types/envelope.js";
4
+ import { DepositAmountChangedEvent, DepositAmountSubmittedEvent, DepositAssetClickedEvent, DepositBackClickedEvent, DepositCancelPhase, DepositCancelledEvent, DepositClosedEvent, DepositConfirmClickedEvent, DepositEvent, DepositFlowEvent, DepositMaxClickedEvent, DepositMethodClickedEvent, DepositOpenedEvent, DepositQuoteExpiredEvent, DepositQuoteFailedEvent, DepositQuoteRequestInput, DepositQuoteRequestedEvent, DepositQuoteResolvedEvent, DepositSettlementFailedEvent, DepositSettlementFailurePayload, DepositSettlementProgressedEvent, DepositSettlementResumedEvent, DepositSettlementSucceededEvent, DepositStepChangedEvent, DepositSubmissionBroadcastEvent, DepositSubmissionConfirmedEvent, DepositSubmissionDeclinedEvent, DepositSubmissionFailedEvent, DepositTransferAddressCopiedEvent, DepositTransferChainChangedEvent, DepositTransferTokenChangedEvent, DepositUiEvent } from "./types/deposit.js";
5
+ import { KitEvent, KitSupportClickedEvent, KitTermsClickedEvent } from "./types/kit.js";
6
+ import { WithdrawAmountChangedEvent, WithdrawBreakdownClickedEvent, WithdrawCancelPhase, WithdrawCancelledEvent, WithdrawClosedEvent, WithdrawEvent, WithdrawFlowEvent, WithdrawMaxClickedEvent, WithdrawOpenedEvent, WithdrawQuoteExpiredEvent, WithdrawQuoteFailedEvent, WithdrawQuoteRequestedEvent, WithdrawQuoteResolvedEvent, WithdrawReceiveChainChangedEvent, WithdrawReceiveTokenChangedEvent, WithdrawRecipientChangedEvent, WithdrawSettlementFailedEvent, WithdrawSettlementFailurePayload, WithdrawSettlementProgressedEvent, WithdrawSettlementSucceededEvent, WithdrawStepChangedEvent, WithdrawSubmissionBroadcastEvent, WithdrawSubmissionConfirmedEvent, WithdrawSubmissionDeclinedEvent, WithdrawSubmissionFailedEvent, WithdrawSubmitClickedEvent, WithdrawUiEvent } from "./types/withdraw.js";
7
+ import { FlowEvent, FlowEventType, StridgeEvent, StridgeEventType, UiEvent, UiEventType } from "./types/index.js";
8
+ import { useStridgeEvent } from "./hooks/useStridgeEvent.js";
9
+ import { EventHandler } from "./bus/createBus.js";
10
+ import { PublicStridgeEventBus, useStridgeEventBus } from "./hooks/useStridgeEventBus.js";
11
+ import { useStridgeEvents } from "./hooks/useStridgeEvents.js";
12
+ import { useStridgeFlowEvent } from "./hooks/useStridgeFlowEvent.js";
13
+ import { useStridgeFlowEvents } from "./hooks/useStridgeFlowEvents.js";
14
+ export { type DepositAmountChangedEvent, type DepositAmountSubmittedEvent, type DepositAssetClickedEvent, type DepositBackClickedEvent, type DepositCancelPhase, type DepositCancelledEvent, type DepositClosedEvent, type DepositConfirmClickedEvent, type DepositEvent, type DepositFlowEvent, type DepositMaxClickedEvent, type DepositMethodClickedEvent, type DepositOpenedEvent, type DepositQuoteExpiredEvent, type DepositQuoteFailedEvent, type DepositQuoteRequestInput, type DepositQuoteRequestedEvent, type DepositQuoteResolvedEvent, type DepositSettlementFailedEvent, type DepositSettlementFailurePayload, type DepositSettlementProgressedEvent, type DepositSettlementResumedEvent, type DepositSettlementSucceededEvent, type DepositStepChangedEvent, type DepositSubmissionBroadcastEvent, type DepositSubmissionConfirmedEvent, type DepositSubmissionDeclinedEvent, type DepositSubmissionFailedEvent, type DepositTransferAddressCopiedEvent, type DepositTransferChainChangedEvent, type DepositTransferTokenChangedEvent, type DepositUiEvent, type EventHandler, type FailureCode, type FailurePayloadBase, type FlowEvent, type FlowEventType, type FlowIdKey, type KitEvent, type KitSupportClickedEvent, type KitTermsClickedEvent, type PublicStridgeEventBus, type StridgeEvent, type StridgeEventBase, type StridgeEventFlow, type StridgeEventTier, type StridgeEventType, type UiEvent, type UiEventType, type WithdrawAmountChangedEvent, type WithdrawBreakdownClickedEvent, type WithdrawCancelPhase, type WithdrawCancelledEvent, type WithdrawClosedEvent, type WithdrawEvent, type WithdrawFlowEvent, type WithdrawMaxClickedEvent, type WithdrawOpenedEvent, type WithdrawQuoteExpiredEvent, type WithdrawQuoteFailedEvent, type WithdrawQuoteRequestedEvent, type WithdrawQuoteResolvedEvent, type WithdrawReceiveChainChangedEvent, type WithdrawReceiveTokenChangedEvent, type WithdrawRecipientChangedEvent, type WithdrawSettlementFailedEvent, type WithdrawSettlementFailurePayload, type WithdrawSettlementProgressedEvent, type WithdrawSettlementSucceededEvent, type WithdrawStepChangedEvent, type WithdrawSubmissionBroadcastEvent, type WithdrawSubmissionConfirmedEvent, type WithdrawSubmissionDeclinedEvent, type WithdrawSubmissionFailedEvent, type WithdrawSubmitClickedEvent, type WithdrawUiEvent, useCurrentFlowId, useStridgeEvent, useStridgeEventBus, useStridgeEvents, useStridgeFlowEvent, useStridgeFlowEvents };
@@ -0,0 +1 @@
1
+ import{useCurrentFlowId as e}from"./hooks/useCurrentFlowId.js";import{useStridgeEvent as t}from"./hooks/useStridgeEvent.js";import{useStridgeEventBus as n}from"./hooks/useStridgeEventBus.js";import{useStridgeEvents as r}from"./hooks/useStridgeEvents.js";import{useStridgeFlowEvent as i}from"./hooks/useStridgeFlowEvent.js";import{useStridgeFlowEvents as a}from"./hooks/useStridgeFlowEvents.js";import"./hooks/index.js";export{e as useCurrentFlowId,t as useStridgeEvent,n as useStridgeEventBus,r as useStridgeEvents,i as useStridgeFlowEvent,a as useStridgeFlowEvents};
@@ -0,0 +1 @@
1
+ function e({bus:e,flowIds:t,metadata:n},r){let i=null;if(r.flow!==`kit`&&(i=t.current(r.flow),i===null)){process.env.NODE_ENV!==`production`&&console.warn(`[stridge/kit] tried to emit "${r.type}" but no active "${r.flow}" flow — the event was dropped. This usually means an emit fired before "opened" or after the terminal event.`);return}let a=r.flow===`kit`?{}:n.read(r.flow),o={type:r.type,flow:r.flow,tier:r.tier,timestamp:Date.now(),flowId:i,payload:r.payload,metadata:a};e.emit(o)}function t(t,n,i,a){r(n,a.flow,`openFlowSession`),t.flowIds.open(n),t.metadata.snapshot(n,i),e(t,{...a,flow:n})}function n(t,n,i){r(n,i.flow,`closeFlowSession`),e(t,{...i,flow:n}),t.flowIds.close(n),t.metadata.clear(n)}function r(e,t,n){process.env.NODE_ENV!==`production`&&e!==t&&console.error(`[stridge/kit] ${n}() called with flow="${e}" but partial.flow="${t}". Override applied (envelope will carry "${e}") but this is a sign of a copy-paste bug in the emit site.`)}export{n as closeFlowSession,t as openFlowSession,e as publishEvent};