"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EulerEtokenContract__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        stateMutability: 'nonpayable',
        inputs: [
            {
                internalType: 'bytes32',
                type: 'bytes32',
                name: 'moduleGitCommit_',
            },
        ],
        type: 'constructor',
    },
    {
        name: 'Approval',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                name: 'owner',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                name: 'spender',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'value',
            },
        ],
    },
    {
        anonymous: false,
        name: 'AssetStatus',
        inputs: [
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'underlying',
            },
            {
                internalType: 'uint256',
                indexed: false,
                type: 'uint256',
                name: 'totalBalances',
            },
            {
                internalType: 'uint256',
                indexed: false,
                type: 'uint256',
                name: 'totalBorrows',
            },
            {
                indexed: false,
                internalType: 'uint96',
                type: 'uint96',
                name: 'reserveBalance',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
                name: 'poolSize',
            },
            {
                name: 'interestAccumulator',
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
            },
            {
                indexed: false,
                internalType: 'int96',
                type: 'int96',
                name: 'interestRate',
            },
            {
                name: 'timestamp',
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
            },
        ],
        type: 'event',
    },
    {
        name: 'Borrow',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'account',
            },
            {
                name: 'amount',
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
    },
    {
        type: 'event',
        inputs: [
            {
                name: 'account',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'delegate',
            },
        ],
        name: 'DelegateAverageLiquidity',
        anonymous: false,
    },
    {
        anonymous: false,
        name: 'Deposit',
        type: 'event',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'account',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
            },
        ],
    },
    {
        type: 'event',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'account',
            },
        ],
        name: 'EnterMarket',
        anonymous: false,
    },
    {
        type: 'event',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'account',
            },
        ],
        name: 'ExitMarket',
        anonymous: false,
    },
    {
        name: 'Genesis',
        anonymous: false,
        inputs: [],
        type: 'event',
    },
    {
        name: 'GovConvertReserves',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                name: 'recipient',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
                name: 'amount',
            },
        ],
    },
    {
        inputs: [
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'underlying',
            },
            {
                indexed: false,
                internalType: 'struct Storage.AssetConfig',
                type: 'tuple',
                name: 'newConfig',
                components: [
                    {
                        name: 'eTokenAddress',
                        type: 'address',
                        internalType: 'address',
                    },
                    {
                        name: 'borrowIsolated',
                        internalType: 'bool',
                        type: 'bool',
                    },
                    {
                        internalType: 'uint32',
                        type: 'uint32',
                        name: 'collateralFactor',
                    },
                    {
                        internalType: 'uint32',
                        type: 'uint32',
                        name: 'borrowFactor',
                    },
                    {
                        internalType: 'uint24',
                        type: 'uint24',
                        name: 'twapWindow',
                    },
                ],
            },
        ],
        type: 'event',
        name: 'GovSetAssetConfig',
        anonymous: false,
    },
    {
        name: 'GovSetIRM',
        anonymous: false,
        inputs: [
            {
                name: 'underlying',
                indexed: true,
                internalType: 'address',
                type: 'address',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
                name: 'interestRateModel',
            },
            {
                name: 'resetParams',
                type: 'bytes',
                indexed: false,
                internalType: 'bytes',
            },
        ],
        type: 'event',
    },
    {
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                indexed: false,
                internalType: 'uint16',
                type: 'uint16',
                name: 'newPricingType',
            },
            {
                name: 'newPricingParameter',
                type: 'uint32',
                indexed: false,
                internalType: 'uint32',
            },
        ],
        type: 'event',
        name: 'GovSetPricingConfig',
        anonymous: false,
    },
    {
        anonymous: false,
        name: 'GovSetReserveFee',
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'underlying',
            },
            {
                indexed: false,
                internalType: 'uint32',
                type: 'uint32',
                name: 'newReserveFee',
            },
        ],
        type: 'event',
    },
    {
        anonymous: false,
        name: 'InstallerInstallModule',
        inputs: [
            {
                name: 'moduleId',
                type: 'uint256',
                indexed: true,
                internalType: 'uint256',
            },
            {
                internalType: 'address',
                indexed: true,
                type: 'address',
                name: 'moduleImpl',
            },
            {
                internalType: 'bytes32',
                indexed: false,
                type: 'bytes32',
                name: 'moduleGitCommit',
            },
        ],
        type: 'event',
    },
    {
        inputs: [
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'newGovernorAdmin',
            },
        ],
        type: 'event',
        name: 'InstallerSetGovernorAdmin',
        anonymous: false,
    },
    {
        name: 'InstallerSetUpgradeAdmin',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'newUpgradeAdmin',
            },
        ],
    },
    {
        inputs: [
            {
                name: 'liquidator',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'violator',
            },
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'underlying',
            },
            {
                name: 'collateral',
                internalType: 'address',
                indexed: false,
                type: 'address',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'repay',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'yield',
            },
            {
                name: 'healthScore',
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
            },
            {
                name: 'baseDiscount',
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
                name: 'discount',
            },
        ],
        type: 'event',
        anonymous: false,
        name: 'Liquidation',
    },
    {
        type: 'event',
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'underlying',
            },
            {
                name: 'eToken',
                indexed: true,
                internalType: 'address',
                type: 'address',
            },
            {
                name: 'dToken',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
        ],
        anonymous: false,
        name: 'MarketActivated',
    },
    {
        type: 'event',
        inputs: [
            {
                internalType: 'address',
                indexed: true,
                type: 'address',
                name: 'underlying',
            },
            {
                name: 'pToken',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
        ],
        anonymous: false,
        name: 'PTokenActivated',
    },
    {
        inputs: [
            {
                name: 'underlying',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                name: 'account',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        type: 'event',
        name: 'PTokenUnWrap',
        anonymous: false,
    },
    {
        anonymous: false,
        name: 'PTokenWrap',
        inputs: [
            {
                name: 'underlying',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'account',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
                name: 'amount',
            },
        ],
        type: 'event',
    },
    {
        type: 'event',
        inputs: [
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'proxy',
            },
            {
                name: 'moduleId',
                internalType: 'uint256',
                indexed: false,
                type: 'uint256',
            },
        ],
        name: 'ProxyCreated',
        anonymous: false,
    },
    {
        inputs: [
            {
                internalType: 'address',
                indexed: true,
                type: 'address',
                name: 'underlying',
            },
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'account',
            },
            {
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
                name: 'amount',
            },
        ],
        type: 'event',
        anonymous: false,
        name: 'Repay',
    },
    {
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'account',
            },
            {
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
                name: 'amount',
            },
        ],
        type: 'event',
        name: 'RequestBorrow',
        anonymous: false,
    },
    {
        inputs: [
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'account',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        type: 'event',
        name: 'RequestBurn',
        anonymous: false,
    },
    {
        type: 'event',
        inputs: [
            {
                internalType: 'address',
                indexed: true,
                type: 'address',
                name: 'account',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        anonymous: false,
        name: 'RequestDeposit',
    },
    {
        type: 'event',
        inputs: [
            {
                name: 'liquidator',
                type: 'address',
                indexed: true,
                internalType: 'address',
            },
            {
                name: 'violator',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                name: 'underlying',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                internalType: 'address',
                indexed: false,
                type: 'address',
                name: 'collateral',
            },
            {
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
                name: 'repay',
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'minYield',
            },
        ],
        name: 'RequestLiquidate',
        anonymous: false,
    },
    {
        name: 'RequestMint',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                name: 'account',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                name: 'amount',
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
            },
        ],
    },
    {
        inputs: [
            {
                name: 'account',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                name: 'amount',
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
            },
        ],
        type: 'event',
        anonymous: false,
        name: 'RequestRepay',
    },
    {
        inputs: [
            {
                name: 'accountIn',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                internalType: 'address',
                indexed: true,
                type: 'address',
                name: 'accountOut',
            },
            {
                name: 'underlyingIn',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
            {
                name: 'underlyingOut',
                indexed: false,
                internalType: 'address',
                type: 'address',
            },
            {
                internalType: 'uint256',
                indexed: false,
                type: 'uint256',
                name: 'amount',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
                name: 'swapType',
            },
        ],
        type: 'event',
        name: 'RequestSwap',
        anonymous: false,
    },
    {
        type: 'event',
        inputs: [
            {
                name: 'from',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                name: 'to',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        name: 'RequestTransferDToken',
        anonymous: false,
    },
    {
        inputs: [
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'from',
            },
            {
                name: 'to',
                type: 'address',
                internalType: 'address',
                indexed: true,
            },
            {
                name: 'amount',
                internalType: 'uint256',
                indexed: false,
                type: 'uint256',
            },
        ],
        type: 'event',
        name: 'RequestTransferEToken',
        anonymous: false,
    },
    {
        anonymous: false,
        name: 'RequestWithdraw',
        inputs: [
            {
                type: 'address',
                indexed: true,
                internalType: 'address',
                name: 'account',
            },
            {
                name: 'amount',
                type: 'uint256',
                indexed: false,
                internalType: 'uint256',
            },
        ],
        type: 'event',
    },
    {
        name: 'TrackAverageLiquidity',
        anonymous: false,
        type: 'event',
        inputs: [
            {
                name: 'account',
                internalType: 'address',
                indexed: true,
                type: 'address',
            },
        ],
    },
    {
        anonymous: false,
        name: 'Transfer',
        type: 'event',
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'from',
            },
            {
                name: 'to',
                indexed: true,
                internalType: 'address',
                type: 'address',
            },
            {
                name: 'value',
                type: 'uint256',
                internalType: 'uint256',
                indexed: false,
            },
        ],
    },
    {
        name: 'UnTrackAverageLiquidity',
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'account',
            },
        ],
        type: 'event',
    },
    {
        anonymous: false,
        name: 'Withdraw',
        type: 'event',
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                type: 'address',
                name: 'underlying',
            },
            {
                type: 'address',
                internalType: 'address',
                indexed: true,
                name: 'account',
            },
            {
                name: 'amount',
                indexed: false,
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
    },
    {
        type: 'function',
        inputs: [
            {
                name: 'holder',
                type: 'address',
                internalType: 'address',
            },
            {
                name: 'spender',
                internalType: 'address',
                type: 'address',
            },
        ],
        outputs: [
            {
                type: 'uint256',
                internalType: 'uint256',
                name: '',
            },
        ],
        stateMutability: 'view',
        name: 'allowance',
    },
    {
        stateMutability: 'nonpayable',
        name: 'approve',
        type: 'function',
        inputs: [
            {
                internalType: 'address',
                type: 'address',
                name: 'spender',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        outputs: [
            {
                name: '',
                type: 'bool',
                internalType: 'bool',
            },
        ],
    },
    {
        outputs: [
            {
                internalType: 'bool',
                type: 'bool',
                name: '',
            },
        ],
        inputs: [
            {
                name: 'subAccountId',
                internalType: 'uint256',
                type: 'uint256',
            },
            {
                internalType: 'address',
                type: 'address',
                name: 'spender',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                name: 'amount',
            },
        ],
        type: 'function',
        name: 'approveSubAccount',
        stateMutability: 'nonpayable',
    },
    {
        type: 'function',
        inputs: [
            {
                name: 'account',
                type: 'address',
                internalType: 'address',
            },
        ],
        outputs: [
            {
                name: '',
                type: 'uint256',
                internalType: 'uint256',
            },
        ],
        stateMutability: 'view',
        name: 'balanceOf',
    },
    {
        name: 'balanceOfUnderlying',
        stateMutability: 'view',
        outputs: [
            {
                internalType: 'uint256',
                type: 'uint256',
                name: '',
            },
        ],
        inputs: [
            {
                name: 'account',
                internalType: 'address',
                type: 'address',
            },
        ],
        type: 'function',
    },
    {
        stateMutability: 'nonpayable',
        name: 'burn',
        type: 'function',
        outputs: [],
        inputs: [
            {
                name: 'subAccountId',
                internalType: 'uint256',
                type: 'uint256',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                name: 'amount',
            },
        ],
    },
    {
        name: 'convertBalanceToUnderlying',
        stateMutability: 'view',
        inputs: [
            {
                name: 'balance',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
        outputs: [
            {
                internalType: 'uint256',
                type: 'uint256',
                name: '',
            },
        ],
        type: 'function',
    },
    {
        stateMutability: 'view',
        name: 'convertUnderlyingToBalance',
        type: 'function',
        inputs: [
            {
                name: 'underlyingAmount',
                type: 'uint256',
                internalType: 'uint256',
            },
        ],
        outputs: [
            {
                name: '',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
    },
    {
        inputs: [],
        outputs: [
            {
                name: '',
                internalType: 'uint8',
                type: 'uint8',
            },
        ],
        type: 'function',
        name: 'decimals',
        stateMutability: 'pure',
    },
    {
        type: 'function',
        inputs: [
            {
                name: 'subAccountId',
                type: 'uint256',
                internalType: 'uint256',
            },
            {
                internalType: 'uint256',
                type: 'uint256',
                name: 'amount',
            },
        ],
        outputs: [],
        stateMutability: 'nonpayable',
        name: 'deposit',
    },
    {
        name: 'mint',
        stateMutability: 'nonpayable',
        inputs: [
            {
                type: 'uint256',
                internalType: 'uint256',
                name: 'subAccountId',
            },
            {
                name: 'amount',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
        outputs: [],
        type: 'function',
    },
    {
        stateMutability: 'view',
        name: 'moduleGitCommit',
        type: 'function',
        inputs: [],
        outputs: [
            {
                internalType: 'bytes32',
                type: 'bytes32',
                name: '',
            },
        ],
    },
    {
        stateMutability: 'view',
        name: 'moduleId',
        type: 'function',
        outputs: [
            {
                type: 'uint256',
                internalType: 'uint256',
                name: '',
            },
        ],
        inputs: [],
    },
    {
        inputs: [],
        outputs: [
            {
                name: '',
                type: 'string',
                internalType: 'string',
            },
        ],
        type: 'function',
        name: 'name',
        stateMutability: 'view',
    },
    {
        stateMutability: 'view',
        name: 'reserveBalance',
        type: 'function',
        inputs: [],
        outputs: [
            {
                name: '',
                type: 'uint256',
                internalType: 'uint256',
            },
        ],
    },
    {
        inputs: [],
        outputs: [
            {
                name: '',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
        type: 'function',
        name: 'reserveBalanceUnderlying',
        stateMutability: 'view',
    },
    {
        inputs: [],
        outputs: [
            {
                name: '',
                type: 'string',
                internalType: 'string',
            },
        ],
        type: 'function',
        name: 'symbol',
        stateMutability: 'view',
    },
    {
        inputs: [],
        outputs: [
            {
                type: 'uint256',
                internalType: 'uint256',
                name: '',
            },
        ],
        type: 'function',
        name: 'totalSupply',
        stateMutability: 'view',
    },
    {
        type: 'function',
        outputs: [
            {
                internalType: 'uint256',
                type: 'uint256',
                name: '',
            },
        ],
        inputs: [],
        stateMutability: 'view',
        name: 'totalSupplyUnderlying',
    },
    {
        name: 'touch',
        stateMutability: 'nonpayable',
        inputs: [],
        outputs: [],
        type: 'function',
    },
    {
        stateMutability: 'nonpayable',
        name: 'transfer',
        type: 'function',
        outputs: [
            {
                internalType: 'bool',
                type: 'bool',
                name: '',
            },
        ],
        inputs: [
            {
                name: 'to',
                internalType: 'address',
                type: 'address',
            },
            {
                type: 'uint256',
                internalType: 'uint256',
                name: 'amount',
            },
        ],
    },
    {
        type: 'function',
        outputs: [
            {
                name: '',
                internalType: 'bool',
                type: 'bool',
            },
        ],
        inputs: [
            {
                name: 'from',
                type: 'address',
                internalType: 'address',
            },
            {
                name: 'to',
                type: 'address',
                internalType: 'address',
            },
            {
                name: 'amount',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        name: 'transferFrom',
    },
    {
        type: 'function',
        inputs: [
            {
                internalType: 'address',
                type: 'address',
                name: 'from',
            },
            {
                name: 'to',
                internalType: 'address',
                type: 'address',
            },
        ],
        outputs: [
            {
                internalType: 'bool',
                type: 'bool',
                name: '',
            },
        ],
        stateMutability: 'nonpayable',
        name: 'transferFromMax',
    },
    {
        stateMutability: 'nonpayable',
        name: 'withdraw',
        type: 'function',
        inputs: [
            {
                internalType: 'uint256',
                type: 'uint256',
                name: 'subAccountId',
            },
            {
                name: 'amount',
                internalType: 'uint256',
                type: 'uint256',
            },
        ],
        outputs: [],
    },
];
class EulerEtokenContract__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.EulerEtokenContract__factory = EulerEtokenContract__factory;
EulerEtokenContract__factory.abi = _abi;
//# sourceMappingURL=EulerEtokenContract__factory.js.map