@dynamic-labs/sdk-react-core 4.20.7 → 4.20.8
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/CHANGELOG.md +8 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -2
- package/src/lib/context/DynamicContext/DynamicContext.js +2 -3
- package/src/lib/data/api/exchangeAccounts/exchangeAccounts.cjs +75 -0
- package/src/lib/data/api/exchangeAccounts/exchangeAccounts.js +70 -0
- package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.cjs +2 -0
- package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.js +2 -0
- package/src/lib/locale/en/translation.cjs +4 -1
- package/src/lib/locale/en/translation.d.ts +3 -0
- package/src/lib/locale/en/translation.js +4 -1
- package/src/lib/store/state/dynamicContextProps/dynamicContextProps.cjs +2 -3
- package/src/lib/store/state/dynamicContextProps/dynamicContextProps.js +2 -3
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useExchangeAccounts/useExchangeAccounts.cjs +57 -0
- package/src/lib/utils/hooks/useExchangeAccounts/useExchangeAccounts.js +53 -0
- package/src/lib/utils/hooks/usePromptAndFundWithExchange/index.d.ts +1 -0
- package/src/lib/utils/hooks/usePromptAndFundWithExchange/usePromptAndFundWithExchange.d.ts +4 -0
- package/src/lib/utils/hooks/useSubmitExchangeFunding/useSubmitExchangeFunding.cjs +199 -0
- package/src/lib/utils/hooks/useSubmitExchangeFunding/useSubmitExchangeFunding.js +195 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.d.ts +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.js +1 -0
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/views/ConfirmExchangeTransferView/ConfirmExchangeTransferView.cjs +3 -3
- package/src/lib/widgets/DynamicWidget/views/ConfirmExchangeTransferView/ConfirmExchangeTransferView.js +3 -3
- package/src/lib/widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs +85 -15
- package/src/lib/widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js +85 -15
- package/src/lib/widgets/DynamicWidget/views/ReceiveWalletFunds/types.d.ts +14 -1
- package/src/lib/widgets/DynamicWidget/views/ReceiveWalletFunds/utils/useExchangeTokensForFunding/useExchangeTokensForFunding.cjs +131 -0
- package/src/lib/widgets/DynamicWidget/views/ReceiveWalletFunds/utils/useExchangeTokensForFunding/useExchangeTokensForFunding.js +127 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useExchangeRatesForFunding } from '../useExchangeRatesForFunding/useExchangeRatesForFunding.js';
|
|
4
|
+
import '../../../../../../context/DynamicContext/DynamicContext.js';
|
|
5
|
+
import '../../../../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
6
|
+
import '@dynamic-labs/sdk-api-core';
|
|
7
|
+
import '../../../../../../shared/logger.js';
|
|
8
|
+
import '@dynamic-labs/iconic';
|
|
9
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
10
|
+
import 'react/jsx-runtime';
|
|
11
|
+
import '../../../../../../context/ViewContext/ViewContext.js';
|
|
12
|
+
import '@dynamic-labs/wallet-book';
|
|
13
|
+
import '@dynamic-labs/utils';
|
|
14
|
+
import '../../../../../../utils/constants/colors.js';
|
|
15
|
+
import '../../../../../../utils/constants/values.js';
|
|
16
|
+
import '../../../../../../shared/consts/index.js';
|
|
17
|
+
import '../../../../../../events/dynamicEvents.js';
|
|
18
|
+
import '../../../../../../../../_virtual/_tslib.js';
|
|
19
|
+
import '../../../../../../context/CaptchaContext/CaptchaContext.js';
|
|
20
|
+
import '../../../../../../context/ErrorContext/ErrorContext.js';
|
|
21
|
+
import '@dynamic-labs/multi-wallet';
|
|
22
|
+
import 'react-international-phone';
|
|
23
|
+
import '../../../../../../store/state/nonce/nonce.js';
|
|
24
|
+
import '../../../../../../store/state/projectSettings/projectSettings.js';
|
|
25
|
+
import '../../../../../../config/ApiEndpoint.js';
|
|
26
|
+
import '../../../../../../store/state/user/user.js';
|
|
27
|
+
import '../../../../../../locale/locale.js';
|
|
28
|
+
import '../../../../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
29
|
+
import '../../../../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
30
|
+
import '../../../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
31
|
+
import '../../../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
32
|
+
import '../../../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
33
|
+
import '../../../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
34
|
+
import '../../../../../../store/state/authMode/authMode.js';
|
|
35
|
+
import '../../../../../../context/VerificationContext/VerificationContext.js';
|
|
36
|
+
import 'react-dom';
|
|
37
|
+
import '../../../../../../utils/functions/compareChains/compareChains.js';
|
|
38
|
+
import '../../../../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
39
|
+
import '../../../../../../context/ThemeContext/ThemeContext.js';
|
|
40
|
+
import '../../../../../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
41
|
+
import 'bs58';
|
|
42
|
+
import '@dynamic-labs/types';
|
|
43
|
+
import '../../../../../../context/SocialRedirectContext/SocialRedirectContext.js';
|
|
44
|
+
import '../../../../../../context/LoadingContext/LoadingContext.js';
|
|
45
|
+
import '../../../../../../context/WalletContext/WalletContext.js';
|
|
46
|
+
import '../../../../../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
47
|
+
import 'yup';
|
|
48
|
+
import '../../../../../../context/MockContext/MockContext.js';
|
|
49
|
+
import '../../../../../../views/CollectUserDataView/useFields.js';
|
|
50
|
+
import '../../../../../../context/FieldsStateContext/FieldsStateContext.js';
|
|
51
|
+
import '../../../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
52
|
+
import '@dynamic-labs/rpc-providers';
|
|
53
|
+
import '../../../../../../store/state/walletOptions/walletOptions.js';
|
|
54
|
+
import 'react-i18next';
|
|
55
|
+
import '../../../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
|
|
56
|
+
import '../../../../../../components/Alert/Alert.js';
|
|
57
|
+
import '../../../../../../components/ShadowDOM/ShadowDOM.js';
|
|
58
|
+
import '../../../../../../components/IconButton/IconButton.js';
|
|
59
|
+
import '../../../../../../components/InlineWidget/InlineWidget.js';
|
|
60
|
+
import '../../../../../../components/Input/Input.js';
|
|
61
|
+
import '../../../../../../components/IsBrowser/IsBrowser.js';
|
|
62
|
+
import '../../../../../../components/MenuList/Dropdown/Dropdown.js';
|
|
63
|
+
import '../../../../../../components/OverlayCard/OverlayCard.js';
|
|
64
|
+
import '../../../../../../components/Transition/ZoomTransition/ZoomTransition.js';
|
|
65
|
+
import '../../../../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
|
|
66
|
+
import '../../../../../../components/Transition/OpacityTransition/OpacityTransition.js';
|
|
67
|
+
import '../../../../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
|
|
68
|
+
import '../../../../../../components/Popper/Popper/Popper.js';
|
|
69
|
+
import '../../../../../../components/Popper/PopperContext/PopperContext.js';
|
|
70
|
+
import 'react-focus-lock';
|
|
71
|
+
import 'qrcode';
|
|
72
|
+
import 'formik';
|
|
73
|
+
import '../../../../../../utils/hooks/useSubdomainCheck/useSubdomainCheck.js';
|
|
74
|
+
import '../../../../../../context/WalletGroupContext/WalletGroupContext.js';
|
|
75
|
+
import '../../../../../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
76
|
+
import '../../../../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
77
|
+
import '../../../../../DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
|
|
78
|
+
import '@hcaptcha/react-hcaptcha';
|
|
79
|
+
import '../../../../context/DynamicWidgetContext.js';
|
|
80
|
+
import '../../../../../../context/FooterAnimationContext/index.js';
|
|
81
|
+
import '../../../../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
82
|
+
import '../../../../../../context/PasskeyContext/PasskeyContext.js';
|
|
83
|
+
import '../../../../helpers/convertExchangeKeyAndProviderEnum.js';
|
|
84
|
+
import '../../../../../../store/state/sendBalances.js';
|
|
85
|
+
import '../../../../../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
86
|
+
import '../../../../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
|
|
87
|
+
import '../../../../components/DynamicWidgetHeader/DynamicWidgetHeader.js';
|
|
88
|
+
import '../../../../../../views/TransactionConfirmationView/TransactionConfirmationView.js';
|
|
89
|
+
import '../../../ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
90
|
+
import '../../../../../../context/OnrampContext/OnrampContext.js';
|
|
91
|
+
import '../../ReceiveWalletFunds.js';
|
|
92
|
+
import '../../../../../../../index.js';
|
|
93
|
+
import '../../../../../../store/state/tokenBalances.js';
|
|
94
|
+
import '../../../../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
|
|
95
|
+
import { useInternalDynamicContext } from '../../../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
|
|
96
|
+
|
|
97
|
+
const useExchangeTokensForFunding = ({ accounts, }) => {
|
|
98
|
+
var _a;
|
|
99
|
+
const { primaryWallet, network } = useInternalDynamicContext();
|
|
100
|
+
const enabledNetworks = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector.getEnabledNetworks();
|
|
101
|
+
const logoURI = (_a = enabledNetworks === null || enabledNetworks === void 0 ? void 0 : enabledNetworks.find(({ chainId }) => chainId === network)) === null || _a === void 0 ? void 0 : _a.iconUrls[0];
|
|
102
|
+
const fundingTokens = accounts.flatMap((account) => account.balances.map((balance) => ({
|
|
103
|
+
balance: balance.balance,
|
|
104
|
+
fiatBalance: undefined,
|
|
105
|
+
logoURI: logoURI, // INFORMATION WILL BE ADDED FROM BACKEND
|
|
106
|
+
name: balance.currency,
|
|
107
|
+
symbol: balance.currency,
|
|
108
|
+
token: 'native', // INFORMATION WILL BE ADDED FROM BACKEND
|
|
109
|
+
})));
|
|
110
|
+
const exchangeRates = useExchangeRatesForFunding({
|
|
111
|
+
onFetch: () => { },
|
|
112
|
+
tokenBalances: fundingTokens,
|
|
113
|
+
});
|
|
114
|
+
const updatedFundingTokens = useMemo(() => {
|
|
115
|
+
if (!exchangeRates)
|
|
116
|
+
return fundingTokens;
|
|
117
|
+
return fundingTokens.map((t) => {
|
|
118
|
+
const price = exchangeRates[t.symbol];
|
|
119
|
+
return Object.assign(Object.assign({}, t), { fiatBalance: price !== undefined ? t.balance * price : undefined });
|
|
120
|
+
});
|
|
121
|
+
}, [fundingTokens, exchangeRates]);
|
|
122
|
+
return {
|
|
123
|
+
tokens: updatedFundingTokens,
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export { useExchangeTokensForFunding };
|