@stridge/kit 0.1.0-alpha.55 → 0.1.0-alpha.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KitProvider.d.ts +21 -0
- package/dist/KitProvider.js +1 -1
- package/dist/_internal/deposit/driver/index.d.ts +2 -2
- package/dist/deposit/compound/index.d.ts +11 -5
- package/dist/deposit/compound/index.js +1 -1
- package/dist/deposit/widgets/index.d.ts +3 -1
- package/dist/deposit/widgets/index.js +1 -1
- package/dist/drivers/stridge/createStridgeDepositDriver.js +1 -1
- package/dist/drivers/stridge-mock/createStridgeMockDriver.js +1 -1
- package/dist/drivers/stridge-mock/fixtures.js +1 -1
- package/dist/events/emit/useDepositEmissions.js +1 -1
- package/dist/flows/deposit/bindings/DepositBindings.d.ts +87 -0
- package/dist/flows/deposit/bindings/DepositBindings.js +1 -0
- package/dist/flows/deposit/bindings/index.d.ts +1 -0
- package/dist/flows/deposit/bindings/index.js +1 -0
- package/dist/flows/deposit/dialog/DepositDialog.js +1 -1
- package/dist/flows/deposit/driver/payloads.d.ts +35 -1
- package/dist/flows/deposit/driver/types.d.ts +10 -1
- package/dist/flows/deposit/orchestrator/controller.js +1 -1
- package/dist/flows/deposit/orchestrator/index.d.ts +5 -0
- package/dist/flows/deposit/orchestrator/reducer.d.ts +1 -0
- package/dist/flows/deposit/orchestrator/reducer.js +1 -1
- package/dist/flows/deposit/orchestrator/types.d.ts +107 -2
- package/dist/flows/deposit/orchestrator/useDeposit.js +1 -1
- package/dist/flows/deposit/shared/cash.d.ts +20 -0
- package/dist/flows/deposit/shared/cash.js +1 -0
- package/dist/flows/deposit/widgets/amount-entry/AmountEntry.d.ts +1 -1
- package/dist/flows/deposit/widgets/amount-entry/AmountEntry.js +1 -1
- package/dist/flows/deposit/widgets/cash-amount-entry/CashAmountEntry.d.ts +71 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/CashAmountEntry.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.d.ts +69 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.slots.d.ts +16 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.slots.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.styles.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/HeroLabel.d.ts +13 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/HeroLabel.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/MethodChip.d.ts +18 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/MethodChip.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/ReceiveChip.d.ts +14 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/components/ReceiveChip.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/context.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/index.d.ts +3 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/index.js +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/compound/types.d.ts +42 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/index.d.ts +1 -0
- package/dist/flows/deposit/widgets/cash-amount-entry/index.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/CashConfirm.d.ts +63 -0
- package/dist/flows/deposit/widgets/cash-confirm/CashConfirm.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/CashConfirm.d.ts +54 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/CashConfirm.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/CashConfirm.slots.d.ts +33 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/CashConfirm.slots.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/CashConfirm.styles.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/cashConfirmDimensions.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/ApplePayBody.d.ts +15 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/ApplePayBody.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Body.d.ts +22 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Body.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/BodyLabel.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardBody.d.ts +16 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardBody.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardInputRow.icons.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardInputRow.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardInputRow.keys.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardInputRow.state.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/CardInputRow.styles.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/GooglePayBody.d.ts +16 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/GooglePayBody.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Header.d.ts +21 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Header.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Summary.d.ts +17 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/Summary.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/components/cardFormat.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/context.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/index.d.ts +3 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/index.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/compound/types.d.ts +66 -0
- package/dist/flows/deposit/widgets/cash-confirm/index.d.ts +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/index.js +1 -0
- package/dist/flows/deposit/widgets/cash-confirm/mocks.js +1 -0
- package/dist/flows/deposit/widgets/deposit/Deposit.d.ts +6 -0
- package/dist/flows/deposit/widgets/deposit/Deposit.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/Deposit.d.ts +26 -1
- package/dist/flows/deposit/widgets/deposit/compound/Deposit.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/Deposit.slots.d.ts +6 -0
- package/dist/flows/deposit/widgets/deposit/compound/Deposit.slots.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/Deposit.styles.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/components/Guards.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/components/Method.d.ts +1 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/Method.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/components/MethodSection.d.ts +40 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/MethodSection.js +1 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/Methods.d.ts +16 -9
- package/dist/flows/deposit/widgets/deposit/compound/components/Methods.js +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/components/Rail.d.ts +18 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/Rail.js +1 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/RailPicker.d.ts +43 -0
- package/dist/flows/deposit/widgets/deposit/compound/components/RailPicker.js +1 -0
- package/dist/flows/deposit/widgets/deposit/compound/index.d.ts +1 -1
- package/dist/flows/deposit/widgets/deposit/compound/types.d.ts +100 -1
- package/dist/flows/deposit/widgets/transfer-crypto/compound/components/QrCode.js +1 -1
- package/dist/flows/withdraw/orchestrator/reducer.js +1 -1
- package/dist/i18n/locales/ar.js +1 -1
- package/dist/i18n/locales/es.js +1 -1
- package/dist/i18n/locales/source-keys.d.ts +1 -1
- package/dist/icons/index.d.ts +10 -1
- package/dist/icons/index.js +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +1 -1
- package/dist/package.js +1 -1
- package/dist/shared/icons/AmexIcon.d.ts +14 -0
- package/dist/shared/icons/AmexIcon.js +1 -0
- package/dist/shared/icons/ApplePayIcon.d.ts +15 -0
- package/dist/shared/icons/ApplePayIcon.js +1 -0
- package/dist/shared/icons/BitcoinIcon.d.ts +17 -0
- package/dist/shared/icons/BitcoinIcon.js +1 -0
- package/dist/shared/icons/CardIcon.d.ts +16 -0
- package/dist/shared/icons/CardIcon.js +1 -0
- package/dist/shared/icons/CashIcon.d.ts +16 -0
- package/dist/shared/icons/CashIcon.js +1 -0
- package/dist/shared/icons/DiscoverIcon.d.ts +14 -0
- package/dist/shared/icons/DiscoverIcon.js +1 -0
- package/dist/shared/icons/GooglePayIcon.d.ts +15 -0
- package/dist/shared/icons/GooglePayIcon.js +1 -0
- package/dist/shared/icons/MastercardIcon.d.ts +16 -0
- package/dist/shared/icons/MastercardIcon.js +1 -0
- package/dist/shared/icons/VisaIcon.d.ts +15 -0
- package/dist/shared/icons/VisaIcon.js +1 -0
- package/dist/shared/ui/Tabs/Tabs.d.ts +79 -0
- package/dist/shared/ui/Tabs/Tabs.js +1 -0
- package/dist/shared/ui/Tabs/Tabs.slots.d.ts +11 -0
- package/dist/shared/ui/Tabs/Tabs.slots.js +1 -0
- package/dist/shared/ui/Tabs/Tabs.styles.js +1 -0
- package/dist/shared/ui/Tabs/index.d.ts +2 -0
- package/dist/shared/ui/Tabs/index.js +1 -0
- package/dist/shared/utils/assertNever.js +1 -0
- package/dist/shared/widgets/amount-entry/compound/AmountEntry.d.ts +7 -2
- package/dist/shared/widgets/amount-entry/compound/AmountEntry.js +1 -1
- package/dist/shared/widgets/amount-entry/compound/AmountEntry.slots.d.ts +5 -0
- package/dist/shared/widgets/amount-entry/compound/AmountEntry.slots.js +1 -1
- package/dist/shared/widgets/amount-entry/compound/AmountEntry.styles.js +1 -1
- package/dist/shared/widgets/amount-entry/compound/components/Details.d.ts +34 -0
- package/dist/shared/widgets/amount-entry/compound/components/Details.js +1 -0
- package/dist/shared/widgets/amount-entry/compound/components/Footer.d.ts +2 -1
- package/dist/shared/widgets/amount-entry/compound/components/Footer.js +1 -1
- package/dist/shared/widgets/amount-entry/compound/index.d.ts +1 -1
- package/dist/shared/widgets/amount-entry/compound/types.d.ts +37 -1
- package/dist/shared/widgets/confirm-transfer/compound/components/Breakdown.js +1 -1
- package/dist/storage/context.d.ts +9 -1
- package/dist/storage/context.js +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/stridge/StridgeProvider.d.ts +10 -0
- package/dist/stridge/StridgeProvider.js +1 -1
- package/dist/stridge/stubs.js +1 -1
- package/dist/styles/index.css +275 -2
- package/dist/types.d.ts +3 -3
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.js +1 -1
- package/dist/withdraw/compound/index.d.ts +2 -2
- package/package.json +3 -3
package/dist/KitProvider.d.ts
CHANGED
|
@@ -58,9 +58,25 @@ declare function KitProvider({
|
|
|
58
58
|
support,
|
|
59
59
|
merchantContext,
|
|
60
60
|
terms,
|
|
61
|
+
dev,
|
|
61
62
|
attribution,
|
|
62
63
|
...scopeProps
|
|
63
64
|
}: KitProvider.Props): _$react_jsx_runtime0.JSX.Element;
|
|
65
|
+
/**
|
|
66
|
+
* Development / preview-only knobs for `<KitProvider />`. Grouped under a single `dev` prop so
|
|
67
|
+
* production integrations never reach for these accidentally. Intentionally not re-exported from
|
|
68
|
+
* any public entry barrel — `KitProvider` itself ships only from `@stridge/kit/_internal`.
|
|
69
|
+
*/
|
|
70
|
+
interface KitDevConfig {
|
|
71
|
+
/**
|
|
72
|
+
* Unlock the cash payment rail. The cash UI is currently UI-only (no backend), so the rail is
|
|
73
|
+
* fused off everywhere by default; this knob is the only switch that lights it up, and it
|
|
74
|
+
* lives here on the `_internal` provider so production `<StridgeProvider />` consumers cannot
|
|
75
|
+
* surface cash before it ships. The host's `depositMethods.cashRail.enabled` opt-in is still
|
|
76
|
+
* required *in addition* to this gate. Remove once the cash backend lands.
|
|
77
|
+
*/
|
|
78
|
+
cashRail?: boolean;
|
|
79
|
+
}
|
|
64
80
|
declare namespace KitProvider {
|
|
65
81
|
interface Props extends KitScope.Props {
|
|
66
82
|
/**
|
|
@@ -125,6 +141,11 @@ declare namespace KitProvider {
|
|
|
125
141
|
* Merchant-configurable terms link for direct `<KitProvider />` mounts.
|
|
126
142
|
*/
|
|
127
143
|
terms?: TermsConfig;
|
|
144
|
+
/**
|
|
145
|
+
* Development / preview-only knobs. See {@link KitDevConfig}. Grouped under `dev` so
|
|
146
|
+
* production integrations never reach for them accidentally.
|
|
147
|
+
*/
|
|
148
|
+
dev?: KitDevConfig;
|
|
128
149
|
}
|
|
129
150
|
}
|
|
130
151
|
//#endregion
|
package/dist/KitProvider.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{KitStorageProvider as e}from"./storage/context.js";import"./storage/index.js";import{ActivityDriverProvider as t}from"./flows/activity/driver/context.js";import{getLocaleDirection as n}from"./shared/i18n/getLocaleDirection.js";import{KitI18nProvider as r}from"./shared/i18n/KitI18nProvider.js";import"./i18n/index.js";import{ActivityControllerProvider as i}from"./flows/activity/orchestrator/controller.js";import{
|
|
1
|
+
"use client";import{KitStorageProvider as e}from"./storage/context.js";import"./storage/index.js";import{ActivityDriverProvider as t}from"./flows/activity/driver/context.js";import{getLocaleDirection as n}from"./shared/i18n/getLocaleDirection.js";import{KitI18nProvider as r}from"./shared/i18n/KitI18nProvider.js";import"./i18n/index.js";import{ActivityControllerProvider as i}from"./flows/activity/orchestrator/controller.js";import{DepositBindingsProvider as a}from"./flows/deposit/bindings/DepositBindings.js";import"./flows/deposit/bindings/index.js";import{DepositDriverProvider as o}from"./flows/deposit/driver/context.js";import{GatewayController as s}from"./flows/deposit/orchestrator/controller.js";import{WithdrawBindingsProvider as c}from"./flows/withdraw/bindings/WithdrawBindings.js";import"./flows/withdraw/bindings/index.js";import{WithdrawDriverProvider as l}from"./flows/withdraw/driver/context.js";import{WithdrawControllerProvider as u}from"./flows/withdraw/orchestrator/controller.js";import{KitScope as d}from"./scope/KitScope.js";import"./scope/index.js";import{SupportConfigContext as f}from"./shared/support/SupportConfigContext.js";import{TermsConfigContext as p}from"./shared/terms/TermsConfigContext.js";import{useMemo as m}from"react";import{jsx as h}from"react/jsx-runtime";import{LazyMotion as g,domMax as _}from"motion/react";function v({children:v,i18n:y,direction:b,deposit:x,depositMethods:S,withdraw:C,activity:w,storage:T,storageNamespace:E,support:D,merchantContext:O,terms:k,dev:A,attribution:j=`visible`,...M}){let N=n(y?.locale),P=v;C&&(P=h(c,{children:h(l,{driver:C,children:h(u,{children:P})})})),x&&(P=h(a,{children:h(o,{driver:x,children:h(s,{methodsConfig:S,cashRailUnlocked:A?.cashRail===!0,children:P})})})),w&&(P=h(t,{driver:w,children:h(i,{children:P})}));let F=m(()=>({config:D,merchantContext:O??null}),[D,O]),I=D!==void 0||O!==void 0,L=m(()=>({config:k}),[k]),R=k!==void 0,z=h(r,{locale:y?.locale,messages:y?.messages,children:h(d,{...M,direction:b??N,locale:y?.locale,attribution:j,children:h(e,{storage:T,namespace:E,children:P})})});return I&&(z=h(f.Provider,{value:F,children:z})),R&&(z=h(p.Provider,{value:L,children:z})),h(g,{features:_,children:z})}export{v as KitProvider};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Entity, SettlementFailureKind, TxRef } from "../../../shared/driver/types.js";
|
|
2
|
-
import { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload } from "../../../flows/deposit/driver/payloads.js";
|
|
2
|
+
import { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, CashMethodCapability, CashMethodsPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload } from "../../../flows/deposit/driver/payloads.js";
|
|
3
3
|
import { DepositDriver, DepositSnapshot, FetchActiveSettlementInput, RequestQuoteInput, SettlementSnapshot, SubmitDepositInput, WatchSettlementInput, WatchSourceTxInput } from "../../../flows/deposit/driver/types.js";
|
|
4
4
|
import { DepositDriverProvider, KitDriverContext, useDepositDriverInstance, useDepositSnapshot } from "../../../flows/deposit/driver/context.js";
|
|
5
|
-
export { type AcceptedAssetPayload, type AddressItemPayload, type AssetPayload, type BalanceItemPayload, type BrandPayload, type ChainPayload, type DepositDriver, DepositDriverProvider, type DepositSnapshot, type Entity, type FetchActiveSettlementInput, KitDriverContext, type QuoteBreakdownPayload, type QuotePayload, type QuoteRoutePayload, type RequestQuoteInput, type SettlementFailureKind, type SettlementFailurePayload, type SettlementPayload, type SettlementPendingPayload, type SettlementSnapshot, type SettlementSuccessPayload, type SourceWalletPayload, type SubmitDepositInput, type TargetPayload, type TxRef, type WalletInfo, type WalletPayload, type WatchSettlementInput, type WatchSourceTxInput, useDepositDriverInstance, useDepositSnapshot };
|
|
5
|
+
export { type AcceptedAssetPayload, type AddressItemPayload, type AssetPayload, type BalanceItemPayload, type BrandPayload, type CashMethodCapability, type CashMethodsPayload, type ChainPayload, type DepositDriver, DepositDriverProvider, type DepositSnapshot, type Entity, type FetchActiveSettlementInput, KitDriverContext, type QuoteBreakdownPayload, type QuotePayload, type QuoteRoutePayload, type RequestQuoteInput, type SettlementFailureKind, type SettlementFailurePayload, type SettlementPayload, type SettlementPendingPayload, type SettlementSnapshot, type SettlementSuccessPayload, type SourceWalletPayload, type SubmitDepositInput, type TargetPayload, type TxRef, type WalletInfo, type WalletPayload, type WatchSettlementInput, type WatchSourceTxInput, useDepositDriverInstance, useDepositSnapshot };
|
|
@@ -11,7 +11,16 @@ import { PROCESSING_STATE_SLOTS, ProcessingStateSlot } from "../../shared/widget
|
|
|
11
11
|
import { SuccessStateActionsProps, SuccessStateAsset, SuccessStateAssetValueProps, SuccessStateBodyProps, SuccessStateDetailProps, SuccessStateDetailsProps, SuccessStateDialogProps, SuccessStateExplorer, SuccessStateHeaderProps, SuccessStateHeadlineProps, SuccessStateMoreDetailsProps, SuccessStateProps, SuccessStateRouteValueProps, SuccessStateRowProps, SuccessStateSourceWallet, SuccessStateStatusPillProps, SuccessStateTxRef } from "../../shared/widgets/success-state/compound/types.js";
|
|
12
12
|
import { SuccessState } from "../../shared/widgets/success-state/compound/SuccessState.js";
|
|
13
13
|
import { SUCCESS_STATE_SLOTS, SuccessStateSlot } from "../../shared/widgets/success-state/compound/SuccessState.slots.js";
|
|
14
|
-
import {
|
|
14
|
+
import { AmountEntryBodyProps, AmountEntryDetailsProps, AmountEntryDetailsRowProps, AmountEntryDialogProps, AmountEntryFlowProps, AmountEntryFooterProps, AmountEntryHeaderProps, AmountEntryHeroProps, AmountEntryNoticeProps, AmountEntryPercentPreset, AmountEntryPillsProps, AmountEntryProps, AmountEntryToken } from "../../shared/widgets/amount-entry/compound/types.js";
|
|
15
|
+
import { AmountEntry } from "../../shared/widgets/amount-entry/compound/AmountEntry.js";
|
|
16
|
+
import { AMOUNT_ENTRY_SLOTS, AmountEntrySlot } from "../../shared/widgets/amount-entry/compound/AmountEntry.slots.js";
|
|
17
|
+
import { CashAmountEntryDialogProps, CashAmountEntryHeroLabelProps, CashAmountEntryMethodChipProps, CashAmountEntryProps } from "../../flows/deposit/widgets/cash-amount-entry/compound/types.js";
|
|
18
|
+
import { CashAmountEntry } from "../../flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.js";
|
|
19
|
+
import { CASH_AMOUNT_ENTRY_SLOTS, CashAmountEntrySlot } from "../../flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.slots.js";
|
|
20
|
+
import { CashConfirmBodyProps, CashConfirmDialogProps, CashConfirmHeaderProps, CashConfirmMethodBodyProps, CashConfirmProps, CashConfirmSummaryProps } from "../../flows/deposit/widgets/cash-confirm/compound/types.js";
|
|
21
|
+
import { CashConfirm } from "../../flows/deposit/widgets/cash-confirm/compound/CashConfirm.js";
|
|
22
|
+
import { CASH_CONFIRM_SLOTS, CashConfirmSlot } from "../../flows/deposit/widgets/cash-confirm/compound/CashConfirm.slots.js";
|
|
23
|
+
import { DepositBodyProps, DepositDialogProps, DepositHeaderProps, DepositMethodInput, DepositMethodOption, DepositMethodProps, DepositMethodSectionProps, DepositMethodsProps, DepositProps, DepositRail, DepositRailDescriptor, DepositRailPickerProps, DepositRailProps } from "../../flows/deposit/widgets/deposit/compound/types.js";
|
|
15
24
|
import { DepositStepsProps } from "../../flows/deposit/widgets/deposit/compound/components/Steps.js";
|
|
16
25
|
import { Deposit } from "../../flows/deposit/widgets/deposit/compound/Deposit.js";
|
|
17
26
|
import { DEPOSIT_SLOTS, DepositSlot } from "../../flows/deposit/widgets/deposit/compound/Deposit.slots.js";
|
|
@@ -20,10 +29,7 @@ import { DepositStatusBanner } from "../../flows/deposit/widgets/deposit-status-
|
|
|
20
29
|
import { DEPOSIT_STATUS_BANNER_SLOTS, DepositStatusBannerSlot } from "../../flows/deposit/widgets/deposit-status-banner/compound/DepositStatusBanner.slots.js";
|
|
21
30
|
import { TransferCrypto } from "../../flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.js";
|
|
22
31
|
import { TRANSFER_CRYPTO_SLOTS, TransferCryptoSlot } from "../../flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.slots.js";
|
|
23
|
-
import { AmountEntryBodyProps, AmountEntryDialogProps, AmountEntryFlowProps, AmountEntryFooterProps, AmountEntryHeaderProps, AmountEntryHeroProps, AmountEntryPercentPreset, AmountEntryPillsProps, AmountEntryProps, AmountEntryToken } from "../../shared/widgets/amount-entry/compound/types.js";
|
|
24
|
-
import { AmountEntry } from "../../shared/widgets/amount-entry/compound/AmountEntry.js";
|
|
25
|
-
import { AMOUNT_ENTRY_SLOTS, AmountEntrySlot } from "../../shared/widgets/amount-entry/compound/AmountEntry.slots.js";
|
|
26
32
|
import { AssetOption, AssetPickerAssetProps, AssetPickerBodyProps, AssetPickerDialogProps, AssetPickerFooterProps, AssetPickerHeaderProps, AssetPickerListProps, AssetPickerProps, AssetPickerToken } from "../../shared/widgets/asset-picker/compound/types.js";
|
|
27
33
|
import { AssetPicker } from "../../shared/widgets/asset-picker/compound/AssetPicker.js";
|
|
28
34
|
import { ASSET_PICKER_SLOTS, AssetPickerSlot } from "../../shared/widgets/asset-picker/compound/AssetPicker.slots.js";
|
|
29
|
-
export { AMOUNT_ENTRY_SLOTS, ASSET_PICKER_SLOTS, AmountEntry, AmountEntryBodyProps, AmountEntryDialogProps, AmountEntryFlowProps, AmountEntryFooterProps, AmountEntryHeaderProps, AmountEntryHeroProps, AmountEntryPercentPreset, AmountEntryPillsProps, AmountEntryProps, AmountEntrySlot, AmountEntryToken, AssetOption, AssetPicker, AssetPickerAssetProps, AssetPickerBodyProps, AssetPickerDialogProps, AssetPickerFooterProps, AssetPickerHeaderProps, AssetPickerListProps, AssetPickerProps, AssetPickerSlot, AssetPickerToken, CONFIRM_TRANSFER_SLOTS, ConfirmTransfer, ConfirmTransferAmountsProps, ConfirmTransferBodyProps, ConfirmTransferBreakdown, ConfirmTransferBreakdownPercentRow, ConfirmTransferBreakdownProps, ConfirmTransferBreakdownTextRow, ConfirmTransferBreakdownUsdRow, ConfirmTransferDialogProps, ConfirmTransferDisclaimerProps, ConfirmTransferFooterProps, ConfirmTransferHeaderProps, ConfirmTransferHeroProps, ConfirmTransferMetaProps, ConfirmTransferProps, ConfirmTransferSlot, ConfirmTransferToken, ConfirmTransferTransfer, DEPOSIT_SLOTS, DEPOSIT_STATUS_BANNER_SLOTS, Deposit, DepositBodyProps, DepositDialogProps, DepositHeaderProps, DepositMethodInput, DepositMethodOption, DepositMethodProps, DepositMethodsProps, DepositProps, DepositSlot, DepositStatusBanner, DepositStatusBannerAsset, DepositStatusBannerBodyProps, DepositStatusBannerCloseProps, DepositStatusBannerDetailProps, DepositStatusBannerDetailsProps, DepositStatusBannerFooterProps, DepositStatusBannerHeroProps, DepositStatusBannerKind, DepositStatusBannerPrimaryActionProps, DepositStatusBannerProps, DepositStatusBannerRowProps, DepositStatusBannerSlot, DepositStatusBannerToggleProps, DepositStatusBannerTxRef, DepositStepsProps, ERROR_STATE_SLOTS, ErrorState, ErrorStateActionsProps, ErrorStateAsset, ErrorStateAssetValueProps, ErrorStateBodyProps, ErrorStateDestination, ErrorStateDetailProps, ErrorStateDetailsProps, ErrorStateDialogProps, ErrorStateDisclosureChevronProps, ErrorStateHeaderProps, ErrorStateHelp, ErrorStateHelpInfoProps, ErrorStateHeroProps, ErrorStateMoreDetailsProps, ErrorStateProps, ErrorStateRowProps, ErrorStateSlot, ErrorStateSourceWallet, ErrorStateStatusValueProps, ErrorStateTxRef, PROCESSING_STATE_SLOTS, ProcessingState, ProcessingStateAsset, ProcessingStateBodyProps, ProcessingStateDetailProps, ProcessingStateDetailsProps, ProcessingStateDialogProps, ProcessingStateHeaderProps, ProcessingStateHeroProps, ProcessingStateProps, ProcessingStateRowProps, ProcessingStateSlot, ProcessingStateSourceWallet, ProcessingStateStatusPillProps, ProcessingStateTxRef, SUCCESS_STATE_SLOTS, SuccessState, SuccessStateActionsProps, SuccessStateAsset, SuccessStateAssetValueProps, SuccessStateBodyProps, SuccessStateDetailProps, SuccessStateDetailsProps, SuccessStateDialogProps, SuccessStateExplorer, SuccessStateHeaderProps, SuccessStateHeadlineProps, SuccessStateMoreDetailsProps, SuccessStateProps, SuccessStateRouteValueProps, SuccessStateRowProps, SuccessStateSlot, SuccessStateSourceWallet, SuccessStateStatusPillProps, SuccessStateTxRef, TRANSFER_CRYPTO_SLOTS, TransferCrypto, TransferCryptoAsset, TransferCryptoBodyProps, TransferCryptoChain, TransferCryptoDialogProps, TransferCryptoDisclosureProps, TransferCryptoHeaderProps, TransferCryptoProps, TransferCryptoSlot, TransferCryptoToken };
|
|
35
|
+
export { AMOUNT_ENTRY_SLOTS, ASSET_PICKER_SLOTS, AmountEntry, AmountEntryBodyProps, AmountEntryDetailsProps, AmountEntryDetailsRowProps, AmountEntryDialogProps, AmountEntryFlowProps, AmountEntryFooterProps, AmountEntryHeaderProps, AmountEntryHeroProps, AmountEntryNoticeProps, AmountEntryPercentPreset, AmountEntryPillsProps, AmountEntryProps, AmountEntrySlot, AmountEntryToken, AssetOption, AssetPicker, AssetPickerAssetProps, AssetPickerBodyProps, AssetPickerDialogProps, AssetPickerFooterProps, AssetPickerHeaderProps, AssetPickerListProps, AssetPickerProps, AssetPickerSlot, AssetPickerToken, CASH_AMOUNT_ENTRY_SLOTS, CASH_CONFIRM_SLOTS, CONFIRM_TRANSFER_SLOTS, CashAmountEntry, CashAmountEntryDialogProps, CashAmountEntryHeroLabelProps, CashAmountEntryMethodChipProps, CashAmountEntryProps, CashAmountEntrySlot, CashConfirm, CashConfirmBodyProps, CashConfirmDialogProps, CashConfirmHeaderProps, CashConfirmMethodBodyProps, CashConfirmProps, CashConfirmSlot, CashConfirmSummaryProps, ConfirmTransfer, ConfirmTransferAmountsProps, ConfirmTransferBodyProps, ConfirmTransferBreakdown, ConfirmTransferBreakdownPercentRow, ConfirmTransferBreakdownProps, ConfirmTransferBreakdownTextRow, ConfirmTransferBreakdownUsdRow, ConfirmTransferDialogProps, ConfirmTransferDisclaimerProps, ConfirmTransferFooterProps, ConfirmTransferHeaderProps, ConfirmTransferHeroProps, ConfirmTransferMetaProps, ConfirmTransferProps, ConfirmTransferSlot, ConfirmTransferToken, ConfirmTransferTransfer, DEPOSIT_SLOTS, DEPOSIT_STATUS_BANNER_SLOTS, Deposit, DepositBodyProps, DepositDialogProps, DepositHeaderProps, DepositMethodInput, DepositMethodOption, DepositMethodProps, DepositMethodSectionProps, DepositMethodsProps, DepositProps, DepositRail, DepositRailDescriptor, DepositRailPickerProps, DepositRailProps, DepositSlot, DepositStatusBanner, DepositStatusBannerAsset, DepositStatusBannerBodyProps, DepositStatusBannerCloseProps, DepositStatusBannerDetailProps, DepositStatusBannerDetailsProps, DepositStatusBannerFooterProps, DepositStatusBannerHeroProps, DepositStatusBannerKind, DepositStatusBannerPrimaryActionProps, DepositStatusBannerProps, DepositStatusBannerRowProps, DepositStatusBannerSlot, DepositStatusBannerToggleProps, DepositStatusBannerTxRef, DepositStepsProps, ERROR_STATE_SLOTS, ErrorState, ErrorStateActionsProps, ErrorStateAsset, ErrorStateAssetValueProps, ErrorStateBodyProps, ErrorStateDestination, ErrorStateDetailProps, ErrorStateDetailsProps, ErrorStateDialogProps, ErrorStateDisclosureChevronProps, ErrorStateHeaderProps, ErrorStateHelp, ErrorStateHelpInfoProps, ErrorStateHeroProps, ErrorStateMoreDetailsProps, ErrorStateProps, ErrorStateRowProps, ErrorStateSlot, ErrorStateSourceWallet, ErrorStateStatusValueProps, ErrorStateTxRef, PROCESSING_STATE_SLOTS, ProcessingState, ProcessingStateAsset, ProcessingStateBodyProps, ProcessingStateDetailProps, ProcessingStateDetailsProps, ProcessingStateDialogProps, ProcessingStateHeaderProps, ProcessingStateHeroProps, ProcessingStateProps, ProcessingStateRowProps, ProcessingStateSlot, ProcessingStateSourceWallet, ProcessingStateStatusPillProps, ProcessingStateTxRef, SUCCESS_STATE_SLOTS, SuccessState, SuccessStateActionsProps, SuccessStateAsset, SuccessStateAssetValueProps, SuccessStateBodyProps, SuccessStateDetailProps, SuccessStateDetailsProps, SuccessStateDialogProps, SuccessStateExplorer, SuccessStateHeaderProps, SuccessStateHeadlineProps, SuccessStateMoreDetailsProps, SuccessStateProps, SuccessStateRouteValueProps, SuccessStateRowProps, SuccessStateSlot, SuccessStateSourceWallet, SuccessStateStatusPillProps, SuccessStateTxRef, TRANSFER_CRYPTO_SLOTS, TransferCrypto, TransferCryptoAsset, TransferCryptoBodyProps, TransferCryptoChain, TransferCryptoDialogProps, TransferCryptoDisclosureProps, TransferCryptoHeaderProps, TransferCryptoProps, TransferCryptoSlot, TransferCryptoToken };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{AMOUNT_ENTRY_SLOTS as e}from"../../shared/widgets/amount-entry/compound/AmountEntry.slots.js";import{AmountEntry as t}from"../../shared/widgets/amount-entry/compound/AmountEntry.js";import"../../shared/widgets/amount-entry/compound/index.js";import{CASH_AMOUNT_ENTRY_SLOTS as n}from"../../flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.slots.js";import{CashAmountEntry as r}from"../../flows/deposit/widgets/cash-amount-entry/compound/CashAmountEntry.js";import"../../flows/deposit/widgets/cash-amount-entry/compound/index.js";import{CASH_CONFIRM_SLOTS as i}from"../../flows/deposit/widgets/cash-confirm/compound/CashConfirm.slots.js";import{CashConfirm as a}from"../../flows/deposit/widgets/cash-confirm/compound/CashConfirm.js";import"../../flows/deposit/widgets/cash-confirm/compound/index.js";import{DEPOSIT_SLOTS as o}from"../../flows/deposit/widgets/deposit/compound/Deposit.slots.js";import{Deposit as s}from"../../flows/deposit/widgets/deposit/compound/Deposit.js";import"../../flows/deposit/widgets/deposit/compound/index.js";import{DEPOSIT_STATUS_BANNER_SLOTS as c}from"../../flows/deposit/widgets/deposit-status-banner/compound/DepositStatusBanner.slots.js";import{DepositStatusBanner as l}from"../../flows/deposit/widgets/deposit-status-banner/compound/DepositStatusBanner.js";import"../../flows/deposit/widgets/deposit-status-banner/compound/index.js";import{TRANSFER_CRYPTO_SLOTS as u}from"../../flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.slots.js";import{TransferCrypto as d}from"../../flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.js";import"../../flows/deposit/widgets/transfer-crypto/compound/index.js";import{ASSET_PICKER_SLOTS as f}from"../../shared/widgets/asset-picker/compound/AssetPicker.slots.js";import{AssetPicker as p}from"../../shared/widgets/asset-picker/compound/AssetPicker.js";import"../../shared/widgets/asset-picker/compound/index.js";import{CONFIRM_TRANSFER_SLOTS as m}from"../../shared/widgets/confirm-transfer/compound/ConfirmTransfer.slots.js";import{ConfirmTransfer as h}from"../../shared/widgets/confirm-transfer/compound/ConfirmTransfer.js";import"../../shared/widgets/confirm-transfer/compound/index.js";import{ERROR_STATE_SLOTS as g}from"../../shared/widgets/error-state/compound/ErrorState.slots.js";import{ErrorState as _}from"../../shared/widgets/error-state/compound/ErrorState.js";import"../../shared/widgets/error-state/compound/index.js";import{PROCESSING_STATE_SLOTS as v}from"../../shared/widgets/processing-state/compound/ProcessingState.slots.js";import{ProcessingState as y}from"../../shared/widgets/processing-state/compound/ProcessingState.js";import"../../shared/widgets/processing-state/compound/index.js";import{SUCCESS_STATE_SLOTS as b}from"../../shared/widgets/success-state/compound/SuccessState.slots.js";import{SuccessState as x}from"../../shared/widgets/success-state/compound/SuccessState.js";import"../../shared/widgets/success-state/compound/index.js";export{e as AMOUNT_ENTRY_SLOTS,f as ASSET_PICKER_SLOTS,t as AmountEntry,p as AssetPicker,n as CASH_AMOUNT_ENTRY_SLOTS,i as CASH_CONFIRM_SLOTS,m as CONFIRM_TRANSFER_SLOTS,r as CashAmountEntry,a as CashConfirm,h as ConfirmTransfer,o as DEPOSIT_SLOTS,c as DEPOSIT_STATUS_BANNER_SLOTS,s as Deposit,l as DepositStatusBanner,g as ERROR_STATE_SLOTS,_ as ErrorState,v as PROCESSING_STATE_SLOTS,y as ProcessingState,b as SUCCESS_STATE_SLOTS,x as SuccessState,u as TRANSFER_CRYPTO_SLOTS,d as TransferCrypto};
|
|
@@ -4,6 +4,8 @@ import { DepositActivityDetail } from "../../flows/deposit/widgets/activity/Depo
|
|
|
4
4
|
import { DepositActivityList } from "../../flows/deposit/widgets/activity/DepositActivityList.js";
|
|
5
5
|
import { AmountEntry } from "../../flows/deposit/widgets/amount-entry/AmountEntry.js";
|
|
6
6
|
import { AssetPicker } from "../../flows/deposit/widgets/asset-picker/AssetPicker.js";
|
|
7
|
+
import { CashAmountEntry } from "../../flows/deposit/widgets/cash-amount-entry/CashAmountEntry.js";
|
|
8
|
+
import { CashConfirm } from "../../flows/deposit/widgets/cash-confirm/CashConfirm.js";
|
|
7
9
|
import { ConfirmDeposit } from "../../flows/deposit/widgets/confirm-deposit/ConfirmDeposit.js";
|
|
8
10
|
import { Deposit } from "../../flows/deposit/widgets/deposit/Deposit.js";
|
|
9
11
|
import { DepositStatusBanner } from "../../flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.js";
|
|
@@ -11,4 +13,4 @@ import { ErrorState } from "../../flows/deposit/widgets/error-state/ErrorState.j
|
|
|
11
13
|
import { ProcessingState } from "../../flows/deposit/widgets/processing-state/ProcessingState.js";
|
|
12
14
|
import { SuccessState } from "../../flows/deposit/widgets/success-state/SuccessState.js";
|
|
13
15
|
import { TransferCrypto } from "../../flows/deposit/widgets/transfer-crypto/TransferCrypto.js";
|
|
14
|
-
export { AmountEntry, AssetPicker, ConfirmDeposit, Deposit, DepositActivityDetail, DepositActivityList, DepositStatusBanner, DialogShell, type DialogShellControls, type DialogShellProps, ErrorState, type Presentation, type PresentationConfig, type PresentationMode, ProcessingState, SuccessState, TransferCrypto };
|
|
16
|
+
export { AmountEntry, AssetPicker, CashAmountEntry, CashConfirm, ConfirmDeposit, Deposit, DepositActivityDetail, DepositActivityList, DepositStatusBanner, DialogShell, type DialogShellControls, type DialogShellProps, ErrorState, type Presentation, type PresentationConfig, type PresentationMode, ProcessingState, SuccessState, TransferCrypto };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DialogShell as e}from"../../shared/dialog/DialogShell.js";import{DepositActivityDetail as t}from"../../flows/deposit/widgets/activity/DepositActivityDetail.js";import{DepositActivityList as n}from"../../flows/deposit/widgets/activity/DepositActivityList.js";import"../../flows/deposit/widgets/activity/index.js";import{AmountEntry as r}from"../../flows/deposit/widgets/amount-entry/AmountEntry.js";import"../../flows/deposit/widgets/amount-entry/index.js";import{AssetPicker as i}from"../../flows/deposit/widgets/asset-picker/AssetPicker.js";import"../../flows/deposit/widgets/asset-picker/index.js";import{
|
|
1
|
+
import{DialogShell as e}from"../../shared/dialog/DialogShell.js";import{DepositActivityDetail as t}from"../../flows/deposit/widgets/activity/DepositActivityDetail.js";import{DepositActivityList as n}from"../../flows/deposit/widgets/activity/DepositActivityList.js";import"../../flows/deposit/widgets/activity/index.js";import{AmountEntry as r}from"../../flows/deposit/widgets/amount-entry/AmountEntry.js";import"../../flows/deposit/widgets/amount-entry/index.js";import{AssetPicker as i}from"../../flows/deposit/widgets/asset-picker/AssetPicker.js";import"../../flows/deposit/widgets/asset-picker/index.js";import{CashAmountEntry as a}from"../../flows/deposit/widgets/cash-amount-entry/CashAmountEntry.js";import"../../flows/deposit/widgets/cash-amount-entry/index.js";import{CashConfirm as o}from"../../flows/deposit/widgets/cash-confirm/CashConfirm.js";import"../../flows/deposit/widgets/cash-confirm/index.js";import{ConfirmDeposit as s}from"../../flows/deposit/widgets/confirm-deposit/ConfirmDeposit.js";import"../../flows/deposit/widgets/confirm-deposit/index.js";import{Deposit as c}from"../../flows/deposit/widgets/deposit/Deposit.js";import"../../flows/deposit/widgets/deposit/index.js";import{DepositStatusBanner as l}from"../../flows/deposit/widgets/deposit-status-banner/DepositStatusBanner.js";import"../../flows/deposit/widgets/deposit-status-banner/index.js";import{ErrorState as u}from"../../flows/deposit/widgets/error-state/ErrorState.js";import"../../flows/deposit/widgets/error-state/index.js";import{ProcessingState as d}from"../../flows/deposit/widgets/processing-state/ProcessingState.js";import"../../flows/deposit/widgets/processing-state/index.js";import{SuccessState as f}from"../../flows/deposit/widgets/success-state/SuccessState.js";import"../../flows/deposit/widgets/success-state/index.js";import{TransferCrypto as p}from"../../flows/deposit/widgets/transfer-crypto/TransferCrypto.js";import"../../flows/deposit/widgets/transfer-crypto/index.js";export{r as AmountEntry,i as AssetPicker,a as CashAmountEntry,o as CashConfirm,s as ConfirmDeposit,c as Deposit,t as DepositActivityDetail,n as DepositActivityList,l as DepositStatusBanner,e as DialogShell,u as ErrorState,d as ProcessingState,f as SuccessState,p as TransferCrypto};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{NATIVE_QUOTE_ADDRESS as t,isStablecoinSymbol as n,toBaseUnits as r}from"./internal/encoding.js";import{resolveSdkEnv as i}from"./internal/env.js";import{buildKitMetadata as a}from"./internal/metadata.js";import{pollOnce as o}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as s,signAndConfirm as c}from"./internal/signAndConfirm.js";import{buildEvmChainsParam as l}from"./internal/supportedChains.js";import{withOneShotRetry as u}from"./internal/retry.js";import{pickRelevantSettlement as d}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{createEntityStore as f}from"../stridge-mock/store.js";import{startPoll as p}from"./poll.js";import{formatUsd as m}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as h,buildRoutableAllowlist as g}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as _}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as v}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as ee}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as te}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as ne}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as y}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as re}from"../../shared/utils/explorers.js";import{createStridgeRpc as ie}from"./rpc.js";import{createWagmiSigner as b}from"./wagmiSigner.js";import{createApiClient as x}from"@stridge/sdk";function S(S){let T=x({projectKey:S.projectKey,env:i(S.environment)}),E=S.pollIntervals??{},ce=E.detectionMs??2e3,le=E.processingMs??2e3,D=E.terminalMs??1e4,O=E.balancesMs??6e4,k=S.minAmountUsd,A=S.maxAmountUsd,j=S.getI18n??(()=>e),M={...re(),...S.explorers??{}},N=S.destination.network_id,P=S.destination.asset_symbol,F=S.destination.to_address??S.userAddress,ue=S.rpc??ie(),I={address:S.userAddress},L=f({brand:{status:`idle`},target:{status:`idle`},addresses:{status:`idle`},balances:{status:`idle`},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:y(I),raw:I,response:I}}),R,z,B,V,H=S.wagmiConfig?b({wagmiConfig:S.wagmiConfig,getSupportedAssets:()=>z,explorers:M}):void 0;function U(){if(z)return B??=g(z),B}let W=!1,G=Promise.resolve(),K=!1,q=Promise.resolve(null),J=null;function Y(){W||(W=!0,G=de(),q=fe())}let X;async function Z(e){try{if(await G,e.aborted)return null;let t=l(z),n=await T.balance.onchain(S.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}});if(e.aborted)return null;J=Date.now();let r=U();if(!r)return L.update({balances:{status:`ready`,payload:[],raw:n,response:n}}),null;let i=h(n,{i18n:j(),routable:r,minAmountUsd:k,...S.resolveTokenIcon?{resolveTokenIcon:S.resolveTokenIcon}:{}});return L.update({balances:{status:`ready`,payload:i,raw:n,response:n},wallet:Q(i,j())}),n}catch{return null}}async function de(){L.update({brand:{status:`loading`},target:{status:`loading`},addresses:{status:`loading`},balances:{status:`loading`}});try{let[e,t]=await Promise.all([u(()=>T.gateway.start({owner:S.userAddress,destination:{network_id:N,to_address:F,asset_symbol:P},metadata:a({flow:`deposit`,...S.metadata?{hostMetadata:S.metadata}:{},extras:{destination:{networkId:N,assetSymbol:P}}})})),S.catalog?S.catalog.getSupportedAssets():u(()=>T.gateway.assets()).catch(()=>null)]);R=e;let n=e.metadata?.brand_name;typeof n==`string`&&n.trim().length>0&&(V=n.trim());let r=j();if(t&&(z=t,B=void 0),L.update({brand:{status:`ready`,payload:te(e.metadata),raw:e.metadata,response:e},addresses:{status:`ready`,payload:ee(e.deposit_addresses,{i18n:r,explorers:M,...t?{chainLogos:w(t)}:{},...t?{minAmountUsdByEip155Id:se(t,k),nativeAssetByEip155Id:ae(t),priceImpactByEip155Id:oe(t)}:{}}),raw:e.deposit_addresses,response:e}}),t){let e=ne(t,{i18n:r,networkId:N,assetSymbol:P,minAmountUsd:k,...A===void 0?{}:{maxAmountUsd:A}}),n=t.assets.find(e=>String(e.network_id)===N);e&&n?L.update({target:{status:`ready`,payload:e,raw:n,response:t}}):L.update({target:{status:`error`,error:Error(`Destination not found in supportedAssets catalog.`)}})}else L.update({target:{status:`error`,error:Error(`supportedAssets fetch failed.`)}})}catch(e){let t=e instanceof Error?e:Error(String(e));L.update({brand:{status:`error`,error:t},target:{status:`error`,error:t},addresses:{status:`error`,error:t}})}}async function fe(){try{await G;let e=l(z),t=await u(()=>T.balance.onchain(S.userAddress,{includeSpam:!1,includeZero:!1,...e?{chains:e}:{}}));J=Date.now();let n=U();if(!n)return L.update({balances:{status:`ready`,payload:[],raw:t,response:t}}),t;let r=h(t,{i18n:j(),routable:n,minAmountUsd:k,...S.resolveTokenIcon?{resolveTokenIcon:S.resolveTokenIcon}:{}});return L.update({balances:{status:`ready`,payload:r,raw:t,response:t},wallet:Q(r,j())}),t}catch(e){let t=e instanceof Error?e:Error(String(e));return L.update({balances:{status:`error`,error:t}}),null}}function Q(e,t){let n=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{status:`ready`,payload:{...y(I),balanceTotalUsd:{value:n,formatted:m(n,t)}},raw:I,response:I}}return{getSnapshot(){return L.getSnapshot()},subscribe(e){return L.subscribe(e)},arm:Y,async requestQuote(e,i){if(Y(),L.update({quote:{status:`loading`}}),await G,i.aborted)return;let a=R;if(!a){L.update({quote:{status:`error`,error:Error(`gateway/start not yet resolved.`)}});return}try{let o=e.sourceChainId,s=e.sourceIsNative?t:e.sourceTokenAddress,c=r(e.amount,e.sourceTokenDecimals),l=await T.uda.quote({fromNetworkId:o,fromAsset:s,toNetworkId:Number(a.destination.eip155_id),toAsset:a.destination.asset_address||`0x0000000000000000000000000000000000000000`,amount:c,fromAddress:S.userAddress,toAddress:F},{signal:i});if(i.aborted)return;let u=j(),d={chainId:o,networkName:C(o),eip155Id:String(o),symbol:e.sourceTokenSymbol,decimals:e.sourceTokenDecimals,address:e.sourceTokenAddress,isNative:e.sourceIsNative},f={chainId:Number(a.destination.eip155_id),networkName:a.destination.network_name,eip155Id:a.destination.eip155_id,symbol:a.destination.asset_symbol,decimals:a.destination.asset_decimals,address:a.destination.asset_address,isNative:!a.destination.asset_address},p=n(a.destination.asset_symbol)?1:void 0,m=_(l,{i18n:u,sendSide:d,receiveSide:f,sourceAmount:e.amount,now:Date.now(),...e.sourcePriceUsd===void 0?{}:{sendPriceUsd:e.sourcePriceUsd},...p===void 0?{}:{receivePriceUsd:p}});L.update({quote:{status:`ready`,payload:m,raw:l,response:l}})}catch(e){if(i.aborted)return;let t=e instanceof Error?e:Error(String(e));L.update({quote:{status:`error`,error:t}})}},async submitDeposit(e,t){if(!H)throw Error(`Connect a wallet to sign and submit the deposit.`);if(Y(),await G,t.aborted)throw new DOMException(`Aborted`,`AbortError`);let n=R;if(!n)throw Error(`gateway/start not yet resolved.`);let r=n.deposit_addresses.find(t=>Number(t.eip155_id)===Number(e.sourceChainId));if(!r)throw Error(`No Stridge deposit address provisioned on chain ${e.sourceChainId}. Pick a supported source chain.`);return c({signer:H,rpc:ue,step:s({chainId:e.sourceChainId,from:S.userAddress,udaDepositAddress:r.address,amount:e.amount,decimals:e.sourceTokenDecimals,isNative:e.sourceIsNative,...e.sourceIsNative?{}:{sourceTokenAddress:e.sourceTokenAddress}}),signal:t,explorers:M,...S.receiptConfirmations===void 0?{}:{receiptConfirmations:S.receiptConfirmations},...S.receiptPollingIntervalMs===void 0?{}:{receiptPollingIntervalMs:S.receiptPollingIntervalMs}})},watchBalances(e,t,n){Y(),p({signal:n,fetch:async e=>K?J!==null&&Date.now()-J<3e4?L.getSnapshot().balances:Z(e):(K=!0,q),listener:()=>{t(L.getSnapshot().balances)},nextIntervalMs:()=>O})},invalidateBalances(){J=null,X?.abort();let e=new AbortController;X=e,Z(e.signal).finally(()=>{X===e&&(X=void 0)})},watchSourceTx(e,t,n){Y();let r=new Set,i={current:!1},a=!1;p({signal:n,fetch:async e=>{let{matched:t}=await o(T,S.userAddress,$(),e);return t},listener:e=>{if(a||!e)return;let n=e.settlements??[];if(!i.current){for(let e of n)r.add(e.id);i.current=!0;return}let o=n.find(e=>!r.has(e.id));if(!o)return;a=!0;let s=Number(o.from?.eip155_id??`0`);t({hash:o.from?.tx_id??``,...M[s]&&o.from?.tx_id?{explorerUrl:`${M[s].replace(/\/+$/,``)}/tx/${o.from.tx_id}`}:{}})},nextIntervalMs:()=>a?0:ce})},watchSettlement(e,t,n){let r=async e=>{let{matched:t}=await o(T,S.userAddress,$(),e);return t},i=!1;p({signal:n,fetch:r,listener:n=>{if(!n)return;let r=d(n,{txHash:e.tx.hash});if(!r)return;let a=v(r,n,{i18n:j(),sourceWallet:{name:`Wallet`,address:S.userAddress},explorers:M,...V?{brandName:V}:{}});a.kind!==`pending`&&(i=!0);let o={status:`ready`,payload:a,raw:r,response:n};L.update({settlement:o}),t(o)},nextIntervalMs:()=>i?D:le})},async fetchActiveSettlement(e,t){let{matched:n}=await o(T,S.userAddress,$(),t);if(!n)return null;let r=d(n);if(!r)return null;let i=v(r,n,{i18n:j(),sourceWallet:{name:`Wallet`,address:S.userAddress},explorers:M,...V?{brandName:V}:{}});return i.kind===`pending`?{payload:i,raw:r,response:n}:null}};function $(){return{network_id:N,asset_symbol:P,to_address:F}}}function C(e){switch(e){case 1:return`Ethereum`;case 56:return`BSC`;case 137:return`Polygon`;case 42161:return`Arbitrum`;case 10:return`Optimism`;case 8453:return`Base`;default:return`Chain ${e}`}}function w(e){let t={};for(let n of e.assets){let e=String(n.eip155_id),r=n.native_currency?.logo;r&&(t[e]=r)}return t}function ae(e){let t={};for(let n of e.assets){let e=n.native_currency;if(!e?.symbol)continue;let r=String(n.eip155_id),i=typeof e.price_impact==`string`?e.price_impact.trim():``;t[r]={symbol:e.symbol,address:``,decimals:typeof e.decimals==`number`?e.decimals:18,isNative:!0,...e.logo?{assetLogoUrl:e.logo}:{},...i?{priceImpact:i}:{}}}return t}function oe(e){let t={};for(let n of e.assets){let e={};for(let t of n.assets??[]){let n=t.price_impact;typeof n==`string`&&n.trim().length>0&&t.address&&(e[t.address.toLowerCase()]=n.trim())}Object.keys(e).length>0&&(t[String(n.eip155_id)]=e)}return t}function se(e,t){let n={};for(let r of e.assets){let e=String(r.eip155_id),i=r.native_currency?.min_deposit_usd,a=typeof i==`string`&&i.trim().length>0?Number.parseFloat(i):NaN;n[e]=Number.isFinite(a)?a:t}return n}export{S as createStridgeDepositDriver};
|
|
1
|
+
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{NATIVE_QUOTE_ADDRESS as t,isStablecoinSymbol as n,toBaseUnits as r}from"./internal/encoding.js";import{resolveSdkEnv as i}from"./internal/env.js";import{buildKitMetadata as a}from"./internal/metadata.js";import{pollOnce as o}from"./internal/pollOnce.js";import{buildErc20OrNativeStep as s,signAndConfirm as c}from"./internal/signAndConfirm.js";import{buildEvmChainsParam as l}from"./internal/supportedChains.js";import{withOneShotRetry as u}from"./internal/retry.js";import{pickRelevantSettlement as d}from"../../flows/shared/transformers/pickRelevantSettlement.js";import{createEntityStore as f}from"../stridge-mock/store.js";import{startPoll as p}from"./poll.js";import{formatUsd as m}from"../../shared/format/formatUsd.js";import{balanceToBalancesPayload as h,buildRoutableAllowlist as g}from"../../flows/deposit/driver/transformers/balanceToBalancesPayload.js";import{quoteToPayload as _}from"../../flows/deposit/driver/transformers/quoteToPayload.js";import{settlementToPayload as v}from"../../flows/deposit/driver/transformers/settlementToPayload.js";import{startToAddressesPayload as ee}from"../../flows/deposit/driver/transformers/startToAddressesPayload.js";import{startToBrandPayload as te}from"../../flows/deposit/driver/transformers/startToBrandPayload.js";import{startToTargetPayload as ne}from"../../flows/deposit/driver/transformers/startToTargetPayload.js";import{walletAddressToWalletPayload as y}from"../../flows/deposit/driver/transformers/walletAddressToWalletPayload.js";import{defaultBlockExplorers as re}from"../../shared/utils/explorers.js";import{createStridgeRpc as ie}from"./rpc.js";import{createWagmiSigner as b}from"./wagmiSigner.js";import{createApiClient as x}from"@stridge/sdk";function S(S){let T=x({projectKey:S.projectKey,env:i(S.environment)}),E=S.pollIntervals??{},ce=E.detectionMs??2e3,le=E.processingMs??2e3,D=E.terminalMs??1e4,O=E.balancesMs??6e4,k=S.minAmountUsd,A=S.maxAmountUsd,j=S.getI18n??(()=>e),M={...re(),...S.explorers??{}},N=S.destination.network_id,P=S.destination.asset_symbol,F=S.destination.to_address??S.userAddress,ue=S.rpc??ie(),I={address:S.userAddress},L=f({brand:{status:`idle`},target:{status:`idle`},addresses:{status:`idle`},balances:{status:`idle`},quote:{status:`idle`},settlement:{status:`idle`},wallet:{status:`ready`,payload:y(I),raw:I,response:I},cashMethods:{status:`idle`}}),R,z,B,V,H=S.wagmiConfig?b({wagmiConfig:S.wagmiConfig,getSupportedAssets:()=>z,explorers:M}):void 0;function U(){if(z)return B??=g(z),B}let W=!1,G=Promise.resolve(),K=!1,q=Promise.resolve(null),J=null;function Y(){W||(W=!0,G=de(),q=fe())}let X;async function Z(e){try{if(await G,e.aborted)return null;let t=l(z),n=await T.balance.onchain(S.userAddress,{signal:e,includeSpam:!1,includeZero:!1,...t?{chains:t}:{}});if(e.aborted)return null;J=Date.now();let r=U();if(!r)return L.update({balances:{status:`ready`,payload:[],raw:n,response:n}}),null;let i=h(n,{i18n:j(),routable:r,minAmountUsd:k,...S.resolveTokenIcon?{resolveTokenIcon:S.resolveTokenIcon}:{}});return L.update({balances:{status:`ready`,payload:i,raw:n,response:n},wallet:Q(i,j())}),n}catch{return null}}async function de(){L.update({brand:{status:`loading`},target:{status:`loading`},addresses:{status:`loading`},balances:{status:`loading`}});try{let[e,t]=await Promise.all([u(()=>T.gateway.start({owner:S.userAddress,destination:{network_id:N,to_address:F,asset_symbol:P},metadata:a({flow:`deposit`,...S.metadata?{hostMetadata:S.metadata}:{},extras:{destination:{networkId:N,assetSymbol:P}}})})),S.catalog?S.catalog.getSupportedAssets():u(()=>T.gateway.assets()).catch(()=>null)]);R=e;let n=e.metadata?.brand_name;typeof n==`string`&&n.trim().length>0&&(V=n.trim());let r=j();if(t&&(z=t,B=void 0),L.update({brand:{status:`ready`,payload:te(e.metadata),raw:e.metadata,response:e},addresses:{status:`ready`,payload:ee(e.deposit_addresses,{i18n:r,explorers:M,...t?{chainLogos:w(t)}:{},...t?{minAmountUsdByEip155Id:se(t,k),nativeAssetByEip155Id:ae(t),priceImpactByEip155Id:oe(t)}:{}}),raw:e.deposit_addresses,response:e}}),t){let e=ne(t,{i18n:r,networkId:N,assetSymbol:P,minAmountUsd:k,...A===void 0?{}:{maxAmountUsd:A}}),n=t.assets.find(e=>String(e.network_id)===N);e&&n?L.update({target:{status:`ready`,payload:e,raw:n,response:t}}):L.update({target:{status:`error`,error:Error(`Destination not found in supportedAssets catalog.`)}})}else L.update({target:{status:`error`,error:Error(`supportedAssets fetch failed.`)}})}catch(e){let t=e instanceof Error?e:Error(String(e));L.update({brand:{status:`error`,error:t},target:{status:`error`,error:t},addresses:{status:`error`,error:t}})}}async function fe(){try{await G;let e=l(z),t=await u(()=>T.balance.onchain(S.userAddress,{includeSpam:!1,includeZero:!1,...e?{chains:e}:{}}));J=Date.now();let n=U();if(!n)return L.update({balances:{status:`ready`,payload:[],raw:t,response:t}}),t;let r=h(t,{i18n:j(),routable:n,minAmountUsd:k,...S.resolveTokenIcon?{resolveTokenIcon:S.resolveTokenIcon}:{}});return L.update({balances:{status:`ready`,payload:r,raw:t,response:t},wallet:Q(r,j())}),t}catch(e){let t=e instanceof Error?e:Error(String(e));return L.update({balances:{status:`error`,error:t}}),null}}function Q(e,t){let n=e.reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{status:`ready`,payload:{...y(I),balanceTotalUsd:{value:n,formatted:m(n,t)}},raw:I,response:I}}return{getSnapshot(){return L.getSnapshot()},subscribe(e){return L.subscribe(e)},arm:Y,async requestQuote(e,i){if(Y(),L.update({quote:{status:`loading`}}),await G,i.aborted)return;let a=R;if(!a){L.update({quote:{status:`error`,error:Error(`gateway/start not yet resolved.`)}});return}try{let o=e.sourceChainId,s=e.sourceIsNative?t:e.sourceTokenAddress,c=r(e.amount,e.sourceTokenDecimals),l=await T.uda.quote({fromNetworkId:o,fromAsset:s,toNetworkId:Number(a.destination.eip155_id),toAsset:a.destination.asset_address||`0x0000000000000000000000000000000000000000`,amount:c,fromAddress:S.userAddress,toAddress:F},{signal:i});if(i.aborted)return;let u=j(),d={chainId:o,networkName:C(o),eip155Id:String(o),symbol:e.sourceTokenSymbol,decimals:e.sourceTokenDecimals,address:e.sourceTokenAddress,isNative:e.sourceIsNative},f={chainId:Number(a.destination.eip155_id),networkName:a.destination.network_name,eip155Id:a.destination.eip155_id,symbol:a.destination.asset_symbol,decimals:a.destination.asset_decimals,address:a.destination.asset_address,isNative:!a.destination.asset_address},p=n(a.destination.asset_symbol)?1:void 0,m=_(l,{i18n:u,sendSide:d,receiveSide:f,sourceAmount:e.amount,now:Date.now(),...e.sourcePriceUsd===void 0?{}:{sendPriceUsd:e.sourcePriceUsd},...p===void 0?{}:{receivePriceUsd:p}});L.update({quote:{status:`ready`,payload:m,raw:l,response:l}})}catch(e){if(i.aborted)return;let t=e instanceof Error?e:Error(String(e));L.update({quote:{status:`error`,error:t}})}},async submitDeposit(e,t){if(!H)throw Error(`Connect a wallet to sign and submit the deposit.`);if(Y(),await G,t.aborted)throw new DOMException(`Aborted`,`AbortError`);let n=R;if(!n)throw Error(`gateway/start not yet resolved.`);let r=n.deposit_addresses.find(t=>Number(t.eip155_id)===Number(e.sourceChainId));if(!r)throw Error(`No Stridge deposit address provisioned on chain ${e.sourceChainId}. Pick a supported source chain.`);return c({signer:H,rpc:ue,step:s({chainId:e.sourceChainId,from:S.userAddress,udaDepositAddress:r.address,amount:e.amount,decimals:e.sourceTokenDecimals,isNative:e.sourceIsNative,...e.sourceIsNative?{}:{sourceTokenAddress:e.sourceTokenAddress}}),signal:t,explorers:M,...S.receiptConfirmations===void 0?{}:{receiptConfirmations:S.receiptConfirmations},...S.receiptPollingIntervalMs===void 0?{}:{receiptPollingIntervalMs:S.receiptPollingIntervalMs}})},watchBalances(e,t,n){Y(),p({signal:n,fetch:async e=>K?J!==null&&Date.now()-J<3e4?L.getSnapshot().balances:Z(e):(K=!0,q),listener:()=>{t(L.getSnapshot().balances)},nextIntervalMs:()=>O})},invalidateBalances(){J=null,X?.abort();let e=new AbortController;X=e,Z(e.signal).finally(()=>{X===e&&(X=void 0)})},watchSourceTx(e,t,n){Y();let r=new Set,i={current:!1},a=!1;p({signal:n,fetch:async e=>{let{matched:t}=await o(T,S.userAddress,$(),e);return t},listener:e=>{if(a||!e)return;let n=e.settlements??[];if(!i.current){for(let e of n)r.add(e.id);i.current=!0;return}let o=n.find(e=>!r.has(e.id));if(!o)return;a=!0;let s=Number(o.from?.eip155_id??`0`);t({hash:o.from?.tx_id??``,...M[s]&&o.from?.tx_id?{explorerUrl:`${M[s].replace(/\/+$/,``)}/tx/${o.from.tx_id}`}:{}})},nextIntervalMs:()=>a?0:ce})},watchSettlement(e,t,n){let r=async e=>{let{matched:t}=await o(T,S.userAddress,$(),e);return t},i=!1;p({signal:n,fetch:r,listener:n=>{if(!n)return;let r=d(n,{txHash:e.tx.hash});if(!r)return;let a=v(r,n,{i18n:j(),sourceWallet:{name:`Wallet`,address:S.userAddress},explorers:M,...V?{brandName:V}:{}});a.kind!==`pending`&&(i=!0);let o={status:`ready`,payload:a,raw:r,response:n};L.update({settlement:o}),t(o)},nextIntervalMs:()=>i?D:le})},async fetchActiveSettlement(e,t){let{matched:n}=await o(T,S.userAddress,$(),t);if(!n)return null;let r=d(n);if(!r)return null;let i=v(r,n,{i18n:j(),sourceWallet:{name:`Wallet`,address:S.userAddress},explorers:M,...V?{brandName:V}:{}});return i.kind===`pending`?{payload:i,raw:r,response:n}:null}};function $(){return{network_id:N,asset_symbol:P,to_address:F}}}function C(e){switch(e){case 1:return`Ethereum`;case 56:return`BSC`;case 137:return`Polygon`;case 42161:return`Arbitrum`;case 10:return`Optimism`;case 8453:return`Base`;default:return`Chain ${e}`}}function w(e){let t={};for(let n of e.assets){let e=String(n.eip155_id),r=n.native_currency?.logo;r&&(t[e]=r)}return t}function ae(e){let t={};for(let n of e.assets){let e=n.native_currency;if(!e?.symbol)continue;let r=String(n.eip155_id),i=typeof e.price_impact==`string`?e.price_impact.trim():``;t[r]={symbol:e.symbol,address:``,decimals:typeof e.decimals==`number`?e.decimals:18,isNative:!0,...e.logo?{assetLogoUrl:e.logo}:{},...i?{priceImpact:i}:{}}}return t}function oe(e){let t={};for(let n of e.assets){let e={};for(let t of n.assets??[]){let n=t.price_impact;typeof n==`string`&&n.trim().length>0&&t.address&&(e[t.address.toLowerCase()]=n.trim())}Object.keys(e).length>0&&(t[String(n.eip155_id)]=e)}return t}function se(e,t){let n={};for(let r of e.assets){let e=String(r.eip155_id),i=r.native_currency?.min_deposit_usd,a=typeof i==`string`&&i.trim().length>0?Number.parseFloat(i):NaN;n[e]=Number.isFinite(a)?a:t}return n}export{S as createStridgeDepositDriver};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{createEntityStore as t}from"./store.js";import{shortenAddress as n}from"../../shared/format/shortenAddress.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,
|
|
1
|
+
import{defaultI18n as e}from"../../shared/i18n/defaultI18n.js";import{createEntityStore as t}from"./store.js";import{shortenAddress as n}from"../../shared/format/shortenAddress.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,buildDefaultCashMethodsPayload as m,buildDefaultFailurePayload as h,buildDefaultPendingPayload as g,buildDefaultQuotePayload as _,buildDefaultSuccessPayload as v,buildDefaultTargetPayload as y,buildDefaultTargetRaw as b,buildDefaultWalletPayload as x,resolveMockAsset as S}from"./fixtures.js";const C={quote:1400,submit:4e3,processingPendingDelay:1500,processingTerminal:3e3,transferDetected:4e3};function w(r={}){let a=r.getI18n??(()=>e),c=r.wallet??i,l=S(r.asset),d=t(T(a(),c,r.minAmountUsd,l,r.initialState)),f={...C,...r.latency??{}},p=r.autoSettleTo??`succeeded`,m=r.pendingTriggerToSuccessMs===void 0?3500:r.pendingTriggerToSuccessMs,y=new Set,b=new Set,x=new Set,w=!1,D,O;function k(){D!==void 0&&(clearTimeout(D),D=void 0),O!==void 0&&(clearTimeout(O),O=void 0),w=!1}function A(){if(w)return;w=!0;let e=a();D=setTimeout(()=>{D=void 0;let t={status:`ready`,payload:g(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:v(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:h(e,void 0,l),raw:s,response:o};d.update({settlement:t});for(let e of y)e(t)}w=!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 E(f.quote,t);let n=a(),r=Date.now()+3e4;d.update({quote:{status:`ready`,payload:_(n,r,l),raw:u,response:u}})},async submitDeposit(e,t){return await E(f.submit,t),p!==`none`&&A(),{hash:`0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`,explorerUrl:`https://etherscan.io/tx/0x1d72b900dd9b4f9fb0e11c14978d9cbbff7b47db0b820911839aad7081f6b72a`}},watchBalances(e,t,n){x.add(t);let r=d.getSnapshot().balances;queueMicrotask(()=>{n.aborted||t(r)}),n.addEventListener(`abort`,()=>x.delete(t),{once:!0})},invalidateBalances(){let e=d.getSnapshot().balances;for(let t of x)t(e)},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 t=`0x${M.toString(16).padStart(8,`0`)}${e.value.length>10?e.value.slice(10):`0`.repeat(56)}`;return{value:t,formatted:n(t)}}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=g(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);m!==null&&m>=0&&(N=setTimeout(()=>{N=null,L.triggerSettlementSuccess()},m))},triggerSettlementSuccess(e){P();let t=v(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=h(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(T(a(),c,r.minAmountUsd,l,r.initialState))}};return{driver:j,triggers:L}}function T(e,t,n,i,o){let s={brand:{status:`ready`,payload:r,raw:c.metadata,response:c},target:{status:`ready`,payload:y(e,n,i),raw:b(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:x(e,t),raw:t,response:t},cashMethods:(()=>{let t=m(e);return{status:`ready`,payload:t,raw:t,response:t}})()};return o?{...s,...o}:s}function E(e,t){return new Promise((n,r)=>{if(t.aborted){r(D());return}let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),r(D())};t.addEventListener(`abort`,a,{once:!0})})}function D(){if(typeof DOMException==`function`)return new DOMException(`Aborted`,`AbortError`);let e=Error(`Aborted`);return e.name=`AbortError`,e}export{w as createStridgeMockDriver};
|
|
@@ -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.networkId.toLowerCase(),n=k.find(n=>n.networkName.toLowerCase()===t||(M[n.eip155Id]??n.eip155Id)===e.networkId);if(!n)return w;let r=n.acceptedAssets.find(t=>t.symbol.toUpperCase()===e.symbol.toUpperCase());if(!r)return w;let i=n.acceptedAssets.find(e=>e.isNative);return{networkId:M[n.eip155Id]??n.eip155Id,networkName:n.networkName,eip155IdString:n.eip155Id,eip155IdNumber:Number(n.eip155Id),chainLogoUrl:n.chainLogoUrl,explorerBase:n.explorerBase,symbol:r.symbol,decimals:r.decimals,address:r.address,assetLogoUrl:r.assetLogoUrl??n.chainLogoUrl,isNative:r.isNative,nativeSymbol:i?.symbol??r.symbol}}function E(e=w){return{network_id:e.networkId,network_name:e.networkName,network_symbol:e.networkName.toLowerCase(),chain_type:`EVM`,eip155_id:e.eip155IdNumber,native_currency:{symbol:e.nativeSymbol,name:e.nativeSymbol,decimals:18,logo:e.chainLogoUrl},assets:[{symbol:e.symbol,decimals:e.decimals,address:e.address,logo:e.assetLogoUrl}]}}const D=E();function O(e,t,n=w){return{networkId:n.networkId,networkName:n.networkName,eip155Id:n.eip155IdString,chainLogoUrl:n.chainLogoUrl,symbol:n.symbol,decimals:n.decimals,address:n.address,assetLogoUrl:n.assetLogoUrl,isNative:n.isNative,...t===void 0?{}:{minAmountUsd:{value:t,formatted:i(t,e)}}}}const k=[{eip155Id:`1`,networkName:`Ethereum`,chainLogoUrl:v[1],explorerBase:`https://etherscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[1],priceImpact:`0.15`},{symbol:`TUSD`,address:`0x0000000000085d4780B73119b644AE5ecd22b376`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.18`},{symbol:`PAXG`,address:`0x45804880De22913dAFE09f4980848ECE6EcbAf78`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/paxg.svg`,priceImpact:`0.42`},{symbol:`DAI`,address:`0x6B175474E89094C44Da98b954EedeAC495271d0F`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.09`},{symbol:`PYUSD`,address:`0x6c3ea9036406852006290770BEdFcAbA0e23A0e8`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/pyusd.svg`,priceImpact:`0.21`},{symbol:`USDC`,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`WETH`,address:`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.31`},{symbol:`USDT`,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`56`,networkName:`BSC`,chainLogoUrl:y,explorerBase:`https://bscscan.com`,acceptedAssets:[{symbol:`BNB`,address:``,decimals:18,isNative:!0,assetLogoUrl:y,priceImpact:`0.21`},{symbol:`WETH`,address:`0x2170Ed0880ac9A755fd29B2688956BD959F933F8`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.34`},{symbol:`TUSD`,address:`0x40af3827F39D0EAcBF4A168f8D4ee67c121D11c9`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.2`},{symbol:`USDT`,address:`0x55d398326f99059fF775485246999027B3197955`,decimals:18,isNative:!1,assetLogoUrl:_,priceImpact:`0.08`},{symbol:`USDC`,address:h,decimals:18,isNative:!1,assetLogoUrl:g,priceImpact:`0.06`}]},{eip155Id:`8453`,networkName:`Base`,chainLogoUrl:v[8453],explorerBase:`https://basescan.org`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[8453],priceImpact:`0.19`},{symbol:`WETH`,address:`0x4200000000000000000000000000000000000006`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.29`},{symbol:`DAI`,address:`0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.11`},{symbol:`USDC`,address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.04`},{symbol:`USDT`,address:`0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`42161`,networkName:`Arbitrum`,chainLogoUrl:v[42161],explorerBase:`https://arbiscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[42161],priceImpact:`0.17`},{symbol:`TUSD`,address:`0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.16`},{symbol:`WETH`,address:`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.27`},{symbol:`USDC`,address:`0xaf88d065e77c8cC2239327C5EDb3A432268e5831`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`DAI`,address:`0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.1`},{symbol:`USDT`,address:`0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.06`}]},{eip155Id:`137`,networkName:`Polygon`,chainLogoUrl:b,explorerBase:`https://polygonscan.com`,acceptedAssets:[{symbol:`POL`,address:``,decimals:18,isNative:!0,assetLogoUrl:b,priceImpact:`0.33`},{symbol:`TUSD`,address:`0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.22`},{symbol:`USDC`,address:`0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.08`},{symbol:`WETH`,address:`0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.36`},{symbol:`DAI`,address:`0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.13`},{symbol:`USDT`,address:`0xc2132D05D31c914a87C6611C10748AEb04B58e8F`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.09`}]}];function A(e,t){let n=t===void 0?{}:{minAmountUsd:{value:t,formatted:i(t,e)}};return k.map(({eip155Id:e,networkName:t,chainLogoUrl:r,explorerBase:i,acceptedAssets:o})=>({eip155Id:e,networkName:t,chainLogoUrl:r,address:{value:x,formatted:a(x)},explorerUrl:`${i}/address/${x}`,acceptedAssets:o,...n}))}const j=k.map(({eip155Id:e,networkName:t,chainLogoUrl:n,explorerBase:r,acceptedAssets:i})=>({eip155Id:e,networkName:t,chainLogoUrl:n,address:{value:x,formatted:a(x)},explorerUrl:`${r}/address/${x}`,acceptedAssets:i})),M={1:`60`,56:`9006`,137:`966`,8453:`8453`,42161:`9001`};function N(){return{assets:k.map(e=>{let t=e.acceptedAssets.find(e=>e.isNative),n=e.acceptedAssets.filter(e=>!e.isNative);return{eip155_id:Number(e.eip155Id),network_id:M[e.eip155Id]??e.eip155Id,network_name:e.networkName.toLowerCase(),network_symbol:e.networkName.toLowerCase(),chain_type:`EVM`,assets:n.map(e=>({address:e.address,decimals:e.decimals,logo:e.assetLogoUrl??``,name:e.symbol,symbol:e.symbol,...e.priceImpact?{price_impact:e.priceImpact}:{}})),native_currency:{symbol:t?.symbol??``,name:t?.symbol??``,decimals:t?.decimals??18,logo:t?.assetLogoUrl??e.chainLogoUrl,...t?.priceImpact?{price_impact:t.priceImpact}:{}}}})}}function P(e){return[{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDC`,decimals:18,address:h,assetLogoUrl:g,chainLogoUrl:y,isNative:!1,amount:{value:42.805864,formatted:r(42.805864,e,{compact:!0})},amountUsd:{value:42.81,formatted:i(42.81,e)},priceUsd:1},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`BNB`,decimals:18,address:``,assetLogoUrl:y,chainLogoUrl:y,isNative:!0,amount:{value:.016699,formatted:r(.016699,e,{compact:!0})},amountUsd:{value:10.86,formatted:i(10.86,e)},priceUsd:650.41},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDT`,decimals:6,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,assetLogoUrl:_,chainLogoUrl:v[1],isNative:!1,amount:{value:.757479,formatted:r(.757479,e,{compact:!0})},amountUsd:{value:.76,formatted:i(.76,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`9006`,networkName:`BSC`,eip155Id:`56`,symbol:`USDT`,decimals:18,address:`0x55d398326f99059fF775485246999027B3197955`,assetLogoUrl:_,chainLogoUrl:y,isNative:!1,amount:{value:.595218,formatted:r(.595218,e,{compact:!0})},amountUsd:{value:.6,formatted:i(.6,e)},priceUsd:1,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`ETH`,decimals:18,address:``,assetLogoUrl:v[1],chainLogoUrl:v[1],isNative:!0,amount:{value:167e-6,formatted:r(167e-6,e,{compact:!0})},amountUsd:{value:.39,formatted:i(.39,e)},priceUsd:2316.86,lowBalance:!0,disabled:!0},{networkId:`60`,networkName:`Ethereum`,eip155Id:`1`,symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,chainLogoUrl:v[1],isNative:!1,amount:{value:.10408,formatted:r(.10408,e,{compact:!0})},amountUsd:{value:.1,formatted:i(.1,e)},priceUsd:1,lowBalance:!0,disabled:!0}]}function F(e,n,a=w){return{heroAmountUsd:{value:1.999758,formatted:i(1.999758,e)},sendAsset:{symbol:`USDC`,decimals:6,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,isNative:!1,chainId:1,networkName:`Ethereum`,eip155Id:`1`,chainLogoUrl:v[1]},sendAmount:{value:2,formatted:r(2,e)},receiveAsset:{symbol:a.symbol,decimals:a.decimals,address:a.address,assetLogoUrl:a.assetLogoUrl,isNative:a.isNative,chainId:a.eip155IdNumber,networkName:a.networkName,eip155Id:a.eip155IdString,chainLogoUrl:a.chainLogoUrl},receiveAmount:{value:1.9958,formatted:r(1.9958,e)},quoteTotalSeconds:30,expiresAt:n,etaSeconds:30,breakdown:{selectedRoute:{provider:`lifi`,scenario:`cross_chain_diff_token`,label:`LIFI · cross chain diff token`},networkCost:{value:.0042,formatted:i(.0042,e)},priceImpact:{value:.21,formatted:t(.21,e)}}}}function I(e,t=w){return{kind:`pending`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},creditedAsset:{symbol:t.symbol,decimals:t.decimals,address:t.address,assetLogoUrl:t.assetLogoUrl,isNative:t.isNative},creditedTo:o,txHash:{value:c,formatted:a(c)},txExplorerUrl:`https://etherscan.io/tx/${c}`,detectedAt:{value:d,formatted:n(d,e)},submittedAt:{value:d,formatted:n(d,e)},receiveAmount:{value:4.983615,formatted:r(4.983615,e)}}}function L(t,i=w){let u=f-d;return{kind:`succeeded`,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:4.983615,formatted:r(4.983615,t)},routeHops:[{provider:`LIFI`,chainId:1},{provider:`LIFI`,chainId:i.eip155IdNumber}],totalTime:{value:u,formatted:e(u,t)},depositTx:{hash:{value:c,formatted:a(c)},explorerUrl:`https://etherscan.io/tx/${c}`},completionTx:{hash:{value:l,formatted:a(l)},explorerUrl:`${i.explorerBase}/tx/${l}`},submittedAt:{value:d,formatted:n(d,t)},filledAt:{value:f,formatted:n(f,t)}}}function R(e,t=`execution-reverted`,i=w){return{kind:`failed`,failureKind:t,sourceWallet:{name:`Wallet`,address:{value:s,formatted:a(s)},explorerUrl:`https://etherscan.io/address/${s}`},destination:{name:o,address:{value:s,formatted:a(s)}},creditedAsset:{symbol:i.symbol,decimals:i.decimals,address:i.address,assetLogoUrl:i.assetLogoUrl,isNative:i.isNative},receiveAmount:{value:0,formatted:r(0,e)},txHash:{value:u,formatted:a(u)},txExplorerUrl:`https://etherscan.io/tx/${u}`,submittedAt:{value:p,formatted:n(p,e)},failedAt:{value:m,formatted:n(m,e)}}}function z(e,t=S){let n=P(e).reduce((e,t)=>e+(t.amountUsd?.value??0),0);return{address:{value:t.address,formatted:a(t.address)},...t.chainId===void 0?{}:{chainId:t.chainId},balanceTotalUsd:{value:n,formatted:i(n,e)}}}const B={deposit_addresses:[],metadata:{brand_name:o}},V=[],H={assets:[]},U={chains:[]},W={},G={id:`mock-settlement`,status:`completed`,created_at:new Date(d).toISOString(),updated_at:new Date(f).toISOString()},K={settlements:[],is_terminal:!1},q=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,J=`https://cdn.stridge.com/assets/usdc.svg`;function Y(e,t=Date.now()){let n=6e4,r=60*n,i=24*r,a=[X({id:`mock-activity-deposit-pending`,status:`routing`,updatedAtMs:t-12*n,createdAtMs:t-15*n,amountUsd:`25.00`,toAddress:e}),X({id:`mock-activity-deposit-failed`,status:`failed`,updatedAtMs:t-2*r,createdAtMs:t-2*r-35e3,amountUsd:`18.40`,toAddress:e,error:`destination chain reverted`}),X({id:`mock-activity-deposit-success-recent`,status:`completed`,updatedAtMs:t-6*r,createdAtMs:t-6*r-23e3,amountUsd:`42.50`,toAddress:e}),X({id:`mock-activity-deposit-success-yesterday`,status:`completed`,updatedAtMs:t-i-2*r,createdAtMs:t-i-2*r-17e3,amountUsd:`8.20`,toAddress:e}),X({id:`mock-activity-deposit-success-week`,status:`completed`,updatedAtMs:t-9*i,createdAtMs:t-9*i-14e3,amountUsd:`120.00`,toAddress:e})],o=[Z({id:`mock-activity-withdraw-failed`,status:`failed`,updatedAtMs:t-3*i,createdAtMs:t-3*i-9e4,amountUsd:`15.00`,error:`transaction failed on chain`}),Z({id:`mock-activity-withdraw-success-recent`,status:`completed`,updatedAtMs:t-18*r,createdAtMs:t-18*r-12e3,amountUsd:`60.00`}),Z({id:`mock-activity-withdraw-success-week`,status:`completed`,updatedAtMs:t-11*i,createdAtMs:t-11*i-19e3,amountUsd:`200.00`})];return{owner:e,filter:{},udas:[{uda_id:`mock-uda-deposit`,owner:e,is_terminal:!1,status:`from_detected`,created_at:new Date(t-30*i).toISOString(),updated_at:new Date(t-12*n).toISOString(),destination:{address:e,asset_address:h,asset_symbol:`USDC`,asset_decimals:18,network_id:`9006`,network_name:`BSC`,eip155_id:`56`},settlements:a,metadata:{kit_flow:`deposit`}},{uda_id:`mock-uda-withdraw`,owner:e,is_terminal:!1,status:`completed`,created_at:new Date(t-25*i).toISOString(),updated_at:new Date(t-18*r).toISOString(),destination:{address:q,asset_address:``,asset_decimals:18,asset_symbol:`ETH`,network_id:`60`,network_name:`Ethereum`,eip155_id:`1`},settlements:o,metadata:{kit_flow:`withdraw`}}]}}function X(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},...e.error?{error:e.error}:{},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J},to:{address:e.toAddress,asset_address:h,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function Z(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},...e.error?{error:e.error}:{},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:J},to:{address:q,asset_address:``,asset_symbol:`ETH`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:`https://cdn.stridge.com/networks/60.svg`,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function Q(e,t,n,r){return t===`pending`?I(e,n&&typeof n!=`string`?n:void 0):t===`succeeded`?L(e,n&&typeof n!=`string`?n:void 0):R(e,typeof n==`string`?n:void 0,r)}export{j as DEFAULT_ADDRESSES_PAYLOAD,C as DEFAULT_BRAND_PAYLOAD,w as DEFAULT_MOCK_ASSET,D as DEFAULT_TARGET_RAW,S as DEFAULT_WALLET_INFO,V as STUB_DEPOSIT_ADDRESSES_RAW,K as STUB_GATEWAY_POLL_RESPONSE,G as STUB_GATEWAY_SETTLEMENT_DTO,B as STUB_GATEWAY_START_RESPONSE,U as STUB_ONCHAIN_BALANCE_RESPONSE,W as STUB_QUOTE_RESPONSE,H as STUB_SUPPORTED_ASSETS_RESPONSE,A as buildDefaultAddressesPayload,P as buildDefaultBalances,R as buildDefaultFailurePayload,I as buildDefaultPendingPayload,F as buildDefaultQuotePayload,L as buildDefaultSuccessPayload,N as buildDefaultSupportedAssetsResponse,O as buildDefaultTargetPayload,E as buildDefaultTargetRaw,z as buildDefaultWalletPayload,Y as buildMockActivityResponse,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=O.find(n=>n.networkName.toLowerCase()===t||(j[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:j[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 ee(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 O=[{eip155Id:`1`,networkName:`Ethereum`,chainLogoUrl:v[1],explorerBase:`https://etherscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[1],priceImpact:`0.15`},{symbol:`TUSD`,address:`0x0000000000085d4780B73119b644AE5ecd22b376`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.18`},{symbol:`PAXG`,address:`0x45804880De22913dAFE09f4980848ECE6EcbAf78`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/paxg.svg`,priceImpact:`0.42`},{symbol:`DAI`,address:`0x6B175474E89094C44Da98b954EedeAC495271d0F`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.09`},{symbol:`PYUSD`,address:`0x6c3ea9036406852006290770BEdFcAbA0e23A0e8`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/pyusd.svg`,priceImpact:`0.21`},{symbol:`USDC`,address:`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`WETH`,address:`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.31`},{symbol:`USDT`,address:`0xdAC17F958D2ee523a2206206994597C13D831ec7`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`56`,networkName:`BSC`,chainLogoUrl:y,explorerBase:`https://bscscan.com`,acceptedAssets:[{symbol:`BNB`,address:``,decimals:18,isNative:!0,assetLogoUrl:y,priceImpact:`0.21`},{symbol:`WETH`,address:`0x2170Ed0880ac9A755fd29B2688956BD959F933F8`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.34`},{symbol:`TUSD`,address:`0x40af3827F39D0EAcBF4A168f8D4ee67c121D11c9`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.2`},{symbol:`USDT`,address:`0x55d398326f99059fF775485246999027B3197955`,decimals:18,isNative:!1,assetLogoUrl:_,priceImpact:`0.08`},{symbol:`USDC`,address:h,decimals:18,isNative:!1,assetLogoUrl:g,priceImpact:`0.06`}]},{eip155Id:`8453`,networkName:`Base`,chainLogoUrl:v[8453],explorerBase:`https://basescan.org`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[8453],priceImpact:`0.19`},{symbol:`WETH`,address:`0x4200000000000000000000000000000000000006`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.29`},{symbol:`DAI`,address:`0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.11`},{symbol:`USDC`,address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.04`},{symbol:`USDT`,address:`0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.07`}]},{eip155Id:`42161`,networkName:`Arbitrum`,chainLogoUrl:v[42161],explorerBase:`https://arbiscan.io`,acceptedAssets:[{symbol:`ETH`,address:``,decimals:18,isNative:!0,assetLogoUrl:v[42161],priceImpact:`0.17`},{symbol:`TUSD`,address:`0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.16`},{symbol:`WETH`,address:`0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.27`},{symbol:`USDC`,address:`0xaf88d065e77c8cC2239327C5EDb3A432268e5831`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.05`},{symbol:`DAI`,address:`0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.1`},{symbol:`USDT`,address:`0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.06`}]},{eip155Id:`137`,networkName:`Polygon`,chainLogoUrl:b,explorerBase:`https://polygonscan.com`,acceptedAssets:[{symbol:`POL`,address:``,decimals:18,isNative:!0,assetLogoUrl:b,priceImpact:`0.33`},{symbol:`TUSD`,address:`0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/tusd.svg`,priceImpact:`0.22`},{symbol:`USDC`,address:`0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359`,decimals:6,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/usdc.svg`,priceImpact:`0.08`},{symbol:`WETH`,address:`0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/weth.svg`,priceImpact:`0.36`},{symbol:`DAI`,address:`0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063`,decimals:18,isNative:!1,assetLogoUrl:`https://cdn.stridge.com/assets/dai.svg`,priceImpact:`0.13`},{symbol:`USDT`,address:`0xc2132D05D31c914a87C6611C10748AEb04B58e8F`,decimals:6,isNative:!1,assetLogoUrl:_,priceImpact:`0.09`}]}];function k(e,t){let n=t===void 0?{}:{minAmountUsd:{value:t,formatted:i(t,e)}};return O.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 A=O.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})),j={1:`60`,56:`9006`,137:`966`,8453:`8453`,42161:`9001`};function M(){return{assets:O.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:j[e.eip155Id]??e.eip155Id,network_name:e.networkName.toLowerCase(),network_symbol:e.networkName.toLowerCase(),chain_type:`EVM`,assets:n.map(e=>({address:e.address,decimals:e.decimals,logo:e.assetLogoUrl??``,name:e.symbol,symbol:e.symbol,...e.priceImpact?{price_impact:e.priceImpact}:{}})),native_currency:{symbol:t?.symbol??``,name:t?.symbol??``,decimals:t?.decimals??18,logo:t?.assetLogoUrl??e.chainLogoUrl,...t?.priceImpact?{price_impact:t.priceImpact}:{}}}})}}function N(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 P(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 F(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 I(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 L(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 R(e,t=S){let n=N(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 z=116e3,B={id:`D79cZK`,message:`Instant`};function V(e){let t=()=>({limit:{value:z,formatted:i(z,e)},processingTime:{value:0,formatted:e._(B)}});return{card:t(),applePay:t(),googlePay:t()}}const H={deposit_addresses:[],metadata:{brand_name:o}},U=[],W={assets:[]},G={chains:[]},K={},q={id:`mock-settlement`,status:`completed`,created_at:new Date(d).toISOString(),updated_at:new Date(f).toISOString()},J={settlements:[],is_terminal:!1},Y=`0x32995Fb47918BD37133dB46F21c5Ed906140Dd41`,X=`https://cdn.stridge.com/assets/usdc.svg`;function Z(e,t=Date.now()){let n=6e4,r=60*n,i=24*r,a=[Q({id:`mock-activity-deposit-pending`,status:`routing`,updatedAtMs:t-12*n,createdAtMs:t-15*n,amountUsd:`25.00`,toAddress:e}),Q({id:`mock-activity-deposit-failed`,status:`failed`,updatedAtMs:t-2*r,createdAtMs:t-2*r-35e3,amountUsd:`18.40`,toAddress:e,error:`destination chain reverted`}),Q({id:`mock-activity-deposit-success-recent`,status:`completed`,updatedAtMs:t-6*r,createdAtMs:t-6*r-23e3,amountUsd:`42.50`,toAddress:e}),Q({id:`mock-activity-deposit-success-yesterday`,status:`completed`,updatedAtMs:t-i-2*r,createdAtMs:t-i-2*r-17e3,amountUsd:`8.20`,toAddress:e}),Q({id:`mock-activity-deposit-success-week`,status:`completed`,updatedAtMs:t-9*i,createdAtMs:t-9*i-14e3,amountUsd:`120.00`,toAddress:e})],o=[$({id:`mock-activity-withdraw-failed`,status:`failed`,updatedAtMs:t-3*i,createdAtMs:t-3*i-9e4,amountUsd:`15.00`,error:`transaction failed on chain`}),$({id:`mock-activity-withdraw-success-recent`,status:`completed`,updatedAtMs:t-18*r,createdAtMs:t-18*r-12e3,amountUsd:`60.00`}),$({id:`mock-activity-withdraw-success-week`,status:`completed`,updatedAtMs:t-11*i,createdAtMs:t-11*i-19e3,amountUsd:`200.00`})];return{owner:e,filter:{},udas:[{uda_id:`mock-uda-deposit`,owner:e,is_terminal:!1,status:`from_detected`,created_at:new Date(t-30*i).toISOString(),updated_at:new Date(t-12*n).toISOString(),destination:{address:e,asset_address:h,asset_symbol:`USDC`,asset_decimals:18,network_id:`9006`,network_name:`BSC`,eip155_id:`56`},settlements:a,metadata:{kit_flow:`deposit`}},{uda_id:`mock-uda-withdraw`,owner:e,is_terminal:!1,status:`completed`,created_at:new Date(t-25*i).toISOString(),updated_at:new Date(t-18*r).toISOString(),destination:{address:Y,asset_address:``,asset_decimals:18,asset_symbol:`ETH`,network_id:`60`,network_name:`Ethereum`,eip155_id:`1`},settlements:o,metadata:{kit_flow:`withdraw`}}]}}function Q(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},...e.error?{error:e.error}:{},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:X},to:{address:e.toAddress,asset_address:h,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:X,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function $(e){return{id:e.id,status:e.status,created_at:new Date(e.createdAtMs).toISOString(),updated_at:new Date(e.updatedAtMs).toISOString(),events:[],fees:{},route:{provider:`lifi`},...e.error?{error:e.error}:{},from:{tx_id:`0x${e.id.padEnd(60,`0`)}`,asset_symbol:`USDC`,eip155_id:`56`,network_id:`9006`,network_name:`BSC`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:X},to:{address:Y,asset_address:``,asset_symbol:`ETH`,eip155_id:`1`,network_id:`60`,network_name:`Ethereum`,raw_amount:`0`,amount:e.amountUsd,amount_usd:e.amountUsd,logo:`https://cdn.stridge.com/networks/60.svg`,tx_id:`0xto${e.id.padEnd(58,`0`)}`,settled_at:e.status===`completed`?new Date(e.updatedAtMs).toISOString():void 0}}}function te(e,t,n,r){return t===`pending`?F(e,n&&typeof n!=`string`?n:void 0):t===`succeeded`?I(e,n&&typeof n!=`string`?n:void 0):L(e,typeof n==`string`?n:void 0,r)}export{A as DEFAULT_ADDRESSES_PAYLOAD,C as DEFAULT_BRAND_PAYLOAD,w as DEFAULT_MOCK_ASSET,D as DEFAULT_TARGET_RAW,S as DEFAULT_WALLET_INFO,U as STUB_DEPOSIT_ADDRESSES_RAW,J as STUB_GATEWAY_POLL_RESPONSE,q as STUB_GATEWAY_SETTLEMENT_DTO,H as STUB_GATEWAY_START_RESPONSE,G as STUB_ONCHAIN_BALANCE_RESPONSE,K as STUB_QUOTE_RESPONSE,W as STUB_SUPPORTED_ASSETS_RESPONSE,k as buildDefaultAddressesPayload,N as buildDefaultBalances,V as buildDefaultCashMethodsPayload,L as buildDefaultFailurePayload,F as buildDefaultPendingPayload,P as buildDefaultQuotePayload,I as buildDefaultSuccessPayload,M as buildDefaultSupportedAssetsResponse,ee as buildDefaultTargetPayload,E as buildDefaultTargetRaw,R as buildDefaultWalletPayload,Z as buildMockActivityResponse,te as buildSettlementPayload,T as resolveMockAsset};
|
|
@@ -1 +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
|
|
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`)return{method:`wallet`,asset:e.ctx.asset};if(e.name!==`cashAmountEntry`&&e.name!==`cashConfirm`){if(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===`cashAmountEntry`||e.name===`cashConfirm`||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,87 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
//#region src/flows/deposit/bindings/DepositBindings.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Detected card-brand union. Matches the IIN-range coverage of the cash deposit's
|
|
5
|
+
* `CardInputRow`: Visa / Mastercard / Amex / Discover, plus `"unknown"` for any prefix outside
|
|
6
|
+
* those ranges. Exposed here (rather than alongside the widget-local masking helpers) so the
|
|
7
|
+
* public `tokenizeCard` binding can talk about it without a deep widget import.
|
|
8
|
+
*/
|
|
9
|
+
type CardBrand = "visa" | "mastercard" | "amex" | "discover" | "unknown";
|
|
10
|
+
/**
|
|
11
|
+
* Raw card data the kit hands to the host's tokenize binding when the user submits the cash
|
|
12
|
+
* deposit's card form. PAN / CVC are raw digit strings (no masking); `exp` is the formatted
|
|
13
|
+
* `MM/YY` value the user typed; `brand` is the IIN-range detection from `CardInputRow`.
|
|
14
|
+
*
|
|
15
|
+
* This struct is the host's only direct contact with cardholder data — once `tokenizeCard`
|
|
16
|
+
* resolves, the host exchanges it for an opaque token (Stripe.js / Adyen / Spreedly / similar)
|
|
17
|
+
* and the kit no longer holds the raw PAN.
|
|
18
|
+
*/
|
|
19
|
+
interface CardData {
|
|
20
|
+
/** Raw digits with no separators (16 for Visa/MC/Discover, 15 for Amex). */
|
|
21
|
+
pan: string;
|
|
22
|
+
/** Formatted `MM/YY` value. Validated upstream by `isValidExp` before submit. */
|
|
23
|
+
exp: string;
|
|
24
|
+
/** Raw digits (3 for Visa/MC/Discover, 4 for Amex). */
|
|
25
|
+
cvc: string;
|
|
26
|
+
/** Detected brand at submit time. */
|
|
27
|
+
brand: CardBrand;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Discriminated result of a tokenize attempt. Success carries the opaque token the host's PSP
|
|
31
|
+
* returned; failure carries a host-supplied reason string the form surfaces inline.
|
|
32
|
+
*/
|
|
33
|
+
type TokenizationResult = {
|
|
34
|
+
ok: true;
|
|
35
|
+
token: string;
|
|
36
|
+
} | {
|
|
37
|
+
ok: false;
|
|
38
|
+
reason: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Render-time inputs the host supplies to the deposit flow. Today this is just the optional
|
|
42
|
+
* `tokenizeCard` callback — when undefined, callers compose with {@link DEFAULT_TOKENIZE_CARD}
|
|
43
|
+
* so the editable form stays observable end-to-end without any host wiring. Future per-method
|
|
44
|
+
* slots (`applePayMerchantSession`, `googlePayPaymentData`) will land on the same context.
|
|
45
|
+
*/
|
|
46
|
+
interface DepositBindings {
|
|
47
|
+
/**
|
|
48
|
+
* Optional host-supplied tokenize handler. Fired when the user submits a valid card form.
|
|
49
|
+
* Host wires this to its PSP's tokenization JS — `stripe.createPaymentMethod`,
|
|
50
|
+
* `adyenWebComponents.createToken`, `spreedlyExpress.createToken`, etc. Resolves to a
|
|
51
|
+
* discriminated result the form surfaces inline.
|
|
52
|
+
*
|
|
53
|
+
* When undefined, callers fall through to {@link DEFAULT_TOKENIZE_CARD} — keeps the demo
|
|
54
|
+
* path interactive without forcing every host to ship a tokenizer just to render the form.
|
|
55
|
+
*/
|
|
56
|
+
tokenizeCard?: (data: CardData) => Promise<TokenizationResult>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Publish the host's render-time deposit inputs (just `tokenizeCard` today) into the kit's
|
|
60
|
+
* deposit scope. Call it once from whatever component renders the deposit UI:
|
|
61
|
+
*
|
|
62
|
+
* - The kit's `<DepositDialog>` calls it internally when the host passes its bindings prop.
|
|
63
|
+
* - A **headless** host that renders fully custom deposit UI calls it directly — it's the
|
|
64
|
+
* supported way to wire `tokenizeCard` without mounting the dialog.
|
|
65
|
+
*
|
|
66
|
+
* Publishes via `useLayoutEffect` so the bridge ref and reactive state are committed before the
|
|
67
|
+
* next browser paint — the form's submit handler reads `ctx.ref.current.tokenizeCard` at fire
|
|
68
|
+
* time and always sees the latest value. Cleanup blanks both on unmount.
|
|
69
|
+
*
|
|
70
|
+
* React 19 StrictMode runs the layout effect mount → cleanup → mount sequence, so the cleanup
|
|
71
|
+
* blanking the ref is fine: the immediate re-mount restores the bound `tokenizeCard` before any
|
|
72
|
+
* paint, so no user interaction can observe the empty window.
|
|
73
|
+
*
|
|
74
|
+
* @example Headless usage
|
|
75
|
+
* ```tsx
|
|
76
|
+
* useDepositBindings({
|
|
77
|
+
* tokenizeCard: async (card) => {
|
|
78
|
+
* const result = await stripe.createPaymentMethod({ type: "card", card });
|
|
79
|
+
* if (result.error) return { ok: false, reason: result.error.message ?? "Tokenization failed" };
|
|
80
|
+
* return { ok: true, token: result.paymentMethod.id };
|
|
81
|
+
* },
|
|
82
|
+
* });
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
declare function useDepositBindings(bindings: DepositBindings): void;
|
|
86
|
+
//#endregion
|
|
87
|
+
export { CardBrand, CardData, DepositBindings, TokenizationResult, useDepositBindings };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{createContext as e,use as t,useLayoutEffect as n,useMemo as r,useRef as i,useState as a}from"react";import{jsx as o}from"react/jsx-runtime";async function s(e){return await new Promise(e=>setTimeout(e,800)),{ok:!0,token:`kit-mock-token`}}const c=e(null);c.displayName=`DepositBindingsControlContext`;const l=e(null);l.displayName=`DepositBindingsValueContext`;function u({children:e}){let[t,n]=a({}),s=i({});return o(c,{value:r(()=>({setBindings:n,ref:s}),[]),children:o(l,{value:t,children:e})})}function d(){let e=t(c),n=i({});return e?.ref??n}function f(e){let r=t(c),a=e.tokenizeCard,o=i(r?.setBindings);o.current=r?.setBindings;let s=i(r?.ref);s.current=r?.ref,n(()=>{let e=o.current,t=s.current;if(!e||!t)return;let n={...a?{tokenizeCard:a}:{}};return t.current=n,e(n),()=>{let e=o.current,t=s.current;t&&(t.current={}),e&&e({})}},[a])}export{s as DEFAULT_TOKENIZE_CARD,u as DepositBindingsProvider,f as useDepositBindings,d as useDepositBindingsRef};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { CardBrand, CardData, DepositBindings, TokenizationResult, useDepositBindings } from "./DepositBindings.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./DepositBindings.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{useDepositSnapshot as e}from"../driver/context.js";import{useControllerContext as t}from"../orchestrator/controller.js";import{useDepositEmissions as n}from"../../../events/emit/useDepositEmissions.js";import"../../../events/emit/index.js";import{useIntercomShutdownOnUnmount as r}from"../../../shared/support/useIntercomShutdownOnUnmount.js";import"../../../shared/support/index.js";import{AdaptiveSurface as i}from"../../../shared/ui/AdaptiveSurface/AdaptiveSurface.js";import"../../../shared/ui/AdaptiveSurface/index.js";import{Deposit as a}from"../widgets/deposit/compound/Deposit.js";import"../widgets/deposit/compound/index.js";import{DepositActivityDetail as o}from"../widgets/activity/DepositActivityDetail.js";import{DepositActivityList as s}from"../widgets/activity/DepositActivityList.js";import"../widgets/activity/index.js";import{AmountEntry as c}from"../widgets/amount-entry/AmountEntry.js";import"../widgets/amount-entry/index.js";import{AssetPicker as l}from"../widgets/asset-picker/AssetPicker.js";import"../widgets/asset-picker/index.js";import{
|
|
1
|
+
"use client";import{useDepositSnapshot as e}from"../driver/context.js";import{useControllerContext as t}from"../orchestrator/controller.js";import{useDepositEmissions as n}from"../../../events/emit/useDepositEmissions.js";import"../../../events/emit/index.js";import{useIntercomShutdownOnUnmount as r}from"../../../shared/support/useIntercomShutdownOnUnmount.js";import"../../../shared/support/index.js";import{AdaptiveSurface as i}from"../../../shared/ui/AdaptiveSurface/AdaptiveSurface.js";import"../../../shared/ui/AdaptiveSurface/index.js";import{Deposit as a}from"../widgets/deposit/compound/Deposit.js";import"../widgets/deposit/compound/index.js";import{DepositActivityDetail as o}from"../widgets/activity/DepositActivityDetail.js";import{DepositActivityList as s}from"../widgets/activity/DepositActivityList.js";import"../widgets/activity/index.js";import{AmountEntry as c}from"../widgets/amount-entry/AmountEntry.js";import"../widgets/amount-entry/index.js";import{AssetPicker as l}from"../widgets/asset-picker/AssetPicker.js";import"../widgets/asset-picker/index.js";import{CashAmountEntry as u}from"../widgets/cash-amount-entry/CashAmountEntry.js";import"../widgets/cash-amount-entry/index.js";import{CashConfirm as d}from"../widgets/cash-confirm/CashConfirm.js";import"../widgets/cash-confirm/index.js";import{ConfirmDeposit as f}from"../widgets/confirm-deposit/ConfirmDeposit.js";import"../widgets/confirm-deposit/index.js";import{Deposit as p}from"../widgets/deposit/Deposit.js";import"../widgets/deposit/index.js";import{DepositStatusBanner as m}from"../widgets/deposit-status-banner/DepositStatusBanner.js";import"../widgets/deposit-status-banner/index.js";import{ErrorState as h}from"../widgets/error-state/ErrorState.js";import"../widgets/error-state/index.js";import{ProcessingState as g}from"../widgets/processing-state/ProcessingState.js";import"../widgets/processing-state/index.js";import{SuccessState as _}from"../widgets/success-state/SuccessState.js";import"../widgets/success-state/index.js";import{TransferCrypto as v}from"../widgets/transfer-crypto/TransferCrypto.js";import"../widgets/transfer-crypto/index.js";import{jsx as y,jsxs as b}from"react/jsx-runtime";function x({container:x,metadata:S,onError:C,presentation:w}={}){let{state:T,controller:E}=t(),D=e(),O=T.name!==`closed`;return n({state:T,settlement:D.settlement,quote:D.quote,metadata:S}),r(),y(i,{open:O,onOpenChange:e=>{e||E.close()},container:x,...w?{presentation:w}:{},children:b(a.Boundary,{...C?{onError:C}:{},children:[y(a.Guards,{children:b(a.Steps,{children:[y(a.Step,{name:`deposit`,children:y(p,{})}),y(a.Step,{name:`assetPicker`,children:y(l,{})}),y(a.Step,{name:`amountEntry`,children:y(c,{})}),y(a.Step,{name:`cashAmountEntry`,children:y(u,{})}),y(a.Step,{name:`cashConfirm`,children:y(d,{})}),y(a.Step,{name:`confirmDeposit`,children:y(f,{})}),y(a.Step,{name:`transferCrypto`,children:y(v,{})}),y(a.Step,{name:`processing`,children:y(g,{})}),y(a.Step,{name:`success`,children:y(_,{})}),y(a.Step,{name:`error`,children:y(h,{})}),y(a.Step,{name:`activityList`,children:y(s,{})}),y(a.Step,{name:`activityDetail`,children:y(o,{})})]})}),y(m,{})]})})}export{x as DepositDialog};
|
|
@@ -40,6 +40,40 @@ interface WalletPayload {
|
|
|
40
40
|
*/
|
|
41
41
|
balanceTotalUsd?: FormattedField<number>;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Capability descriptor for a single cash-rail payment method (Card / Apple Pay / Google Pay).
|
|
45
|
+
* Drivers populate the per-method limit + processing-time the deposit-method picker surfaces on
|
|
46
|
+
* the cash rows' meta line (`"$116,000.00 limit · Instant"`). Both fields are optional so the
|
|
47
|
+
* meta line drops segments gracefully when the driver doesn't surface them yet.
|
|
48
|
+
*/
|
|
49
|
+
interface CashMethodCapability {
|
|
50
|
+
/**
|
|
51
|
+
* Per-method maximum deposit, in USD. `value` is the raw ceiling for sorting / range checks;
|
|
52
|
+
* `formatted` is the localized currency string (`"$116,000.00"`). The widget composes the
|
|
53
|
+
* meta segment from the formatted string plus a localized `" limit"` suffix.
|
|
54
|
+
*/
|
|
55
|
+
limit?: FormattedField<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Estimated time from confirmation to credit. `value` is seconds (`0` = instant); `formatted`
|
|
58
|
+
* is the localized display label the widget renders verbatim (`"Instant"`, `"5 min"`, …).
|
|
59
|
+
* Drivers pre-format because the kit's i18n macros do not have driver-thread access.
|
|
60
|
+
*/
|
|
61
|
+
processingTime?: FormattedField<number>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Per-cash-method capability bag surfaced on `DepositSnapshot.cashMethods`. Each key matches a
|
|
65
|
+
* method id rendered inside `Deposit.MethodSection`; the orchestrated `Deposit` widget reads each
|
|
66
|
+
* row's `limit` + `processingTime` and maps them into the row's meta line. Future cash methods
|
|
67
|
+
* (`bankTransfer`, `cashPickup`, …) extend this shape additively.
|
|
68
|
+
*/
|
|
69
|
+
interface CashMethodsPayload {
|
|
70
|
+
/** Capabilities for the Card method (`Deposit.Method` row in the cash rail). */
|
|
71
|
+
card?: CashMethodCapability;
|
|
72
|
+
/** Capabilities for the Apple Pay method. */
|
|
73
|
+
applePay?: CashMethodCapability;
|
|
74
|
+
/** Capabilities for the Google Pay method. */
|
|
75
|
+
googlePay?: CashMethodCapability;
|
|
76
|
+
}
|
|
43
77
|
/**
|
|
44
78
|
* Brand context surfaced across the kit's chrome — `<DialogShell>` title, `<ConfirmDeposit>`
|
|
45
79
|
* destination row, `<ProcessingState>` header pill, `<SuccessState>` "credited to" line. The host
|
|
@@ -352,4 +386,4 @@ interface SettlementFailurePayload {
|
|
|
352
386
|
*/
|
|
353
387
|
type SettlementPayload = SettlementPendingPayload | SettlementSuccessPayload | SettlementFailurePayload;
|
|
354
388
|
//#endregion
|
|
355
|
-
export { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload };
|
|
389
|
+
export { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, CashMethodCapability, CashMethodsPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Entity, SettlementFailureKind, TxRef } from "../../../shared/driver/types.js";
|
|
2
|
-
import { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload } from "./payloads.js";
|
|
2
|
+
import { AcceptedAssetPayload, AddressItemPayload, AssetPayload, BalanceItemPayload, BrandPayload, CashMethodCapability, CashMethodsPayload, ChainPayload, QuoteBreakdownPayload, QuotePayload, QuoteRoutePayload, SettlementFailurePayload, SettlementPayload, SettlementPendingPayload, SettlementSuccessPayload, SourceWalletPayload, TargetPayload, WalletInfo, WalletPayload } from "./payloads.js";
|
|
3
3
|
import { DepositAddressDto, GatewaySettlementDto, GatewayStartResponse, GatewayUdaDto, OnchainBalanceResponse, QuoteResponse, SupportedAssetDto, SupportedAssetsResponse } from "@stridge/sdk";
|
|
4
4
|
|
|
5
5
|
//#region src/flows/deposit/driver/types.d.ts
|
|
@@ -47,6 +47,15 @@ interface DepositSnapshot {
|
|
|
47
47
|
* settlement (deposit-method tile, amount-entry source pill, banner disconnected-state copy).
|
|
48
48
|
*/
|
|
49
49
|
wallet: Entity<WalletPayload, WalletInfo, WalletInfo>;
|
|
50
|
+
/**
|
|
51
|
+
* Per-cash-method capability bag — limits + processing times surfaced on the cash-rail
|
|
52
|
+
* method rows' meta line. Optional so BYO drivers shipped before the cash rail existed
|
|
53
|
+
* keep type-checking against the contract; readers null-coalesce a missing entity to
|
|
54
|
+
* `idle`, which already means "no cash backend wired up yet" in the kit's reducer. The
|
|
55
|
+
* live stridge driver wires this through `getCashMethods()` once the cash API ships; the
|
|
56
|
+
* mock driver seeds fixtures today.
|
|
57
|
+
*/
|
|
58
|
+
cashMethods?: Entity<CashMethodsPayload, CashMethodsPayload, CashMethodsPayload>;
|
|
50
59
|
}
|
|
51
60
|
/**
|
|
52
61
|
* Input to {@link DepositDriver.requestQuote}.
|