{
  "$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
    }
  ]
}
