UNPKG

@openocean.finance/widget-sdk

Version:

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

33 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkPermitSupport = void 0; const widget_types_1 = require("@openocean.finance/widget-types"); const config_js_1 = require("../../config.js"); const getAllowance_js_1 = require("./getAllowance.js"); const getNativePermit_js_1 = require("./permits/getNativePermit.js"); const publicClient_js_1 = require("./publicClient.js"); const checkPermitSupport = async ({ chain, tokenAddress, ownerAddress, amount, }) => { const provider = config_js_1.config.getProvider(widget_types_1.ChainType.EVM); let client = await provider?.getWalletClient?.(); if (!client) { client = await (0, publicClient_js_1.getPublicClient)(chain.id); } let nativePermit; try { nativePermit = await (0, getNativePermit_js_1.getNativePermit)(client, chain.id, tokenAddress, chain.permit2Proxy, amount); } catch { client = await (0, publicClient_js_1.getPublicClient)(chain.id); nativePermit = await (0, getNativePermit_js_1.getNativePermit)(client, chain.id, tokenAddress, chain.permit2Proxy, amount); } let permit2Allowance; if (chain.permit2) { permit2Allowance = await (0, getAllowance_js_1.getAllowance)(chain.id, tokenAddress, ownerAddress, chain.permit2); } return { nativePermitSupported: !!nativePermit, permit2AllowanceSufficient: !!permit2Allowance && permit2Allowance >= amount, }; }; exports.checkPermitSupport = checkPermitSupport; //# sourceMappingURL=checkPermitSupport.js.map