UNPKG

@dynamic-labs/sdk-react-core

Version:

A React SDK for implementing wallet web3 authentication and authorization to your website.

51 lines (46 loc) 2.69 kB
'use client' 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _tslib = require('../../../../../_virtual/_tslib.cjs'); var React = require('react'); var walletConnectorCore = require('@dynamic-labs/wallet-connector-core'); var sdkApiCore = require('@dynamic-labs/sdk-api-core'); var getWalletAdditionalAddressByType = require('../../../utils/functions/getWalletAdditionalAddressByType/getWalletAdditionalAddressByType.cjs'); var usePromise = require('../../../utils/hooks/usePromise/usePromise.cjs'); var onramp = require('../../../data/api/onramp/onramp.cjs'); const useEnabledOnrampProviders = ({ primaryWallet, network, environmentId, projectSettingsOnramps, target, }) => { var _a; const chainName = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain) ? (_a = walletConnectorCore.getChainInfo(primaryWallet.chain)) === null || _a === void 0 ? void 0 : _a.name : undefined; const bitcoinAddress = primaryWallet && walletConnectorCore.isBitcoinConnector(primaryWallet.connector) && getWalletAdditionalAddressByType.getWalletAdditionalAddressByType(sdkApiCore.WalletAddressType.Payment, primaryWallet); const chainHasNetwork = network && chainName === 'evm'; const { data: onrampProviders } = usePromise.usePromise(() => _tslib.__awaiter(void 0, void 0, void 0, function* () { if (!chainName || !(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address)) return []; return onramp.getOnrampProviders({ chain: chainName, environmentId, networkId: chainHasNetwork ? network.toString() : undefined, token: target.token, walletAddress: target.address || bitcoinAddress || primaryWallet.address, }); }), { deps: [ environmentId, network, primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.address, target.address, target.token, ], // no need to fetch onramp providers if there are none enabled enabled: Boolean(projectSettingsOnramps === null || projectSettingsOnramps === void 0 ? void 0 : projectSettingsOnramps.length), initialData: [], }); return React.useMemo(() => // Filter providers based on what's enabled in project settings onrampProviders.filter((p) => projectSettingsOnramps === null || projectSettingsOnramps === void 0 ? void 0 : projectSettingsOnramps.includes(p.provider)), [onrampProviders, projectSettingsOnramps]); }; exports.useEnabledOnrampProviders = useEnabledOnrampProviders;