"use strict";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
exports.__esModule = true;
exports.JumpRateModelV2__factory = void 0;
var ethers_1 = require("ethers");
var _abi = [
    {
        inputs: [
            {
                internalType: "uint256",
                name: "blocksPerYearOnChain",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "baseRatePerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "multiplierPerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "jumpMultiplierPerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "kink_",
                type: "uint256"
            },
            {
                internalType: "address",
                name: "owner_",
                type: "address"
            },
        ],
        stateMutability: "nonpayable",
        type: "constructor"
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint256",
                name: "baseRatePerBlock",
                type: "uint256"
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "multiplierPerBlock",
                type: "uint256"
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "jumpMultiplierPerBlock",
                type: "uint256"
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "kink",
                type: "uint256"
            },
        ],
        name: "NewInterestParams",
        type: "event"
    },
    {
        inputs: [],
        name: "baseRatePerBlock",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "blocksPerYear",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "cash",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "borrows",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "reserves",
                type: "uint256"
            },
        ],
        name: "getBorrowRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "cash",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "borrows",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "reserves",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "reserveFactorMantissa",
                type: "uint256"
            },
        ],
        name: "getSupplyRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "isInterestRateModel",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "jumpMultiplierPerBlock",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "kink",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "multiplierPerBlock",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [],
        name: "owner",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address"
            },
        ],
        stateMutability: "view",
        type: "function"
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "baseRatePerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "multiplierPerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "jumpMultiplierPerYear",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "kink_",
                type: "uint256"
            },
        ],
        name: "updateJumpRateModel",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function"
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "cash",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "borrows",
                type: "uint256"
            },
            {
                internalType: "uint256",
                name: "reserves",
                type: "uint256"
            },
        ],
        name: "utilizationRate",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256"
            },
        ],
        stateMutability: "pure",
        type: "function"
    },
];
var _bytecode = "0x60a03461010757601f61064738819003918201601f19168301916001600160401b0383118484101761010c5780849260c09460405283398101031261010757805190602081015190604081015190606081015160a0608083015192015160018060a01b03811680910361010757856100bf816100b57f6960ab234c7ef4b0c9197100f5393cfcde7c453ac910a27bd2000aa1dd4c068d996080996100c99660018060a01b03196000541617600055818b52610122565b9687600255610122565b9283600155610122565b908160035582600455604051938452602084015260408301526060820152a16040516105049081610143823960805181818161017801526102740152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b811561012c570490565b634e487b7160e01b600052601260045260246000fdfe604060808152600436101561001357600080fd5b600090813560e01c806315f24053146103225780632037f3e71461021d5780632191f92a146102025780636e71e2d8146101e05780638726bb89146101c25780638da5cb5b1461019b578063a385fb9614610161578063b8168816146100f5578063b9f9850a146100d7578063f14039de146100b95763fd2da3391461009857600080fd5b346100b557816003193601126100b5576020906004549051908152f35b5080fd5b50346100b557816003193601126100b5576020906002549051908152f35b50346100b557816003193601126100b5576020906003549051908152f35b50346100b5576101043661035c565b9294670de0b6b3a76400009291929384039084821161014d575082828561013e61013994610139610145988c9860209d61045b565b610428565b04936103aa565b049051908152f35b634e487b7160e01b81526011600452602490fd5b50346100b557816003193601126100b557602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346100b557816003193601126100b557905490516001600160a01b039091168152602090f35b50346100b557816003193601126100b5576020906001549051908152f35b50346100b5576020906101fb6101f53661033d565b916103aa565b9051908152f35b50346100b557816003193601126100b5576020905160018152f35b50346100b55761022c3661035c565b9260018060a0969394961b0386541633036102cf5791608093916102b061029c6102a67f6960ab234c7ef4b0c9197100f5393cfcde7c453ac910a27bd2000aa1dd4c068d98967f00000000000000000000000000000000000000000000000000000000000000009283809261043b565b978860025561043b565b938460015561043b565b918260035583600455815194855260208501528301526060820152a180f35b815162461bcd60e51b815260206004820152602660248201527f6f6e6c7920746865206f776e6572206d61792063616c6c20746869732066756e60448201526531ba34b7b71760d11b6064820152608490fd5b50346100b5576020906101fb6103373661033d565b9161045b565b606090600319011261035757600435906024359060443590565b600080fd5b60809060031901126103575760043590602435906044359060643590565b9190820180921161038757565b634e487b7160e01b600052601160045260246000fd5b9190820391821161038757565b91908015610420578282118061040a575b6103fb57670de0b6b3a7640000810291670de0b6b3a763ffff1982840401610387576103ed6103f2926103f89561037a565b61039d565b9061043b565b90565b505050670de0b6b3a764000090565b50610419826103ed858461037a565b15156103bb565b505050600090565b8181029291811591840414171561038757565b8115610445570490565b634e487b7160e01b600052601260045260246000fd5b9061046692916103aa565b6004548082116104945750670de0b6b3a764000061048a6103f89260015490610428565b046002549061037a565b906103f8916104c86104bf670de0b6b3a7640000926104b98461048a60015484610428565b9461039d565b60035490610428565b0461037a56fea264697066735822122030a29ccbce01a3086440486e31501ae41ec4e6908ec54f221b08617083ba09f764736f6c63430008130033";
var JumpRateModelV2__factory = /** @class */ (function (_super) {
    __extends(JumpRateModelV2__factory, _super);
    function JumpRateModelV2__factory() {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        var _this = this;
        if (args.length === 1) {
            _this = _super.call(this, _abi, _bytecode, args[0]) || this;
        }
        else {
            _this = _super.apply(this, args) || this;
        }
        return _this;
    }
    JumpRateModelV2__factory.prototype.deploy = function (blocksPerYearOnChain, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, owner_, overrides) {
        return _super.prototype.deploy.call(this, blocksPerYearOnChain, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, owner_, overrides || {});
    };
    JumpRateModelV2__factory.prototype.getDeployTransaction = function (blocksPerYearOnChain, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, owner_, overrides) {
        return _super.prototype.getDeployTransaction.call(this, blocksPerYearOnChain, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, owner_, overrides || {});
    };
    JumpRateModelV2__factory.prototype.attach = function (address) {
        return _super.prototype.attach.call(this, address);
    };
    JumpRateModelV2__factory.prototype.connect = function (signer) {
        return _super.prototype.connect.call(this, signer);
    };
    JumpRateModelV2__factory.createInterface = function () {
        return new ethers_1.utils.Interface(_abi);
    };
    JumpRateModelV2__factory.connect = function (address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    };
    JumpRateModelV2__factory.bytecode = _bytecode;
    JumpRateModelV2__factory.abi = _abi;
    return JumpRateModelV2__factory;
}(ethers_1.ContractFactory));
exports.JumpRateModelV2__factory = JumpRateModelV2__factory;
//# sourceMappingURL=JumpRateModelV2__factory.js.map