"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PolynomialPutSelling__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: 'contract ERC20',
                name: '_susd',
                type: 'address',
            },
            {
                internalType: 'contract IPolynomialVaultToken',
                name: '_vaultToken',
                type: 'address',
            },
            {
                internalType: 'contract IOptionMarket',
                name: '_market',
                type: 'address',
            },
            {
                internalType: 'contract IOptionMarketWrapperWithSwaps',
                name: '_marketWrapper',
                type: 'address',
            },
            {
                internalType: 'contract IOptionToken',
                name: '_optionToken',
                type: 'address',
            },
            {
                internalType: 'contract IOptionGreekCache',
                name: '_greeks',
                type: 'address',
            },
            {
                internalType: 'contract IExchangeRates',
                name: '_exchangeRates',
                type: 'address',
            },
            {
                internalType: 'bytes32',
                name: '_underlyingKey',
                type: 'bytes32',
            },
            {
                internalType: 'bytes32',
                name: '_name',
                type: 'bytes32',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        inputs: [],
        name: 'DepositsNotPaused',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DepositsPaused',
        type: 'error',
    },
    {
        inputs: [],
        name: 'ExpectedNonZero',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'currentPerf',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'currentWithdraw',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'newPerf',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'newWithdraw',
                type: 'uint256',
            },
        ],
        name: 'FeesTooHigh',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'totalFunds',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'usedFunds',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'requiredFunds',
                type: 'uint256',
            },
        ],
        name: 'InsufficientFunds',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
        ],
        name: 'InvalidCloseRequest',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'currentCollateralization',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'requestedCollateralization',
                type: 'uint256',
            },
        ],
        name: 'InvalidCollateralization',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidExpiryPrice',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'spotPrice',
                type: 'uint256',
            },
            {
                internalType: 'bool',
                name: 'isInvalid',
                type: 'bool',
            },
        ],
        name: 'InvalidPrice',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'minDeposit',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'requestedAmount',
                type: 'uint256',
            },
        ],
        name: 'MinimumDepositRequired',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotPaused',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                internalType: 'enum IOptionToken.PositionState',
                name: 'optionState',
                type: 'uint8',
            },
        ],
        name: 'OptionNotSettled',
        type: 'error',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'int256',
                name: 'delta',
                type: 'int256',
            },
        ],
        name: 'OptionTooRisky',
        type: 'error',
    },
    {
        inputs: [],
        name: 'Paused',
        type: 'error',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'AddCollateral',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'contract Authority',
                name: 'newAuthority',
                type: 'address',
            },
        ],
        name: 'AuthorityUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'collateralWithdrawn',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'premiumPaid',
                type: 'uint256',
            },
        ],
        name: 'ClosePosition',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'depositId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'depositor',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'InitiateDeposit',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'withdrawalId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'withdrawer',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'tokens',
                type: 'uint256',
            },
        ],
        name: 'InitiateWithdrawal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'collateral',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'premiumCollected',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'int256',
                name: 'putDelta',
                type: 'int256',
            },
        ],
        name: 'OpenPosition',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'newOwner',
                type: 'address',
            },
        ],
        name: 'OwnerUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'depositId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'tokens',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'requestedTime',
                type: 'uint256',
            },
        ],
        name: 'ProcessDeposit',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'withdrawalId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'tokens',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'requestedTime',
                type: 'uint256',
            },
        ],
        name: 'ProcessWithdrawal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'withdrawalId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'tokens',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'requestedTime',
                type: 'uint256',
            },
        ],
        name: 'ProcessWithdrawalPartially',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'SetDepositsPaused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'SetDepositsUnpaused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'SetPaused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'SetUnpaused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'totalCollateral',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'int256',
                name: 'totalPremium',
                type: 'int256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'loss',
                type: 'uint256',
            },
        ],
        name: 'SettleOption',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldCollateralization',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newCollateralization',
                type: 'uint256',
            },
        ],
        name: 'UpdateCollateralization',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldDepositDelay',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newDepositDelay',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldWithdrawDelay',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newWithdrawDelay',
                type: 'uint256',
            },
        ],
        name: 'UpdateDelays',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'oldFeeReceipient',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newFeeReceipient',
                type: 'address',
            },
        ],
        name: 'UpdateFeeReceipient',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldPerf',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldWithdraw',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newPerf',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newWithdraw',
                type: 'uint256',
            },
        ],
        name: 'UpdateFees',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'oldMinimum',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'newMinimum',
                type: 'uint256',
            },
        ],
        name: 'UpdateMinDeposit',
        type: 'event',
    },
    {
        inputs: [],
        name: 'GREEKS',
        outputs: [
            {
                internalType: 'contract IOptionGreekCache',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'MARKET',
        outputs: [
            {
                internalType: 'contract IOptionMarket',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'MARKET_WRAPPER',
        outputs: [
            {
                internalType: 'contract IOptionMarketWrapperWithSwaps',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'OPTION_TOKEN',
        outputs: [
            {
                internalType: 'contract IOptionToken',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'OPTION_TYPE',
        outputs: [
            {
                internalType: 'enum IOptionMarket.OptionType',
                name: '',
                type: 'uint8',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'RATES',
        outputs: [
            {
                internalType: 'contract IExchangeRates',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'SUSD',
        outputs: [
            {
                internalType: 'contract ERC20',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'UNDERLYING_SYNTH_KEY',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'VAULT_TOKEN',
        outputs: [
            {
                internalType: 'contract IPolynomialVaultToken',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'addCollateral',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'authority',
        outputs: [
            {
                internalType: 'contract Authority',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'premiumAmount',
                type: 'uint256',
            },
        ],
        name: 'closePosition',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'collateralization',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'depositQueue',
        outputs: [
            {
                internalType: 'uint256',
                name: 'id',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'depositedAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'mintedTokens',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'requestedTime',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'depositsPaused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'feeReceipient',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'getLiveStrikes',
        outputs: [
            {
                internalType: 'uint256[]',
                name: '',
                type: 'uint256[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'getTokenPrice',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'getTotalSupply',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'initiateDeposit',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'tokens',
                type: 'uint256',
            },
        ],
        name: 'initiateWithdrawal',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'liveStrikes',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'minDepositAmount',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'minDepositDelay',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'minWithdrawDelay',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'name',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'nextQueuedDepositId',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'nextQueuedWithdrawalId',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'strikeId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'openPosition',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'owner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'pause',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'pauseDeposits',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'paused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'performanceFee',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'positionDatas',
        outputs: [
            {
                internalType: 'uint256',
                name: 'positionId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'collateral',
                type: 'uint256',
            },
            {
                internalType: 'int256',
                name: 'premiumCollected',
                type: 'int256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'idCount',
                type: 'uint256',
            },
        ],
        name: 'processDepositQueue',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'idCount',
                type: 'uint256',
            },
        ],
        name: 'processWithdrawalQueue',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'queuedDepositHead',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'queuedWithdrawalHead',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'token',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'receiver',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'amt',
                type: 'uint256',
            },
        ],
        name: 'saveToken',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'contract Authority',
                name: 'newAuthority',
                type: 'address',
            },
        ],
        name: 'setAuthority',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_ratio',
                type: 'uint256',
            },
        ],
        name: 'setCollateralization',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_depositDelay',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_withdrawDelay',
                type: 'uint256',
            },
        ],
        name: 'setDelays',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_feeReceipient',
                type: 'address',
            },
        ],
        name: 'setFeeReceipient',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_performanceFee',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_withdrawalFee',
                type: 'uint256',
            },
        ],
        name: 'setFees',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_minAmt',
                type: 'uint256',
            },
        ],
        name: 'setMinDepositAmount',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'newOwner',
                type: 'address',
            },
        ],
        name: 'setOwner',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256[]',
                name: 'strikeIds',
                type: 'uint256[]',
            },
        ],
        name: 'settleOptions',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalFunds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalPremiumCollected',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalQueuedDeposits',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalQueuedWithdrawals',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'unpause',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'unpauseDeposits',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'usedFunds',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'withdrawalFee',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'withdrawalQueue',
        outputs: [
            {
                internalType: 'uint256',
                name: 'id',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: 'user',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'withdrawnTokens',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'returnedAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'requestedTime',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
];
class PolynomialPutSelling__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.PolynomialPutSelling__factory = PolynomialPutSelling__factory;
PolynomialPutSelling__factory.abi = _abi;
//# sourceMappingURL=PolynomialPutSelling__factory.js.map