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