{
  "_format": "hh-sol-artifact-1",
  "contractName": "DecomposeRewardEstimator",
  "sourceName": "contracts/DecomposeRewardEstimator.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "addProvider",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "anmDistributor",
      "outputs": [
        {
          "internalType": "contract IANMDailyDistributor",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "countStatsProviders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "fromDFE",
          "type": "uint128"
        },
        {
          "internalType": "uint256",
          "name": "untilDFE",
          "type": "uint256"
        }
      ],
      "name": "getDecomposeRewardStats",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint128",
              "name": "dfe",
              "type": "uint128"
            },
            {
              "internalType": "uint256",
              "name": "rewardAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "numDecompose",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "costOfArcana",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "numContributors",
              "type": "uint256"
            }
          ],
          "internalType": "struct DecomposeRewardEstimator.RewardStats[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resetProvider",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "setANMDailyDistributor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "statsProviders",
      "outputs": [
        {
          "internalType": "contract IDecomposeStatsProvider",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b50604051610b44380380610b44833981016040819052602c9160a7565b6033336057565b600180546001600160a01b0319166001600160a01b039290921691909117905560d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121560b857600080fd5b81516001600160a01b038116811460ce57600080fd5b9392505050565b610a60806100e46000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610123578063993db94314610134578063a6e51a121461013c578063dc7888e21461014f578063f2fde38b1461016057600080fd5b806346e2577a146100a35780635578fccd146100b8578063597306d7146100e85780635b99a9ac146100fb578063715018a61461011b575b600080fd5b6100b66100b1366004610736565b610173565b005b6100cb6100c6366004610766565b6101cd565b6040516001600160a01b0390911681526020015b60405180910390f35b6001546100cb906001600160a01b031681565b61010e610109366004610794565b6101f7565b6040516100df91906107c0565b6100b661058f565b6000546001600160a01b03166100cb565b6100b66105a3565b6100b661014a366004610736565b6105b7565b6002546040519081526020016100df565b6100b661016e366004610736565b6105e1565b61017b61065a565b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b600281815481106101dd57600080fd5b6000918252602090912001546001600160a01b0316905081565b606081836001600160801b0316111561024b5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103830b930b6b2ba32b960791b60448201526064015b60405180910390fd5b60006102606001600160801b03851684610852565b61026b906001610865565b67ffffffffffffffff81111561028357610283610878565b6040519080825280602002602001820160405280156102ef57816020015b6102dc6040518060a0016040528060006001600160801b03168152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816102a15790505b50905060005b83856001600160801b03161161058557848282815181106103185761031861088e565b60209081029190910101516001600160801b0391821690526001546040516302169fbb60e41b81529187166004830152600091829182916001600160a01b0390911690632169fbb09060240161010060405180830381865afa158015610382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a691906108a4565b50509550955095505050508082036105625760005b600254811015610560576000600282815481106103da576103da61088e565b600091825260209091200154604051635cc2440d60e01b81526001600160801b038c1660048201526001600160a01b0390911690635cc2440d90602401608060405180830381865afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104589190610937565b905080602001518787815181106104715761047161088e565b60200260200101516040018181516104899190610865565b905250604081015187518890889081106104a5576104a561088e565b60200260200101516060018181516104bd9190610865565b905250606081015187518890889081106104d9576104d961088e565b60200260200101516080018181516104f19190610865565b905250805160208201516127109190879061050c90886109ad565b61051691906109c4565b61052091906109ad565b61052a91906109c4565b87878151811061053c5761053c61088e565b60200260200101516020018181516105549190610865565b905250506001016103bb565b505b8361056c816109e6565b945050505050848061057d906109ff565b9550506102f5565b5090505b92915050565b61059761065a565b6105a160006106b4565b565b6105ab61065a565b6105a160026000610704565b6105bf61065a565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6105e961065a565b6001600160a01b03811661064e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610242565b610657816106b4565b50565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610242565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b508054600082559060005260206000209081019061065791905b80821115610732576000815560010161071e565b5090565b60006020828403121561074857600080fd5b81356001600160a01b038116811461075f57600080fd5b9392505050565b60006020828403121561077857600080fd5b5035919050565b6001600160801b038116811461065757600080fd5b600080604083850312156107a757600080fd5b82356107b28161077f565b946020939093013593505050565b602080825282518282018190526000918401906040840190835b818110156108315783516001600160801b038151168452602081015160208501526040810151604085015260608101516060850152608081015160808501525060a0830192506020840193506001810190506107da565b509095945050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105895761058961083c565b808201808211156105895761058961083c565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600080600080600080600080610100898b0312156108c157600080fd5b88516108cc8161077f565b60208a015190985067ffffffffffffffff811681146108ea57600080fd5b60408a015190975063ffffffff8116811461090457600080fd5b60608a015160808b015160a08c015160c08d015160e0909d01519b9e9a9d50929b919a9099929850909650945092505050565b6000608082840312801561094a57600080fd5b600090506040516080810181811067ffffffffffffffff8211171561097d57634e487b7160e01b83526041600452602483fd5b60409081528451825260208086015190830152848101519082015260609384015193810193909352509092915050565b80820281158282048414176105895761058961083c565b6000826109e157634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016109f8576109f861083c565b5060010190565b60006001600160801b0382166001600160801b038103610a2157610a2161083c565b6001019291505056fea2646970667358221220918777adea27bdc008531ec789aacf6122175d4bf75682a6fceee1d533fdb07864736f6c634300081b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610123578063993db94314610134578063a6e51a121461013c578063dc7888e21461014f578063f2fde38b1461016057600080fd5b806346e2577a146100a35780635578fccd146100b8578063597306d7146100e85780635b99a9ac146100fb578063715018a61461011b575b600080fd5b6100b66100b1366004610736565b610173565b005b6100cb6100c6366004610766565b6101cd565b6040516001600160a01b0390911681526020015b60405180910390f35b6001546100cb906001600160a01b031681565b61010e610109366004610794565b6101f7565b6040516100df91906107c0565b6100b661058f565b6000546001600160a01b03166100cb565b6100b66105a3565b6100b661014a366004610736565b6105b7565b6002546040519081526020016100df565b6100b661016e366004610736565b6105e1565b61017b61065a565b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b600281815481106101dd57600080fd5b6000918252602090912001546001600160a01b0316905081565b606081836001600160801b0316111561024b5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103830b930b6b2ba32b960791b60448201526064015b60405180910390fd5b60006102606001600160801b03851684610852565b61026b906001610865565b67ffffffffffffffff81111561028357610283610878565b6040519080825280602002602001820160405280156102ef57816020015b6102dc6040518060a0016040528060006001600160801b03168152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816102a15790505b50905060005b83856001600160801b03161161058557848282815181106103185761031861088e565b60209081029190910101516001600160801b0391821690526001546040516302169fbb60e41b81529187166004830152600091829182916001600160a01b0390911690632169fbb09060240161010060405180830381865afa158015610382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a691906108a4565b50509550955095505050508082036105625760005b600254811015610560576000600282815481106103da576103da61088e565b600091825260209091200154604051635cc2440d60e01b81526001600160801b038c1660048201526001600160a01b0390911690635cc2440d90602401608060405180830381865afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104589190610937565b905080602001518787815181106104715761047161088e565b60200260200101516040018181516104899190610865565b905250604081015187518890889081106104a5576104a561088e565b60200260200101516060018181516104bd9190610865565b905250606081015187518890889081106104d9576104d961088e565b60200260200101516080018181516104f19190610865565b905250805160208201516127109190879061050c90886109ad565b61051691906109c4565b61052091906109ad565b61052a91906109c4565b87878151811061053c5761053c61088e565b60200260200101516020018181516105549190610865565b905250506001016103bb565b505b8361056c816109e6565b945050505050848061057d906109ff565b9550506102f5565b5090505b92915050565b61059761065a565b6105a160006106b4565b565b6105ab61065a565b6105a160026000610704565b6105bf61065a565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6105e961065a565b6001600160a01b03811661064e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610242565b610657816106b4565b50565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610242565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b508054600082559060005260206000209081019061065791905b80821115610732576000815560010161071e565b5090565b60006020828403121561074857600080fd5b81356001600160a01b038116811461075f57600080fd5b9392505050565b60006020828403121561077857600080fd5b5035919050565b6001600160801b038116811461065757600080fd5b600080604083850312156107a757600080fd5b82356107b28161077f565b946020939093013593505050565b602080825282518282018190526000918401906040840190835b818110156108315783516001600160801b038151168452602081015160208501526040810151604085015260608101516060850152608081015160808501525060a0830192506020840193506001810190506107da565b509095945050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105895761058961083c565b808201808211156105895761058961083c565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600080600080600080600080610100898b0312156108c157600080fd5b88516108cc8161077f565b60208a015190985067ffffffffffffffff811681146108ea57600080fd5b60408a015190975063ffffffff8116811461090457600080fd5b60608a015160808b015160a08c015160c08d015160e0909d01519b9e9a9d50929b919a9099929850909650945092505050565b6000608082840312801561094a57600080fd5b600090506040516080810181811067ffffffffffffffff8211171561097d57634e487b7160e01b83526041600452602483fd5b60409081528451825260208086015190830152848101519082015260609384015193810193909352509092915050565b80820281158282048414176105895761058961083c565b6000826109e157634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016109f8576109f861083c565b5060010190565b60006001600160801b0382166001600160801b038103610a2157610a2161083c565b6001019291505056fea2646970667358221220918777adea27bdc008531ec789aacf6122175d4bf75682a6fceee1d533fdb07864736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
