{
    "$schema": "../../../../contract.schema.json",
    "released": true,
    "contractName": "Mangrove",
    "version": "2.0.1",
    "networkAddresses": {
        "42161": {
            "primaryAddress": "0x109d9CDFA4aC534354873EF634EF63C235F93f61",
            "allAddresses": [
                {
                    "address": "0x109d9CDFA4aC534354873EF634EF63C235F93f61"
                }
            ]
        },
        "80001": {
            "primaryAddress": "0x80cd6Ef14c23dD3957FD5629141a9d7028557c39",
            "allAddresses": [
                {
                    "address": "0x80cd6Ef14c23dD3957FD5629141a9d7028557c39"
                }
            ]
        },
        "11155111": {
            "primaryAddress": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C",
            "allAddresses": [
                {
                    "address": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C"
                }
            ]
        },
        "168587773": {
            "primaryAddress": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C",
            "allAddresses": [
                {
                    "address": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C"
                }
            ]
        }
    },
    "abi": [
        {
            "type": "constructor",
            "inputs": [
                { "name": "governance", "type": "address", "internalType": "address" },
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" },
                { "name": "gasmax", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        { "type": "fallback", "stateMutability": "nonpayable" },
        { "type": "receive", "stateMutability": "payable" },
        {
            "type": "function",
            "name": "DOMAIN_SEPARATOR",
            "inputs": [],
            "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "approve",
            "inputs": [
                {
                    "name": "outbound_tkn",
                    "type": "address",
                    "internalType": "address"
                },
                { "name": "inbound_tkn", "type": "address", "internalType": "address" },
                { "name": "spender", "type": "address", "internalType": "address" },
                { "name": "value", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "cleanByImpersonation",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                {
                    "name": "targets",
                    "type": "tuple[]",
                    "internalType": "struct MgvLib.CleanTarget[]",
                    "components": [
                        { "name": "offerId", "type": "uint256", "internalType": "uint256" },
                        { "name": "tick", "type": "int256", "internalType": "Tick" },
                        { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                        {
                            "name": "takerWants",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "taker", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "successes", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "flashloan",
            "inputs": [
                {
                    "name": "sor",
                    "type": "tuple",
                    "internalType": "struct MgvLib.SingleOrder",
                    "components": [
                        {
                            "name": "olKey",
                            "type": "tuple",
                            "internalType": "struct OLKey",
                            "components": [
                                {
                                    "name": "outbound_tkn",
                                    "type": "address",
                                    "internalType": "address"
                                },
                                {
                                    "name": "inbound_tkn",
                                    "type": "address",
                                    "internalType": "address"
                                },
                                {
                                    "name": "tickSpacing",
                                    "type": "uint256",
                                    "internalType": "uint256"
                                }
                            ]
                        },
                        { "name": "offerId", "type": "uint256", "internalType": "uint256" },
                        { "name": "offer", "type": "uint256", "internalType": "Offer" },
                        {
                            "name": "takerWants",
                            "type": "uint256",
                            "internalType": "uint256"
                        },
                        {
                            "name": "takerGives",
                            "type": "uint256",
                            "internalType": "uint256"
                        },
                        {
                            "name": "offerDetail",
                            "type": "uint256",
                            "internalType": "OfferDetail"
                        },
                        { "name": "global", "type": "uint256", "internalType": "Global" },
                        { "name": "local", "type": "uint256", "internalType": "Local" }
                    ]
                },
                { "name": "taker", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "gasused", "type": "uint256", "internalType": "uint256" },
                { "name": "makerData", "type": "bytes32", "internalType": "bytes32" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "fund",
            "inputs": [
                { "name": "maker", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "fund",
            "inputs": [],
            "outputs": [],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "internalCleanByImpersonation",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "offerId", "type": "uint256", "internalType": "uint256" },
                { "name": "tick", "type": "int256", "internalType": "Tick" },
                { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                { "name": "takerWants", "type": "uint256", "internalType": "uint256" },
                { "name": "taker", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "bounty", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "marketOrderByTick",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "maxTick", "type": "int256", "internalType": "Tick" },
                { "name": "fillVolume", "type": "uint256", "internalType": "uint256" },
                { "name": "fillWants", "type": "bool", "internalType": "bool" }
            ],
            "outputs": [
                { "name": "takerGot", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGave", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" },
                { "name": "feePaid", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "marketOrderByTickCustom",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "maxTick", "type": "int256", "internalType": "Tick" },
                { "name": "fillVolume", "type": "uint256", "internalType": "uint256" },
                { "name": "fillWants", "type": "bool", "internalType": "bool" },
                {
                    "name": "maxGasreqForFailingOffers",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "outputs": [
                { "name": "takerGot", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGave", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" },
                { "name": "feePaid", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "marketOrderByVolume",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "takerWants", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGives", "type": "uint256", "internalType": "uint256" },
                { "name": "fillWants", "type": "bool", "internalType": "bool" }
            ],
            "outputs": [
                { "name": "takerGot", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGave", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" },
                { "name": "feePaid", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "marketOrderForByTick",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "maxTick", "type": "int256", "internalType": "Tick" },
                { "name": "fillVolume", "type": "uint256", "internalType": "uint256" },
                { "name": "fillWants", "type": "bool", "internalType": "bool" },
                { "name": "taker", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "takerGot", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGave", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" },
                { "name": "feePaid", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "marketOrderForByVolume",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "takerWants", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGives", "type": "uint256", "internalType": "uint256" },
                { "name": "fillWants", "type": "bool", "internalType": "bool" },
                { "name": "taker", "type": "address", "internalType": "address" }
            ],
            "outputs": [
                { "name": "takerGot", "type": "uint256", "internalType": "uint256" },
                { "name": "takerGave", "type": "uint256", "internalType": "uint256" },
                { "name": "bounty", "type": "uint256", "internalType": "uint256" },
                { "name": "feePaid", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "newOfferByTick",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "tick", "type": "int256", "internalType": "Tick" },
                { "name": "gives", "type": "uint256", "internalType": "uint256" },
                { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [
                { "name": "offerId", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "newOfferByVolume",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "wants", "type": "uint256", "internalType": "uint256" },
                { "name": "gives", "type": "uint256", "internalType": "uint256" },
                { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [
                { "name": "offerId", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "permit",
            "inputs": [
                {
                    "name": "outbound_tkn",
                    "type": "address",
                    "internalType": "address"
                },
                { "name": "inbound_tkn", "type": "address", "internalType": "address" },
                { "name": "owner", "type": "address", "internalType": "address" },
                { "name": "spender", "type": "address", "internalType": "address" },
                { "name": "value", "type": "uint256", "internalType": "uint256" },
                { "name": "deadline", "type": "uint256", "internalType": "uint256" },
                { "name": "v", "type": "uint8", "internalType": "uint8" },
                { "name": "r", "type": "bytes32", "internalType": "bytes32" },
                { "name": "s", "type": "bytes32", "internalType": "bytes32" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "retractOffer",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "offerId", "type": "uint256", "internalType": "uint256" },
                { "name": "deprovision", "type": "bool", "internalType": "bool" }
            ],
            "outputs": [
                { "name": "provision", "type": "uint256", "internalType": "uint256" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "updateOfferByTick",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "tick", "type": "int256", "internalType": "Tick" },
                { "name": "gives", "type": "uint256", "internalType": "uint256" },
                { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" },
                { "name": "offerId", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "updateOfferByVolume",
            "inputs": [
                {
                    "name": "olKey",
                    "type": "tuple",
                    "internalType": "struct OLKey",
                    "components": [
                        {
                            "name": "outbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "inbound_tkn",
                            "type": "address",
                            "internalType": "address"
                        },
                        {
                            "name": "tickSpacing",
                            "type": "uint256",
                            "internalType": "uint256"
                        }
                    ]
                },
                { "name": "wants", "type": "uint256", "internalType": "uint256" },
                { "name": "gives", "type": "uint256", "internalType": "uint256" },
                { "name": "gasreq", "type": "uint256", "internalType": "uint256" },
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" },
                { "name": "offerId", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "payable"
        },
        {
            "type": "function",
            "name": "withdraw",
            "inputs": [
                { "name": "amount", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [
                { "name": "noRevert", "type": "bool", "internalType": "bool" }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "event",
            "name": "Approval",
            "inputs": [
                {
                    "name": "outbound_tkn",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "inbound_tkn",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "owner",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "spender",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                },
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "CleanComplete",
            "inputs": [],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "CleanStart",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "offersToBeCleaned",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "Credit",
            "inputs": [
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "Debit",
            "inputs": [
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        { "type": "event", "name": "Kill", "inputs": [], "anonymous": false },
        { "type": "event", "name": "NewMgv", "inputs": [], "anonymous": false },
        {
            "type": "event",
            "name": "OfferFail",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": true,
                    "internalType": "uint256"
                },
                {
                    "name": "takerWants",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "takerGives",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "penalty",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "mgvData",
                    "type": "bytes32",
                    "indexed": false,
                    "internalType": "bytes32"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OfferFailWithPosthookData",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": true,
                    "internalType": "uint256"
                },
                {
                    "name": "takerWants",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "takerGives",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "penalty",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "mgvData",
                    "type": "bytes32",
                    "indexed": false,
                    "internalType": "bytes32"
                },
                {
                    "name": "posthookData",
                    "type": "bytes32",
                    "indexed": false,
                    "internalType": "bytes32"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OfferRetract",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "deprovision",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OfferSuccess",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": true,
                    "internalType": "uint256"
                },
                {
                    "name": "takerWants",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "takerGives",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OfferSuccessWithPosthookData",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": true,
                    "internalType": "uint256"
                },
                {
                    "name": "takerWants",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "takerGives",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "posthookData",
                    "type": "bytes32",
                    "indexed": false,
                    "internalType": "bytes32"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OfferWrite",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "maker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "tick",
                    "type": "int256",
                    "indexed": false,
                    "internalType": "int256"
                },
                {
                    "name": "gives",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "gasprice",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "gasreq",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "id",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OrderComplete",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "fee",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "OrderStart",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "taker",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "maxTick",
                    "type": "int256",
                    "indexed": false,
                    "internalType": "Tick"
                },
                {
                    "name": "fillVolume",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "fillWants",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetActive",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "outbound_tkn",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "inbound_tkn",
                    "type": "address",
                    "indexed": true,
                    "internalType": "address"
                },
                {
                    "name": "tickSpacing",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                },
                {
                    "name": "value",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetDensity96X32",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetFee",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetGasbase",
            "inputs": [
                {
                    "name": "olKeyHash",
                    "type": "bytes32",
                    "indexed": true,
                    "internalType": "bytes32"
                },
                {
                    "name": "offer_gasbase",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetGasmax",
            "inputs": [
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetGasprice",
            "inputs": [
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetGovernance",
            "inputs": [
                {
                    "name": "value",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetMaxGasreqForFailingOffers",
            "inputs": [
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetMaxRecursionDepth",
            "inputs": [
                {
                    "name": "value",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetMonitor",
            "inputs": [
                {
                    "name": "value",
                    "type": "address",
                    "indexed": false,
                    "internalType": "address"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetNotify",
            "inputs": [
                {
                    "name": "value",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetUseOracle",
            "inputs": [
                {
                    "name": "value",
                    "type": "bool",
                    "indexed": false,
                    "internalType": "bool"
                }
            ],
            "anonymous": false
        }
    ]
}
