@dynamic-labs/sdk-react-core 4.31.2 → 4.31.4

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.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.3...v4.31.4) (2025-09-16)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * prevent useUserWallets from returning empty array when cancelling wallet connect connection ([#9500](https://github.com/dynamic-labs/dynamic-auth/issues/9500)) ([850f03c](https://github.com/dynamic-labs/dynamic-auth/commit/850f03cdc954da5a2af5285d873fc02a2f95e09e))
8
+
9
+ ### [4.31.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.2...v4.31.3) (2025-09-15)
10
+
11
+
12
+ ### Features
13
+
14
+ * offramp links ([#9494](https://github.com/dynamic-labs/dynamic-auth/issues/9494)) ([47ff2fd](https://github.com/dynamic-labs/dynamic-auth/commit/47ff2fda1721e08fe21551b1ceb01a9f7a574cbf))
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * 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))
20
+
2
21
  ### [4.31.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.1...v4.31.2) (2025-09-11)
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.2";
6
+ var version = "4.31.4";
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.2";
2
+ var version = "4.31.4";
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.2",
3
+ "version": "4.31.4",
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.2",
19
- "@dynamic-labs/iconic": "4.31.2",
20
- "@dynamic-labs/logger": "4.31.2",
21
- "@dynamic-labs/multi-wallet": "4.31.2",
22
- "@dynamic-labs/rpc-providers": "4.31.2",
23
- "@dynamic-labs/store": "4.31.2",
24
- "@dynamic-labs/types": "4.31.2",
25
- "@dynamic-labs/utils": "4.31.2",
26
- "@dynamic-labs/wallet-book": "4.31.2",
27
- "@dynamic-labs/wallet-connector-core": "4.31.2",
18
+ "@dynamic-labs/assert-package-version": "4.31.4",
19
+ "@dynamic-labs/iconic": "4.31.4",
20
+ "@dynamic-labs/logger": "4.31.4",
21
+ "@dynamic-labs/multi-wallet": "4.31.4",
22
+ "@dynamic-labs/rpc-providers": "4.31.4",
23
+ "@dynamic-labs/store": "4.31.4",
24
+ "@dynamic-labs/types": "4.31.4",
25
+ "@dynamic-labs/utils": "4.31.4",
26
+ "@dynamic-labs/wallet-book": "4.31.4",
27
+ "@dynamic-labs/wallet-connector-core": "4.31.4",
28
28
  "eventemitter3": "5.0.1"
29
29
  },
30
30
  "devDependencies": {
@@ -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 };
@@ -7,6 +7,7 @@ var jsxRuntime = require('react/jsx-runtime');
7
7
  var React = require('react');
8
8
  var useDynamicEvents = require('../../utils/hooks/events/useDynamicEvents/useDynamicEvents.cjs');
9
9
  var ErrorContext = require('../ErrorContext/ErrorContext.cjs');
10
+ var dynamicEvents = require('../../events/dynamicEvents.cjs');
10
11
 
11
12
  const ViewContext = React.createContext(undefined);
12
13
  const ViewContextProvider = ({ children, initialViewType }) => {
@@ -45,6 +46,7 @@ const ViewContextProvider = ({ children, initialViewType }) => {
45
46
  return;
46
47
  clearError();
47
48
  setStack((prev) => prev.slice(0, -1));
49
+ dynamicEvents.dynamicEvents.emit('goBack');
48
50
  }, [canGoBack, clearError]);
49
51
  const clearStackAndPush = React.useCallback((type, props, events) => {
50
52
  clearError();
@@ -3,6 +3,7 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { createContext, useContext, useState, useMemo, useCallback } from 'react';
4
4
  import { useInternalDynamicEvents } from '../../utils/hooks/events/useDynamicEvents/useDynamicEvents.js';
5
5
  import { useErrorContext } from '../ErrorContext/ErrorContext.js';
6
+ import { dynamicEvents } from '../../events/dynamicEvents.js';
6
7
 
7
8
  const ViewContext = createContext(undefined);
8
9
  const ViewContextProvider = ({ children, initialViewType }) => {
@@ -41,6 +42,7 @@ const ViewContextProvider = ({ children, initialViewType }) => {
41
42
  return;
42
43
  clearError();
43
44
  setStack((prev) => prev.slice(0, -1));
45
+ dynamicEvents.emit('goBack');
44
46
  }, [canGoBack, clearError]);
45
47
  const clearStackAndPush = useCallback((type, props, events) => {
46
48
  clearError();
@@ -17,4 +17,8 @@ export type UIEvents = {
17
17
  }) => void;
18
18
  userProfileOpen: () => void;
19
19
  userProfileClose: () => void;
20
+ /**
21
+ * Triggered when the user clicks the back button
22
+ */
23
+ goBack: () => void;
20
24
  };
@@ -163,11 +163,18 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
163
163
  };
164
164
  return (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts = undefined, }) {
165
165
  var _b;
166
+ const connectionCancelPromise = new utils.DeferredPromise();
167
+ const onGoBack = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
168
+ loadingAndLifecycle.setIsInitialWalletVerificationInProgress(false);
169
+ connectionCancelPromise.reject(new utils.GetAddressCancelledError());
170
+ });
166
171
  try {
172
+ dynamicEvents.dynamicEvents.on('goBack', onGoBack);
173
+ dynamicEvents.dynamicEvents.on('authFlowClose', onGoBack);
174
+ dynamicEvents.dynamicEvents.once('walletAdded', unsetInitialWalletVerificationFlag.unsetInitialWalletVerificationFlag);
167
175
  // Lock the variable that indicates that the login wallet verification is in progress
168
176
  // Read UserWalletsContext.tsx explanation for more context
169
177
  loadingAndLifecycle.setIsInitialWalletVerificationInProgress(true);
170
- dynamicEvents.dynamicEvents.once('walletAdded', unsetInitialWalletVerificationFlag.unsetInitialWalletVerificationFlag);
171
178
  yield showPendingConnectView.showPendingConnectView(walletConnector, pushView);
172
179
  if (walletConnectorCore.isEmailWalletConnector(walletConnector)) {
173
180
  if (walletConnectorCore.isEmailOTPWalletConnector(walletConnector)) {
@@ -177,16 +184,20 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
177
184
  pushView('wait-for-email-confirmation-view');
178
185
  }
179
186
  }
180
- let connectionResult;
187
+ const connectionPromise = connectWallet(walletConnector, getAddressOpts, {
188
+ applyHandleConnectedWallet: shouldCallCallback,
189
+ });
181
190
  try {
182
- connectionResult = yield connectWallet(walletConnector, getAddressOpts, {
183
- applyHandleConnectedWallet: shouldCallCallback,
184
- });
191
+ yield Promise.race([
192
+ connectionPromise,
193
+ connectionCancelPromise.promise,
194
+ ]);
185
195
  }
186
196
  catch (error) {
187
197
  handleWalletConnectionError(error);
188
198
  return;
189
199
  }
200
+ const connectionResult = yield connectionPromise;
190
201
  // Fallback to catch any errors that were missed.
191
202
  if (!(connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.address)) {
192
203
  handleWalletConnectionError();
@@ -246,6 +257,8 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
246
257
  // 3. The SDK will enter a broken state. Try signing a message with wagmi.
247
258
  // You can also add a "pause on exception" breakpoint in the debugger and see what happens during verification.
248
259
  unsetInitialWalletVerificationFlag.unsetInitialWalletVerificationFlagWithTimeout();
260
+ dynamicEvents.dynamicEvents.removeListener('goBack', onGoBack);
261
+ dynamicEvents.dynamicEvents.removeListener('authFlowClose', onGoBack);
249
262
  }
250
263
  });
251
264
  };
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
- import { StorageService, CustomError, GetAddressCancelledError } from '@dynamic-labs/utils';
3
+ import { DeferredPromise, StorageService, CustomError, GetAddressCancelledError } from '@dynamic-labs/utils';
4
4
  import { isEmailWalletConnector, isEmailOTPWalletConnector, isBloctoConnector } from '@dynamic-labs/wallet-connector-core';
5
5
  import { useCaptchaContext } from '../../../../context/CaptchaContext/CaptchaContext.js';
6
6
  import 'react';
@@ -159,11 +159,18 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
159
159
  };
160
160
  return (_a) => __awaiter(void 0, [_a], void 0, function* ({ walletConnector, getAddressOpts = undefined, }) {
161
161
  var _b;
162
+ const connectionCancelPromise = new DeferredPromise();
163
+ const onGoBack = () => __awaiter(void 0, void 0, void 0, function* () {
164
+ setIsInitialWalletVerificationInProgress(false);
165
+ connectionCancelPromise.reject(new GetAddressCancelledError());
166
+ });
162
167
  try {
168
+ dynamicEvents.on('goBack', onGoBack);
169
+ dynamicEvents.on('authFlowClose', onGoBack);
170
+ dynamicEvents.once('walletAdded', unsetInitialWalletVerificationFlag);
163
171
  // Lock the variable that indicates that the login wallet verification is in progress
164
172
  // Read UserWalletsContext.tsx explanation for more context
165
173
  setIsInitialWalletVerificationInProgress(true);
166
- dynamicEvents.once('walletAdded', unsetInitialWalletVerificationFlag);
167
174
  yield showPendingConnectView(walletConnector, pushView);
168
175
  if (isEmailWalletConnector(walletConnector)) {
169
176
  if (isEmailOTPWalletConnector(walletConnector)) {
@@ -173,16 +180,20 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
173
180
  pushView('wait-for-email-confirmation-view');
174
181
  }
175
182
  }
176
- let connectionResult;
183
+ const connectionPromise = connectWallet(walletConnector, getAddressOpts, {
184
+ applyHandleConnectedWallet: shouldCallCallback,
185
+ });
177
186
  try {
178
- connectionResult = yield connectWallet(walletConnector, getAddressOpts, {
179
- applyHandleConnectedWallet: shouldCallCallback,
180
- });
187
+ yield Promise.race([
188
+ connectionPromise,
189
+ connectionCancelPromise.promise,
190
+ ]);
181
191
  }
182
192
  catch (error) {
183
193
  handleWalletConnectionError(error);
184
194
  return;
185
195
  }
196
+ const connectionResult = yield connectionPromise;
186
197
  // Fallback to catch any errors that were missed.
187
198
  if (!(connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.address)) {
188
199
  handleWalletConnectionError();
@@ -242,6 +253,8 @@ const useConnectAndSign = ({ shouldUpdateWallets = true, shouldCallCallback = tr
242
253
  // 3. The SDK will enter a broken state. Try signing a message with wagmi.
243
254
  // You can also add a "pause on exception" breakpoint in the debugger and see what happens during verification.
244
255
  unsetInitialWalletVerificationFlagWithTimeout();
256
+ dynamicEvents.removeListener('goBack', onGoBack);
257
+ dynamicEvents.removeListener('authFlowClose', onGoBack);
245
258
  }
246
259
  });
247
260
  };
@@ -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 };