@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
JavaScript
'use client'
;
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;