{
    "$schema": "../../../../contract.schema.json",
    "released": true,
    "contractName": "MgvOracle",
    "version": "2.0.1",
    "networkAddresses": {
        "80001": {
            "primaryAddress": "0xC0fB136768e4b7725d674B8Bcd366A5dc2b5F976",
            "allAddresses": [
                {
                    "address": "0xC0fB136768e4b7725d674B8Bcd366A5dc2b5F976",
                    "dependencies": [
                        {
                            "name": "Mangrove",
                            "address": "0x80cd6Ef14c23dD3957FD5629141a9d7028557c39"
                        }
                    ]
                }
            ]
        },
        "11155111": {
            "primaryAddress": "0xF15A2ada64A9C3C14ca11359c8F1d22B063DB2AD",
            "allAddresses": [
                {
                    "address": "0xF15A2ada64A9C3C14ca11359c8F1d22B063DB2AD",
                    "dependencies": [
                        {
                            "name": "Mangrove",
                            "address": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C"
                        }
                    ]
                }
            ]
        },
        "168587773": {
            "primaryAddress": "0xF15A2ada64A9C3C14ca11359c8F1d22B063DB2AD",
            "allAddresses": [
                {
                    "address": "0xF15A2ada64A9C3C14ca11359c8F1d22B063DB2AD",
                    "dependencies": [
                        {
                            "name": "Mangrove",
                            "address": "0x5B2F8058Df0A0b7744FDb4fD0885FbCD2394194C"
                        }
                    ]
                }
            ]
        }
    },
    "abi": [
        {
            "type": "constructor",
            "inputs": [
                { "name": "governance_", "type": "address", "internalType": "address" },
                {
                    "name": "initialMutator_",
                    "type": "address",
                    "internalType": "address"
                },
                {
                    "name": "initialGasPrice_",
                    "type": "uint256",
                    "internalType": "uint256"
                }
            ],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "notifyFail",
            "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": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "notifySuccess",
            "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": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "read",
            "inputs": [
                {
                    "name": "",
                    "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"
                        }
                    ]
                }
            ],
            "outputs": [
                { "name": "gasprice", "type": "uint256", "internalType": "uint256" },
                { "name": "density", "type": "uint256", "internalType": "Density" }
            ],
            "stateMutability": "view"
        },
        {
            "type": "function",
            "name": "setDensity96X32",
            "inputs": [
                { "name": "density96X32", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setGasPrice",
            "inputs": [
                { "name": "gasPrice", "type": "uint256", "internalType": "uint256" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setGovernance",
            "inputs": [
                { "name": "governance_", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "function",
            "name": "setMutator",
            "inputs": [
                { "name": "mutator_", "type": "address", "internalType": "address" }
            ],
            "outputs": [],
            "stateMutability": "nonpayable"
        },
        {
            "type": "event",
            "name": "SetDensity96X32",
            "inputs": [
                {
                    "name": "density96X32",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        },
        {
            "type": "event",
            "name": "SetGasprice",
            "inputs": [
                {
                    "name": "gasPrice",
                    "type": "uint256",
                    "indexed": false,
                    "internalType": "uint256"
                }
            ],
            "anonymous": false
        }
    ]
}
