UNPKG

@openocean.finance/widget-sdk

Version:

OpenOcean Any-to-Any Cross-Chain-Swap SDK

42 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCapabilities = getCapabilities; exports.isBatchingSupported = isBatchingSupported; const widget_types_1 = require("@openocean.finance/widget-types"); const accounts_1 = require("viem/accounts"); const utils_1 = require("viem/utils"); const config_js_1 = require("../../config.js"); async function getCapabilities(client, parameters = {}) { const { account = client.account, chainId } = parameters; const account_ = account ? (0, accounts_1.parseAccount)(account) : undefined; const capabilities_raw = await client.request({ method: 'wallet_getCapabilities', params: [account_?.address], }, { dedupe: true, retryCount: 0, }); const capabilities = {}; for (const [key, value] of Object.entries(capabilities_raw)) { capabilities[Number(key)] = value; } return (typeof chainId === 'number' ? capabilities[chainId] : capabilities); } async function isBatchingSupported({ client, chainId, }) { const _client = client ?? (await config_js_1.config.getProvider(widget_types_1.ChainType.EVM)?.getWalletClient?.()); if (!_client) { throw new Error('WalletClient is not provided.'); } try { const capabilities = await (0, utils_1.getAction)(_client, getCapabilities, 'getCapabilities')({ chainId }); return (capabilities?.atomicBatch?.supported || capabilities?.atomic?.status === 'supported' || capabilities?.atomic?.status === 'ready' || false); } catch { return false; } } //# sourceMappingURL=isBatchingSupported.js.map