[
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_registry",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_supply",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_transfer",
                "type": "address"
            },
            {
                "internalType": "address payable",
                "name": "_weth",
                "type": "address"
            },
            {
                "internalType": "address payable",
                "name": "_feeReceiver",
                "type": "address"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [],
        "name": "DepositNotLessThanSupply",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidPayment",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "enum State",
                "name": "_required",
                "type": "uint8"
            },
            {
                "internalType": "enum State",
                "name": "_current",
                "type": "uint8"
            }
        ],
        "name": "InvalidState",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NoAuth",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NoRaes",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_proposer",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_caller",
                "type": "address"
            }
        ],
        "name": "NotProposer",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            }
        ],
        "name": "NotVault",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_current",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "_deadline",
                "type": "uint256"
            }
        ],
        "name": "TimeExpired",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_current",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "_deadline",
                "type": "uint256"
            }
        ],
        "name": "TimeNotElapsed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroDeposit",
        "type": "error"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address",
                "name": "_recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256[]",
                "name": "_tokenIds",
                "type": "uint256[]"
            },
            {
                "indexed": false,
                "internalType": "uint256[]",
                "name": "_amounts",
                "type": "uint256[]"
            }
        ],
        "name": "BatchWithdrawERC1155",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_buyer",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "BuyRaes",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_casher",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_raes",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "Cash",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "enum State",
                "name": "_state",
                "type": "uint8"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_proposer",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            }
        ],
        "name": "End",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_redeemer",
                "type": "address"
            }
        ],
        "name": "Redeem",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_proposer",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_buyoutPrice",
                "type": "uint256"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "startTime",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "proposer",
                        "type": "address"
                    },
                    {
                        "internalType": "enum State",
                        "name": "state",
                        "type": "uint8"
                    },
                    {
                        "internalType": "uint256",
                        "name": "raePrice",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "ethBalance",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "raeBalance",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "totalSupply",
                        "type": "uint256"
                    }
                ],
                "indexed": false,
                "internalType": "struct Auction",
                "name": "_auction",
                "type": "tuple"
            }
        ],
        "name": "Start",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address",
                "name": "_recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_tokenId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "WithdrawERC1155",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address",
                "name": "_recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "WithdrawERC20",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address",
                "name": "_recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "_tokenId",
                "type": "uint256"
            }
        ],
        "name": "WithdrawERC721",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "REJECTION_PERIOD",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "WETH_ADDRESS",
        "outputs": [
            {
                "internalType": "address payable",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_to",
                "type": "address"
            },
            {
                "internalType": "uint256[]",
                "name": "_ids",
                "type": "uint256[]"
            },
            {
                "internalType": "uint256[]",
                "name": "_values",
                "type": "uint256[]"
            },
            {
                "internalType": "bytes32[]",
                "name": "_erc1155BatchTransferProof",
                "type": "bytes32[]"
            }
        ],
        "name": "batchWithdrawERC1155",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "buy",
        "outputs": [],
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "name": "buyoutInfo",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "startTime",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "proposer",
                "type": "address"
            },
            {
                "internalType": "enum State",
                "name": "state",
                "type": "uint8"
            },
            {
                "internalType": "uint256",
                "name": "raePrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "ethBalance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "raeBalance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "totalSupply",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "bytes32[]",
                "name": "_burnProof",
                "type": "bytes32[]"
            }
        ],
        "name": "cash",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "name": "currentAuctionId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "bytes32[]",
                "name": "_burnProof",
                "type": "bytes32[]"
            }
        ],
        "name": "end",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "feeReceiver",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getLeaves",
        "outputs": [
            {
                "internalType": "bytes32[]",
                "name": "leaves",
                "type": "bytes32[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getPermissions",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "module",
                        "type": "address"
                    },
                    {
                        "internalType": "address",
                        "name": "target",
                        "type": "address"
                    },
                    {
                        "internalType": "bytes4",
                        "name": "selector",
                        "type": "bytes4"
                    }
                ],
                "internalType": "struct Permission[]",
                "name": "permissions",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getUnhashedLeaves",
        "outputs": [
            {
                "internalType": "bytes[]",
                "name": "leaves",
                "type": "bytes[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes[]",
                "name": "_data",
                "type": "bytes[]"
            }
        ],
        "name": "multicall",
        "outputs": [
            {
                "internalType": "bytes[]",
                "name": "results",
                "type": "bytes[]"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            },
            {
                "internalType": "uint256[]",
                "name": "",
                "type": "uint256[]"
            },
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "name": "onERC1155BatchReceived",
        "outputs": [
            {
                "internalType": "bytes4",
                "name": "",
                "type": "bytes4"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            },
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "name": "onERC1155Received",
        "outputs": [
            {
                "internalType": "bytes4",
                "name": "",
                "type": "bytes4"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            },
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "name": "onERC721Received",
        "outputs": [
            {
                "internalType": "bytes4",
                "name": "",
                "type": "bytes4"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "bytes32[]",
                "name": "_burnProof",
                "type": "bytes32[]"
            }
        ],
        "name": "redeem",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "registry",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_amount",
                "type": "uint256"
            }
        ],
        "name": "start",
        "outputs": [],
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "supply",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "transfer",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address payable",
                "name": "_new",
                "type": "address"
            }
        ],
        "name": "updatefeeReceiver",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_auctionId",
                "type": "uint256"
            }
        ],
        "name": "withdraw",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_to",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_id",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
            },
            {
                "internalType": "bytes32[]",
                "name": "_erc1155TransferProof",
                "type": "bytes32[]"
            }
        ],
        "name": "withdrawERC1155",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_to",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
            },
            {
                "internalType": "bytes32[]",
                "name": "_erc20TransferProof",
                "type": "bytes32[]"
            }
        ],
        "name": "withdrawERC20",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_vault",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_token",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_to",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_tokenId",
                "type": "uint256"
            },
            {
                "internalType": "bytes32[]",
                "name": "_erc721TransferProof",
                "type": "bytes32[]"
            }
        ],
        "name": "withdrawERC721",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "stateMutability": "payable",
        "type": "receive"
    }
]
