{
  "_format": "hh-sol-artifact-1",
  "contractName": "NotionalGovernance",
  "sourceName": "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "nTokenAddress",
          "type": "address"
        }
      ],
      "name": "DeployNToken",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newCurrencyId",
          "type": "uint16"
        }
      ],
      "name": "ListCurrency",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pauseRouter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "pauseGuardian",
          "type": "address"
        }
      ],
      "name": "PauseRouterAndGuardianUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateAssetRate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "UpdateAuthorizedCallbackContract",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateCashGroup",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateDepositParameters",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateETHRate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "UpdateGlobalTransferOperator",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "newEmissionRate",
          "type": "uint32"
        }
      ],
      "name": "UpdateIncentiveEmissionRate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateInitializationParameters",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint72",
          "name": "maxCollateralBalance",
          "type": "uint72"
        }
      ],
      "name": "UpdateMaxCollateralBalance",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "name": "UpdateTokenCollateralParameters",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "contract AssetRateAdapter",
          "name": "assetRateOracle",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "maxMarketIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "rateOracleTimeWindowMin",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "totalFeeBPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "reserveFeeShare",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "debtBuffer5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "fCashHaircut5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "settlementPenaltyRate5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "liquidationfCashHaircut5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "liquidationDebtBuffer5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8[]",
              "name": "liquidityTokenHaircuts",
              "type": "uint8[]"
            },
            {
              "internalType": "uint8[]",
              "name": "rateScalars",
              "type": "uint8[]"
            }
          ],
          "internalType": "struct CashGroupSettings",
          "name": "cashGroup",
          "type": "tuple"
        },
        {
          "internalType": "string",
          "name": "underlyingName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "underlyingSymbol",
          "type": "string"
        }
      ],
      "name": "enableCashGroup",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "tokenAddress",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "hasTransferFee",
              "type": "bool"
            },
            {
              "internalType": "enum TokenType",
              "name": "tokenType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "decimalPlaces",
              "type": "uint8"
            },
            {
              "internalType": "uint72",
              "name": "maxCollateralBalance",
              "type": "uint72"
            }
          ],
          "internalType": "struct TokenStorage",
          "name": "assetToken",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "tokenAddress",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "hasTransferFee",
              "type": "bool"
            },
            {
              "internalType": "enum TokenType",
              "name": "tokenType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "decimalPlaces",
              "type": "uint8"
            },
            {
              "internalType": "uint72",
              "name": "maxCollateralBalance",
              "type": "uint72"
            }
          ],
          "internalType": "struct TokenStorage",
          "name": "underlyingToken",
          "type": "tuple"
        },
        {
          "internalType": "contract AggregatorV2V3Interface",
          "name": "rateOracle",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "mustInvert",
          "type": "bool"
        },
        {
          "internalType": "uint8",
          "name": "buffer",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "haircut",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "liquidationDiscount",
          "type": "uint8"
        }
      ],
      "name": "listCurrency",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pauseRouter_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "pauseGuardian_",
          "type": "address"
        }
      ],
      "name": "setPauseRouterAndGuardian",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "contract AssetRateAdapter",
          "name": "rateOracle",
          "type": "address"
        }
      ],
      "name": "updateAssetRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "updateAuthorizedCallbackContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "maxMarketIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "rateOracleTimeWindowMin",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "totalFeeBPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "reserveFeeShare",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "debtBuffer5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "fCashHaircut5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "settlementPenaltyRate5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "liquidationfCashHaircut5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "liquidationDebtBuffer5BPS",
              "type": "uint8"
            },
            {
              "internalType": "uint8[]",
              "name": "liquidityTokenHaircuts",
              "type": "uint8[]"
            },
            {
              "internalType": "uint8[]",
              "name": "rateScalars",
              "type": "uint8[]"
            }
          ],
          "internalType": "struct CashGroupSettings",
          "name": "cashGroup",
          "type": "tuple"
        }
      ],
      "name": "updateCashGroup",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "uint32[]",
          "name": "depositShares",
          "type": "uint32[]"
        },
        {
          "internalType": "uint32[]",
          "name": "leverageThresholds",
          "type": "uint32[]"
        }
      ],
      "name": "updateDepositParameters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "contract AggregatorV2V3Interface",
          "name": "rateOracle",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "mustInvert",
          "type": "bool"
        },
        {
          "internalType": "uint8",
          "name": "buffer",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "haircut",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "liquidationDiscount",
          "type": "uint8"
        }
      ],
      "name": "updateETHRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "updateGlobalTransferOperator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "uint32",
          "name": "newEmissionRate",
          "type": "uint32"
        }
      ],
      "name": "updateIncentiveEmissionRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "uint32[]",
          "name": "annualizedAnchorRates",
          "type": "uint32[]"
        },
        {
          "internalType": "uint32[]",
          "name": "proportions",
          "type": "uint32[]"
        }
      ],
      "name": "updateInitializationParameters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "uint72",
          "name": "maxCollateralBalanceInternalPrecision",
          "type": "uint72"
        }
      ],
      "name": "updateMaxCollateralBalance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "currencyId",
          "type": "uint16"
        },
        {
          "internalType": "uint8",
          "name": "residualPurchaseIncentive10BPS",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "pvHaircutPercentage",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "residualPurchaseTimeBufferHours",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "cashWithholdingBuffer10BPS",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "liquidationHaircutPercentage",
          "type": "uint8"
        }
      ],
      "name": "updateTokenCollateralParameters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
