@dynamic-labs/sdk-react-core 4.31.2 → 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 +12 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/lib/context/OnrampContext/OnrampContext.cjs +46 -36
- package/src/lib/context/OnrampContext/OnrampContext.d.ts +2 -2
- package/src/lib/context/OnrampContext/OnrampContext.js +46 -36
- package/src/lib/context/OnrampContext/types.d.ts +11 -0
- package/src/lib/context/OnrampContext/useOnrampProviders/useOnrampProviders.cjs +8 -28
- package/src/lib/context/OnrampContext/useOnrampProviders/useOnrampProviders.js +7 -27
- package/src/lib/context/OnrampContext/utils/getOnrampProviders.cjs +49 -0
- package/src/lib/context/OnrampContext/utils/getOnrampProviders.d.ts +3 -0
- package/src/lib/context/OnrampContext/utils/getOnrampProviders.js +45 -0
- package/src/lib/utils/hooks/useOnramp/useOnramp.cjs +4 -10
- package/src/lib/utils/hooks/useOnramp/useOnramp.d.ts +1 -6
- package/src/lib/utils/hooks/useOnramp/useOnramp.js +4 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
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
|
+
|
|
2
14
|
### [4.31.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.31.1...v4.31.2) (2025-09-11)
|
|
3
15
|
|
|
4
16
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.31.
|
|
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.
|
|
19
|
-
"@dynamic-labs/iconic": "4.31.
|
|
20
|
-
"@dynamic-labs/logger": "4.31.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "4.31.
|
|
22
|
-
"@dynamic-labs/rpc-providers": "4.31.
|
|
23
|
-
"@dynamic-labs/store": "4.31.
|
|
24
|
-
"@dynamic-labs/types": "4.31.
|
|
25
|
-
"@dynamic-labs/utils": "4.31.
|
|
26
|
-
"@dynamic-labs/wallet-book": "4.31.
|
|
27
|
-
"@dynamic-labs/wallet-connector-core": "4.31.
|
|
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": {
|
|
@@ -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
|
|
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
|
-
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
|
|
230
|
-
onrampOption = enabledOnRampsToCheck.find((p) => p.id === onrampProvider);
|
|
240
|
+
const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
|
|
231
241
|
if (payingWithDynamic && !onrampOption) {
|
|
232
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
|
3
|
-
import type
|
|
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
|
|
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
|
-
|
|
205
|
-
|
|
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
|
-
|
|
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
|
-
|
|
226
|
-
onrampOption = enabledOnRampsToCheck.find((p) => p.id === onrampProvider);
|
|
236
|
+
const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
|
|
227
237
|
if (payingWithDynamic && !onrampOption) {
|
|
228
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
13
|
+
var _a;
|
|
14
|
+
if (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address))
|
|
33
15
|
return [];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
|
|
13
|
+
address: target.address,
|
|
14
|
+
chainName: target.chainName,
|
|
35
15
|
environmentId,
|
|
36
16
|
includeDisabled: true,
|
|
37
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
9
|
+
providers: enabledOnrampProviders,
|
|
10
|
+
};
|
|
17
11
|
};
|
|
18
12
|
|
|
19
13
|
export { useOnramp };
|