"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LendingMarket = void 0;
/* eslint-disable @typescript-eslint/no-unused-vars */
const kit_1 = require("@solana/kit");
/* eslint-enable @typescript-eslint/no-unused-vars */
const bn_js_1 = __importDefault(require("bn.js")); // eslint-disable-line @typescript-eslint/no-unused-vars
const borsh = __importStar(require("@coral-xyz/borsh")); // eslint-disable-line @typescript-eslint/no-unused-vars
const utils_1 = require("../utils"); // eslint-disable-line @typescript-eslint/no-unused-vars
const types = __importStar(require("../types")); // eslint-disable-line @typescript-eslint/no-unused-vars
const programId_1 = require("../programId");
class LendingMarket {
    version;
    bumpSeed;
    lendingMarketOwner;
    lendingMarketOwnerCached;
    quoteCurrency;
    referralFeeBps;
    emergencyMode;
    autodeleverageEnabled;
    borrowDisabled;
    priceRefreshTriggerToMaxAgePct;
    liquidationMaxDebtCloseFactorPct;
    insolvencyRiskUnhealthyLtvPct;
    minFullLiquidationValueThreshold;
    maxLiquidatableDebtMarketValueAtOnce;
    reserved0;
    globalAllowedBorrowValue;
    emergencyCouncil;
    reserved1;
    elevationGroups;
    elevationGroupPadding;
    minNetValueInObligationSf;
    minValueSkipLiquidationLtvChecks;
    name;
    minValueSkipLiquidationBfChecks;
    individualAutodeleverageMarginCallPeriodSecs;
    minInitialDepositAmount;
    obligationOrderExecutionEnabled;
    immutable;
    obligationOrderCreationEnabled;
    priceTriggeredLiquidationDisabled;
    matureReserveDebtLiquidationEnabled;
    obligationBorrowDebtTermLiquidationEnabled;
    borrowOrderCreationEnabled;
    borrowOrderExecutionEnabled;
    proposerAuthority;
    minBorrowOrderFillValue;
    withdrawTicketIssuanceEnabled;
    withdrawTicketRedemptionEnabled;
    obligationBorrowRolloverConfigurationEnabled;
    obligationBorrowMigrationToFixedExecutionEnabled;
    withdrawTicketCancellationEnabled;
    padding2;
    reserveRewardsMaxAprBps;
    minWithdrawQueuedLiquidityValue;
    fixedTermRolloverWindowDurationSeconds;
    openTermRolloverWindowDurationSeconds;
    minPartialRolloverValue;
    termBasedFullLiquidationDurationSecs;
    permissioningAuthority;
    permissionedOps;
    padding1;
    static discriminator = Buffer.from([
        246, 114, 50, 98, 72, 157, 28, 120,
    ]);
    static layout = borsh.struct([
        borsh.u64("version"),
        borsh.u64("bumpSeed"),
        (0, utils_1.borshAddress)("lendingMarketOwner"),
        (0, utils_1.borshAddress)("lendingMarketOwnerCached"),
        borsh.array(borsh.u8(), 32, "quoteCurrency"),
        borsh.u16("referralFeeBps"),
        borsh.u8("emergencyMode"),
        borsh.u8("autodeleverageEnabled"),
        borsh.u8("borrowDisabled"),
        borsh.u8("priceRefreshTriggerToMaxAgePct"),
        borsh.u8("liquidationMaxDebtCloseFactorPct"),
        borsh.u8("insolvencyRiskUnhealthyLtvPct"),
        borsh.u64("minFullLiquidationValueThreshold"),
        borsh.u64("maxLiquidatableDebtMarketValueAtOnce"),
        borsh.array(borsh.u8(), 8, "reserved0"),
        borsh.u64("globalAllowedBorrowValue"),
        (0, utils_1.borshAddress)("emergencyCouncil"),
        borsh.array(borsh.u8(), 8, "reserved1"),
        borsh.array(types.ElevationGroup.layout(), 32, "elevationGroups"),
        borsh.array(borsh.u64(), 90, "elevationGroupPadding"),
        borsh.u128("minNetValueInObligationSf"),
        borsh.u64("minValueSkipLiquidationLtvChecks"),
        borsh.array(borsh.u8(), 32, "name"),
        borsh.u64("minValueSkipLiquidationBfChecks"),
        borsh.u64("individualAutodeleverageMarginCallPeriodSecs"),
        borsh.u64("minInitialDepositAmount"),
        borsh.u8("obligationOrderExecutionEnabled"),
        borsh.u8("immutable"),
        borsh.u8("obligationOrderCreationEnabled"),
        borsh.u8("priceTriggeredLiquidationDisabled"),
        borsh.u8("matureReserveDebtLiquidationEnabled"),
        borsh.u8("obligationBorrowDebtTermLiquidationEnabled"),
        borsh.u8("borrowOrderCreationEnabled"),
        borsh.u8("borrowOrderExecutionEnabled"),
        (0, utils_1.borshAddress)("proposerAuthority"),
        borsh.u64("minBorrowOrderFillValue"),
        borsh.u8("withdrawTicketIssuanceEnabled"),
        borsh.u8("withdrawTicketRedemptionEnabled"),
        borsh.u8("obligationBorrowRolloverConfigurationEnabled"),
        borsh.u8("obligationBorrowMigrationToFixedExecutionEnabled"),
        borsh.u8("withdrawTicketCancellationEnabled"),
        borsh.array(borsh.u8(), 1, "padding2"),
        borsh.u16("reserveRewardsMaxAprBps"),
        borsh.u64("minWithdrawQueuedLiquidityValue"),
        borsh.u64("fixedTermRolloverWindowDurationSeconds"),
        borsh.u64("openTermRolloverWindowDurationSeconds"),
        borsh.u64("minPartialRolloverValue"),
        borsh.u64("termBasedFullLiquidationDurationSecs"),
        (0, utils_1.borshAddress)("permissioningAuthority"),
        borsh.u64("permissionedOps"),
        borsh.array(borsh.u64(), 153, "padding1"),
    ]);
    constructor(fields) {
        this.version = fields.version;
        this.bumpSeed = fields.bumpSeed;
        this.lendingMarketOwner = fields.lendingMarketOwner;
        this.lendingMarketOwnerCached = fields.lendingMarketOwnerCached;
        this.quoteCurrency = fields.quoteCurrency;
        this.referralFeeBps = fields.referralFeeBps;
        this.emergencyMode = fields.emergencyMode;
        this.autodeleverageEnabled = fields.autodeleverageEnabled;
        this.borrowDisabled = fields.borrowDisabled;
        this.priceRefreshTriggerToMaxAgePct = fields.priceRefreshTriggerToMaxAgePct;
        this.liquidationMaxDebtCloseFactorPct =
            fields.liquidationMaxDebtCloseFactorPct;
        this.insolvencyRiskUnhealthyLtvPct = fields.insolvencyRiskUnhealthyLtvPct;
        this.minFullLiquidationValueThreshold =
            fields.minFullLiquidationValueThreshold;
        this.maxLiquidatableDebtMarketValueAtOnce =
            fields.maxLiquidatableDebtMarketValueAtOnce;
        this.reserved0 = fields.reserved0;
        this.globalAllowedBorrowValue = fields.globalAllowedBorrowValue;
        this.emergencyCouncil = fields.emergencyCouncil;
        this.reserved1 = fields.reserved1;
        this.elevationGroups = fields.elevationGroups.map((item) => new types.ElevationGroup({ ...item }));
        this.elevationGroupPadding = fields.elevationGroupPadding;
        this.minNetValueInObligationSf = fields.minNetValueInObligationSf;
        this.minValueSkipLiquidationLtvChecks =
            fields.minValueSkipLiquidationLtvChecks;
        this.name = fields.name;
        this.minValueSkipLiquidationBfChecks =
            fields.minValueSkipLiquidationBfChecks;
        this.individualAutodeleverageMarginCallPeriodSecs =
            fields.individualAutodeleverageMarginCallPeriodSecs;
        this.minInitialDepositAmount = fields.minInitialDepositAmount;
        this.obligationOrderExecutionEnabled =
            fields.obligationOrderExecutionEnabled;
        this.immutable = fields.immutable;
        this.obligationOrderCreationEnabled = fields.obligationOrderCreationEnabled;
        this.priceTriggeredLiquidationDisabled =
            fields.priceTriggeredLiquidationDisabled;
        this.matureReserveDebtLiquidationEnabled =
            fields.matureReserveDebtLiquidationEnabled;
        this.obligationBorrowDebtTermLiquidationEnabled =
            fields.obligationBorrowDebtTermLiquidationEnabled;
        this.borrowOrderCreationEnabled = fields.borrowOrderCreationEnabled;
        this.borrowOrderExecutionEnabled = fields.borrowOrderExecutionEnabled;
        this.proposerAuthority = fields.proposerAuthority;
        this.minBorrowOrderFillValue = fields.minBorrowOrderFillValue;
        this.withdrawTicketIssuanceEnabled = fields.withdrawTicketIssuanceEnabled;
        this.withdrawTicketRedemptionEnabled =
            fields.withdrawTicketRedemptionEnabled;
        this.obligationBorrowRolloverConfigurationEnabled =
            fields.obligationBorrowRolloverConfigurationEnabled;
        this.obligationBorrowMigrationToFixedExecutionEnabled =
            fields.obligationBorrowMigrationToFixedExecutionEnabled;
        this.withdrawTicketCancellationEnabled =
            fields.withdrawTicketCancellationEnabled;
        this.padding2 = fields.padding2;
        this.reserveRewardsMaxAprBps = fields.reserveRewardsMaxAprBps;
        this.minWithdrawQueuedLiquidityValue =
            fields.minWithdrawQueuedLiquidityValue;
        this.fixedTermRolloverWindowDurationSeconds =
            fields.fixedTermRolloverWindowDurationSeconds;
        this.openTermRolloverWindowDurationSeconds =
            fields.openTermRolloverWindowDurationSeconds;
        this.minPartialRolloverValue = fields.minPartialRolloverValue;
        this.termBasedFullLiquidationDurationSecs =
            fields.termBasedFullLiquidationDurationSecs;
        this.permissioningAuthority = fields.permissioningAuthority;
        this.permissionedOps = fields.permissionedOps;
        this.padding1 = fields.padding1;
    }
    static async fetch(rpc, address, programId = programId_1.PROGRAM_ID) {
        const info = await (0, kit_1.fetchEncodedAccount)(rpc, address);
        if (!info.exists) {
            return null;
        }
        if (info.programAddress !== programId) {
            throw new Error(`LendingMarketFields account ${address} belongs to wrong program ${info.programAddress}, expected ${programId}`);
        }
        return this.decode(Buffer.from(info.data));
    }
    static async fetchMultiple(rpc, addresses, programId = programId_1.PROGRAM_ID) {
        const infos = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses);
        return infos.map((info) => {
            if (!info.exists) {
                return null;
            }
            if (info.programAddress !== programId) {
                throw new Error(`LendingMarketFields account ${info.address} belongs to wrong program ${info.programAddress}, expected ${programId}`);
            }
            return this.decode(Buffer.from(info.data));
        });
    }
    static decode(data) {
        if (!data.slice(0, 8).equals(LendingMarket.discriminator)) {
            throw new Error("invalid account discriminator");
        }
        const dec = LendingMarket.layout.decode(data.slice(8));
        return new LendingMarket({
            version: dec.version,
            bumpSeed: dec.bumpSeed,
            lendingMarketOwner: dec.lendingMarketOwner,
            lendingMarketOwnerCached: dec.lendingMarketOwnerCached,
            quoteCurrency: dec.quoteCurrency,
            referralFeeBps: dec.referralFeeBps,
            emergencyMode: dec.emergencyMode,
            autodeleverageEnabled: dec.autodeleverageEnabled,
            borrowDisabled: dec.borrowDisabled,
            priceRefreshTriggerToMaxAgePct: dec.priceRefreshTriggerToMaxAgePct,
            liquidationMaxDebtCloseFactorPct: dec.liquidationMaxDebtCloseFactorPct,
            insolvencyRiskUnhealthyLtvPct: dec.insolvencyRiskUnhealthyLtvPct,
            minFullLiquidationValueThreshold: dec.minFullLiquidationValueThreshold,
            maxLiquidatableDebtMarketValueAtOnce: dec.maxLiquidatableDebtMarketValueAtOnce,
            reserved0: dec.reserved0,
            globalAllowedBorrowValue: dec.globalAllowedBorrowValue,
            emergencyCouncil: dec.emergencyCouncil,
            reserved1: dec.reserved1,
            elevationGroups: dec.elevationGroups.map((item /* eslint-disable-line @typescript-eslint/no-explicit-any */) => types.ElevationGroup.fromDecoded(item)),
            elevationGroupPadding: dec.elevationGroupPadding,
            minNetValueInObligationSf: dec.minNetValueInObligationSf,
            minValueSkipLiquidationLtvChecks: dec.minValueSkipLiquidationLtvChecks,
            name: dec.name,
            minValueSkipLiquidationBfChecks: dec.minValueSkipLiquidationBfChecks,
            individualAutodeleverageMarginCallPeriodSecs: dec.individualAutodeleverageMarginCallPeriodSecs,
            minInitialDepositAmount: dec.minInitialDepositAmount,
            obligationOrderExecutionEnabled: dec.obligationOrderExecutionEnabled,
            immutable: dec.immutable,
            obligationOrderCreationEnabled: dec.obligationOrderCreationEnabled,
            priceTriggeredLiquidationDisabled: dec.priceTriggeredLiquidationDisabled,
            matureReserveDebtLiquidationEnabled: dec.matureReserveDebtLiquidationEnabled,
            obligationBorrowDebtTermLiquidationEnabled: dec.obligationBorrowDebtTermLiquidationEnabled,
            borrowOrderCreationEnabled: dec.borrowOrderCreationEnabled,
            borrowOrderExecutionEnabled: dec.borrowOrderExecutionEnabled,
            proposerAuthority: dec.proposerAuthority,
            minBorrowOrderFillValue: dec.minBorrowOrderFillValue,
            withdrawTicketIssuanceEnabled: dec.withdrawTicketIssuanceEnabled,
            withdrawTicketRedemptionEnabled: dec.withdrawTicketRedemptionEnabled,
            obligationBorrowRolloverConfigurationEnabled: dec.obligationBorrowRolloverConfigurationEnabled,
            obligationBorrowMigrationToFixedExecutionEnabled: dec.obligationBorrowMigrationToFixedExecutionEnabled,
            withdrawTicketCancellationEnabled: dec.withdrawTicketCancellationEnabled,
            padding2: dec.padding2,
            reserveRewardsMaxAprBps: dec.reserveRewardsMaxAprBps,
            minWithdrawQueuedLiquidityValue: dec.minWithdrawQueuedLiquidityValue,
            fixedTermRolloverWindowDurationSeconds: dec.fixedTermRolloverWindowDurationSeconds,
            openTermRolloverWindowDurationSeconds: dec.openTermRolloverWindowDurationSeconds,
            minPartialRolloverValue: dec.minPartialRolloverValue,
            termBasedFullLiquidationDurationSecs: dec.termBasedFullLiquidationDurationSecs,
            permissioningAuthority: dec.permissioningAuthority,
            permissionedOps: dec.permissionedOps,
            padding1: dec.padding1,
        });
    }
    toJSON() {
        return {
            version: this.version.toString(),
            bumpSeed: this.bumpSeed.toString(),
            lendingMarketOwner: this.lendingMarketOwner,
            lendingMarketOwnerCached: this.lendingMarketOwnerCached,
            quoteCurrency: this.quoteCurrency,
            referralFeeBps: this.referralFeeBps,
            emergencyMode: this.emergencyMode,
            autodeleverageEnabled: this.autodeleverageEnabled,
            borrowDisabled: this.borrowDisabled,
            priceRefreshTriggerToMaxAgePct: this.priceRefreshTriggerToMaxAgePct,
            liquidationMaxDebtCloseFactorPct: this.liquidationMaxDebtCloseFactorPct,
            insolvencyRiskUnhealthyLtvPct: this.insolvencyRiskUnhealthyLtvPct,
            minFullLiquidationValueThreshold: this.minFullLiquidationValueThreshold.toString(),
            maxLiquidatableDebtMarketValueAtOnce: this.maxLiquidatableDebtMarketValueAtOnce.toString(),
            reserved0: this.reserved0,
            globalAllowedBorrowValue: this.globalAllowedBorrowValue.toString(),
            emergencyCouncil: this.emergencyCouncil,
            reserved1: this.reserved1,
            elevationGroups: this.elevationGroups.map((item) => item.toJSON()),
            elevationGroupPadding: this.elevationGroupPadding.map((item) => item.toString()),
            minNetValueInObligationSf: this.minNetValueInObligationSf.toString(),
            minValueSkipLiquidationLtvChecks: this.minValueSkipLiquidationLtvChecks.toString(),
            name: this.name,
            minValueSkipLiquidationBfChecks: this.minValueSkipLiquidationBfChecks.toString(),
            individualAutodeleverageMarginCallPeriodSecs: this.individualAutodeleverageMarginCallPeriodSecs.toString(),
            minInitialDepositAmount: this.minInitialDepositAmount.toString(),
            obligationOrderExecutionEnabled: this.obligationOrderExecutionEnabled,
            immutable: this.immutable,
            obligationOrderCreationEnabled: this.obligationOrderCreationEnabled,
            priceTriggeredLiquidationDisabled: this.priceTriggeredLiquidationDisabled,
            matureReserveDebtLiquidationEnabled: this.matureReserveDebtLiquidationEnabled,
            obligationBorrowDebtTermLiquidationEnabled: this.obligationBorrowDebtTermLiquidationEnabled,
            borrowOrderCreationEnabled: this.borrowOrderCreationEnabled,
            borrowOrderExecutionEnabled: this.borrowOrderExecutionEnabled,
            proposerAuthority: this.proposerAuthority,
            minBorrowOrderFillValue: this.minBorrowOrderFillValue.toString(),
            withdrawTicketIssuanceEnabled: this.withdrawTicketIssuanceEnabled,
            withdrawTicketRedemptionEnabled: this.withdrawTicketRedemptionEnabled,
            obligationBorrowRolloverConfigurationEnabled: this.obligationBorrowRolloverConfigurationEnabled,
            obligationBorrowMigrationToFixedExecutionEnabled: this.obligationBorrowMigrationToFixedExecutionEnabled,
            withdrawTicketCancellationEnabled: this.withdrawTicketCancellationEnabled,
            padding2: this.padding2,
            reserveRewardsMaxAprBps: this.reserveRewardsMaxAprBps,
            minWithdrawQueuedLiquidityValue: this.minWithdrawQueuedLiquidityValue.toString(),
            fixedTermRolloverWindowDurationSeconds: this.fixedTermRolloverWindowDurationSeconds.toString(),
            openTermRolloverWindowDurationSeconds: this.openTermRolloverWindowDurationSeconds.toString(),
            minPartialRolloverValue: this.minPartialRolloverValue.toString(),
            termBasedFullLiquidationDurationSecs: this.termBasedFullLiquidationDurationSecs.toString(),
            permissioningAuthority: this.permissioningAuthority,
            permissionedOps: this.permissionedOps.toString(),
            padding1: this.padding1.map((item) => item.toString()),
        };
    }
    static fromJSON(obj) {
        return new LendingMarket({
            version: new bn_js_1.default(obj.version),
            bumpSeed: new bn_js_1.default(obj.bumpSeed),
            lendingMarketOwner: (0, kit_1.address)(obj.lendingMarketOwner),
            lendingMarketOwnerCached: (0, kit_1.address)(obj.lendingMarketOwnerCached),
            quoteCurrency: obj.quoteCurrency,
            referralFeeBps: obj.referralFeeBps,
            emergencyMode: obj.emergencyMode,
            autodeleverageEnabled: obj.autodeleverageEnabled,
            borrowDisabled: obj.borrowDisabled,
            priceRefreshTriggerToMaxAgePct: obj.priceRefreshTriggerToMaxAgePct,
            liquidationMaxDebtCloseFactorPct: obj.liquidationMaxDebtCloseFactorPct,
            insolvencyRiskUnhealthyLtvPct: obj.insolvencyRiskUnhealthyLtvPct,
            minFullLiquidationValueThreshold: new bn_js_1.default(obj.minFullLiquidationValueThreshold),
            maxLiquidatableDebtMarketValueAtOnce: new bn_js_1.default(obj.maxLiquidatableDebtMarketValueAtOnce),
            reserved0: obj.reserved0,
            globalAllowedBorrowValue: new bn_js_1.default(obj.globalAllowedBorrowValue),
            emergencyCouncil: (0, kit_1.address)(obj.emergencyCouncil),
            reserved1: obj.reserved1,
            elevationGroups: obj.elevationGroups.map((item) => types.ElevationGroup.fromJSON(item)),
            elevationGroupPadding: obj.elevationGroupPadding.map((item) => new bn_js_1.default(item)),
            minNetValueInObligationSf: new bn_js_1.default(obj.minNetValueInObligationSf),
            minValueSkipLiquidationLtvChecks: new bn_js_1.default(obj.minValueSkipLiquidationLtvChecks),
            name: obj.name,
            minValueSkipLiquidationBfChecks: new bn_js_1.default(obj.minValueSkipLiquidationBfChecks),
            individualAutodeleverageMarginCallPeriodSecs: new bn_js_1.default(obj.individualAutodeleverageMarginCallPeriodSecs),
            minInitialDepositAmount: new bn_js_1.default(obj.minInitialDepositAmount),
            obligationOrderExecutionEnabled: obj.obligationOrderExecutionEnabled,
            immutable: obj.immutable,
            obligationOrderCreationEnabled: obj.obligationOrderCreationEnabled,
            priceTriggeredLiquidationDisabled: obj.priceTriggeredLiquidationDisabled,
            matureReserveDebtLiquidationEnabled: obj.matureReserveDebtLiquidationEnabled,
            obligationBorrowDebtTermLiquidationEnabled: obj.obligationBorrowDebtTermLiquidationEnabled,
            borrowOrderCreationEnabled: obj.borrowOrderCreationEnabled,
            borrowOrderExecutionEnabled: obj.borrowOrderExecutionEnabled,
            proposerAuthority: (0, kit_1.address)(obj.proposerAuthority),
            minBorrowOrderFillValue: new bn_js_1.default(obj.minBorrowOrderFillValue),
            withdrawTicketIssuanceEnabled: obj.withdrawTicketIssuanceEnabled,
            withdrawTicketRedemptionEnabled: obj.withdrawTicketRedemptionEnabled,
            obligationBorrowRolloverConfigurationEnabled: obj.obligationBorrowRolloverConfigurationEnabled,
            obligationBorrowMigrationToFixedExecutionEnabled: obj.obligationBorrowMigrationToFixedExecutionEnabled,
            withdrawTicketCancellationEnabled: obj.withdrawTicketCancellationEnabled,
            padding2: obj.padding2,
            reserveRewardsMaxAprBps: obj.reserveRewardsMaxAprBps,
            minWithdrawQueuedLiquidityValue: new bn_js_1.default(obj.minWithdrawQueuedLiquidityValue),
            fixedTermRolloverWindowDurationSeconds: new bn_js_1.default(obj.fixedTermRolloverWindowDurationSeconds),
            openTermRolloverWindowDurationSeconds: new bn_js_1.default(obj.openTermRolloverWindowDurationSeconds),
            minPartialRolloverValue: new bn_js_1.default(obj.minPartialRolloverValue),
            termBasedFullLiquidationDurationSecs: new bn_js_1.default(obj.termBasedFullLiquidationDurationSecs),
            permissioningAuthority: (0, kit_1.address)(obj.permissioningAuthority),
            permissionedOps: new bn_js_1.default(obj.permissionedOps),
            padding1: obj.padding1.map((item) => new bn_js_1.default(item)),
        });
    }
}
exports.LendingMarket = LendingMarket;
//# sourceMappingURL=LendingMarket.js.map