[
    {
        "inputs": [
            { "internalType": "address", "name": "_parentVault", "type": "address" },
            { "internalType": "address", "name": "_morpho", "type": "address" },
            {
                "internalType": "address",
                "name": "_adaptiveCurveIrm",
                "type": "address"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    { "inputs": [], "name": "Abdicated", "type": "error" },
    { "inputs": [], "name": "ApproveReturnedFalse", "type": "error" },
    { "inputs": [], "name": "ApproveReverted", "type": "error" },
    { "inputs": [], "name": "AutomaticallyTimelocked", "type": "error" },
    { "inputs": [], "name": "DataAlreadyPending", "type": "error" },
    { "inputs": [], "name": "DataNotTimelocked", "type": "error" },
    { "inputs": [], "name": "IrmMismatch", "type": "error" },
    { "inputs": [], "name": "LoanAssetMismatch", "type": "error" },
    { "inputs": [], "name": "NoCode", "type": "error" },
    { "inputs": [], "name": "SharePriceAboveOne", "type": "error" },
    { "inputs": [], "name": "TimelockNotDecreasing", "type": "error" },
    { "inputs": [], "name": "TimelockNotExpired", "type": "error" },
    { "inputs": [], "name": "TimelockNotIncreasing", "type": "error" },
    { "inputs": [], "name": "TransferReturnedFalse", "type": "error" },
    { "inputs": [], "name": "TransferReverted", "type": "error" },
    { "inputs": [], "name": "Unauthorized", "type": "error" },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            }
        ],
        "name": "Abdicate",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            },
            {
                "indexed": false,
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
            }
        ],
        "name": "Accept",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes32",
                "name": "marketId",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "newAllocation",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "mintedShares",
                "type": "uint256"
            }
        ],
        "name": "Allocate",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes32",
                "name": "marketId",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "supplyShares",
                "type": "uint256"
            }
        ],
        "name": "BurnShares",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes32",
                "name": "marketId",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "newAllocation",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "burnedShares",
                "type": "uint256"
            }
        ],
        "name": "Deallocate",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "newDuration",
                "type": "uint256"
            }
        ],
        "name": "DecreaseTimelock",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "newDuration",
                "type": "uint256"
            }
        ],
        "name": "IncreaseTimelock",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "sender",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            },
            {
                "indexed": false,
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
            }
        ],
        "name": "Revoke",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "newSkimRecipient",
                "type": "address"
            }
        ],
        "name": "SetSkimRecipient",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "token",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "assets",
                "type": "uint256"
            }
        ],
        "name": "Skim",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "bytes4",
                "name": "selector",
                "type": "bytes4"
            },
            {
                "indexed": false,
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "executableAt",
                "type": "uint256"
            }
        ],
        "name": "Submit",
        "type": "event"
    },
    {
        "inputs": [
            { "internalType": "bytes4", "name": "selector", "type": "bytes4" }
        ],
        "name": "abdicate",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes4", "name": "selector", "type": "bytes4" }
        ],
        "name": "abdicated",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "adapterId",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "adaptiveCurveIrm",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes", "name": "data", "type": "bytes" },
            { "internalType": "uint256", "name": "assets", "type": "uint256" },
            { "internalType": "bytes4", "name": "", "type": "bytes4" },
            { "internalType": "address", "name": "", "type": "address" }
        ],
        "name": "allocate",
        "outputs": [
            { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" },
            { "internalType": "int256", "name": "", "type": "int256" }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    { "internalType": "address", "name": "loanToken", "type": "address" },
                    {
                        "internalType": "address",
                        "name": "collateralToken",
                        "type": "address"
                    },
                    { "internalType": "address", "name": "oracle", "type": "address" },
                    { "internalType": "address", "name": "irm", "type": "address" },
                    { "internalType": "uint256", "name": "lltv", "type": "uint256" }
                ],
                "internalType": "struct MarketParams",
                "name": "marketParams",
                "type": "tuple"
            }
        ],
        "name": "allocation",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "asset",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "marketId", "type": "bytes32" }
        ],
        "name": "burnShares",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes", "name": "data", "type": "bytes" },
            { "internalType": "uint256", "name": "assets", "type": "uint256" },
            { "internalType": "bytes4", "name": "", "type": "bytes4" },
            { "internalType": "address", "name": "", "type": "address" }
        ],
        "name": "deallocate",
        "outputs": [
            { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" },
            { "internalType": "int256", "name": "", "type": "int256" }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes4", "name": "selector", "type": "bytes4" },
            { "internalType": "uint256", "name": "newDuration", "type": "uint256" }
        ],
        "name": "decreaseTimelock",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }],
        "name": "executableAt",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "marketId", "type": "bytes32" }
        ],
        "name": "expectedSupplyAssets",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "factory",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    { "internalType": "address", "name": "loanToken", "type": "address" },
                    {
                        "internalType": "address",
                        "name": "collateralToken",
                        "type": "address"
                    },
                    { "internalType": "address", "name": "oracle", "type": "address" },
                    { "internalType": "address", "name": "irm", "type": "address" },
                    { "internalType": "uint256", "name": "lltv", "type": "uint256" }
                ],
                "internalType": "struct MarketParams",
                "name": "marketParams",
                "type": "tuple"
            }
        ],
        "name": "ids",
        "outputs": [
            { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes4", "name": "selector", "type": "bytes4" },
            { "internalType": "uint256", "name": "newDuration", "type": "uint256" }
        ],
        "name": "increaseTimelock",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "name": "marketIds",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "marketIdsLength",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "morpho",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "parentVault",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "realAssets",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }],
        "name": "revoke",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "newSkimRecipient",
                "type": "address"
            }
        ],
        "name": "setSkimRecipient",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "token", "type": "address" }
        ],
        "name": "skim",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "skimRecipient",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }],
        "name": "submit",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "marketId", "type": "bytes32" }
        ],
        "name": "supplyShares",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes4", "name": "selector", "type": "bytes4" }
        ],
        "name": "timelock",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    }
]
