@dynamic-labs/sdk-react-core 4.31.1 → 4.31.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/CHANGELOG.md CHANGED
@@ -1,4 +1,23 @@
1
1
 
2
+ ### [4.31.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.2...v4.31.3) (2025-09-15)
3
+
4
+
5
+ ### Features
6
+
7
+ * offramp links ([#9494](https://github.com/dynamic-labs/dynamic-auth/issues/9494)) ([47ff2fd](https://github.com/dynamic-labs/dynamic-auth/commit/47ff2fda1721e08fe21551b1ceb01a9f7a574cbf))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * restructure OnrampContext with improved provider management ([#9490](https://github.com/dynamic-labs/dynamic-auth/issues/9490)) ([16bf0fc](https://github.com/dynamic-labs/dynamic-auth/commit/16bf0fc1884cb4979bbcf7cca9b77410e4957b6b))
13
+
14
+ ### [4.31.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.1...v4.31.2) (2025-09-11)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * issue with Safe Wallet not auto-connecting on a Safe App ([#9479](https://github.com/dynamic-labs/dynamic-auth/issues/9479)) ([fc7458d](https://github.com/dynamic-labs/dynamic-auth/commit/fc7458db2481ed1d4cba62297f768f5e409ea0b5))
20
+
2
21
  ### [4.31.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.0...v4.31.1) (2025-09-10)
3
22
 
4
23
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.31.1";
6
+ var version = "4.31.3";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.762",
9
9
  "@dynamic-labs-sdk/client": "0.1.0-alpha.3",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "4.31.1";
2
+ var version = "4.31.3";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.762",
5
5
  "@dynamic-labs-sdk/client": "0.1.0-alpha.3",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.31.1",
3
+ "version": "4.31.3",
4
4
  "dependencies": {
5
5
  "@dynamic-labs/sdk-api-core": "0.0.762",
6
6
  "@dynamic-labs-sdk/client": "0.1.0-alpha.3",
@@ -15,16 +15,16 @@
15
15
  "yup": "0.32.11",
16
16
  "react-international-phone": "4.5.0",
17
17
  "bs58": "5.0.0",
18
- "@dynamic-labs/assert-package-version": "4.31.1",
19
- "@dynamic-labs/iconic": "4.31.1",
20
- "@dynamic-labs/logger": "4.31.1",
21
- "@dynamic-labs/multi-wallet": "4.31.1",
22
- "@dynamic-labs/rpc-providers": "4.31.1",
23
- "@dynamic-labs/store": "4.31.1",
24
- "@dynamic-labs/types": "4.31.1",
25
- "@dynamic-labs/utils": "4.31.1",
26
- "@dynamic-labs/wallet-book": "4.31.1",
27
- "@dynamic-labs/wallet-connector-core": "4.31.1",
18
+ "@dynamic-labs/assert-package-version": "4.31.3",
19
+ "@dynamic-labs/iconic": "4.31.3",
20
+ "@dynamic-labs/logger": "4.31.3",
21
+ "@dynamic-labs/multi-wallet": "4.31.3",
22
+ "@dynamic-labs/rpc-providers": "4.31.3",
23
+ "@dynamic-labs/store": "4.31.3",
24
+ "@dynamic-labs/types": "4.31.3",
25
+ "@dynamic-labs/utils": "4.31.3",
26
+ "@dynamic-labs/wallet-book": "4.31.3",
27
+ "@dynamic-labs/wallet-connector-core": "4.31.3",
28
28
  "eventemitter3": "5.0.1"
29
29
  },
30
30
  "devDependencies": {
@@ -9,8 +9,6 @@ var multiWallet = require('@dynamic-labs/multi-wallet');
9
9
  var rpcProviders = require('@dynamic-labs/rpc-providers');
10
10
  var walletBook = require('@dynamic-labs/wallet-book');
11
11
  var useWalletItemActions = require('../../utils/hooks/useWalletItemActions/useWalletItemActions.cjs');
12
- require('../../context/DynamicContext/DynamicContext.cjs');
13
- require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
14
12
  require('@dynamic-labs/sdk-api-core');
15
13
  var logger = require('../../shared/logger.cjs');
16
14
  require('@dynamic-labs/iconic');
@@ -21,6 +19,10 @@ require('@dynamic-labs/utils');
21
19
  require('../../utils/constants/colors.cjs');
22
20
  require('../../utils/constants/values.cjs');
23
21
  require('../../shared/consts/index.cjs');
22
+ var walletOptions = require('../../store/state/walletOptions/walletOptions.cjs');
23
+ var connectorsInitializing = require('../../store/state/connectorsInitializing/connectorsInitializing.cjs');
24
+ require('../../context/DynamicContext/DynamicContext.cjs');
25
+ require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
24
26
  require('../../events/dynamicEvents.cjs');
25
27
  require('../../../../_virtual/_tslib.cjs');
26
28
  require('../../context/CaptchaContext/CaptchaContext.cjs');
@@ -57,7 +59,6 @@ require('../../context/MockContext/MockContext.cjs');
57
59
  require('../../views/CollectUserDataView/useFields.cjs');
58
60
  require('../../context/FieldsStateContext/FieldsStateContext.cjs');
59
61
  require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
60
- var walletOptions = require('../../store/state/walletOptions/walletOptions.cjs');
61
62
  require('react-i18next');
62
63
  require('../Accordion/components/AccordionItem/AccordionItem.cjs');
63
64
  require('../Alert/Alert.cjs');
@@ -92,7 +93,6 @@ require('../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs')
92
93
  require('../../context/PasskeyContext/PasskeyContext.cjs');
93
94
  require('../../context/OnrampContext/OnrampContext.cjs');
94
95
  require('../../store/state/sendBalances.cjs');
95
- var connectorsInitializing = require('../../store/state/connectorsInitializing/connectorsInitializing.cjs');
96
96
  require('../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
97
97
  require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
98
98
  require('../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
@@ -179,12 +179,18 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
179
179
  });
180
180
  const walletConnectorOptions = walletOptions.getWalletConnectorOptions();
181
181
  const updatedConnectors = [...walletConnectorOptions];
182
- pendingReadyConnectorsRef.current.forEach((connector) => {
182
+ let walletOptionToAutoConnect;
183
+ pendingReadyConnectorsRef.current.forEach(({ connector, shouldAutoConnect }) => {
183
184
  let foundWallet = false;
184
185
  for (let i = 0; i < updatedConnectors.length; i++) {
185
- if (updatedConnectors[i].key === connector.key) {
186
- foundWallet = true;
186
+ const hasSameKey = updatedConnectors[i].key === connector.key;
187
+ const isReplacingNonWalletConnectWithWalletConnect = !updatedConnectors[i].walletConnector.isWalletConnect &&
188
+ connector.isWalletConnect;
189
+ if (hasSameKey && !isReplacingNonWalletConnectWithWalletConnect) {
187
190
  updatedConnectors[i] = Object.assign(Object.assign({}, updatedConnectors[i]), { isInstalledOnBrowser: connector.isInstalledOnBrowser(), walletConnector: connector });
191
+ }
192
+ if (hasSameKey) {
193
+ foundWallet = true;
188
194
  break;
189
195
  }
190
196
  }
@@ -192,15 +198,23 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
192
198
  const newWalletOption = createWallet.createWallet(connectorProps.walletBook, connector);
193
199
  updatedConnectors.push(newWalletOption);
194
200
  }
201
+ if (shouldAutoConnect) {
202
+ walletOptionToAutoConnect = updatedConnectors.find((wallet) => wallet.key === connector.key &&
203
+ !wallet.walletConnector.isWalletConnect);
204
+ }
195
205
  });
196
206
  walletOptions.mergeWalletConnectorOptions(updatedConnectors);
197
207
  pendingReadyConnectorsRef.current = [];
198
- };
199
- const handleProviderReady = ({ connector, }) => {
200
- logger.logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] handleProviderReady', {
201
- connector,
208
+ logger.logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] processReadyConnectors', {
209
+ walletOptionToAutoConnect,
202
210
  });
203
- pendingReadyConnectorsRef.current.push(connector);
211
+ if (walletOptionToAutoConnect && !primaryWallet) {
212
+ handleWalletItemClick(walletOptionToAutoConnect);
213
+ }
214
+ };
215
+ const handleProviderReady = (props) => {
216
+ logger.logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] handleProviderReady', props);
217
+ pendingReadyConnectorsRef.current.push(props);
204
218
  if (readyDebounceTimeoutRef.current) {
205
219
  clearTimeout(readyDebounceTimeoutRef.current);
206
220
  }
@@ -220,27 +234,7 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
220
234
  // Process any remaining connectors on cleanup
221
235
  processReadyConnectors();
222
236
  };
223
- }, [connectorProps.walletBook]);
224
- // add listener for autoConnect event
225
- React.useEffect(() => {
226
- const handleAutoConnect = ({ connector, }) => {
227
- logger.logger.debug('[WalletConnectorEvents] handleAutoConnect', { connector });
228
- const walletConnectorOptions = walletOptions.getWalletConnectorOptions();
229
- const walletOption = walletConnectorOptions.find((wallet) => wallet.walletConnector.key === connector.key);
230
- logger.logger.debug('[WalletConnectorEvents] handleAutoConnect - found walletOption', Boolean(walletOption));
231
- if (!walletOption)
232
- return;
233
- handleWalletItemClick(walletOption);
234
- };
235
- // if there's a connected wallet, we should not auto connect another wallet
236
- if (primaryWallet) {
237
- return;
238
- }
239
- walletConnectorCore.walletConnectorEvents.on('autoConnect', handleAutoConnect);
240
- return () => {
241
- walletConnectorCore.walletConnectorEvents.off('autoConnect', handleAutoConnect);
242
- };
243
- }, [handleWalletItemClick, primaryWallet]);
237
+ }, [connectorProps.walletBook, handleWalletItemClick]);
244
238
  // add listener for connectorInitStarted and connectorInitCompleted events
245
239
  React.useEffect(() => {
246
240
  const handleConnectorInitStarted = (key) => {
@@ -5,8 +5,6 @@ import { getWalletConnectorConstructorOptions } from '@dynamic-labs/multi-wallet
5
5
  import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
6
6
  import { isWalletBookPopulated } from '@dynamic-labs/wallet-book';
7
7
  import { useWalletItemActions } from '../../utils/hooks/useWalletItemActions/useWalletItemActions.js';
8
- import '../../context/DynamicContext/DynamicContext.js';
9
- import '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
10
8
  import '@dynamic-labs/sdk-api-core';
11
9
  import { logger } from '../../shared/logger.js';
12
10
  import '@dynamic-labs/iconic';
@@ -17,6 +15,10 @@ import '@dynamic-labs/utils';
17
15
  import '../../utils/constants/colors.js';
18
16
  import '../../utils/constants/values.js';
19
17
  import '../../shared/consts/index.js';
18
+ import { getWalletConnectorOptions, mergeWalletConnectorOptions } from '../../store/state/walletOptions/walletOptions.js';
19
+ import { setConnectorInitializing } from '../../store/state/connectorsInitializing/connectorsInitializing.js';
20
+ import '../../context/DynamicContext/DynamicContext.js';
21
+ import '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
20
22
  import '../../events/dynamicEvents.js';
21
23
  import '../../../../_virtual/_tslib.js';
22
24
  import '../../context/CaptchaContext/CaptchaContext.js';
@@ -53,7 +55,6 @@ import '../../context/MockContext/MockContext.js';
53
55
  import '../../views/CollectUserDataView/useFields.js';
54
56
  import '../../context/FieldsStateContext/FieldsStateContext.js';
55
57
  import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
56
- import { getWalletConnectorOptions, mergeWalletConnectorOptions } from '../../store/state/walletOptions/walletOptions.js';
57
58
  import 'react-i18next';
58
59
  import '../Accordion/components/AccordionItem/AccordionItem.js';
59
60
  import '../Alert/Alert.js';
@@ -88,7 +89,6 @@ import '../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
88
89
  import '../../context/PasskeyContext/PasskeyContext.js';
89
90
  import '../../context/OnrampContext/OnrampContext.js';
90
91
  import '../../store/state/sendBalances.js';
91
- import { setConnectorInitializing } from '../../store/state/connectorsInitializing/connectorsInitializing.js';
92
92
  import '../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
93
93
  import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
94
94
  import '../../views/TransactionConfirmationView/TransactionConfirmationView.js';
@@ -175,12 +175,18 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
175
175
  });
176
176
  const walletConnectorOptions = getWalletConnectorOptions();
177
177
  const updatedConnectors = [...walletConnectorOptions];
178
- pendingReadyConnectorsRef.current.forEach((connector) => {
178
+ let walletOptionToAutoConnect;
179
+ pendingReadyConnectorsRef.current.forEach(({ connector, shouldAutoConnect }) => {
179
180
  let foundWallet = false;
180
181
  for (let i = 0; i < updatedConnectors.length; i++) {
181
- if (updatedConnectors[i].key === connector.key) {
182
- foundWallet = true;
182
+ const hasSameKey = updatedConnectors[i].key === connector.key;
183
+ const isReplacingNonWalletConnectWithWalletConnect = !updatedConnectors[i].walletConnector.isWalletConnect &&
184
+ connector.isWalletConnect;
185
+ if (hasSameKey && !isReplacingNonWalletConnectWithWalletConnect) {
183
186
  updatedConnectors[i] = Object.assign(Object.assign({}, updatedConnectors[i]), { isInstalledOnBrowser: connector.isInstalledOnBrowser(), walletConnector: connector });
187
+ }
188
+ if (hasSameKey) {
189
+ foundWallet = true;
184
190
  break;
185
191
  }
186
192
  }
@@ -188,15 +194,23 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
188
194
  const newWalletOption = createWallet(connectorProps.walletBook, connector);
189
195
  updatedConnectors.push(newWalletOption);
190
196
  }
197
+ if (shouldAutoConnect) {
198
+ walletOptionToAutoConnect = updatedConnectors.find((wallet) => wallet.key === connector.key &&
199
+ !wallet.walletConnector.isWalletConnect);
200
+ }
191
201
  });
192
202
  mergeWalletConnectorOptions(updatedConnectors);
193
203
  pendingReadyConnectorsRef.current = [];
194
- };
195
- const handleProviderReady = ({ connector, }) => {
196
- logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] handleProviderReady', {
197
- connector,
204
+ logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] processReadyConnectors', {
205
+ walletOptionToAutoConnect,
198
206
  });
199
- pendingReadyConnectorsRef.current.push(connector);
207
+ if (walletOptionToAutoConnect && !primaryWallet) {
208
+ handleWalletItemClick(walletOptionToAutoConnect);
209
+ }
210
+ };
211
+ const handleProviderReady = (props) => {
212
+ logger.logVerboseTroubleshootingMessage('[WalletConnectorEvents] handleProviderReady', props);
213
+ pendingReadyConnectorsRef.current.push(props);
200
214
  if (readyDebounceTimeoutRef.current) {
201
215
  clearTimeout(readyDebounceTimeoutRef.current);
202
216
  }
@@ -216,27 +230,7 @@ const WalletConnectorEvents = ({ connectorProps, }) => {
216
230
  // Process any remaining connectors on cleanup
217
231
  processReadyConnectors();
218
232
  };
219
- }, [connectorProps.walletBook]);
220
- // add listener for autoConnect event
221
- useEffect(() => {
222
- const handleAutoConnect = ({ connector, }) => {
223
- logger.debug('[WalletConnectorEvents] handleAutoConnect', { connector });
224
- const walletConnectorOptions = getWalletConnectorOptions();
225
- const walletOption = walletConnectorOptions.find((wallet) => wallet.walletConnector.key === connector.key);
226
- logger.debug('[WalletConnectorEvents] handleAutoConnect - found walletOption', Boolean(walletOption));
227
- if (!walletOption)
228
- return;
229
- handleWalletItemClick(walletOption);
230
- };
231
- // if there's a connected wallet, we should not auto connect another wallet
232
- if (primaryWallet) {
233
- return;
234
- }
235
- walletConnectorEvents.on('autoConnect', handleAutoConnect);
236
- return () => {
237
- walletConnectorEvents.off('autoConnect', handleAutoConnect);
238
- };
239
- }, [handleWalletItemClick, primaryWallet]);
233
+ }, [connectorProps.walletBook, handleWalletItemClick]);
240
234
  // add listener for connectorInitStarted and connectorInitCompleted events
241
235
  useEffect(() => {
242
236
  const handleConnectorInitStarted = (key) => {
@@ -7,9 +7,7 @@ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var React = require('react');
9
9
  var utils = require('@dynamic-labs/utils');
10
- var onrampConfigurationToOnrampOption = require('../../utils/functions/onrampConfigurationToOnrampOption/onrampConfigurationToOnrampOption.cjs');
11
10
  var openOnrampPopup = require('../../utils/functions/openOnrampPopup.cjs');
12
- var rejectPromiseRef = require('../../utils/functions/rejectPromiseRef/rejectPromiseRef.cjs');
13
11
  require('../DynamicContext/DynamicContext.cjs');
14
12
  require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
15
13
  require('@dynamic-labs/sdk-api-core');
@@ -32,7 +30,6 @@ require('../../client/client.cjs');
32
30
  require('@dynamic-labs-sdk/client');
33
31
  require('../../config/ApiEndpoint.cjs');
34
32
  require('../../store/state/projectSettings/projectSettings.cjs');
35
- var onramp = require('../../data/api/onramp/onramp.cjs');
36
33
  require('../../locale/locale.cjs');
37
34
  require('../../store/state/dynamicContextProps/dynamicContextProps.cjs');
38
35
  require('../../store/state/primaryWalletId/primaryWalletId.cjs');
@@ -99,12 +96,15 @@ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidge
99
96
  require('../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
100
97
  require('../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
101
98
  require('../../../index.cjs');
99
+ var rejectPromiseRef = require('../../utils/functions/rejectPromiseRef/rejectPromiseRef.cjs');
102
100
  require('../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
103
101
  require('../../store/state/tokenBalances.cjs');
104
102
  require('../../store/state/multichainBalances.cjs');
105
103
  require('../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
106
104
  var useInternalDynamicContext = require('../DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
105
+ var onrampConfigurationToOnrampOption = require('../../utils/functions/onrampConfigurationToOnrampOption/onrampConfigurationToOnrampOption.cjs');
107
106
  var useOnrampProviders = require('./useOnrampProviders/useOnrampProviders.cjs');
107
+ var getOnrampProviders = require('./utils/getOnrampProviders.cjs');
108
108
 
109
109
  const OnrampContext = React.createContext(undefined);
110
110
  const OnrampContextProvider = ({ children, }) => {
@@ -113,6 +113,7 @@ const OnrampContextProvider = ({ children, }) => {
113
113
  const [selectedOnrampProvider, setSelectedOnrampProvider] = React.useState();
114
114
  const [showOnramp, _setShowOnramp] = React.useState(false);
115
115
  const [override, setOverride] = React.useState(false);
116
+ const [overrideOnrampProvider, setOverrideOnrampProvider] = React.useState(undefined);
116
117
  const { environmentId, network, primaryWallet, projectSettings, overrides } = useInternalDynamicContext.useInternalDynamicContext();
117
118
  const [enabledOnrampProvidersTarget, setEnabledOnrampProvidersTarget] = React.useState({});
118
119
  const setShowOnramp = React.useCallback((value) => {
@@ -130,7 +131,11 @@ const OnrampContextProvider = ({ children, }) => {
130
131
  tokenAmount,
131
132
  });
132
133
  }, []);
133
- const { enabledOnRamps: enabledOnrampProvidersInDashboard, allOnRamps } = useOnrampProviders.useOnrampProviders({
134
+ const resetOverrides = React.useCallback(() => {
135
+ setOverrideOnrampProvider(undefined);
136
+ setOverride(false);
137
+ }, []);
138
+ const { enabledOnRamps: enabledOnrampProvidersInDashboard } = useOnrampProviders.useOnrampProviders({
134
139
  environmentId,
135
140
  includeDisabled: true,
136
141
  network,
@@ -141,9 +146,6 @@ const OnrampContextProvider = ({ children, }) => {
141
146
  const enabledOnrampProvidersInDashboardOptions = React.useMemo(() => enabledOnrampProvidersInDashboard.map((provider) => onrampConfigurationToOnrampOption.onrampConfigurationToOnrampOption(provider)),
142
147
  // eslint-disable-next-line react-hooks/exhaustive-deps
143
148
  [enabledOnrampProvidersInDashboard, primaryWallet, setShowOnramp]);
144
- const allOnrampProvidersInDashboardOptions = React.useMemo(() => allOnRamps.map((provider) => onrampConfigurationToOnrampOption.onrampConfigurationToOnrampOption(provider)),
145
- // eslint-disable-next-line react-hooks/exhaustive-deps
146
- [allOnRamps, primaryWallet, setShowOnramp]);
147
149
  const onrampOverrides = React.useMemo(() => {
148
150
  const configuredOverrides = overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions;
149
151
  if (typeof configuredOverrides === 'function') {
@@ -196,7 +198,7 @@ const OnrampContextProvider = ({ children, }) => {
196
198
  onrampOverrides,
197
199
  overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
198
200
  ]);
199
- const openOnramp = React.useCallback((_f) => _tslib.__awaiter(void 0, [_f], void 0, function* ({ onrampProvider, address, token, tokenAmount, network, chainName, overrideOnRamp, payingWithDynamic, }) {
201
+ const openOnramp = React.useCallback((_f) => _tslib.__awaiter(void 0, [_f], void 0, function* ({ onrampProvider, address, token, tokenAmount, network: networkOverride, chainName, overrideOnRamp, payingWithDynamic, }) {
200
202
  if (!onrampEnabled && !overrideOnRamp && !payingWithDynamic) {
201
203
  throw new Error('Onramp is not enabled');
202
204
  }
@@ -205,59 +207,66 @@ const OnrampContextProvider = ({ children, }) => {
205
207
  return promiseRef.current.promise;
206
208
  }
207
209
  promiseRef.current = new utils.DeferredPromise();
208
- if (address || token || network || tokenAmount || chainName)
209
- setEnabledOnrampProvidersTarget({
210
+ let localOnrampProviders = enabledOnrampProvidersInDashboardOptions;
211
+ const networkToUse = networkOverride || network;
212
+ const shouldOverrideOnrampProviders = overrideOnRamp ||
213
+ Boolean(token) ||
214
+ Boolean(network) ||
215
+ Boolean(tokenAmount) ||
216
+ Boolean(chainName);
217
+ const allPayingParameters = Boolean(chainName) &&
218
+ Boolean(networkToUse) &&
219
+ Boolean(token) &&
220
+ Boolean(tokenAmount) &&
221
+ Boolean(address);
222
+ if (payingWithDynamic && !allPayingParameters) {
223
+ return rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Missing parameters'));
224
+ }
225
+ if (shouldOverrideOnrampProviders)
226
+ setOverride(true);
227
+ if (shouldOverrideOnrampProviders ||
228
+ (payingWithDynamic && allPayingParameters)) {
229
+ localOnrampProviders = (yield getOnrampProviders.getOnrampProviders({
210
230
  address,
211
231
  chainName,
212
- network,
232
+ environmentId,
233
+ includeDisabled: overrideOnRamp,
234
+ network: networkToUse,
235
+ primaryWallet,
213
236
  token,
214
237
  tokenAmount,
215
- });
216
- let enabledOnRampsToCheck = enabledOnrampProviders;
217
- const allPayingParameters = chainName && network && token && tokenAmount && address;
218
- if (payingWithDynamic && allPayingParameters) {
219
- enabledOnRampsToCheck = (yield onramp.getOnrampProviders({
220
- chain: chainName,
221
- environmentId,
222
- includeDisabled: false,
223
- networkId: network,
224
- token: token,
225
- tokenAmount: tokenAmount,
226
- walletAddress: address,
227
238
  })).map((provider) => onrampConfigurationToOnrampOption.onrampConfigurationToOnrampOption(provider));
228
239
  }
229
- let onrampOption;
230
- onrampOption = enabledOnRampsToCheck.find((p) => p.id === onrampProvider);
240
+ const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
231
241
  if (payingWithDynamic && !onrampOption) {
232
- throw new Error('PayingWithDynamic: Onramp provider not found');
233
- }
234
- if (overrideOnRamp) {
235
- onrampOption = allOnrampProvidersInDashboardOptions.find((p) => p.id === onrampProvider);
236
- setOverride(true);
242
+ return rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Onramp provider not found'));
237
243
  }
238
244
  if (!onrampOption) {
239
- throw new Error('Onramp provider not found');
245
+ return rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('Onramp provider not found'));
240
246
  }
247
+ setOverrideOnrampProvider(onrampOption);
241
248
  setSelectedAndShowOnramp({ payingWithDynamic, provider: onrampOption });
242
249
  return promiseRef.current.promise;
243
250
  }), [
244
- allOnrampProvidersInDashboardOptions,
245
- enabledOnrampProviders,
251
+ enabledOnrampProvidersInDashboardOptions,
246
252
  environmentId,
247
253
  onrampEnabled,
254
+ primaryWallet,
255
+ network,
256
+ setOverride,
248
257
  setSelectedAndShowOnramp,
249
258
  ]);
250
259
  const selectedOnramp = React.useMemo(() => {
251
260
  let selected;
252
261
  if (override) {
253
- selected = allOnrampProvidersInDashboardOptions.find((p) => p.id === selectedOnrampProvider);
262
+ selected = overrideOnrampProvider;
254
263
  }
255
264
  else if (enabledOnrampProviders.length) {
256
265
  selected = enabledOnrampProviders.find((p) => p.id === selectedOnrampProvider);
257
266
  }
258
267
  return selected;
259
268
  }, [
260
- allOnrampProvidersInDashboardOptions,
269
+ overrideOnrampProvider,
261
270
  enabledOnrampProviders,
262
271
  override,
263
272
  selectedOnrampProvider,
@@ -267,8 +276,9 @@ const OnrampContextProvider = ({ children, }) => {
267
276
  provider.onClick({ wallet });
268
277
  return;
269
278
  }
279
+ resetOverrides();
270
280
  setSelectedAndShowOnramp({ provider, wallet });
271
- }, [setSelectedAndShowOnramp]);
281
+ }, [setSelectedAndShowOnramp, resetOverrides]);
272
282
  const value = React.useMemo(() => ({
273
283
  enabledOnrampProviders,
274
284
  onrampEnabled,
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
- import type { OnrampProviders } from '@dynamic-labs/sdk-api-core';
3
- import type { Wallet } from '@dynamic-labs/wallet-connector-core';
2
+ import { type OnrampProviders } from '@dynamic-labs/sdk-api-core';
3
+ import { type Wallet } from '@dynamic-labs/wallet-connector-core';
4
4
  import type { OnrampOption } from '../DynamicContext';
5
5
  type OpenOnrampProps = {
6
6
  address?: string;
@@ -3,9 +3,7 @@ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
  import { createContext, useContext, useRef, useState, useCallback, useMemo } from 'react';
5
5
  import { DynamicError, DeferredPromise } from '@dynamic-labs/utils';
6
- import { onrampConfigurationToOnrampOption } from '../../utils/functions/onrampConfigurationToOnrampOption/onrampConfigurationToOnrampOption.js';
7
6
  import { openOnrampPopup } from '../../utils/functions/openOnrampPopup.js';
8
- import { rejectPromiseRef } from '../../utils/functions/rejectPromiseRef/rejectPromiseRef.js';
9
7
  import '../DynamicContext/DynamicContext.js';
10
8
  import '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
11
9
  import '@dynamic-labs/sdk-api-core';
@@ -28,7 +26,6 @@ import '../../client/client.js';
28
26
  import '@dynamic-labs-sdk/client';
29
27
  import '../../config/ApiEndpoint.js';
30
28
  import '../../store/state/projectSettings/projectSettings.js';
31
- import { getOnrampProviders } from '../../data/api/onramp/onramp.js';
32
29
  import '../../locale/locale.js';
33
30
  import '../../store/state/dynamicContextProps/dynamicContextProps.js';
34
31
  import '../../store/state/primaryWalletId/primaryWalletId.js';
@@ -95,12 +92,15 @@ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidget
95
92
  import '../../views/TransactionConfirmationView/TransactionConfirmationView.js';
96
93
  import '../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
97
94
  import '../../../index.js';
95
+ import { rejectPromiseRef } from '../../utils/functions/rejectPromiseRef/rejectPromiseRef.js';
98
96
  import '../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
99
97
  import '../../store/state/tokenBalances.js';
100
98
  import '../../store/state/multichainBalances.js';
101
99
  import '../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
102
100
  import { useInternalDynamicContext } from '../DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
101
+ import { onrampConfigurationToOnrampOption } from '../../utils/functions/onrampConfigurationToOnrampOption/onrampConfigurationToOnrampOption.js';
103
102
  import { useOnrampProviders } from './useOnrampProviders/useOnrampProviders.js';
103
+ import { getOnrampProviders } from './utils/getOnrampProviders.js';
104
104
 
105
105
  const OnrampContext = createContext(undefined);
106
106
  const OnrampContextProvider = ({ children, }) => {
@@ -109,6 +109,7 @@ const OnrampContextProvider = ({ children, }) => {
109
109
  const [selectedOnrampProvider, setSelectedOnrampProvider] = useState();
110
110
  const [showOnramp, _setShowOnramp] = useState(false);
111
111
  const [override, setOverride] = useState(false);
112
+ const [overrideOnrampProvider, setOverrideOnrampProvider] = useState(undefined);
112
113
  const { environmentId, network, primaryWallet, projectSettings, overrides } = useInternalDynamicContext();
113
114
  const [enabledOnrampProvidersTarget, setEnabledOnrampProvidersTarget] = useState({});
114
115
  const setShowOnramp = useCallback((value) => {
@@ -126,7 +127,11 @@ const OnrampContextProvider = ({ children, }) => {
126
127
  tokenAmount,
127
128
  });
128
129
  }, []);
129
- const { enabledOnRamps: enabledOnrampProvidersInDashboard, allOnRamps } = useOnrampProviders({
130
+ const resetOverrides = useCallback(() => {
131
+ setOverrideOnrampProvider(undefined);
132
+ setOverride(false);
133
+ }, []);
134
+ const { enabledOnRamps: enabledOnrampProvidersInDashboard } = useOnrampProviders({
130
135
  environmentId,
131
136
  includeDisabled: true,
132
137
  network,
@@ -137,9 +142,6 @@ const OnrampContextProvider = ({ children, }) => {
137
142
  const enabledOnrampProvidersInDashboardOptions = useMemo(() => enabledOnrampProvidersInDashboard.map((provider) => onrampConfigurationToOnrampOption(provider)),
138
143
  // eslint-disable-next-line react-hooks/exhaustive-deps
139
144
  [enabledOnrampProvidersInDashboard, primaryWallet, setShowOnramp]);
140
- const allOnrampProvidersInDashboardOptions = useMemo(() => allOnRamps.map((provider) => onrampConfigurationToOnrampOption(provider)),
141
- // eslint-disable-next-line react-hooks/exhaustive-deps
142
- [allOnRamps, primaryWallet, setShowOnramp]);
143
145
  const onrampOverrides = useMemo(() => {
144
146
  const configuredOverrides = overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions;
145
147
  if (typeof configuredOverrides === 'function') {
@@ -192,7 +194,7 @@ const OnrampContextProvider = ({ children, }) => {
192
194
  onrampOverrides,
193
195
  overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
194
196
  ]);
195
- const openOnramp = useCallback((_f) => __awaiter(void 0, [_f], void 0, function* ({ onrampProvider, address, token, tokenAmount, network, chainName, overrideOnRamp, payingWithDynamic, }) {
197
+ const openOnramp = useCallback((_f) => __awaiter(void 0, [_f], void 0, function* ({ onrampProvider, address, token, tokenAmount, network: networkOverride, chainName, overrideOnRamp, payingWithDynamic, }) {
196
198
  if (!onrampEnabled && !overrideOnRamp && !payingWithDynamic) {
197
199
  throw new Error('Onramp is not enabled');
198
200
  }
@@ -201,59 +203,66 @@ const OnrampContextProvider = ({ children, }) => {
201
203
  return promiseRef.current.promise;
202
204
  }
203
205
  promiseRef.current = new DeferredPromise();
204
- if (address || token || network || tokenAmount || chainName)
205
- setEnabledOnrampProvidersTarget({
206
+ let localOnrampProviders = enabledOnrampProvidersInDashboardOptions;
207
+ const networkToUse = networkOverride || network;
208
+ const shouldOverrideOnrampProviders = overrideOnRamp ||
209
+ Boolean(token) ||
210
+ Boolean(network) ||
211
+ Boolean(tokenAmount) ||
212
+ Boolean(chainName);
213
+ const allPayingParameters = Boolean(chainName) &&
214
+ Boolean(networkToUse) &&
215
+ Boolean(token) &&
216
+ Boolean(tokenAmount) &&
217
+ Boolean(address);
218
+ if (payingWithDynamic && !allPayingParameters) {
219
+ return rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Missing parameters'));
220
+ }
221
+ if (shouldOverrideOnrampProviders)
222
+ setOverride(true);
223
+ if (shouldOverrideOnrampProviders ||
224
+ (payingWithDynamic && allPayingParameters)) {
225
+ localOnrampProviders = (yield getOnrampProviders({
206
226
  address,
207
227
  chainName,
208
- network,
228
+ environmentId,
229
+ includeDisabled: overrideOnRamp,
230
+ network: networkToUse,
231
+ primaryWallet,
209
232
  token,
210
233
  tokenAmount,
211
- });
212
- let enabledOnRampsToCheck = enabledOnrampProviders;
213
- const allPayingParameters = chainName && network && token && tokenAmount && address;
214
- if (payingWithDynamic && allPayingParameters) {
215
- enabledOnRampsToCheck = (yield getOnrampProviders({
216
- chain: chainName,
217
- environmentId,
218
- includeDisabled: false,
219
- networkId: network,
220
- token: token,
221
- tokenAmount: tokenAmount,
222
- walletAddress: address,
223
234
  })).map((provider) => onrampConfigurationToOnrampOption(provider));
224
235
  }
225
- let onrampOption;
226
- onrampOption = enabledOnRampsToCheck.find((p) => p.id === onrampProvider);
236
+ const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
227
237
  if (payingWithDynamic && !onrampOption) {
228
- throw new Error('PayingWithDynamic: Onramp provider not found');
229
- }
230
- if (overrideOnRamp) {
231
- onrampOption = allOnrampProvidersInDashboardOptions.find((p) => p.id === onrampProvider);
232
- setOverride(true);
238
+ return rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Onramp provider not found'));
233
239
  }
234
240
  if (!onrampOption) {
235
- throw new Error('Onramp provider not found');
241
+ return rejectPromiseRef(promiseRef, new Error('Onramp provider not found'));
236
242
  }
243
+ setOverrideOnrampProvider(onrampOption);
237
244
  setSelectedAndShowOnramp({ payingWithDynamic, provider: onrampOption });
238
245
  return promiseRef.current.promise;
239
246
  }), [
240
- allOnrampProvidersInDashboardOptions,
241
- enabledOnrampProviders,
247
+ enabledOnrampProvidersInDashboardOptions,
242
248
  environmentId,
243
249
  onrampEnabled,
250
+ primaryWallet,
251
+ network,
252
+ setOverride,
244
253
  setSelectedAndShowOnramp,
245
254
  ]);
246
255
  const selectedOnramp = useMemo(() => {
247
256
  let selected;
248
257
  if (override) {
249
- selected = allOnrampProvidersInDashboardOptions.find((p) => p.id === selectedOnrampProvider);
258
+ selected = overrideOnrampProvider;
250
259
  }
251
260
  else if (enabledOnrampProviders.length) {
252
261
  selected = enabledOnrampProviders.find((p) => p.id === selectedOnrampProvider);
253
262
  }
254
263
  return selected;
255
264
  }, [
256
- allOnrampProvidersInDashboardOptions,
265
+ overrideOnrampProvider,
257
266
  enabledOnrampProviders,
258
267
  override,
259
268
  selectedOnrampProvider,
@@ -263,8 +272,9 @@ const OnrampContextProvider = ({ children, }) => {
263
272
  provider.onClick({ wallet });
264
273
  return;
265
274
  }
275
+ resetOverrides();
266
276
  setSelectedAndShowOnramp({ provider, wallet });
267
- }, [setSelectedAndShowOnramp]);
277
+ }, [setSelectedAndShowOnramp, resetOverrides]);
268
278
  const value = useMemo(() => ({
269
279
  enabledOnrampProviders,
270
280
  onrampEnabled,
@@ -0,0 +1,11 @@
1
+ import { Wallet } from '@dynamic-labs/wallet-connector-core';
2
+ export type GetProvidersParams = {
3
+ address?: string;
4
+ chainName?: string;
5
+ environmentId: string;
6
+ network?: string | number | null;
7
+ primaryWallet?: Wallet | null;
8
+ token?: string;
9
+ tokenAmount?: number;
10
+ includeDisabled?: boolean;
11
+ };
@@ -5,43 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
- var sdkApiCore = require('@dynamic-labs/sdk-api-core');
9
- var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
10
- var onramp = require('../../../data/api/onramp/onramp.cjs');
11
- var getWalletAdditionalAddressByType = require('../../../utils/functions/getWalletAdditionalAddressByType/getWalletAdditionalAddressByType.cjs');
12
8
  var usePromise = require('../../../utils/hooks/usePromise/usePromise.cjs');
9
+ var getOnrampProviders = require('../utils/getOnrampProviders.cjs');
13
10
 
14
11
  const useOnrampProviders = ({ primaryWallet, network, environmentId, projectSettingsOnramps, target, includeDisabled, }) => {
15
- var _a, _b;
16
- const chainName = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
17
- ? (_a = walletConnectorCore.getChainInfo(primaryWallet.chain)) === null || _a === void 0 ? void 0 : _a.name
18
- : undefined;
19
- const chainNameToUse = (_b = target.chainName) !== null && _b !== void 0 ? _b : chainName;
20
- const bitcoinAddress = primaryWallet &&
21
- walletConnectorCore.isBitcoinConnector(primaryWallet.connector) &&
22
- getWalletAdditionalAddressByType.getWalletAdditionalAddressByType(sdkApiCore.WalletAddressType.Payment, primaryWallet);
23
- const chainHasNetwork = network && chainNameToUse === 'evm';
24
- let networkToUse;
25
- if (target.network) {
26
- networkToUse = target.network;
27
- }
28
- else {
29
- networkToUse = chainHasNetwork ? network.toString() : undefined;
30
- }
31
12
  const { data: allOnRamps = [] } = usePromise.usePromise(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
32
- if (!chainNameToUse || (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address) && !target.address))
13
+ var _a;
14
+ if (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address))
33
15
  return [];
34
- const walletAddress = target.address || bitcoinAddress || (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address);
35
- if (!walletAddress)
36
- return [];
37
- return onramp.getOnrampProviders({
38
- chain: chainNameToUse,
16
+ return getOnrampProviders.getOnrampProviders({
17
+ address: target.address,
18
+ chainName: target.chainName,
39
19
  environmentId,
40
20
  includeDisabled: true,
41
- networkId: networkToUse,
21
+ network: (_a = target.network) !== null && _a !== void 0 ? _a : network,
22
+ primaryWallet: primaryWallet,
42
23
  token: target.token,
43
24
  tokenAmount: target.tokenAmount,
44
- walletAddress: walletAddress,
45
25
  });
46
26
  }), {
47
27
  deps: [
@@ -1,43 +1,23 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { useMemo } from 'react';
4
- import { WalletAddressType } from '@dynamic-labs/sdk-api-core';
5
- import { getChainInfo, isBitcoinConnector } from '@dynamic-labs/wallet-connector-core';
6
- import { getOnrampProviders } from '../../../data/api/onramp/onramp.js';
7
- import { getWalletAdditionalAddressByType } from '../../../utils/functions/getWalletAdditionalAddressByType/getWalletAdditionalAddressByType.js';
8
4
  import { usePromise } from '../../../utils/hooks/usePromise/usePromise.js';
5
+ import { getOnrampProviders } from '../utils/getOnrampProviders.js';
9
6
 
10
7
  const useOnrampProviders = ({ primaryWallet, network, environmentId, projectSettingsOnramps, target, includeDisabled, }) => {
11
- var _a, _b;
12
- const chainName = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
13
- ? (_a = getChainInfo(primaryWallet.chain)) === null || _a === void 0 ? void 0 : _a.name
14
- : undefined;
15
- const chainNameToUse = (_b = target.chainName) !== null && _b !== void 0 ? _b : chainName;
16
- const bitcoinAddress = primaryWallet &&
17
- isBitcoinConnector(primaryWallet.connector) &&
18
- getWalletAdditionalAddressByType(WalletAddressType.Payment, primaryWallet);
19
- const chainHasNetwork = network && chainNameToUse === 'evm';
20
- let networkToUse;
21
- if (target.network) {
22
- networkToUse = target.network;
23
- }
24
- else {
25
- networkToUse = chainHasNetwork ? network.toString() : undefined;
26
- }
27
8
  const { data: allOnRamps = [] } = usePromise(() => __awaiter(void 0, void 0, void 0, function* () {
28
- if (!chainNameToUse || (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address) && !target.address))
29
- return [];
30
- const walletAddress = target.address || bitcoinAddress || (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address);
31
- if (!walletAddress)
9
+ var _a;
10
+ if (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address))
32
11
  return [];
33
12
  return getOnrampProviders({
34
- chain: chainNameToUse,
13
+ address: target.address,
14
+ chainName: target.chainName,
35
15
  environmentId,
36
16
  includeDisabled: true,
37
- networkId: networkToUse,
17
+ network: (_a = target.network) !== null && _a !== void 0 ? _a : network,
18
+ primaryWallet: primaryWallet,
38
19
  token: target.token,
39
20
  tokenAmount: target.tokenAmount,
40
- walletAddress: walletAddress,
41
21
  });
42
22
  }), {
43
23
  deps: [
@@ -0,0 +1,49 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
8
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
+ var onramp = require('../../../data/api/onramp/onramp.cjs');
10
+ var getWalletAdditionalAddressByType = require('../../../utils/functions/getWalletAdditionalAddressByType/getWalletAdditionalAddressByType.cjs');
11
+
12
+ const DEFAULT_NETWORK = 'evm';
13
+ const DEFAULT_CHAIN = '1';
14
+ const getOnrampProviders = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ address, chainName, environmentId, network, primaryWallet, token, tokenAmount, includeDisabled = false, }) {
15
+ var _b;
16
+ const tempChainNameToUse = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
17
+ ? (_b = walletConnectorCore.getChainInfo(primaryWallet.chain)) === null || _b === void 0 ? void 0 : _b.name
18
+ : undefined;
19
+ const chainNameToUse = chainName !== null && chainName !== void 0 ? chainName : tempChainNameToUse;
20
+ const bitcoinAddress = primaryWallet &&
21
+ walletConnectorCore.isBitcoinConnector(primaryWallet.connector) &&
22
+ getWalletAdditionalAddressByType.getWalletAdditionalAddressByType(sdkApiCore.WalletAddressType.Payment, primaryWallet);
23
+ const chainHasNetwork = network && chainNameToUse === DEFAULT_NETWORK;
24
+ let networkToUse;
25
+ if (chainHasNetwork) {
26
+ networkToUse = (network === null || network === void 0 ? void 0 : network.toString()) || DEFAULT_CHAIN;
27
+ }
28
+ else {
29
+ networkToUse = undefined;
30
+ }
31
+ if (!chainNameToUse || (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address) && !address)) {
32
+ return [];
33
+ }
34
+ const walletAddress = address || bitcoinAddress || (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address);
35
+ if (!walletAddress)
36
+ return [];
37
+ const providers = yield onramp.getOnrampProviders({
38
+ chain: chainNameToUse,
39
+ environmentId,
40
+ includeDisabled,
41
+ networkId: networkToUse,
42
+ token,
43
+ tokenAmount,
44
+ walletAddress,
45
+ });
46
+ return providers || [];
47
+ });
48
+
49
+ exports.getOnrampProviders = getOnrampProviders;
@@ -0,0 +1,3 @@
1
+ import { RampConfiguration } from '@dynamic-labs/sdk-api-core';
2
+ import { GetProvidersParams } from '../types';
3
+ export declare const getOnrampProviders: ({ address, chainName, environmentId, network, primaryWallet, token, tokenAmount, includeDisabled, }: GetProvidersParams) => Promise<RampConfiguration[]>;
@@ -0,0 +1,45 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { WalletAddressType } from '@dynamic-labs/sdk-api-core';
4
+ import { getChainInfo, isBitcoinConnector } from '@dynamic-labs/wallet-connector-core';
5
+ import { getOnrampProviders as getOnrampProviders$1 } from '../../../data/api/onramp/onramp.js';
6
+ import { getWalletAdditionalAddressByType } from '../../../utils/functions/getWalletAdditionalAddressByType/getWalletAdditionalAddressByType.js';
7
+
8
+ const DEFAULT_NETWORK = 'evm';
9
+ const DEFAULT_CHAIN = '1';
10
+ const getOnrampProviders = (_a) => __awaiter(void 0, [_a], void 0, function* ({ address, chainName, environmentId, network, primaryWallet, token, tokenAmount, includeDisabled = false, }) {
11
+ var _b;
12
+ const tempChainNameToUse = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
13
+ ? (_b = getChainInfo(primaryWallet.chain)) === null || _b === void 0 ? void 0 : _b.name
14
+ : undefined;
15
+ const chainNameToUse = chainName !== null && chainName !== void 0 ? chainName : tempChainNameToUse;
16
+ const bitcoinAddress = primaryWallet &&
17
+ isBitcoinConnector(primaryWallet.connector) &&
18
+ getWalletAdditionalAddressByType(WalletAddressType.Payment, primaryWallet);
19
+ const chainHasNetwork = network && chainNameToUse === DEFAULT_NETWORK;
20
+ let networkToUse;
21
+ if (chainHasNetwork) {
22
+ networkToUse = (network === null || network === void 0 ? void 0 : network.toString()) || DEFAULT_CHAIN;
23
+ }
24
+ else {
25
+ networkToUse = undefined;
26
+ }
27
+ if (!chainNameToUse || (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address) && !address)) {
28
+ return [];
29
+ }
30
+ const walletAddress = address || bitcoinAddress || (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address);
31
+ if (!walletAddress)
32
+ return [];
33
+ const providers = yield getOnrampProviders$1({
34
+ chain: chainNameToUse,
35
+ environmentId,
36
+ includeDisabled,
37
+ networkId: networkToUse,
38
+ token,
39
+ tokenAmount,
40
+ walletAddress,
41
+ });
42
+ return providers || [];
43
+ });
44
+
45
+ export { getOnrampProviders };
@@ -3,21 +3,15 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var React = require('react');
7
6
  var OnrampContext = require('../../../context/OnrampContext/OnrampContext.cjs');
8
7
 
9
8
  const useOnramp = () => {
10
- const { onrampEnabled, openOnramp } = OnrampContext.useOnrampContext();
11
- return React.useMemo(() => ({
12
- /**
13
- * Whether onramp is enabled.
14
- */
9
+ const { onrampEnabled, enabledOnrampProviders, openOnramp } = OnrampContext.useOnrampContext();
10
+ return {
15
11
  enabled: onrampEnabled,
16
- /**
17
- * Opens the onramp modal.
18
- */
19
12
  open: openOnramp,
20
- }), [onrampEnabled, openOnramp]);
13
+ providers: enabledOnrampProviders,
14
+ };
21
15
  };
22
16
 
23
17
  exports.useOnramp = useOnramp;
@@ -1,11 +1,5 @@
1
1
  export declare const useOnramp: () => {
2
- /**
3
- * Whether onramp is enabled.
4
- */
5
2
  enabled: boolean;
6
- /**
7
- * Opens the onramp modal.
8
- */
9
3
  open: (props: {
10
4
  address?: string | undefined;
11
5
  token?: string | undefined;
@@ -16,4 +10,5 @@ export declare const useOnramp: () => {
16
10
  overrideOnRamp?: boolean | undefined;
17
11
  payingWithDynamic?: boolean | undefined;
18
12
  }) => Promise<void>;
13
+ providers: import("../../../context/DynamicContext").OnrampOption[];
19
14
  };
@@ -1,19 +1,13 @@
1
1
  'use client'
2
- import { useMemo } from 'react';
3
2
  import { useOnrampContext } from '../../../context/OnrampContext/OnrampContext.js';
4
3
 
5
4
  const useOnramp = () => {
6
- const { onrampEnabled, openOnramp } = useOnrampContext();
7
- return useMemo(() => ({
8
- /**
9
- * Whether onramp is enabled.
10
- */
5
+ const { onrampEnabled, enabledOnrampProviders, openOnramp } = useOnrampContext();
6
+ return {
11
7
  enabled: onrampEnabled,
12
- /**
13
- * Opens the onramp modal.
14
- */
15
8
  open: openOnramp,
16
- }), [onrampEnabled, openOnramp]);
9
+ providers: enabledOnrampProviders,
10
+ };
17
11
  };
18
12
 
19
13
  export { useOnramp };