@openocean.finance/widget-sdk
Version:
OpenOcean Any-to-Any Cross-Chain-Swap SDK
42 lines • 1.68 kB
JavaScript
;
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