{
    "$schema": "../../../../contract.schema.json",
    "released": true,
    "contractName": "AavePooledRouter",
    "version": "1.0.0",
    "networkAddresses": {
        "80001": {
            "allAddresses": [
                {
                    "address": "0xF147995331B1511D5fA7c196fA3466d647142C5e",
                    "dependencies": [
                        {
                            "name": "Mangrove",
                            "address": "0x80cd6Ef14c23dD3957FD5629141a9d7028557c39"
                        }
                    ]
                }
            ]
        }
    },
    "abi": [
        {
            "type": "constructor",
            "inputs": [
                {
                    "name": "addressesProvider",
                    "type": "address",
                    "internalType": "address"
                }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "ADDRESS_PROVIDER",
            "inputs": [],
            "outputs": [
                {
                    "name": "",
                    "type": "address",
                    "internalType": "contract IPoolAddressesProvider"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "OFFSET",
            "inputs": [],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "POOL",
            "inputs": [],
            "outputs": [
                { "name": "", "type": "address", "internalType": "contract IPool" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "aaveManager",
            "inputs": [],
            "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "activate",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "admin",
            "inputs": [],
            "outputs": [
                { "name": "current", "type": "address", "internalType": "address" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "balanceOfReserve",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "bind",
            "inputs": [
                {
                    "name": "makerContract",
                    "type": "address",
                    "internalType": "address"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "checkAsset",
            "inputs": [
                {
                    "name": "asset",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "checkList",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "claimRewards",
            "inputs": [
                { "name": "assets", "type": "address[]", "internalType": "address[]" }
            ],
            "outputs": [
                {
                    "name": "rewardList",
                    "type": "address[]",
                    "internalType": "address[]"
                },
                {
                    "name": "claimedAmounts",
                    "type": "uint256[]",
                    "internalType": "uint256[]"
                }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "enterMarket",
            "inputs": [
                {
                    "name": "tokens",
                    "type": "address[]",
                    "internalType": "contract IERC20[]"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "exitMarket",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "flush",
            "inputs": [
                {
                    "name": "tokens",
                    "type": "address[]",
                    "internalType": "contract IERC20[]"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "flushBuffer",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "noRevert", "type": "bool", "internalType": "bool" }
            ],
            "outputs": [
                { "name": "reason", "type": "bytes32", "internalType": "bytes32" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "isBound",
            "inputs": [
                { "name": "mkr", "type": "address", "internalType": "address" }
            ],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "overlying",
            "inputs": [
                {
                    "name": "asset",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [
                {
                    "name": "aToken",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "pull",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" },
                { "name": "amount", "type": "uint256", "internalType": "uint256" },
                { "name": "strict", "type": "bool", "internalType": "bool" }
            ],
            "outputs": [
                { "name": "pulled", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "push",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" },
                { "name": "amount", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [
                { "name": "pushed", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "pushAndSupply",
            "inputs": [
                {
                    "name": "token0",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "amount0", "type": "uint256", "internalType": "uint256" },
                {
                    "name": "token1",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "amount1", "type": "uint256", "internalType": "uint256" },
                { "name": "reserveId", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "pushed0", "type": "uint256", "internalType": "uint256" },
                { "name": "pushed1", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "revokeLenderApproval",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setAaveManager",
            "inputs": [
                { "name": "aaveManager_", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setAdmin",
            "inputs": [
                { "name": "admin_", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "sharesOf",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "shares", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "totalBalance",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [
                { "name": "balance", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "totalShares",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                }
            ],
            "outputs": [
                { "name": "total", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "unbind",
            "inputs": [],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "unbind",
            "inputs": [
                {
                    "name": "makerContract",
                    "type": "address",
                    "internalType": "address"
                }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "withdraw",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "internalType": "contract IERC20"
                },
                { "name": "reserveId", "type": "address", "internalType": "address" },
                { "name": "amount", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "event",
            "name": "AaveIncident",
            "inputs": [
                {
                    "name": "token",
                    "type": "address",
                    "indexed": true,
                    "internalType": "contract IERC20"
                },
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "reserveId",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "aaveReason",
                    "type": "bytes32",
                    "indexed": false,
                    "internalType": "bytes32"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "MakerBind",
            "inputs": [
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "MakerUnbind",
            "inputs": [
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetAaveManager",
            "inputs": [
                {
                    "name": "manager",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetAdmin",
            "inputs": [
                {
                    "name": "admin",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        }
    ]
}
