UNPKG

@catalabs/catalyst-sdk

Version:
48 lines 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AllowanceTransfer = void 0; const ethers_1 = require("ethers"); const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const constants_1 = require("../constants"); const constants_2 = require("../constants"); const utils_1 = require("../utils"); class AllowanceTransfer { constructor() { } static _isPermitSingle(permit) { return !Array.isArray(permit.details); } static _validatePermitDetails(details) { (0, tiny_invariant_1.default)(constants_2.MaxOrderedNonce >= details.nonce, 'NONCE_OUT_OF_RANGE'); (0, tiny_invariant_1.default)(constants_2.MaxAllowanceTransferAmount >= details.amount, 'AMOUNT_OUT_OF_RANGE'); (0, tiny_invariant_1.default)(constants_2.MaxAllowanceExpiration >= details.expiration, 'EXPIRATION_OUT_OF_RANGE'); } static getPermitData(permit, permit2Address, chainId) { (0, tiny_invariant_1.default)(constants_2.MaxSigDeadline >= permit.sigDeadline, 'SIG_DEADLINE_OUT_OF_RANGE'); const domain = (0, utils_1.getPermit2Domain)(permit2Address, chainId); if (this._isPermitSingle(permit)) { this._validatePermitDetails(permit.details); return { domain, types: constants_1.PERMIT_TYPES, values: permit, }; } else { permit.details.forEach((permitDetails) => this._validatePermitDetails(permitDetails)); return { domain, types: constants_1.PERMIT_BATCH_TYPES, values: permit, }; } } static hash(permit, permit2Address, chainId) { const { domain, types, values } = AllowanceTransfer.getPermitData(permit, permit2Address, chainId); return ethers_1.TypedDataEncoder.hash(domain, types, values); } } exports.AllowanceTransfer = AllowanceTransfer; //# sourceMappingURL=AllowanceTransfer.lib.js.map