UNPKG

@lifi/sdk

Version:

LI.FI Any-to-Any Cross-Chain-Swap SDK

34 lines 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isNativePermitValid = void 0; const isNativePermitValid = (permit, typedData) => { if (permit.primaryType !== 'Permit') { return false; } if (Number(permit.domain.chainId) !== Number(typedData.domain.chainId) || (permit.domain.salt && permit.domain.salt !== typedData.domain.salt)) { return false; } const message = permit.message; if (!message) { return false; } if (message.spender?.toLowerCase() !== typedData.message.spender?.toLowerCase()) { return false; } if (message.owner?.toLowerCase() !== typedData.message.owner?.toLowerCase()) { return false; } const permitAmount = BigInt(message.value || 0); if (permitAmount < BigInt(typedData.message.value || 0)) { return false; } const deadlineTimestamp = parseInt(message.deadline || 0, 10); const allowedTimestamp = Math.floor(Date.now() / 1000) + 5 * 60; if (deadlineTimestamp <= allowedTimestamp) { return false; } return true; }; exports.isNativePermitValid = isNativePermitValid; //# sourceMappingURL=isNativePermitValid.js.map