{
    "contractName": "DolomiteMargin",
    "abi": [
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint64",
                            "name": "marginRatioMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "liquidationSpreadMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "earningsRateMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "marginPremiumMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "liquidationSpreadPremiumMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint96",
                            "name": "interestRateMax",
                            "type": "uint96"
                        },
                        {
                            "internalType": "uint128",
                            "name": "minBorrowedValueMax",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Storage.RiskLimits",
                    "name": "riskLimits",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "marginRatio",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "liquidationSpread",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "minBorrowedValue",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "accountMaxNumberOfMarketsWithBalances",
                    "type": "uint256"
                },
                {
                    "internalType": "contract IOracleSentinel",
                    "name": "oracleSentinel",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "callbackGasLimit",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "trusted",
                    "type": "bool"
                }
            ],
            "name": "LogOperatorSet",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountBalances",
            "outputs": [
                {
                    "internalType": "uint256[]",
                    "name": "",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address[]",
                    "name": "",
                    "type": "address[]"
                },
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint128",
                            "name": "value",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Types.Par[]",
                    "name": "",
                    "type": "tuple[]"
                },
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "index",
                    "type": "uint256"
                }
            ],
            "name": "getAccountMarketWithBalanceAtIndex",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountMarketsWithBalances",
            "outputs": [
                {
                    "internalType": "uint256[]",
                    "name": "",
                    "type": "uint256[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getAccountMaxNumberOfMarketsWithBalances",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountNumberOfMarketsWithBalances",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountNumberOfMarketsWithDebt",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getAccountPar",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint128",
                            "name": "value",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Types.Par",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountRiskOverrideByAccount",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "marginRatioOverride",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "liquidationSpreadOverride",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                }
            ],
            "name": "getAccountRiskOverrideSetterByAccountOwner",
            "outputs": [
                {
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountStatus",
            "outputs": [
                {
                    "internalType": "enum Account.Status",
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAccountValues",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getAccountWei",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getAdjustedAccountValues",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getCallbackGasLimit",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getDefaultAccountRiskOverrideSetter",
            "outputs": [
                {
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getEarningsRate",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "autoTrader",
                    "type": "address"
                }
            ],
            "name": "getIsAutoTraderSpecial",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getIsBorrowAllowed",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                }
            ],
            "name": "getIsGlobalOperator",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getIsLiquidationAllowed",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                }
            ],
            "name": "getIsLocalOperator",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getLiquidationSpread",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "heldMarketId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "owedMarketId",
                    "type": "uint256"
                }
            ],
            "name": "getLiquidationSpreadForAccountAndPair",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "heldMarketId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "owedMarketId",
                    "type": "uint256"
                }
            ],
            "name": "getLiquidationSpreadForPair",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getLiquidationSpreadOverrideByAccount",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getMarginRatio",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getMarginRatioForAccount",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info",
                    "name": "account",
                    "type": "tuple"
                }
            ],
            "name": "getMarginRatioOverrideByAccount",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarket",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "token",
                            "type": "address"
                        },
                        {
                            "internalType": "bool",
                            "name": "isClosing",
                            "type": "bool"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint128",
                                    "name": "borrow",
                                    "type": "uint128"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "supply",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.TotalPar",
                            "name": "totalPar",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint112",
                                    "name": "borrow",
                                    "type": "uint112"
                                },
                                {
                                    "internalType": "uint112",
                                    "name": "supply",
                                    "type": "uint112"
                                },
                                {
                                    "internalType": "uint32",
                                    "name": "lastUpdate",
                                    "type": "uint32"
                                }
                            ],
                            "internalType": "struct Interest.Index",
                            "name": "index",
                            "type": "tuple"
                        },
                        {
                            "internalType": "contract IPriceOracle",
                            "name": "priceOracle",
                            "type": "address"
                        },
                        {
                            "internalType": "contract IInterestSetter",
                            "name": "interestSetter",
                            "type": "address"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "marginPremium",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "liquidationSpreadPremium",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "maxSupplyWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "maxBorrowWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "earningsRateOverride",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Storage.Market",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketBorrowInterestRateApr",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Interest.Rate",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketBorrowInterestRatePerSecond",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Interest.Rate",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketCachedIndex",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint112",
                            "name": "borrow",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint112",
                            "name": "supply",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint32",
                            "name": "lastUpdate",
                            "type": "uint32"
                        }
                    ],
                    "internalType": "struct Interest.Index",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketCurrentIndex",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint112",
                            "name": "borrow",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint112",
                            "name": "supply",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint32",
                            "name": "lastUpdate",
                            "type": "uint32"
                        }
                    ],
                    "internalType": "struct Interest.Index",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketEarningsRateOverride",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "getMarketIdByTokenAddress",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketInterestRate",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Interest.Rate",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketInterestSetter",
            "outputs": [
                {
                    "internalType": "contract IInterestSetter",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketIsClosing",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketLiquidationSpreadPremium",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketMarginPremium",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketMaxBorrowWei",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketMaxSupplyWei",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketMaxWei",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketPrice",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Price",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketPriceOracle",
            "outputs": [
                {
                    "internalType": "contract IPriceOracle",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketSpreadPremium",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketSupplyInterestRateApr",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Interest.Rate",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketTokenAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketTotalPar",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint128",
                            "name": "borrow",
                            "type": "uint128"
                        },
                        {
                            "internalType": "uint128",
                            "name": "supply",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Types.TotalPar",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketTotalWei",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint128",
                            "name": "borrow",
                            "type": "uint128"
                        },
                        {
                            "internalType": "uint128",
                            "name": "supply",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Types.TotalWei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getMarketWithInfo",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "token",
                            "type": "address"
                        },
                        {
                            "internalType": "bool",
                            "name": "isClosing",
                            "type": "bool"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint128",
                                    "name": "borrow",
                                    "type": "uint128"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "supply",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.TotalPar",
                            "name": "totalPar",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint112",
                                    "name": "borrow",
                                    "type": "uint112"
                                },
                                {
                                    "internalType": "uint112",
                                    "name": "supply",
                                    "type": "uint112"
                                },
                                {
                                    "internalType": "uint32",
                                    "name": "lastUpdate",
                                    "type": "uint32"
                                }
                            ],
                            "internalType": "struct Interest.Index",
                            "name": "index",
                            "type": "tuple"
                        },
                        {
                            "internalType": "contract IPriceOracle",
                            "name": "priceOracle",
                            "type": "address"
                        },
                        {
                            "internalType": "contract IInterestSetter",
                            "name": "interestSetter",
                            "type": "address"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "marginPremium",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "liquidationSpreadPremium",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "maxSupplyWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "maxBorrowWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Decimal.D256",
                            "name": "earningsRateOverride",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Storage.Market",
                    "name": "",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint112",
                            "name": "borrow",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint112",
                            "name": "supply",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint32",
                            "name": "lastUpdate",
                            "type": "uint32"
                        }
                    ],
                    "internalType": "struct Interest.Index",
                    "name": "",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Price",
                    "name": "",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Interest.Rate",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getMinBorrowedValue",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                }
            ],
            "name": "getNumExcessTokens",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Types.Wei",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getNumMarkets",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getOracleSentinel",
            "outputs": [
                {
                    "internalType": "contract IOracleSentinel",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getRiskLimits",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint64",
                            "name": "marginRatioMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "liquidationSpreadMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "earningsRateMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "marginPremiumMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint64",
                            "name": "liquidationSpreadPremiumMax",
                            "type": "uint64"
                        },
                        {
                            "internalType": "uint96",
                            "name": "interestRateMax",
                            "type": "uint96"
                        },
                        {
                            "internalType": "uint128",
                            "name": "minBorrowedValueMax",
                            "type": "uint128"
                        }
                    ],
                    "internalType": "struct Storage.RiskLimits",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isOwner",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "number",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Account.Info[]",
                    "name": "accounts",
                    "type": "tuple[]"
                },
                {
                    "components": [
                        {
                            "internalType": "enum Actions.ActionType",
                            "name": "actionType",
                            "type": "uint8"
                        },
                        {
                            "internalType": "uint256",
                            "name": "accountId",
                            "type": "uint256"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "enum Types.AssetDenomination",
                                    "name": "denomination",
                                    "type": "uint8"
                                },
                                {
                                    "internalType": "enum Types.AssetReference",
                                    "name": "ref",
                                    "type": "uint8"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.AssetAmount",
                            "name": "amount",
                            "type": "tuple"
                        },
                        {
                            "internalType": "uint256",
                            "name": "primaryMarketId",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "secondaryMarketId",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "otherAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "otherAccountId",
                            "type": "uint256"
                        },
                        {
                            "internalType": "bytes",
                            "name": "data",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct Actions.ActionArgs[]",
                    "name": "actions",
                    "type": "tuple[]"
                }
            ],
            "name": "operate",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                },
                {
                    "internalType": "contract IPriceOracle",
                    "name": "priceOracle",
                    "type": "address"
                },
                {
                    "internalType": "contract IInterestSetter",
                    "name": "interestSetter",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "marginPremium",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "spreadPremium",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "maxSupplyWei",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "maxBorrowWei",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRateOverride",
                    "type": "tuple"
                },
                {
                    "internalType": "bool",
                    "name": "isClosing",
                    "type": "bool"
                }
            ],
            "name": "ownerAddMarket",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "accountMaxNumberOfMarketsWithBalances",
                    "type": "uint256"
                }
            ],
            "name": "ownerSetAccountMaxNumberOfMarketsWithBalances",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "accountRiskOverrideSetter",
                    "type": "address"
                }
            ],
            "name": "ownerSetAccountRiskOverride",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "autoTrader",
                    "type": "address"
                },
                {
                    "internalType": "bool",
                    "name": "special",
                    "type": "bool"
                }
            ],
            "name": "ownerSetAutoTraderSpecial",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "callbackGasLimit",
                    "type": "uint256"
                }
            ],
            "name": "ownerSetCallbackGasLimit",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "accountRiskOverrideSetter",
                    "type": "address"
                }
            ],
            "name": "ownerSetDefaultAccountRiskOverride",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRate",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetEarningsRate",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRateOverride",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetEarningsRateOverride",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "internalType": "bool",
                    "name": "approved",
                    "type": "bool"
                }
            ],
            "name": "ownerSetGlobalOperator",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "contract IInterestSetter",
                    "name": "interestSetter",
                    "type": "address"
                }
            ],
            "name": "ownerSetInterestSetter",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "bool",
                    "name": "isClosing",
                    "type": "bool"
                }
            ],
            "name": "ownerSetIsClosing",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "spread",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetLiquidationSpread",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "liquidationSpreadPremium",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetLiquidationSpreadPremium",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "marginPremium",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetMarginPremium",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Decimal.D256",
                    "name": "ratio",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetMarginRatio",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "maxBorrowWei",
                    "type": "uint256"
                }
            ],
            "name": "ownerSetMaxBorrowWei",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "maxSupplyWei",
                    "type": "uint256"
                }
            ],
            "name": "ownerSetMaxSupplyWei",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct Monetary.Value",
                    "name": "minBorrowedValue",
                    "type": "tuple"
                }
            ],
            "name": "ownerSetMinBorrowedValue",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "contract IOracleSentinel",
                    "name": "oracleSentinel",
                    "type": "address"
                }
            ],
            "name": "ownerSetOracleSentinel",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "contract IPriceOracle",
                    "name": "priceOracle",
                    "type": "address"
                }
            ],
            "name": "ownerSetPriceOracle",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                }
            ],
            "name": "ownerWithdrawExcessTokens",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                }
            ],
            "name": "ownerWithdrawUnsupportedTokens",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "operator",
                            "type": "address"
                        },
                        {
                            "internalType": "bool",
                            "name": "trusted",
                            "type": "bool"
                        }
                    ],
                    "internalType": "struct Types.OperatorArg[]",
                    "name": "args",
                    "type": "tuple[]"
                }
            ],
            "name": "setOperators",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "takerMarket",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "makerMarket",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "takerUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "makerUpdate",
                    "type": "tuple"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "exchangeWrapper",
                    "type": "address"
                }
            ],
            "name": "LogBuy",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "callee",
                    "type": "address"
                }
            ],
            "name": "LogCall",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "update",
                    "type": "tuple"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "from",
                    "type": "address"
                }
            ],
            "name": "LogDeposit",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint112",
                            "name": "borrow",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint112",
                            "name": "supply",
                            "type": "uint112"
                        },
                        {
                            "internalType": "uint32",
                            "name": "lastUpdate",
                            "type": "uint32"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Interest.Index",
                    "name": "index",
                    "type": "tuple"
                }
            ],
            "name": "LogIndexUpdate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Interest.Rate",
                    "name": "rate",
                    "type": "tuple"
                }
            ],
            "name": "LogInterestRate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "solidAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "solidAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "liquidAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "liquidAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "heldMarket",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "owedMarket",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "solidHeldUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "solidOwedUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "liquidHeldUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "liquidOwedUpdate",
                    "type": "tuple"
                }
            ],
            "name": "LogLiquidate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "LogOperation",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Monetary.Price",
                    "name": "price",
                    "type": "tuple"
                }
            ],
            "name": "LogOraclePrice",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "takerMarket",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "makerMarket",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "takerUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "makerUpdate",
                    "type": "tuple"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "exchangeWrapper",
                    "type": "address"
                }
            ],
            "name": "LogSell",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "takerAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "takerAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "makerAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "makerAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "inputMarket",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "outputMarket",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "takerInputUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "takerOutputUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "makerInputUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "makerOutputUpdate",
                    "type": "tuple"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "autoTrader",
                    "type": "address"
                }
            ],
            "name": "LogTrade",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOneOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountOneNumber",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountTwoOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountTwoNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "updateOne",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "updateTwo",
                    "type": "tuple"
                }
            ],
            "name": "LogTransfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "solidAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "solidAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "vaporAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "vaporAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "heldMarket",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "owedMarket",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "solidHeldUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "solidOwedUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "vaporOwedUpdate",
                    "type": "tuple"
                }
            ],
            "name": "LogVaporize",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "market",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "update",
                    "type": "tuple"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                }
            ],
            "name": "LogWithdraw",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "LogAddMarket",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountMaxNumberOfMarketsWithBalances",
                    "type": "uint256"
                }
            ],
            "name": "LogSetAccountMaxNumberOfMarketsWithBalances",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "accountRiskOverrideSetter",
                    "type": "address"
                }
            ],
            "name": "LogSetAccountRiskOverrideSetter",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "autoTrader",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "isSpecial",
                    "type": "bool"
                }
            ],
            "name": "LogSetAutoTraderIsSpecial",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "callbackGasLimit",
                    "type": "uint256"
                }
            ],
            "name": "LogSetCallbackGasLimit",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "contract IAccountRiskOverrideSetter",
                    "name": "defaultAccountRiskOverrideSetter",
                    "type": "address"
                }
            ],
            "name": "LogSetDefaultAccountRiskOverrideSetter",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRate",
                    "type": "tuple"
                }
            ],
            "name": "LogSetEarningsRate",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "earningsRateOverride",
                    "type": "tuple"
                }
            ],
            "name": "LogSetEarningsRateOverride",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "approved",
                    "type": "bool"
                }
            ],
            "name": "LogSetGlobalOperator",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "interestSetter",
                    "type": "address"
                }
            ],
            "name": "LogSetInterestSetter",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "isClosing",
                    "type": "bool"
                }
            ],
            "name": "LogSetIsClosing",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "liquidationSpread",
                    "type": "tuple"
                }
            ],
            "name": "LogSetLiquidationSpread",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "liquidationSpreadPremium",
                    "type": "tuple"
                }
            ],
            "name": "LogSetLiquidationSpreadPremium",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "marginPremium",
                    "type": "tuple"
                }
            ],
            "name": "LogSetMarginPremium",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Decimal.D256",
                    "name": "marginRatio",
                    "type": "tuple"
                }
            ],
            "name": "LogSetMarginRatio",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Types.Wei",
                    "name": "maxBorrowWei",
                    "type": "tuple"
                }
            ],
            "name": "LogSetMaxBorrowWei",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "components": [
                        {
                            "internalType": "bool",
                            "name": "sign",
                            "type": "bool"
                        },
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Types.Wei",
                    "name": "maxSupplyWei",
                    "type": "tuple"
                }
            ],
            "name": "LogSetMaxSupplyWei",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Monetary.Value",
                    "name": "minBorrowedValue",
                    "type": "tuple"
                }
            ],
            "name": "LogSetMinBorrowedValue",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "contract IOracleSentinel",
                    "name": "oracleSentinel",
                    "type": "address"
                }
            ],
            "name": "LogSetOracleSentinel",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "marketId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "priceOracle",
                    "type": "address"
                }
            ],
            "name": "LogSetPriceOracle",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "LogWithdrawExcessTokens",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "LogWithdrawUnsupportedTokens",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "primaryAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "primaryAccountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "reason",
                    "type": "string"
                }
            ],
            "name": "LogExternalCallbackFailure",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "primaryAccountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "primaryAccountNumber",
                    "type": "uint256"
                }
            ],
            "name": "LogExternalCallbackSuccess",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "trusted",
                    "type": "bool"
                }
            ],
            "name": "LogOperatorSet",
            "type": "event"
        }
    ],
    "networks": {
        "1": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0x73e6b7c434b3eb972356fbf17cfee412fee48ed87ff4250010514ec0669998d9"
        },
        "56": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0x8af7567f2db42be66021042323e283294279a8d23d3a0cf7d40fe355ca808599"
        },
        "196": {
            "links": {
                "AdminImpl": "0x94bab7C3810029d06937fD30e6aefD395eB1cA06",
                "GettersImpl": "0xa60686a02F2DB7a42d753B711Ae8978a5d5BA181",
                "OperationImpl": "0x6B15c3F0D266be946eA2d33C40d1a7204C8403a2"
            },
            "address": "0x836b557Cf9eF29fcF49C776841191782df34e4e5",
            "transactionHash": "0x0943c34ca0978a02683c1196e3609fd7ba952b8ab9e11c3ed5a2d07731907370"
        },
        "1101": {
            "links": {
                "AdminImpl": "0x43C2FDB89A1C491F9FE86E1Ff05bd2BE204Ab4aE",
                "GettersImpl": "0x6B15c3F0D266be946eA2d33C40d1a7204C8403a2",
                "OperationImpl": "0xe4d3450d52EDF515433FEc12eaEFFFBfa83250b9"
            },
            "address": "0x836b557Cf9eF29fcF49C776841191782df34e4e5",
            "transactionHash": "0x9e6cf8fc0eebbe00a327e7449fc512c2f40758425577b0559e9919163c758299"
        },
        "3637": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0x9be290e11c06ccd3afd86a74c3c7ab6c50ccf023155703b2391fba14267d84be"
        },
        "5000": {
            "links": {
                "AdminImpl": "0x18FA033A317FbDA23f41aF91083ca3B9fab0A6E1",
                "GettersImpl": "0x00c2B5A97641380FD10E1f69F8219B2642F86459",
                "OperationImpl": "0x38fF2f1B4f104eE4830D7A46ADbF74Fa7EA07a7E"
            },
            "address": "0xE6Ef4f0B2455bAB92ce7cC78E35324ab58917De8",
            "transactionHash": "0xa7ba3010bee2f3d34044af3cc6a57481aecfb248e4de2d1cfadc14728d51d9f9"
        },
        "5330": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0x5ede0bcb6bd15aa7263cf3a889671087d85535a1aade376a01f9a950d1529d2d"
        },
        "8453": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0xe55ae14175337856b26d579fa7f47e3661bbdf1691976fd88cd62bcddd9d762d"
        },
        "42161": {
            "links": {
                "AdminImpl": "0xb04CCB2d3850Bf08eCA8a9FF7dB7d018FA17cfC9",
                "OperationImpl": "0x7908b447Ed2050043bb32dAffab0673970124527"
            },
            "address": "0x6Bd780E7fDf01D77e4d475c821f1e7AE05409072",
            "transactionHash": "0x2100b1792d0d584547fdc5ad15c8c69b5185cacd5f824dd72e16ee0c42fb777f"
        },
        "57073": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0x89eecb640e0b4245d715c94930b9f0277860d685ff99d18f1c41510e8c7c0019"
        },
        "80094": {
            "links": {
                "AdminImpl": "0x08243969dDd1F038473FE0b56172468A91070616",
                "GettersImpl": "0xba33D91764C06Ac4C3E38DCB66567C2D09575009",
                "OperationImpl": "0x460DFE88B642705c588bd55660CC2c4C6578eE64"
            },
            "address": "0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D",
            "transactionHash": "0xd46f671aee6e523802677a9247d66a80a2e68b70cc09b1ebbd95902b59088595"
        }
    }
}
