/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { RatingManager, RatingManagerInterface } from "../RatingManager";

const _abi = [
  {
    type: "function",
    name: "RatingManager__Init",
    inputs: [
      {
        name: "_admin",
        type: "address",
        internalType: "address",
      },
      {
        name: "_ratingDecrementGraceTime",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "_ratingIncrementPerDay",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "_ratingDecrementPerDay",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "changeRatingSlabs",
    inputs: [
      {
        name: "x",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "y",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "z",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "changeUAPRewardsOfSlab",
    inputs: [
      {
        name: "a",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "b",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "c",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "d",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "getUAPForRating",
    inputs: [
      {
        name: "_rating",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "globalRatingPause",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ratingDecrementGraceTime",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ratingDecrementPerDay",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ratingIncrementPerDay",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "rating_x",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "rating_y",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "rating_z",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "uap_slab_a",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "uap_slab_b",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "uap_slab_c",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "uap_slab_d",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "event",
    name: "Initialized",
    inputs: [
      {
        name: "version",
        type: "uint8",
        indexed: false,
        internalType: "uint8",
      },
    ],
    anonymous: false,
  },
] as const;

const _bytecode =
  "0x608060405234801561001057600080fd5b506105c1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638b18aac311610097578063a9e4d14711610066578063a9e4d1471461019a578063bcbaa1b6146101ad578063c0bbeed7146101c0578063ed1e360d146101c957600080fd5b80638b18aac31461016c5780639167e77f146101755780639d6edeef1461017e578063a5c976a01461019157600080fd5b80636527c112116100d35780636527c1121461013457806371d6e8d21461013d5780637c64eb011461015a57806385ee43d51461016357600080fd5b80634788c8f4146100fa5780635ee2b1a41461011657806362a4fb6f1461012b575b600080fd5b61010360095481565b6040519081526020015b60405180910390f35b610129610124366004610582565b6101d2565b005b61010360015481565b61010360085481565b60045461014a9060ff1681565b604051901515815260200161010d565b61010360025481565b61010360075481565b610103600b5481565b61010360055481565b61012961018c366004610556565b610203565b61010360065481565b6101296101a83660046104f6565b610321565b6101036101bb36600461053d565b61049b565b610103600a5481565b61010360035481565b6000546201000090046001600160a01b031633146101ef57600080fd5b600893909355600991909155600a55600b55565b6000546201000090046001600160a01b0316331461022057600080fd5b600083116102755760405162461bcd60e51b815260206004820152601a60248201527f782073686f756c642062652067726561746572207468616e203000000000000060448201526064015b60405180910390fd5b8282116102c45760405162461bcd60e51b815260206004820152601a60248201527f792073686f756c642062652067726561746572207468616e2078000000000000604482015260640161026c565b8181116103135760405162461bcd60e51b815260206004820152601a60248201527f7a2073686f756c642062652067726561746572207468616e2079000000000000604482015260640161026c565b600592909255600655600755565b600054610100900460ff16158080156103415750600054600160ff909116105b8061035b5750303b15801561035b575060005460ff166001145b6103be5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161026c565b6000805460ff1916600117905580156103e1576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0388160217815560018590556002849055600383905562013880600555620186a06006556201d4c0600755600855674563918244f40000600955678ac7230489e80000600a5567d02ab486cedc0000600b558015610494576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060055482116104ae57505060085490565b600554821180156104c157506006548211155b156104ce57505060095490565b600654821180156104e157506007548211155b156104ee575050600a5490565b5050600b5490565b6000806000806080858703121561050c57600080fd5b84356001600160a01b038116811461052357600080fd5b966020860135965060408601359560600135945092505050565b60006020828403121561054f57600080fd5b5035919050565b60008060006060848603121561056b57600080fd5b505081359360208301359350604090920135919050565b6000806000806080858703121561059857600080fd5b505082359460208401359450604084013593606001359250905056fea164736f6c6343000807000a";

type RatingManagerConstructorParams =
  | [signer?: Signer]
  | ConstructorParameters<typeof ContractFactory>;

const isSuperArgs = (
  xs: RatingManagerConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;

export class RatingManager__factory extends ContractFactory {
  constructor(...args: RatingManagerConstructorParams) {
    if (isSuperArgs(args)) {
      super(...args);
    } else {
      super(_abi, _bytecode, args[0]);
    }
  }

  override deploy(
    overrides?: Overrides & { from?: string }
  ): Promise<RatingManager> {
    return super.deploy(overrides || {}) as Promise<RatingManager>;
  }
  override getDeployTransaction(
    overrides?: Overrides & { from?: string }
  ): TransactionRequest {
    return super.getDeployTransaction(overrides || {});
  }
  override attach(address: string): RatingManager {
    return super.attach(address) as RatingManager;
  }
  override connect(signer: Signer): RatingManager__factory {
    return super.connect(signer) as RatingManager__factory;
  }

  static readonly bytecode = _bytecode;
  static readonly abi = _abi;
  static createInterface(): RatingManagerInterface {
    return new utils.Interface(_abi) as RatingManagerInterface;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): RatingManager {
    return new Contract(address, _abi, signerOrProvider) as RatingManager;
  }
}
