@daimo/sdk 1.0.0-rc.1 → 1.0.0-rc.3
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/README.md +15 -0
- package/dist/common/api.d.ts.map +1 -1
- package/dist/common/api.js +3 -1
- package/dist/common/api.js.map +1 -1
- package/dist/common/legacy/assert.d.ts +6 -0
- package/dist/common/legacy/assert.d.ts.map +1 -0
- package/dist/common/legacy/assert.js +25 -0
- package/dist/common/legacy/assert.js.map +1 -0
- package/dist/common/legacy/client.d.ts +67 -0
- package/dist/common/legacy/client.d.ts.map +1 -0
- package/dist/common/legacy/client.js +55 -0
- package/dist/common/legacy/client.js.map +1 -0
- package/dist/common/legacy/debug.d.ts +5 -0
- package/dist/common/legacy/debug.d.ts.map +1 -0
- package/dist/common/legacy/debug.js +21 -0
- package/dist/common/legacy/debug.js.map +1 -0
- package/dist/common/legacy/format.d.ts +16 -0
- package/dist/common/legacy/format.d.ts.map +1 -0
- package/dist/common/legacy/format.js +34 -0
- package/dist/common/legacy/format.js.map +1 -0
- package/dist/common/legacy/index.d.ts +11 -0
- package/dist/common/legacy/index.d.ts.map +1 -0
- package/dist/common/legacy/index.js +11 -0
- package/dist/common/legacy/index.js.map +1 -0
- package/dist/common/legacy/primitiveTypes.d.ts +11 -0
- package/dist/common/legacy/primitiveTypes.d.ts.map +1 -0
- package/dist/common/legacy/primitiveTypes.js +14 -0
- package/dist/common/legacy/primitiveTypes.js.map +1 -0
- package/dist/common/legacy/session.d.ts +246 -0
- package/dist/common/legacy/session.d.ts.map +1 -0
- package/dist/common/legacy/session.js +124 -0
- package/dist/common/legacy/session.js.map +1 -0
- package/dist/common/legacy/try.d.ts +4 -0
- package/dist/common/legacy/try.d.ts.map +1 -0
- package/dist/common/legacy/try.js +26 -0
- package/dist/common/legacy/try.js.map +1 -0
- package/dist/common/primitives.d.ts +2 -2
- package/dist/common/primitives.d.ts.map +1 -1
- package/dist/common/primitives.js +13 -4
- package/dist/common/primitives.js.map +1 -1
- package/dist/common/session.d.ts +2 -0
- package/dist/common/session.d.ts.map +1 -1
- package/dist/common/session.js +4 -0
- package/dist/common/session.js.map +1 -1
- package/dist/hooks/DaimoClientContext.d.ts +7 -0
- package/dist/hooks/DaimoClientContext.d.ts.map +1 -0
- package/dist/hooks/DaimoClientContext.js +15 -0
- package/dist/hooks/DaimoClientContext.js.map +1 -0
- package/dist/hooks/formatUserError.d.ts +3 -0
- package/dist/hooks/formatUserError.d.ts.map +1 -0
- package/dist/hooks/formatUserError.js +30 -0
- package/dist/hooks/formatUserError.js.map +1 -0
- package/dist/hooks/index.d.ts +12 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/locale.d.ts +7 -0
- package/dist/hooks/locale.d.ts.map +1 -0
- package/dist/hooks/locale.js +15 -0
- package/dist/hooks/locale.js.map +1 -0
- package/dist/hooks/locales/en.d.ts +60 -0
- package/dist/hooks/locales/en.d.ts.map +1 -0
- package/dist/hooks/locales/en.js +76 -0
- package/dist/hooks/locales/en.js.map +1 -0
- package/dist/hooks/locales/es.d.ts +4 -0
- package/dist/hooks/locales/es.d.ts.map +1 -0
- package/dist/hooks/locales/es.js +60 -0
- package/dist/hooks/locales/es.js.map +1 -0
- package/dist/hooks/navEvent.d.ts +60 -0
- package/dist/hooks/navEvent.d.ts.map +1 -0
- package/dist/hooks/navEvent.js +16 -0
- package/dist/hooks/navEvent.js.map +1 -0
- package/dist/hooks/types.d.ts +71 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +14 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks/usePaymentCallbacks.d.ts +15 -0
- package/dist/hooks/usePaymentCallbacks.d.ts.map +1 -0
- package/dist/hooks/usePaymentCallbacks.js +27 -0
- package/dist/hooks/usePaymentCallbacks.js.map +1 -0
- package/dist/hooks/useSessionNav.d.ts +31 -0
- package/dist/hooks/useSessionNav.d.ts.map +1 -0
- package/dist/hooks/useSessionNav.js +439 -0
- package/dist/hooks/useSessionNav.js.map +1 -0
- package/dist/hooks/useSessionPolling.d.ts +10 -0
- package/dist/hooks/useSessionPolling.d.ts.map +1 -0
- package/dist/hooks/useSessionPolling.js +61 -0
- package/dist/hooks/useSessionPolling.js.map +1 -0
- package/dist/web/ChooseOptionPage.d.ts +9 -0
- package/dist/web/ChooseOptionPage.d.ts.map +1 -0
- package/dist/web/ChooseOptionPage.js +51 -0
- package/dist/web/ChooseOptionPage.js.map +1 -0
- package/dist/web/ConfirmationPage.d.ts +32 -0
- package/dist/web/ConfirmationPage.d.ts.map +1 -0
- package/dist/web/ConfirmationPage.js +72 -0
- package/dist/web/ConfirmationPage.js.map +1 -0
- package/dist/web/ConfirmationSpinner.d.ts +7 -0
- package/dist/web/ConfirmationSpinner.d.ts.map +1 -0
- package/dist/web/ConfirmationSpinner.js +20 -0
- package/dist/web/ConfirmationSpinner.js.map +1 -0
- package/dist/web/DaimoModal.d.ts +15 -0
- package/dist/web/DaimoModal.d.ts.map +1 -0
- package/dist/web/DaimoModal.js +283 -0
- package/dist/web/DaimoModal.js.map +1 -0
- package/dist/web/DeeplinkPage.d.ts +8 -0
- package/dist/web/DeeplinkPage.d.ts.map +1 -0
- package/dist/web/DeeplinkPage.js +13 -0
- package/dist/web/DeeplinkPage.js.map +1 -0
- package/dist/web/ErrorPage.d.ts +28 -0
- package/dist/web/ErrorPage.d.ts.map +1 -0
- package/dist/web/ErrorPage.js +47 -0
- package/dist/web/ErrorPage.js.map +1 -0
- package/dist/web/ExchangePage.d.ts +11 -0
- package/dist/web/ExchangePage.d.ts.map +1 -0
- package/dist/web/ExchangePage.js +13 -0
- package/dist/web/ExchangePage.js.map +1 -0
- package/dist/web/ExpiredPage.d.ts +9 -0
- package/dist/web/ExpiredPage.d.ts.map +1 -0
- package/dist/web/ExpiredPage.js +12 -0
- package/dist/web/ExpiredPage.js.map +1 -0
- package/dist/web/ModalSkeleton.d.ts +7 -0
- package/dist/web/ModalSkeleton.d.ts.map +1 -0
- package/dist/web/ModalSkeleton.js +13 -0
- package/dist/web/ModalSkeleton.js.map +1 -0
- package/dist/web/ProgressDots.d.ts +16 -0
- package/dist/web/ProgressDots.d.ts.map +1 -0
- package/dist/web/ProgressDots.js +55 -0
- package/dist/web/ProgressDots.js.map +1 -0
- package/dist/web/QRCode.d.ts +7 -0
- package/dist/web/QRCode.d.ts.map +1 -0
- package/dist/web/QRCode.js +69 -0
- package/dist/web/QRCode.js.map +1 -0
- package/dist/web/SelectAmountPage.d.ts +21 -0
- package/dist/web/SelectAmountPage.d.ts.map +1 -0
- package/dist/web/SelectAmountPage.js +27 -0
- package/dist/web/SelectAmountPage.js.map +1 -0
- package/dist/web/SelectTokenPage.d.ts +14 -0
- package/dist/web/SelectTokenPage.d.ts.map +1 -0
- package/dist/web/SelectTokenPage.js +71 -0
- package/dist/web/SelectTokenPage.js.map +1 -0
- package/dist/web/WaitingDepositAddressPage.d.ts +14 -0
- package/dist/web/WaitingDepositAddressPage.d.ts.map +1 -0
- package/dist/web/WaitingDepositAddressPage.js +126 -0
- package/dist/web/WaitingDepositAddressPage.js.map +1 -0
- package/dist/web/WalletAmountPage.d.ts +10 -0
- package/dist/web/WalletAmountPage.d.ts.map +1 -0
- package/dist/web/WalletAmountPage.js +158 -0
- package/dist/web/WalletAmountPage.js.map +1 -0
- package/dist/web/api/navTree.d.ts +1 -0
- package/dist/web/api/navTree.d.ts.map +1 -1
- package/dist/web/buttons.d.ts +15 -0
- package/dist/web/buttons.d.ts.map +1 -0
- package/dist/web/buttons.js +24 -0
- package/dist/web/buttons.js.map +1 -0
- package/dist/web/components/ChooseChainPage.d.ts +9 -0
- package/dist/web/components/ChooseChainPage.d.ts.map +1 -0
- package/dist/web/components/ChooseChainPage.js +10 -0
- package/dist/web/components/ChooseChainPage.js.map +1 -0
- package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
- package/dist/web/components/ChooseOptionPage.js +2 -10
- package/dist/web/components/ChooseOptionPage.js.map +1 -1
- package/dist/web/components/ChooseWalletPage.d.ts +13 -0
- package/dist/web/components/ChooseWalletPage.d.ts.map +1 -0
- package/dist/web/components/ChooseWalletPage.js +15 -0
- package/dist/web/components/ChooseWalletPage.js.map +1 -0
- package/dist/web/components/ConfirmationPage.d.ts +3 -1
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.js +3 -2
- package/dist/web/components/ConfirmationPage.js.map +1 -1
- package/dist/web/components/DaimoModal.d.ts.map +1 -1
- package/dist/web/components/DaimoModal.js +72 -137
- package/dist/web/components/DaimoModal.js.map +1 -1
- package/dist/web/components/DeeplinkPage.d.ts +1 -0
- package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
- package/dist/web/components/DeeplinkPage.js +13 -2
- package/dist/web/components/DeeplinkPage.js.map +1 -1
- package/dist/web/components/ExchangePage.js +2 -2
- package/dist/web/components/ExchangePage.js.map +1 -1
- package/dist/web/components/ExpiredPage.d.ts +2 -1
- package/dist/web/components/ExpiredPage.d.ts.map +1 -1
- package/dist/web/components/ExpiredPage.js +3 -3
- package/dist/web/components/ExpiredPage.js.map +1 -1
- package/dist/web/components/SelectTokenPage.d.ts +2 -1
- package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
- package/dist/web/components/SelectTokenPage.js +5 -9
- package/dist/web/components/SelectTokenPage.js.map +1 -1
- package/dist/web/components/WalletAmountPage.js +1 -1
- package/dist/web/components/WalletAmountPage.js.map +1 -1
- package/dist/web/components/containers.d.ts.map +1 -1
- package/dist/web/components/containers.js +6 -2
- package/dist/web/components/containers.js.map +1 -1
- package/dist/web/components/shared.d.ts +9 -4
- package/dist/web/components/shared.d.ts.map +1 -1
- package/dist/web/components/shared.js +13 -4
- package/dist/web/components/shared.js.map +1 -1
- package/dist/web/containers.d.ts +19 -0
- package/dist/web/containers.d.ts.map +1 -0
- package/dist/web/containers.js +77 -0
- package/dist/web/containers.js.map +1 -0
- package/dist/web/hooks/locales/en.d.ts +2 -0
- package/dist/web/hooks/locales/en.d.ts.map +1 -1
- package/dist/web/hooks/locales/en.js +2 -0
- package/dist/web/hooks/locales/en.js.map +1 -1
- package/dist/web/hooks/locales/es.d.ts.map +1 -1
- package/dist/web/hooks/locales/es.js +2 -0
- package/dist/web/hooks/locales/es.js.map +1 -1
- package/dist/web/hooks/types.d.ts +8 -0
- package/dist/web/hooks/types.d.ts.map +1 -1
- package/dist/web/hooks/types.js.map +1 -1
- package/dist/web/hooks/useDepositAddress.d.ts +7 -0
- package/dist/web/hooks/useDepositAddress.d.ts.map +1 -0
- package/dist/web/hooks/useDepositAddress.js +36 -0
- package/dist/web/hooks/useDepositAddress.js.map +1 -0
- package/dist/web/hooks/useInjectedWallets.d.ts +14 -0
- package/dist/web/hooks/useInjectedWallets.d.ts.map +1 -0
- package/dist/web/hooks/useInjectedWallets.js +67 -0
- package/dist/web/hooks/useInjectedWallets.js.map +1 -0
- package/dist/web/hooks/usePaymentCallbacks.d.ts.map +1 -1
- package/dist/web/hooks/usePaymentCallbacks.js +2 -3
- package/dist/web/hooks/usePaymentCallbacks.js.map +1 -1
- package/dist/web/hooks/useSessionNav.d.ts +5 -3
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
- package/dist/web/hooks/useSessionNav.js +111 -30
- package/dist/web/hooks/useSessionNav.js.map +1 -1
- package/dist/web/hooks/useSessionPolling.d.ts +1 -1
- package/dist/web/hooks/useSessionPolling.d.ts.map +1 -1
- package/dist/web/hooks/useSessionPolling.js +14 -19
- package/dist/web/hooks/useSessionPolling.js.map +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts +4 -0
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
- package/dist/web/hooks/useWalletFlow.js +66 -11
- package/dist/web/hooks/useWalletFlow.js.map +1 -1
- package/dist/web/hooks/walletProvider.d.ts +2 -0
- package/dist/web/hooks/walletProvider.d.ts.map +1 -1
- package/dist/web/hooks/walletProvider.js +9 -0
- package/dist/web/hooks/walletProvider.js.map +1 -1
- package/dist/web/icons.d.ts +22 -0
- package/dist/web/icons.d.ts.map +1 -0
- package/dist/web/icons.js +33 -0
- package/dist/web/icons.js.map +1 -0
- package/dist/web/index.d.ts +3 -0
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +2 -0
- package/dist/web/index.js.map +1 -1
- package/dist/web/shared.d.ts +93 -0
- package/dist/web/shared.d.ts.map +1 -0
- package/dist/web/shared.js +202 -0
- package/dist/web/shared.js.map +1 -0
- package/dist/web/useCopyToClipboard.d.ts +6 -0
- package/dist/web/useCopyToClipboard.d.ts.map +1 -0
- package/dist/web/useCopyToClipboard.js +20 -0
- package/dist/web/useCopyToClipboard.js.map +1 -0
- package/dist/web/useWalletFlow.d.ts +23 -0
- package/dist/web/useWalletFlow.d.ts.map +1 -0
- package/dist/web/useWalletFlow.js +334 -0
- package/dist/web/useWalletFlow.js.map +1 -0
- package/dist/web/walletProvider.d.ts +34 -0
- package/dist/web/walletProvider.d.ts.map +1 -0
- package/dist/web/walletProvider.js +14 -0
- package/dist/web/walletProvider.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInjectedWallets.js","sourceRoot":"","sources":["../../../src/web/hooks/useInjectedWallets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAsBlF,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM,EAAE,GAAG,KAA6B,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;gBAAE,OAAO;YAChC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACpE,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;gBAC/E,OAAO;oBACL,GAAG,IAAI;oBACP;wBACE,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,WAAW,EAAE,MAAM,CAAC,QAAQ;wBAC5B,cAAc;qBACf;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAE3D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,6EAA6E;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/D,OAAO;gBACL,GAAG,IAAI;gBACP;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,mBAAmB;qBAC1B;oBACD,cAAc,EAAE,MAAM;iBACvB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaymentCallbacks.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePaymentCallbacks.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,gBAAgB,QAgB5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isSessionStarted } from "../../common/session.js";
|
|
1
2
|
import { useEffect } from "react";
|
|
2
3
|
/**
|
|
3
4
|
* Manages payment lifecycle callbacks:
|
|
@@ -6,9 +7,7 @@ import { useEffect } from "react";
|
|
|
6
7
|
* - onPaymentCompleted: when session completes
|
|
7
8
|
*/
|
|
8
9
|
export function usePaymentCallbacks(session, isOpen, callbacks) {
|
|
9
|
-
const isStarted = session.status
|
|
10
|
-
session.status === "succeeded" ||
|
|
11
|
-
session.status === "bounced";
|
|
10
|
+
const isStarted = isSessionStarted(session.status);
|
|
12
11
|
const isCompleted = session.status === "succeeded";
|
|
13
12
|
const { onOpen, onPaymentStarted, onPaymentCompleted } = callbacks;
|
|
14
13
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaymentCallbacks.js","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,MAAe,EACf,SAA2B;IAE3B,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"usePaymentCallbacks.js","sourceRoot":"","sources":["../../../src/web/hooks/usePaymentCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,MAAe,EACf,SAA2B;IAE3B,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC;IAEnD,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM;YAAE,MAAM,EAAE,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS;YAAE,gBAAgB,EAAE,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,kBAAkB,EAAE,EAAE,CAAC;IAC1C,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -2,6 +2,8 @@ import type { SessionWithNav } from "../api/navTree.js";
|
|
|
2
2
|
import type { WalletPaymentOption } from "../api/walletTypes.js";
|
|
3
3
|
import { type NavNodeType } from "./navEvent.js";
|
|
4
4
|
import { type NavEntry } from "./types.js";
|
|
5
|
+
import type { InjectedWallet } from "./useInjectedWallets.js";
|
|
6
|
+
import { type WalletFlowResult } from "./useWalletFlow.js";
|
|
5
7
|
type NodeContext = {
|
|
6
8
|
nodeId: string | null;
|
|
7
9
|
nodeType: NavNodeType | null;
|
|
@@ -18,11 +20,11 @@ type SessionNavResult = {
|
|
|
18
20
|
handleAmountContinue: (amountUsd: number) => void;
|
|
19
21
|
handleRetry: () => void;
|
|
20
22
|
handleRefresh: () => Promise<void>;
|
|
21
|
-
|
|
23
|
+
handleInjectedWalletSelect: (wallet: InjectedWallet) => void;
|
|
24
|
+
handleChainSelect: (chain: "evm" | "solana") => void;
|
|
22
25
|
handleWalletSelectToken: (token: WalletPaymentOption) => void;
|
|
23
26
|
handleWalletSending: (token: WalletPaymentOption, amountUsd: number) => void;
|
|
24
|
-
handleWalletTxResult: (txHash?: string, error?: string) => void;
|
|
25
27
|
};
|
|
26
|
-
export declare function useSessionNav(session: SessionWithNav, setSession: React.Dispatch<React.SetStateAction<SessionWithNav>>, platform?: "ios" | "android" | "other"): SessionNavResult;
|
|
28
|
+
export declare function useSessionNav(session: SessionWithNav, setSession: React.Dispatch<React.SetStateAction<SessionWithNav>>, isOpen: boolean, platform?: "ios" | "android" | "other", walletFlow?: WalletFlowResult): SessionNavResult;
|
|
27
29
|
export {};
|
|
28
30
|
//# sourceMappingURL=useSessionNav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionNav.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSessionNav.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IAEnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,0BAA0B,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7D,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACrD,uBAAuB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9D,mBAAmB,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E,CAAC;AAEF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAChE,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,EACtC,UAAU,CAAC,EAAE,gBAAgB,GAC5B,gBAAgB,CA0kBlB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { useCallback, useMemo, useState } from "react";
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { useDaimoClient } from "./DaimoClientContext.js";
|
|
3
|
+
import { formatUserError } from "./formatUserError.js";
|
|
3
4
|
import { t } from "./locale.js";
|
|
4
5
|
import { createNavLogger } from "./navEvent.js";
|
|
5
6
|
import { findNode } from "./types.js";
|
|
6
|
-
|
|
7
|
+
import { isUserRejection } from "./useWalletFlow.js";
|
|
8
|
+
export function useSessionNav(session, setSession, isOpen, platform, walletFlow) {
|
|
7
9
|
const client = useDaimoClient();
|
|
8
10
|
const logNavEvent = createNavLogger(client);
|
|
9
11
|
const [stack, setStack] = useState([]);
|
|
@@ -341,29 +343,77 @@ export function useSessionNav(session, setSession, platform) {
|
|
|
341
343
|
}
|
|
342
344
|
}, [session.sessionId, session.clientSecret, getNodeCtx, setSession, client]);
|
|
343
345
|
// ─── Wallet flow handlers ───────────────────────────────────────────────
|
|
344
|
-
const
|
|
345
|
-
|
|
346
|
+
const pendingWalletRef = useRef(null);
|
|
347
|
+
const handleInjectedWalletSelect = useCallback((wallet) => {
|
|
348
|
+
const { name: walletName, icon: walletIcon } = wallet.info;
|
|
349
|
+
if (wallet.evmProvider && wallet.solanaProvider) {
|
|
350
|
+
pendingWalletRef.current = wallet;
|
|
351
|
+
setStack((prev) => [
|
|
352
|
+
...prev,
|
|
353
|
+
{ type: "wallet-choose-chain", nodeId: "InjectedWallet", walletName, walletIcon },
|
|
354
|
+
]);
|
|
346
355
|
return;
|
|
356
|
+
}
|
|
347
357
|
setStack((prev) => [
|
|
348
358
|
...prev,
|
|
349
|
-
{ type: "wallet-
|
|
359
|
+
{ type: "wallet-connect", nodeId: "InjectedWallet", walletName, walletIcon, autoNav: true },
|
|
360
|
+
]);
|
|
361
|
+
if (wallet.solanaProvider) {
|
|
362
|
+
walletFlow?.connectWithSolanaProvider(wallet.solanaProvider);
|
|
363
|
+
}
|
|
364
|
+
else if (wallet.evmProvider) {
|
|
365
|
+
walletFlow?.connectWithProvider(wallet.evmProvider);
|
|
366
|
+
}
|
|
367
|
+
}, [walletFlow]);
|
|
368
|
+
const handleChainSelect = useCallback((chain) => {
|
|
369
|
+
const wallet = pendingWalletRef.current;
|
|
370
|
+
if (!wallet)
|
|
371
|
+
return;
|
|
372
|
+
const { name: walletName, icon: walletIcon } = wallet.info;
|
|
373
|
+
setStack((prev) => [
|
|
374
|
+
...prev,
|
|
375
|
+
{ type: "wallet-connect", nodeId: "InjectedWallet", walletName, walletIcon, autoNav: true },
|
|
376
|
+
]);
|
|
377
|
+
if (chain === "solana" && wallet.solanaProvider) {
|
|
378
|
+
walletFlow?.connectWithSolanaProvider(wallet.solanaProvider);
|
|
379
|
+
}
|
|
380
|
+
else if (wallet.evmProvider) {
|
|
381
|
+
walletFlow?.connectWithProvider(wallet.evmProvider);
|
|
382
|
+
}
|
|
383
|
+
}, [walletFlow]);
|
|
384
|
+
const updateWalletTxResult = useCallback((txHash, error) => {
|
|
385
|
+
setStack((prev) => {
|
|
386
|
+
const top = prev[prev.length - 1];
|
|
387
|
+
if (top?.type !== "wallet-sending")
|
|
388
|
+
return prev;
|
|
389
|
+
return [...prev.slice(0, -1), { ...top, txHash, error }];
|
|
390
|
+
});
|
|
391
|
+
}, []);
|
|
392
|
+
const fireWalletSend = useCallback((nodeId, token, amountUsd) => {
|
|
393
|
+
setStack((prev) => [
|
|
394
|
+
...prev,
|
|
395
|
+
{ type: "wallet-sending", nodeId, token, amountUsd },
|
|
350
396
|
]);
|
|
351
|
-
|
|
397
|
+
walletFlow
|
|
398
|
+
?.sendTransaction(token, amountUsd)
|
|
399
|
+
.then(({ txHash }) => {
|
|
400
|
+
updateWalletTxResult(txHash);
|
|
401
|
+
})
|
|
402
|
+
.catch((err) => {
|
|
403
|
+
if (isUserRejection(err)) {
|
|
404
|
+
handleBack();
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
updateWalletTxResult(undefined, formatUserError(err, t.transactionFailed));
|
|
408
|
+
});
|
|
409
|
+
}, [walletFlow, handleBack, updateWalletTxResult]);
|
|
352
410
|
const handleWalletSelectToken = useCallback((token) => {
|
|
353
411
|
if (topEntry?.type !== "wallet-select-token")
|
|
354
412
|
return;
|
|
355
413
|
const { amountUnits } = session.destination;
|
|
356
414
|
const requiredUsd = amountUnits ? parseFloat(amountUnits) : 0;
|
|
357
415
|
if (requiredUsd > 0) {
|
|
358
|
-
|
|
359
|
-
...prev,
|
|
360
|
-
{
|
|
361
|
-
type: "wallet-sending",
|
|
362
|
-
nodeId: topEntry.nodeId,
|
|
363
|
-
token,
|
|
364
|
-
amountUsd: requiredUsd,
|
|
365
|
-
},
|
|
366
|
-
]);
|
|
416
|
+
fireWalletSend(topEntry.nodeId, token, requiredUsd);
|
|
367
417
|
}
|
|
368
418
|
else {
|
|
369
419
|
setStack((prev) => [
|
|
@@ -371,24 +421,55 @@ export function useSessionNav(session, setSession, platform) {
|
|
|
371
421
|
{ type: "wallet-select-amount", nodeId: topEntry.nodeId, token },
|
|
372
422
|
]);
|
|
373
423
|
}
|
|
374
|
-
}, [topEntry, session.destination]);
|
|
424
|
+
}, [topEntry, session.destination, fireWalletSend]);
|
|
375
425
|
const handleWalletSending = useCallback((token, amountUsd) => {
|
|
376
426
|
if (topEntry?.type !== "wallet-select-amount" &&
|
|
377
427
|
topEntry?.type !== "wallet-select-token")
|
|
378
428
|
return;
|
|
429
|
+
fireWalletSend(topEntry.nodeId, token, amountUsd);
|
|
430
|
+
}, [topEntry, fireWalletSend]);
|
|
431
|
+
// ─── Internal effects ──────────────────────────────────────────────────
|
|
432
|
+
// Auto-navigate through single-option ChooseOption chains
|
|
433
|
+
const autoNavRef = useRef(null);
|
|
434
|
+
useEffect(() => {
|
|
435
|
+
if (!isOpen)
|
|
436
|
+
return;
|
|
437
|
+
if (topEntry &&
|
|
438
|
+
topEntry.type !== "choose-option" &&
|
|
439
|
+
topEntry.type !== "deeplink") {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const currentNodeId = topEntry?.nodeId;
|
|
443
|
+
let node = currentNodeId
|
|
444
|
+
? findNode(currentNodeId, session.navTree)
|
|
445
|
+
: (session.navTree[0] ?? null);
|
|
446
|
+
let targetId = null;
|
|
447
|
+
while (node?.type === "ChooseOption") {
|
|
448
|
+
const chooseNode = node;
|
|
449
|
+
if (chooseNode.options?.length !== 1)
|
|
450
|
+
break;
|
|
451
|
+
targetId = chooseNode.options[0].id;
|
|
452
|
+
node = findNode(targetId, session.navTree);
|
|
453
|
+
}
|
|
454
|
+
if (!targetId && node && node.type !== "ChooseOption") {
|
|
455
|
+
targetId = node.id;
|
|
456
|
+
}
|
|
457
|
+
if (targetId && autoNavRef.current !== targetId) {
|
|
458
|
+
autoNavRef.current = targetId;
|
|
459
|
+
handleNavigate(targetId, { autoNav: true });
|
|
460
|
+
}
|
|
461
|
+
}, [isOpen, topEntry, session.navTree, handleNavigate]);
|
|
462
|
+
// Auto-advance from wallet-connect to wallet-select-token when connected
|
|
463
|
+
useEffect(() => {
|
|
464
|
+
if (topEntry?.type !== "wallet-connect")
|
|
465
|
+
return;
|
|
466
|
+
if (walletFlow?.isConnecting || !walletFlow?.wallet)
|
|
467
|
+
return;
|
|
379
468
|
setStack((prev) => [
|
|
380
469
|
...prev,
|
|
381
|
-
{ type: "wallet-
|
|
470
|
+
{ type: "wallet-select-token", nodeId: topEntry.nodeId },
|
|
382
471
|
]);
|
|
383
|
-
}, [topEntry]);
|
|
384
|
-
const handleWalletTxResult = useCallback((txHash, error) => {
|
|
385
|
-
setStack((prev) => {
|
|
386
|
-
const top = prev[prev.length - 1];
|
|
387
|
-
if (top?.type !== "wallet-sending")
|
|
388
|
-
return prev;
|
|
389
|
-
return [...prev.slice(0, -1), { ...top, txHash, error }];
|
|
390
|
-
});
|
|
391
|
-
}, []);
|
|
472
|
+
}, [topEntry, walletFlow?.wallet, walletFlow?.isConnecting]);
|
|
392
473
|
return useMemo(() => ({
|
|
393
474
|
stack,
|
|
394
475
|
topEntry,
|
|
@@ -399,10 +480,10 @@ export function useSessionNav(session, setSession, platform) {
|
|
|
399
480
|
handleAmountContinue,
|
|
400
481
|
handleRetry,
|
|
401
482
|
handleRefresh,
|
|
402
|
-
|
|
483
|
+
handleInjectedWalletSelect,
|
|
484
|
+
handleChainSelect,
|
|
403
485
|
handleWalletSelectToken,
|
|
404
486
|
handleWalletSending,
|
|
405
|
-
handleWalletTxResult,
|
|
406
487
|
}), [
|
|
407
488
|
stack,
|
|
408
489
|
topEntry,
|
|
@@ -413,10 +494,10 @@ export function useSessionNav(session, setSession, platform) {
|
|
|
413
494
|
handleAmountContinue,
|
|
414
495
|
handleRetry,
|
|
415
496
|
handleRefresh,
|
|
416
|
-
|
|
497
|
+
handleInjectedWalletSelect,
|
|
498
|
+
handleChainSelect,
|
|
417
499
|
handleWalletSelectToken,
|
|
418
500
|
handleWalletSending,
|
|
419
|
-
handleWalletTxResult,
|
|
420
501
|
]);
|
|
421
502
|
}
|
|
422
503
|
//# sourceMappingURL=useSessionNav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionNav.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSessionNav.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionNav.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { SessionWithNav } from "../api/navTree.js";
|
|
|
3
3
|
* Polls session status from the server while modal is open until terminal.
|
|
4
4
|
* Terminal = expired or completed.
|
|
5
5
|
*/
|
|
6
|
-
export declare function useSessionPolling(initialSession: SessionWithNav, isOpen: boolean): {
|
|
6
|
+
export declare function useSessionPolling(initialSession: SessionWithNav, isOpen: boolean, txHash?: string): {
|
|
7
7
|
session: SessionWithNav;
|
|
8
8
|
setSession: import("react").Dispatch<import("react").SetStateAction<SessionWithNav>>;
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionPolling.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionPolling.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,MAAM;;;EA4ChB"}
|
|
@@ -1,36 +1,30 @@
|
|
|
1
|
-
import { isSessionActive } from "../../common/session.js";
|
|
1
|
+
import { isSessionActive, isSessionTerminal } from "../../common/session.js";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
import { useDaimoClient } from "./DaimoClientContext.js";
|
|
4
4
|
import { createNavLogger } from "./navEvent.js";
|
|
5
5
|
const POLL_INTERVAL_MS = 3000;
|
|
6
|
+
const terminalAction = {
|
|
7
|
+
expired: "session_expired",
|
|
8
|
+
succeeded: "session_completed",
|
|
9
|
+
bounced: "session_bounced",
|
|
10
|
+
};
|
|
6
11
|
/**
|
|
7
12
|
* Polls session status from the server while modal is open until terminal.
|
|
8
13
|
* Terminal = expired or completed.
|
|
9
14
|
*/
|
|
10
|
-
export function useSessionPolling(initialSession, isOpen) {
|
|
15
|
+
export function useSessionPolling(initialSession, isOpen, txHash) {
|
|
11
16
|
const client = useDaimoClient();
|
|
12
17
|
const logNavEvent = createNavLogger(client);
|
|
13
18
|
const [session, setSession] = useState(initialSession);
|
|
14
19
|
useEffect(() => {
|
|
15
|
-
if (session.status
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
action: "session_expired",
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else if (session.status === "succeeded") {
|
|
23
|
-
logNavEvent(session.sessionId, session.clientSecret, {
|
|
24
|
-
nodeId: null,
|
|
25
|
-
nodeType: null,
|
|
26
|
-
action: "session_completed",
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
else if (session.status === "bounced") {
|
|
20
|
+
if (!isSessionTerminal(session.status))
|
|
21
|
+
return;
|
|
22
|
+
const action = terminalAction[session.status];
|
|
23
|
+
if (action) {
|
|
30
24
|
logNavEvent(session.sessionId, session.clientSecret, {
|
|
31
25
|
nodeId: null,
|
|
32
26
|
nodeType: null,
|
|
33
|
-
action
|
|
27
|
+
action,
|
|
34
28
|
});
|
|
35
29
|
}
|
|
36
30
|
}, [session.status, session.sessionId]);
|
|
@@ -41,6 +35,7 @@ export function useSessionPolling(initialSession, isOpen) {
|
|
|
41
35
|
try {
|
|
42
36
|
const result = await client.sessions.check(session.sessionId, {
|
|
43
37
|
clientSecret: session.clientSecret,
|
|
38
|
+
txHash,
|
|
44
39
|
});
|
|
45
40
|
setSession((prev) => ({
|
|
46
41
|
...prev,
|
|
@@ -54,7 +49,7 @@ export function useSessionPolling(initialSession, isOpen) {
|
|
|
54
49
|
};
|
|
55
50
|
const interval = setInterval(poll, POLL_INTERVAL_MS);
|
|
56
51
|
return () => clearInterval(interval);
|
|
57
|
-
}, [isOpen, session.sessionId, session.status, session.clientSecret, client]);
|
|
52
|
+
}, [isOpen, session.sessionId, session.status, session.clientSecret, client, txHash]);
|
|
58
53
|
return { session, setSession };
|
|
59
54
|
}
|
|
60
55
|
//# sourceMappingURL=useSessionPolling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionPolling.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionPolling.js","sourceRoot":"","sources":["../../../src/web/hooks/useSessionPolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,cAAc,GAAG;IACrB,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;CAClB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAA8B,EAC9B,MAAe,EACf,MAAe;IAEf,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,MAAM,MAAM,GACV,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;gBACnD,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC5D,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM;iBACP,CAAC,CAAC;gBACH,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,GAAG,IAAI;oBACP,GAAG,MAAM,CAAC,OAAO;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WalletPaymentOption } from "../api/walletTypes.js";
|
|
2
2
|
import { Address } from "viem";
|
|
3
|
+
import { EthereumProvider, SolanaProvider } from "./walletProvider.js";
|
|
3
4
|
export type WalletData = {
|
|
4
5
|
evmAddress: Address | null;
|
|
5
6
|
solAddress: string | null;
|
|
@@ -12,6 +13,9 @@ export type WalletFlowResult = {
|
|
|
12
13
|
isLoadingBalances: boolean;
|
|
13
14
|
connectError: string | null;
|
|
14
15
|
connect: () => Promise<void>;
|
|
16
|
+
connectWithProvider: (provider: EthereumProvider) => Promise<void>;
|
|
17
|
+
connectWithSolanaProvider: (provider: SolanaProvider) => Promise<void>;
|
|
18
|
+
retryConnect: () => Promise<void>;
|
|
15
19
|
sendTransaction: (token: WalletPaymentOption, amountUsd: number) => Promise<{
|
|
16
20
|
txHash: string;
|
|
17
21
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useWalletFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"useWalletFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useWalletFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,OAAO,EAA8C,MAAM,MAAM,CAAC;AAK3E,OAAO,EACL,gBAAgB,EAChB,cAAc,EAGf,MAAM,qBAAqB,CAAC;AAc7B,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAiBF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yBAAyB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,eAAe,EAAE,CACf,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAoTlB;AAqID,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcrD"}
|
|
@@ -34,6 +34,8 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
|
|
|
34
34
|
const [isLoadingBalances, setIsLoadingBalances] = useState(false);
|
|
35
35
|
const [connectError, setConnectError] = useState(null);
|
|
36
36
|
const currentFetchRef = useRef(null);
|
|
37
|
+
const evmProviderRef = useRef(null);
|
|
38
|
+
const solanaProviderRef = useRef(null);
|
|
37
39
|
const hasInjectedWallet = typeof window !== "undefined" &&
|
|
38
40
|
(getEthereumProvider() !== null || getSolanaProvider() !== null);
|
|
39
41
|
const fetchBalances = useCallback(async (walletData, showLoading) => {
|
|
@@ -114,6 +116,60 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
|
|
|
114
116
|
setIsConnecting(false);
|
|
115
117
|
}
|
|
116
118
|
}, [fetchBalances]);
|
|
119
|
+
const connectWithProvider = useCallback(async (provider) => {
|
|
120
|
+
setConnectError(null);
|
|
121
|
+
setIsConnecting(true);
|
|
122
|
+
evmProviderRef.current = provider;
|
|
123
|
+
try {
|
|
124
|
+
const accounts = (await provider.request({
|
|
125
|
+
method: "eth_requestAccounts",
|
|
126
|
+
}));
|
|
127
|
+
const evmAddress = accounts?.length ? getAddress(accounts[0]) : null;
|
|
128
|
+
if (!evmAddress) {
|
|
129
|
+
setConnectError(t.walletUnavailable);
|
|
130
|
+
setIsConnecting(false);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const walletData = { evmAddress, solAddress: null };
|
|
134
|
+
setWallet(walletData);
|
|
135
|
+
setIsConnecting(false);
|
|
136
|
+
fetchBalances(walletData, true);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
console.error("failed to connect wallet:", err);
|
|
140
|
+
setConnectError(err instanceof Error ? err.message : t.walletUnavailable);
|
|
141
|
+
setIsConnecting(false);
|
|
142
|
+
}
|
|
143
|
+
}, [fetchBalances]);
|
|
144
|
+
const connectWithSolanaProvider = useCallback(async (provider) => {
|
|
145
|
+
setConnectError(null);
|
|
146
|
+
setIsConnecting(true);
|
|
147
|
+
solanaProviderRef.current = provider;
|
|
148
|
+
try {
|
|
149
|
+
const pk = provider.publicKey ?? (await provider.connect()).publicKey;
|
|
150
|
+
const solAddress = pk.toBase58();
|
|
151
|
+
const walletData = { evmAddress: null, solAddress };
|
|
152
|
+
setWallet(walletData);
|
|
153
|
+
setIsConnecting(false);
|
|
154
|
+
fetchBalances(walletData, true);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
console.error("failed to connect solana wallet:", err);
|
|
158
|
+
setConnectError(err instanceof Error ? err.message : t.walletUnavailable);
|
|
159
|
+
setIsConnecting(false);
|
|
160
|
+
}
|
|
161
|
+
}, [fetchBalances]);
|
|
162
|
+
const retryConnect = useCallback(async () => {
|
|
163
|
+
if (solanaProviderRef.current) {
|
|
164
|
+
await connectWithSolanaProvider(solanaProviderRef.current);
|
|
165
|
+
}
|
|
166
|
+
else if (evmProviderRef.current) {
|
|
167
|
+
await connectWithProvider(evmProviderRef.current);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
await connect();
|
|
171
|
+
}
|
|
172
|
+
}, [connectWithSolanaProvider, connectWithProvider, connect]);
|
|
117
173
|
const hasInitialized = useRef(false);
|
|
118
174
|
useEffect(() => {
|
|
119
175
|
if (hasInitialized.current)
|
|
@@ -136,7 +192,7 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
|
|
|
136
192
|
}
|
|
137
193
|
}, [autoConnect, connect, fetchBalances, hasInjectedWallet]);
|
|
138
194
|
useEffect(() => {
|
|
139
|
-
const ethereum = getEthereumProvider();
|
|
195
|
+
const ethereum = evmProviderRef.current ?? getEthereumProvider();
|
|
140
196
|
if (!ethereum?.on)
|
|
141
197
|
return;
|
|
142
198
|
const handleAccountsChanged = (accounts) => {
|
|
@@ -205,10 +261,10 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
|
|
|
205
261
|
throw new Error("missing client secret");
|
|
206
262
|
const tokenInfo = token.balance.token;
|
|
207
263
|
if (tokenInfo.chainId === solana.chainId) {
|
|
208
|
-
const txHash = await sendSolanaTransaction(
|
|
264
|
+
const txHash = await sendSolanaTransaction(wallet, sessionId, clientSecret, tokenInfo.token, amountUsd, client, solanaProviderRef.current);
|
|
209
265
|
return { txHash };
|
|
210
266
|
}
|
|
211
|
-
const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd);
|
|
267
|
+
const txHash = await sendEvmTransaction(wallet, destAddr, token, amountUsd, evmProviderRef.current);
|
|
212
268
|
return { txHash };
|
|
213
269
|
}, [wallet, sessionId, destAddr, clientSecret, client]);
|
|
214
270
|
return {
|
|
@@ -219,6 +275,9 @@ export function useWalletFlow(sessionId, destAddr, autoConnect, clientSecret) {
|
|
|
219
275
|
isLoadingBalances,
|
|
220
276
|
connectError,
|
|
221
277
|
connect,
|
|
278
|
+
connectWithProvider,
|
|
279
|
+
connectWithSolanaProvider,
|
|
280
|
+
retryConnect,
|
|
222
281
|
sendTransaction,
|
|
223
282
|
};
|
|
224
283
|
}
|
|
@@ -254,8 +313,8 @@ async function connectSolana() {
|
|
|
254
313
|
}
|
|
255
314
|
}
|
|
256
315
|
// ─── Transaction helpers ────────────────────────────────────────────────────
|
|
257
|
-
async function sendEvmTransaction(wallet, destAddr, token, amountUsd) {
|
|
258
|
-
const ethereum = getEthereumProvider();
|
|
316
|
+
async function sendEvmTransaction(wallet, destAddr, token, amountUsd, providerOverride) {
|
|
317
|
+
const ethereum = providerOverride ?? getEthereumProvider();
|
|
259
318
|
if (!ethereum)
|
|
260
319
|
throw new Error(t.walletUnavailable);
|
|
261
320
|
if (!wallet.evmAddress)
|
|
@@ -306,8 +365,8 @@ async function sendEvmTransaction(wallet, destAddr, token, amountUsd) {
|
|
|
306
365
|
params: [{ from: wallet.evmAddress, to: tokenAddress, data }],
|
|
307
366
|
}));
|
|
308
367
|
}
|
|
309
|
-
async function sendSolanaTransaction(
|
|
310
|
-
const solanaWallet = getSolanaProvider();
|
|
368
|
+
async function sendSolanaTransaction(wallet, sessionId, clientSecret, inputTokenMint, amountUsd, client, providerOverride) {
|
|
369
|
+
const solanaWallet = providerOverride ?? getSolanaProvider();
|
|
311
370
|
if (!solanaWallet)
|
|
312
371
|
throw new Error(t.walletUnavailable);
|
|
313
372
|
if (!wallet.solAddress)
|
|
@@ -326,10 +385,6 @@ async function sendSolanaTransaction(client, wallet, sessionId, clientSecret, in
|
|
|
326
385
|
}
|
|
327
386
|
const tx = VersionedTransaction.deserialize(hexToBytes(result.solana.serializedTx));
|
|
328
387
|
const txResult = await solanaWallet.signAndSendTransaction(tx);
|
|
329
|
-
await client.sessions.check(sessionId, {
|
|
330
|
-
clientSecret,
|
|
331
|
-
txHash: txResult.signature,
|
|
332
|
-
});
|
|
333
388
|
return txResult.signature;
|
|
334
389
|
}
|
|
335
390
|
/** Check if error is a user rejection/cancellation */
|