@daimo/sdk 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/createDaimoClient.d.ts +31 -21
- package/dist/client/createDaimoClient.d.ts.map +1 -1
- package/dist/client/createDaimoClient.js +24 -16
- package/dist/client/createDaimoClient.js.map +1 -1
- package/dist/common/account.d.ts +75 -8
- package/dist/common/account.d.ts.map +1 -1
- package/dist/common/account.js +7 -1
- package/dist/common/account.js.map +1 -1
- package/dist/common/api.d.ts +19 -8
- package/dist/common/api.d.ts.map +1 -1
- package/dist/common/api.js +6 -1
- package/dist/common/api.js.map +1 -1
- package/dist/common/chain.d.ts +0 -1
- package/dist/common/chain.d.ts.map +1 -1
- package/dist/common/chain.js +0 -10
- package/dist/common/chain.js.map +1 -1
- package/dist/common/session.d.ts +6 -3
- package/dist/common/session.d.ts.map +1 -1
- package/dist/common/session.js.map +1 -1
- package/dist/common/token.d.ts +16 -4
- package/dist/common/token.d.ts.map +1 -1
- package/dist/common/token.js +12 -42
- package/dist/common/token.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web/api/index.d.ts +3 -3
- package/dist/web/api/index.d.ts.map +1 -1
- package/dist/web/api/navTree.d.ts +5 -5
- package/dist/web/api/navTree.d.ts.map +1 -1
- package/dist/web/api/walletTypes.d.ts +2 -15
- package/dist/web/api/walletTypes.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.js +3 -3
- 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 +28 -9
- package/dist/web/components/DaimoModal.js.map +1 -1
- package/dist/web/components/QRCode.d.ts.map +1 -1
- package/dist/web/components/QRCode.js +2 -2
- package/dist/web/components/QRCode.js.map +1 -1
- package/dist/web/components/TokenAmountEntry.d.ts +57 -0
- package/dist/web/components/TokenAmountEntry.d.ts.map +1 -0
- package/dist/web/components/TokenAmountEntry.js +157 -0
- package/dist/web/components/TokenAmountEntry.js.map +1 -0
- package/dist/web/components/WalletAmountPage.d.ts +2 -2
- package/dist/web/components/WalletAmountPage.d.ts.map +1 -1
- package/dist/web/components/WalletAmountPage.js +11 -146
- package/dist/web/components/WalletAmountPage.js.map +1 -1
- package/dist/web/components/account/AccountApplePayPage.d.ts +24 -0
- package/dist/web/components/account/AccountApplePayPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountApplePayPage.js +253 -0
- package/dist/web/components/account/AccountApplePayPage.js.map +1 -0
- package/dist/web/components/account/AccountBankDetailsPage.d.ts +16 -0
- package/dist/web/components/account/AccountBankDetailsPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountBankDetailsPage.js +140 -0
- package/dist/web/components/account/AccountBankDetailsPage.js.map +1 -0
- package/dist/web/components/account/AccountBankPickerPage.d.ts +8 -8
- package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountBankPickerPage.js +66 -19
- package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
- package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts +13 -0
- package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountBankTransferSubmittedPage.js +27 -0
- package/dist/web/components/account/AccountBankTransferSubmittedPage.js.map +1 -0
- package/dist/web/components/account/AccountDeeplinkPage.d.ts +0 -2
- package/dist/web/components/account/AccountDeeplinkPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountDeeplinkPage.js +7 -6
- package/dist/web/components/account/AccountDeeplinkPage.js.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.d.ts +5 -18
- package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.js +86 -20
- package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
- package/dist/web/components/account/AccountFlowProvider.d.ts.map +1 -1
- package/dist/web/components/account/AccountFlowProvider.js +23 -2
- package/dist/web/components/account/AccountFlowProvider.js.map +1 -1
- package/dist/web/components/account/AccountOtpCodeEntry.d.ts +16 -0
- package/dist/web/components/account/AccountOtpCodeEntry.d.ts.map +1 -0
- package/dist/web/components/account/AccountOtpCodeEntry.js +101 -0
- package/dist/web/components/account/AccountOtpCodeEntry.js.map +1 -0
- package/dist/web/components/account/AccountOtpPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountOtpPage.js +10 -53
- package/dist/web/components/account/AccountOtpPage.js.map +1 -1
- package/dist/web/components/account/AccountPaymentPage.d.ts +7 -4
- package/dist/web/components/account/AccountPaymentPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountPaymentPage.js +29 -34
- package/dist/web/components/account/AccountPaymentPage.js.map +1 -1
- package/dist/web/components/account/AccountPhoneOtpPage.d.ts +14 -0
- package/dist/web/components/account/AccountPhoneOtpPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountPhoneOtpPage.js +56 -0
- package/dist/web/components/account/AccountPhoneOtpPage.js.map +1 -0
- package/dist/web/components/account/AccountPhonePage.d.ts +11 -0
- package/dist/web/components/account/AccountPhonePage.d.ts.map +1 -0
- package/dist/web/components/account/AccountPhonePage.js +100 -0
- package/dist/web/components/account/AccountPhonePage.js.map +1 -0
- package/dist/web/components/account/AccountReadyPage.d.ts +2 -0
- package/dist/web/components/account/AccountReadyPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountReadyPage.js +7 -0
- package/dist/web/components/account/AccountReadyPage.js.map +1 -0
- package/dist/web/components/account/AccountStatusPage.d.ts +1 -3
- package/dist/web/components/account/AccountStatusPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountStatusPage.js +8 -8
- package/dist/web/components/account/AccountStatusPage.js.map +1 -1
- package/dist/web/components/account/accountNav.d.ts +14 -0
- package/dist/web/components/account/accountNav.d.ts.map +1 -0
- package/dist/web/components/account/accountNav.js +35 -0
- package/dist/web/components/account/accountNav.js.map +1 -0
- package/dist/web/components/account/openDeeplink.js +30 -14
- package/dist/web/components/account/openDeeplink.js.map +1 -1
- package/dist/web/components/account/phone.d.ts +6 -0
- package/dist/web/components/account/phone.d.ts.map +1 -0
- package/dist/web/components/account/phone.js +35 -0
- package/dist/web/components/account/phone.js.map +1 -0
- package/dist/web/components/account/useCoinbaseApplePayWidget.d.ts +20 -0
- package/dist/web/components/account/useCoinbaseApplePayWidget.d.ts.map +1 -0
- package/dist/web/components/account/useCoinbaseApplePayWidget.js +159 -0
- package/dist/web/components/account/useCoinbaseApplePayWidget.js.map +1 -0
- package/dist/web/components/buttons.d.ts +11 -1
- package/dist/web/components/buttons.d.ts.map +1 -1
- package/dist/web/components/buttons.js +11 -3
- package/dist/web/components/buttons.js.map +1 -1
- package/dist/web/components/shared.d.ts +8 -3
- package/dist/web/components/shared.d.ts.map +1 -1
- package/dist/web/components/shared.js +44 -15
- package/dist/web/components/shared.js.map +1 -1
- package/dist/web/hooks/locale.d.ts +4 -0
- package/dist/web/hooks/locale.d.ts.map +1 -1
- package/dist/web/hooks/locale.js +23 -1
- package/dist/web/hooks/locale.js.map +1 -1
- package/dist/web/hooks/locales/en.d.ts +17 -0
- package/dist/web/hooks/locales/en.d.ts.map +1 -1
- package/dist/web/hooks/locales/en.js +19 -2
- 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 +17 -0
- package/dist/web/hooks/locales/es.js.map +1 -1
- package/dist/web/hooks/locales/ja.d.ts +4 -0
- package/dist/web/hooks/locales/ja.d.ts.map +1 -0
- package/dist/web/hooks/locales/ja.js +140 -0
- package/dist/web/hooks/locales/ja.js.map +1 -0
- package/dist/web/hooks/locales/ko.d.ts +4 -0
- package/dist/web/hooks/locales/ko.d.ts.map +1 -0
- package/dist/web/hooks/locales/ko.js +140 -0
- package/dist/web/hooks/locales/ko.js.map +1 -0
- package/dist/web/hooks/locales/zh.d.ts +4 -0
- package/dist/web/hooks/locales/zh.d.ts.map +1 -0
- package/dist/web/hooks/locales/zh.js +140 -0
- package/dist/web/hooks/locales/zh.js.map +1 -0
- package/dist/web/hooks/types.d.ts +13 -3
- package/dist/web/hooks/types.d.ts.map +1 -1
- package/dist/web/hooks/types.js.map +1 -1
- package/dist/web/hooks/useAccountFlow.d.ts +49 -13
- package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
- package/dist/web/hooks/useAccountFlow.js +90 -13
- package/dist/web/hooks/useAccountFlow.js.map +1 -1
- package/dist/web/hooks/useCreateDeposit.d.ts +1 -1
- package/dist/web/hooks/useCreateDeposit.d.ts.map +1 -1
- package/dist/web/hooks/useCreateDeposit.js +103 -15
- package/dist/web/hooks/useCreateDeposit.js.map +1 -1
- package/dist/web/hooks/useDepositAddress.d.ts.map +1 -1
- package/dist/web/hooks/useDepositAddress.js +21 -2
- package/dist/web/hooks/useDepositAddress.js.map +1 -1
- package/dist/web/hooks/useDraftDeposit.d.ts +35 -0
- package/dist/web/hooks/useDraftDeposit.d.ts.map +1 -0
- package/dist/web/hooks/useDraftDeposit.js +155 -0
- package/dist/web/hooks/useDraftDeposit.js.map +1 -0
- package/dist/web/hooks/useSessionNav.d.ts +1 -1
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
- package/dist/web/hooks/useSessionNav.js +17 -11
- package/dist/web/hooks/useSessionNav.js.map +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
- package/dist/web/hooks/useWalletFlow.js +9 -0
- package/dist/web/hooks/useWalletFlow.js.map +1 -1
- package/dist/web/index.d.ts +1 -1
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +1 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/platform.d.ts +1 -0
- package/dist/web/platform.d.ts.map +1 -1
- package/dist/web/platform.js +11 -0
- package/dist/web/platform.js.map +1 -1
- package/dist/web/styles.css +1 -1
- package/dist/web/theme.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useAccountFlow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useAccountFlow.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useAccountFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
import { createContext, useCallback, useContext, useRef, useState } from "react";
|
|
2
|
-
// Context (not a plain hook like useWalletFlow) because
|
|
3
|
-
// the components that use
|
|
4
|
-
//
|
|
2
|
+
// Context (not a plain hook like useWalletFlow) because the auth provider must
|
|
3
|
+
// wrap the components that use these hooks. The account flow state lives above
|
|
4
|
+
// the provider so the consumer can bridge auth hooks into it.
|
|
5
5
|
// Limitation: one AccountFlowProvider per page = one shared auth session.
|
|
6
6
|
export const AccountFlowContext = createContext(null);
|
|
7
7
|
export function useAccountFlow() {
|
|
8
8
|
return useContext(AccountFlowContext);
|
|
9
9
|
}
|
|
10
|
+
export function useSessionDepositState(sessionId) {
|
|
11
|
+
const accountFlow = useAccountFlow();
|
|
12
|
+
const depositState = accountFlow?.getDepositState(sessionId) ?? null;
|
|
13
|
+
const setDepositState = useCallback((state) => {
|
|
14
|
+
accountFlow?.setDepositState(sessionId, state);
|
|
15
|
+
}, [accountFlow, sessionId]);
|
|
16
|
+
const clearDepositState = useCallback(() => {
|
|
17
|
+
accountFlow?.clearDepositState(sessionId);
|
|
18
|
+
}, [accountFlow, sessionId]);
|
|
19
|
+
return { accountFlow, depositState, setDepositState, clearDepositState };
|
|
20
|
+
}
|
|
10
21
|
/** Create the account flow state object. Used by the AccountFlowProvider. */
|
|
11
22
|
export function useAccountFlowState() {
|
|
12
23
|
const [email, setEmail] = useState("");
|
|
24
|
+
const [phoneNumber, setPhoneNumber] = useState("");
|
|
13
25
|
const [isLoggingIn, setIsLoggingIn] = useState(false);
|
|
14
26
|
const [isReady, setIsReady] = useState(false);
|
|
15
27
|
const [isAuthenticated, setIsAuthenticated] = useState(false);
|
|
16
28
|
const [authError, setAuthError] = useState(null);
|
|
17
29
|
const [isCreatingWallet, setIsCreatingWallet] = useState(false);
|
|
18
30
|
const [walletAddress, setWalletAddress] = useState(null);
|
|
19
|
-
const [
|
|
31
|
+
const [storedDepositState, setStoredDepositState] = useState(null);
|
|
20
32
|
const privyRef = useRef(null);
|
|
21
33
|
// PrivyConsumer calls registerPrivy on every Privy state change,
|
|
22
34
|
// keeping our state in sync without polling.
|
|
@@ -64,7 +76,7 @@ export function useAccountFlowState() {
|
|
|
64
76
|
finally {
|
|
65
77
|
setIsLoggingIn(false);
|
|
66
78
|
}
|
|
67
|
-
}, [email]);
|
|
79
|
+
}, [email, waitForReady]);
|
|
68
80
|
const verifyOtp = useCallback(async (code) => {
|
|
69
81
|
if (!privyRef.current)
|
|
70
82
|
return false;
|
|
@@ -77,13 +89,56 @@ export function useAccountFlowState() {
|
|
|
77
89
|
return true;
|
|
78
90
|
}
|
|
79
91
|
catch (err) {
|
|
80
|
-
setAuthError(err
|
|
92
|
+
setAuthError(privyAuthErrorMessage(err));
|
|
81
93
|
return false;
|
|
82
94
|
}
|
|
83
95
|
finally {
|
|
84
96
|
setIsLoggingIn(false);
|
|
85
97
|
}
|
|
86
|
-
}, []);
|
|
98
|
+
}, [waitForReady]);
|
|
99
|
+
const sendPhoneOtp = useCallback(async (overridePhone) => {
|
|
100
|
+
const target = overridePhone ?? phoneNumber;
|
|
101
|
+
if (!privyRef.current) {
|
|
102
|
+
setAuthError("privy not initialized");
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (!target) {
|
|
106
|
+
setAuthError("phone number is required");
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
setIsLoggingIn(true);
|
|
110
|
+
setAuthError(null);
|
|
111
|
+
try {
|
|
112
|
+
await waitForReady();
|
|
113
|
+
await privyRef.current.sendPhoneCode(target);
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
setAuthError(err instanceof Error ? err.message : "failed to send code");
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
setIsLoggingIn(false);
|
|
122
|
+
}
|
|
123
|
+
}, [phoneNumber, waitForReady]);
|
|
124
|
+
const verifyPhoneOtp = useCallback(async (code) => {
|
|
125
|
+
if (!privyRef.current)
|
|
126
|
+
return false;
|
|
127
|
+
setIsLoggingIn(true);
|
|
128
|
+
setAuthError(null);
|
|
129
|
+
try {
|
|
130
|
+
await waitForReady();
|
|
131
|
+
await privyRef.current.loginWithPhoneCode(code);
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
setAuthError(privyAuthErrorMessage(err));
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
setIsLoggingIn(false);
|
|
140
|
+
}
|
|
141
|
+
}, [waitForReady]);
|
|
87
142
|
const createWallet = useCallback(async () => {
|
|
88
143
|
if (!privyRef.current)
|
|
89
144
|
return null;
|
|
@@ -109,18 +164,29 @@ export function useAccountFlowState() {
|
|
|
109
164
|
throw new Error("privy not initialized");
|
|
110
165
|
return privyRef.current.signTypedData(typedData);
|
|
111
166
|
}, []);
|
|
167
|
+
const getDepositState = useCallback((sessionId) => {
|
|
168
|
+
if (storedDepositState?.sessionId !== sessionId)
|
|
169
|
+
return null;
|
|
170
|
+
return storedDepositState;
|
|
171
|
+
}, [storedDepositState]);
|
|
172
|
+
const setDepositState = useCallback((sessionId, state) => {
|
|
173
|
+
setStoredDepositState({ sessionId, ...state });
|
|
174
|
+
}, []);
|
|
175
|
+
const clearDepositState = useCallback((sessionId) => {
|
|
176
|
+
setStoredDepositState((current) => current?.sessionId === sessionId ? null : current);
|
|
177
|
+
}, []);
|
|
112
178
|
const createAccount = useCallback(async (client, session, addr) => {
|
|
113
179
|
const token = await getAccessToken();
|
|
114
180
|
if (!token)
|
|
115
181
|
throw new Error("not authenticated");
|
|
116
182
|
await client.account.create({ walletAddress: addr }, session, { bearerToken: token });
|
|
117
183
|
}, [getAccessToken]);
|
|
118
|
-
const getAccount = useCallback(async (client, session,
|
|
184
|
+
const getAccount = useCallback(async (client, session, target) => {
|
|
119
185
|
const token = await getAccessToken();
|
|
120
186
|
if (!token)
|
|
121
187
|
return null;
|
|
122
188
|
try {
|
|
123
|
-
return await client.account.get(
|
|
189
|
+
return await client.account.get(target, session, {
|
|
124
190
|
bearerToken: token,
|
|
125
191
|
});
|
|
126
192
|
}
|
|
@@ -128,11 +194,11 @@ export function useAccountFlowState() {
|
|
|
128
194
|
return null;
|
|
129
195
|
}
|
|
130
196
|
}, [getAccessToken]);
|
|
131
|
-
const startEnrollment = useCallback(async (client,
|
|
197
|
+
const startEnrollment = useCallback(async (client, target) => {
|
|
132
198
|
const token = await getAccessToken();
|
|
133
199
|
if (!token)
|
|
134
200
|
return null;
|
|
135
|
-
return client.account.startEnrollment(
|
|
201
|
+
return client.account.startEnrollment(target, { bearerToken: token });
|
|
136
202
|
}, [getAccessToken]);
|
|
137
203
|
const logout = useCallback(async () => {
|
|
138
204
|
try {
|
|
@@ -144,12 +210,15 @@ export function useAccountFlowState() {
|
|
|
144
210
|
setIsAuthenticated(false);
|
|
145
211
|
setWalletAddress(null);
|
|
146
212
|
setEmail("");
|
|
213
|
+
setPhoneNumber("");
|
|
147
214
|
setAuthError(null);
|
|
148
|
-
|
|
215
|
+
setStoredDepositState(null);
|
|
149
216
|
}, []);
|
|
150
217
|
return {
|
|
151
218
|
email,
|
|
152
219
|
setEmail,
|
|
220
|
+
phoneNumber,
|
|
221
|
+
setPhoneNumber,
|
|
153
222
|
isLoggingIn,
|
|
154
223
|
isReady,
|
|
155
224
|
isAuthenticated,
|
|
@@ -157,13 +226,16 @@ export function useAccountFlowState() {
|
|
|
157
226
|
setAuthError,
|
|
158
227
|
sendOtp,
|
|
159
228
|
verifyOtp,
|
|
229
|
+
sendPhoneOtp,
|
|
230
|
+
verifyPhoneOtp,
|
|
160
231
|
isCreatingWallet,
|
|
161
232
|
walletAddress,
|
|
162
233
|
createWallet,
|
|
163
234
|
getAccessToken,
|
|
164
235
|
signTypedData,
|
|
165
|
-
|
|
236
|
+
getDepositState,
|
|
166
237
|
setDepositState,
|
|
238
|
+
clearDepositState,
|
|
167
239
|
createAccount,
|
|
168
240
|
getAccount,
|
|
169
241
|
startEnrollment,
|
|
@@ -172,4 +244,9 @@ export function useAccountFlowState() {
|
|
|
172
244
|
registerPrivy,
|
|
173
245
|
};
|
|
174
246
|
}
|
|
247
|
+
function privyAuthErrorMessage(err) {
|
|
248
|
+
if (err instanceof Error && err.message)
|
|
249
|
+
return err.message;
|
|
250
|
+
return "failed to verify code";
|
|
251
|
+
}
|
|
175
252
|
//# sourceMappingURL=useAccountFlow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountFlow.js","sourceRoot":"","sources":["../../../src/web/hooks/useAccountFlow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useAccountFlow.js","sourceRoot":"","sources":["../../../src/web/hooks/useAccountFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DaimoClient } from "../../client/createDaimoClient.js";
|
|
2
2
|
import type { AccountRegion, DepositPaymentInfo } from "../../common/account.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type AccountFlowState } from "./useAccountFlow.js";
|
|
4
4
|
export type CreateDepositResult = {
|
|
5
5
|
isCreating: boolean;
|
|
6
6
|
error: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateDeposit.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useCreateDeposit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useCreateDeposit.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useCreateDeposit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB,GAAG,mBAAmB,CA0JtB"}
|
|
@@ -1,54 +1,142 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from "react";
|
|
2
|
+
import { useSessionDepositState, } from "./useAccountFlow.js";
|
|
2
3
|
/**
|
|
3
4
|
* Signs EIP-712 typed data and creates a deposit in the background.
|
|
4
5
|
* Returns loading state, error, and payment info when ready.
|
|
5
6
|
*/
|
|
6
7
|
export function useCreateDeposit(opts) {
|
|
7
8
|
const { client, accountFlow, sessionId, depositAmount, region } = opts;
|
|
8
|
-
const
|
|
9
|
+
const { depositState, setDepositState } = useSessionDepositState(sessionId);
|
|
10
|
+
const matchesAmount = depositState != null && depositState.depositAmount === depositAmount;
|
|
11
|
+
const hasExistingDeposit = matchesAmount
|
|
12
|
+
&& depositState.createStatus === "created"
|
|
13
|
+
&& depositState.depositId !== ""
|
|
14
|
+
&& depositState.payment != null;
|
|
15
|
+
const isCreateInFlight = matchesAmount && depositState.createStatus === "creating";
|
|
16
|
+
const [isCreating, setIsCreating] = useState(!hasExistingDeposit && (depositAmount !== "" || isCreateInFlight));
|
|
9
17
|
const [error, setError] = useState(null);
|
|
10
18
|
const started = useRef(false);
|
|
11
19
|
useEffect(() => {
|
|
20
|
+
if (hasExistingDeposit) {
|
|
21
|
+
setIsCreating(false);
|
|
22
|
+
setError(null);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (isCreateInFlight) {
|
|
26
|
+
setIsCreating(true);
|
|
27
|
+
setError(null);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
12
30
|
if (started.current || !accountFlow || !depositAmount)
|
|
13
31
|
return;
|
|
14
32
|
started.current = true;
|
|
15
33
|
(async () => {
|
|
34
|
+
let request = depositState?.createRequest ?? null;
|
|
35
|
+
const selectedInstitutionId = depositState?.selectedInstitutionId;
|
|
16
36
|
try {
|
|
17
37
|
const token = await accountFlow.getAccessToken();
|
|
18
38
|
if (!token)
|
|
19
39
|
throw new Error("not authenticated");
|
|
20
40
|
const auth = { bearerToken: token };
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
if (request == null) {
|
|
42
|
+
setDepositState({
|
|
43
|
+
depositAmount,
|
|
44
|
+
depositId: "",
|
|
45
|
+
payment: null,
|
|
46
|
+
createStatus: "creating",
|
|
47
|
+
createRequest: null,
|
|
48
|
+
selectedInstitutionId,
|
|
49
|
+
});
|
|
50
|
+
// 1. Get EIP-712 typed data for routing + delivery signatures
|
|
51
|
+
const { routingSignData, deliverySignData } = await client.account.prepareDeposit({ sessionId, depositAmount, region }, auth);
|
|
52
|
+
// 2. Sign both (sequential — Privy can't handle concurrent signing)
|
|
53
|
+
const routingSig = await accountFlow.signTypedData({
|
|
54
|
+
...routingSignData,
|
|
55
|
+
});
|
|
56
|
+
const deliverySig = await accountFlow.signTypedData({
|
|
57
|
+
...deliverySignData,
|
|
58
|
+
});
|
|
59
|
+
request = {
|
|
60
|
+
region,
|
|
61
|
+
depositAmount,
|
|
62
|
+
deliverySig,
|
|
63
|
+
deliverySigData: deliverySignData,
|
|
64
|
+
routingSig,
|
|
65
|
+
routingSigData: routingSignData,
|
|
66
|
+
};
|
|
67
|
+
setDepositState({
|
|
68
|
+
depositAmount,
|
|
69
|
+
depositId: "",
|
|
70
|
+
payment: null,
|
|
71
|
+
createStatus: "creating",
|
|
72
|
+
createRequest: request,
|
|
73
|
+
selectedInstitutionId,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
setDepositState({
|
|
78
|
+
depositAmount,
|
|
79
|
+
depositId: "",
|
|
80
|
+
payment: null,
|
|
81
|
+
createStatus: "creating",
|
|
82
|
+
createRequest: request,
|
|
83
|
+
selectedInstitutionId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
26
86
|
// 3. Create deposit with provider
|
|
27
87
|
const { deposit, payment } = await client.account.createDeposit({
|
|
28
88
|
sessionId,
|
|
29
|
-
|
|
30
|
-
depositAmount,
|
|
31
|
-
deliverySig,
|
|
32
|
-
deliverySigData: deliverySignData,
|
|
33
|
-
routingSig,
|
|
34
|
-
routingSigData: routingSignData,
|
|
89
|
+
...request,
|
|
35
90
|
}, auth);
|
|
36
91
|
// 4. Update deposit state
|
|
37
|
-
|
|
92
|
+
setDepositState({
|
|
38
93
|
depositAmount,
|
|
39
94
|
depositId: deposit.id,
|
|
40
95
|
payment,
|
|
96
|
+
createStatus: "created",
|
|
97
|
+
createRequest: request,
|
|
98
|
+
selectedInstitutionId,
|
|
41
99
|
});
|
|
42
100
|
setIsCreating(false);
|
|
43
101
|
}
|
|
44
102
|
catch (err) {
|
|
45
103
|
console.error("[create-deposit] failed:", err);
|
|
104
|
+
if (request != null) {
|
|
105
|
+
setDepositState({
|
|
106
|
+
depositAmount,
|
|
107
|
+
depositId: "",
|
|
108
|
+
payment: null,
|
|
109
|
+
createStatus: "failed",
|
|
110
|
+
createRequest: request,
|
|
111
|
+
selectedInstitutionId,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
setDepositState({
|
|
116
|
+
depositAmount,
|
|
117
|
+
depositId: "",
|
|
118
|
+
payment: null,
|
|
119
|
+
createStatus: "draft",
|
|
120
|
+
createRequest: null,
|
|
121
|
+
selectedInstitutionId,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
46
124
|
setError(err instanceof Error ? err.message : "failed to create deposit");
|
|
47
125
|
setIsCreating(false);
|
|
48
126
|
}
|
|
49
127
|
})();
|
|
50
|
-
}, [
|
|
51
|
-
|
|
128
|
+
}, [
|
|
129
|
+
accountFlow,
|
|
130
|
+
client,
|
|
131
|
+
depositAmount,
|
|
132
|
+
hasExistingDeposit,
|
|
133
|
+
isCreateInFlight,
|
|
134
|
+
region,
|
|
135
|
+
sessionId,
|
|
136
|
+
setDepositState,
|
|
137
|
+
depositState,
|
|
138
|
+
]);
|
|
139
|
+
const payment = depositState?.payment ?? null;
|
|
52
140
|
return { isCreating, error, payment };
|
|
53
141
|
}
|
|
54
142
|
//# sourceMappingURL=useCreateDeposit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateDeposit.js","sourceRoot":"","sources":["../../../src/web/hooks/useCreateDeposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useCreateDeposit.js","sourceRoot":"","sources":["../../../src/web/hooks/useCreateDeposit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDepositAddress.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useDepositAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useDepositAddress.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useDepositAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkBxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CA2CxE"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from "react";
|
|
2
2
|
import { useDaimoClient } from "./DaimoClientContext.js";
|
|
3
|
+
function navTreeNeedsEvmPaymentMethod(nodes) {
|
|
4
|
+
for (const node of nodes) {
|
|
5
|
+
if (node.type === "DepositAddress" || node.type === "ConnectedWallet") {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
if (node.type === "ChooseOption" &&
|
|
9
|
+
navTreeNeedsEvmPaymentMethod(node.options)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
3
15
|
/**
|
|
4
16
|
* Creates an EVM payment method on mount to obtain the deposit address.
|
|
5
17
|
* Returns the receiver address once available, or null while loading.
|
|
@@ -14,8 +26,9 @@ export function useDepositAddress(session) {
|
|
|
14
26
|
return null;
|
|
15
27
|
});
|
|
16
28
|
const initRef = useRef(false);
|
|
29
|
+
const shouldInitEvmPaymentMethod = navTreeNeedsEvmPaymentMethod(session.navTree);
|
|
17
30
|
useEffect(() => {
|
|
18
|
-
if (initRef.current || depositAddress)
|
|
31
|
+
if (!shouldInitEvmPaymentMethod || initRef.current || depositAddress)
|
|
19
32
|
return;
|
|
20
33
|
initRef.current = true;
|
|
21
34
|
client.sessions.paymentMethods
|
|
@@ -30,7 +43,13 @@ export function useDepositAddress(session) {
|
|
|
30
43
|
}
|
|
31
44
|
})
|
|
32
45
|
.catch((err) => console.error("failed to init evm payment method:", err));
|
|
33
|
-
}, [
|
|
46
|
+
}, [
|
|
47
|
+
session.sessionId,
|
|
48
|
+
session.clientSecret,
|
|
49
|
+
depositAddress,
|
|
50
|
+
client,
|
|
51
|
+
shouldInitEvmPaymentMethod,
|
|
52
|
+
]);
|
|
34
53
|
return depositAddress;
|
|
35
54
|
}
|
|
36
55
|
//# sourceMappingURL=useDepositAddress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDepositAddress.js","sourceRoot":"","sources":["../../../src/web/hooks/useDepositAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useDepositAddress.js","sourceRoot":"","sources":["../../../src/web/hooks/useDepositAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD,SAAS,4BAA4B,CAAC,KAAgB;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IACE,IAAI,CAAC,IAAI,KAAK,cAAc;YAC5B,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,EAC1C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAuB;IACvD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE;QACvE,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,CACJ,OAAO,CAAC,aAA8C;iBACpD,eAAe,IAAI,IAAI,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,0BAA0B,GAAG,4BAA4B,CAC7D,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,0BAA0B,IAAI,OAAO,CAAC,OAAO,IAAI,cAAc;YAAE,OAAO;QAC7E,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,cAAc;aAC3B,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC/B,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;YACxC,IAAI,EAAE,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;gBACvB,iBAAiB,CACd,EAAkC,CAAC,eAAe,CACpD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE;QACD,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,YAAY;QACpB,cAAc;QACd,MAAM;QACN,0BAA0B;KAC3B,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DaimoClient } from "../../client/createDaimoClient.js";
|
|
2
|
+
import type { AccountRail, CreateDepositResponse, DepositPaymentInfo } from "../../common/account.js";
|
|
3
|
+
import { type AccountFlowState } from "./useAccountFlow.js";
|
|
4
|
+
type UseDraftDepositArgs = {
|
|
5
|
+
client: DaimoClient;
|
|
6
|
+
accountFlow: AccountFlowState | null;
|
|
7
|
+
sessionId: string;
|
|
8
|
+
rail: AccountRail;
|
|
9
|
+
depositAmount: string;
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
draftMode: "plain" | "signed";
|
|
12
|
+
};
|
|
13
|
+
type UseDraftDepositResult = {
|
|
14
|
+
payment: DepositPaymentInfo | null;
|
|
15
|
+
isCreating: boolean;
|
|
16
|
+
error: string | null;
|
|
17
|
+
retry: () => void;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Debounced draft-deposit upsert. Fires `upsertDeposit` each time the amount
|
|
21
|
+
* settles, stores the result on the session deposit state. Used by every
|
|
22
|
+
* rail: Apple Pay shows the hosted widget, bank rails render institutions.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useDraftDeposit({ client, accountFlow, sessionId, rail, depositAmount, enabled, draftMode, }: UseDraftDepositArgs): UseDraftDepositResult;
|
|
25
|
+
type SignAndUpsertDepositArgs = {
|
|
26
|
+
client: DaimoClient;
|
|
27
|
+
accountFlow: AccountFlowState;
|
|
28
|
+
sessionId: string;
|
|
29
|
+
depositAmount: string;
|
|
30
|
+
authorizedAmount?: string;
|
|
31
|
+
rail: AccountRail;
|
|
32
|
+
};
|
|
33
|
+
export declare function signAndUpsertDeposit({ client, accountFlow, sessionId, depositAmount, authorizedAmount, rail, }: SignAndUpsertDepositArgs): Promise<CreateDepositResponse>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=useDraftDeposit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDraftDeposit.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useDraftDeposit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,WAAW,EACX,SAAS,EACT,IAAI,EACJ,aAAa,EACb,OAAO,EACP,SAAS,GACV,EAAE,mBAAmB,GAAG,qBAAqB,CAkG7C;AAED,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,IAAI,GACL,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4B3D"}
|