{
  "_format": "hh-sol-artifact-1",
  "contractName": "MineAlgorithm",
  "sourceName": "contracts/V3/handler/MineAlgorithm.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "roundCount",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "attCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "attRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "attRateDenominator",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "historyModRoundCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stdAttenuationRoundCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stdAttenuationRate",
              "type": "uint256"
            },
            {
              "internalType": "uint16",
              "name": "stdAttenuationRateDenominator",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "spanTimesPower",
              "type": "uint16"
            },
            {
              "internalType": "uint256",
              "name": "attRatio",
              "type": "uint256"
            }
          ],
          "internalType": "struct MineAlgorithm.ParamAttenuation",
          "name": "param",
          "type": "tuple"
        }
      ],
      "name": "callLongTermRatio",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "roundCount",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "attCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "attRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "attRateDenominator",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "historyModRoundCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stdAttenuationRoundCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stdAttenuationRate",
              "type": "uint256"
            },
            {
              "internalType": "uint16",
              "name": "stdAttenuationRateDenominator",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "spanTimesPower",
              "type": "uint16"
            },
            {
              "internalType": "uint256",
              "name": "attRatio",
              "type": "uint256"
            }
          ],
          "internalType": "struct MineAlgorithm.ParamAttenuation",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610a10806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063653e632714610030575b600080fd5b61004361003e366004610705565b610059565b604051610050919061079e565b60405180910390f35b6100bd604051806101400160405280600063ffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600061ffff168152602001600061ffff168152602001600081525090565b8160e0015161ffff16612710141561011e57600f6101008301526509184e72a00060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b610113919061086b565b60408301525b610224565b8160e0015161ffff166103e8141561016c576012610100830152678ac7230489e8000060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b8160e0015161ffff16606414156101bf5760146101008301526d314dc6448d9338c15b0a0000000060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b8160e0015161ffff16600a141561022457601e6101008301526c0e596b7b0c643c7196d9ccd05d602b1b60608301526040820151610224578160c001518260e0015161ffff1683606001516102149190610836565b61021e919061086b565b60408301525b60e0820151608083015161ffff9091169061027657808360c00151846040015161024e9190610836565b610258919061086b565b60408401526020830180516001919061027290839061087f565b9052505b60008360a00151846000015163ffffffff168560800151610297919061087f565b116102cd57835160408501516102b39163ffffffff1690610836565b84610120018181516102c5919061087f565b905250610690565b83608001518460a001516102e19190610897565b84604001516102f09190610836565b8461012001818151610302919061087f565b90525060a0840151845160808601516103219163ffffffff169061087f565b61032b91906108ae565b905060008460a001518560a00151866000015163ffffffff168760800151610353919061087f565b61035d9190610897565b610367919061086b565b905060018111156105b757600085610100015161ffff1682610389919061086b565b9050600086610100015161ffff16826103a29190610836565b6103ac9084610897565b9050600080868960c001518a604001516103c69190610836565b6103d0919061086b565b90506001896020018181516103e5919061087f565b90525060408901515b84831015610453576101008a01518190610408908a6109a8565b8b61010001518c60c0015161041d91906109a8565b6104279084610836565b610431919061086b565b915081610442576001915050610453565b5061044c836109bf565b92506103ee565b60008a610100015161ffff168461046a9190610836565b90506000868510156104da575b8b610100015161ffff168110156104d55781610492816109bf565b60c08e01519093508491508b906104a99083610836565b6104b3919061086b565b9350836104c457600193505061052f565b506104ce816109bf565b9050610477565b61052f565b8581101561052f57816104ec816109bf565b60c08e01519093508491508b906105039083610836565b61050d919061086b565b93508361051e57600193505061052f565b50610528816109bf565b90506104da565b60a08c015160c08d0151610543908c610897565b60c08e01516105529086610836565b61055c878e610836565b6105669190610897565b610570919061086b565b61057a9190610836565b8c6101200181815161058c919061087f565b90525060208c0180518391906105a390839061087f565b905250505060408a01525061062692505050565b806001141561062657828560c0015186604001516105d59190610836565b6105df919061086b565b6040860152602085018051600191906105f990839061087f565b905250604085015160a08601516106109190610836565b8561012001818151610622919061087f565b9052505b811561068e57828560c0015186604001516106419190610836565b61064b919061086b565b60408601526020850180516001919061066590839061087f565b9052506040850151610678908390610836565b856101200181815161068a919061087f565b9052505b505b63ffffffff1660808401525090919050565b604051610140810167ffffffffffffffff811182821017156106d457634e487b7160e01b600052604160045260246000fd5b60405290565b803563ffffffff811681146106ee57600080fd5b919050565b803561ffff811681146106ee57600080fd5b6000610140828403121561071857600080fd5b6107206106a2565b610729836106da565b81526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015261077360e084016106f3565b60e08201526101006107868185016106f3565b90820152610120928301359281019290925250919050565b815163ffffffff16815261014081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e08301516107fe60e084018261ffff169052565b506101008381015161ffff811684830152505061012092830151919092015290565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561085057610850610820565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261087a5761087a610855565b500490565b6000821982111561089257610892610820565b500190565b6000828210156108a9576108a9610820565b500390565b6000826108bd576108bd610855565b500690565b600181815b808511156108fd5781600019048211156108e3576108e3610820565b808516156108f057918102915b93841c93908002906108c7565b509250929050565b600082610914575060016109a2565b81610921575060006109a2565b816001811461093757600281146109415761095d565b60019150506109a2565b60ff84111561095257610952610820565b50506001821b6109a2565b5060208310610133831016604e8410600b8410161715610980575081810a6109a2565b61098a83836108c2565b806000190482111561099e5761099e610820565b0290505b92915050565b60006109b861ffff841683610905565b9392505050565b60006000198214156109d3576109d3610820565b506001019056fea26469706673582212201bd0102fbb3fbae87de1d6ff569e7b83f9d503974f785928b769cc0270b5ac5364736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063653e632714610030575b600080fd5b61004361003e366004610705565b610059565b604051610050919061079e565b60405180910390f35b6100bd604051806101400160405280600063ffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600061ffff168152602001600061ffff168152602001600081525090565b8160e0015161ffff16612710141561011e57600f6101008301526509184e72a00060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b610113919061086b565b60408301525b610224565b8160e0015161ffff166103e8141561016c576012610100830152678ac7230489e8000060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b8160e0015161ffff16606414156101bf5760146101008301526d314dc6448d9338c15b0a0000000060608301526040820151610119578160c001518260e0015161ffff1683606001516101099190610836565b8160e0015161ffff16600a141561022457601e6101008301526c0e596b7b0c643c7196d9ccd05d602b1b60608301526040820151610224578160c001518260e0015161ffff1683606001516102149190610836565b61021e919061086b565b60408301525b60e0820151608083015161ffff9091169061027657808360c00151846040015161024e9190610836565b610258919061086b565b60408401526020830180516001919061027290839061087f565b9052505b60008360a00151846000015163ffffffff168560800151610297919061087f565b116102cd57835160408501516102b39163ffffffff1690610836565b84610120018181516102c5919061087f565b905250610690565b83608001518460a001516102e19190610897565b84604001516102f09190610836565b8461012001818151610302919061087f565b90525060a0840151845160808601516103219163ffffffff169061087f565b61032b91906108ae565b905060008460a001518560a00151866000015163ffffffff168760800151610353919061087f565b61035d9190610897565b610367919061086b565b905060018111156105b757600085610100015161ffff1682610389919061086b565b9050600086610100015161ffff16826103a29190610836565b6103ac9084610897565b9050600080868960c001518a604001516103c69190610836565b6103d0919061086b565b90506001896020018181516103e5919061087f565b90525060408901515b84831015610453576101008a01518190610408908a6109a8565b8b61010001518c60c0015161041d91906109a8565b6104279084610836565b610431919061086b565b915081610442576001915050610453565b5061044c836109bf565b92506103ee565b60008a610100015161ffff168461046a9190610836565b90506000868510156104da575b8b610100015161ffff168110156104d55781610492816109bf565b60c08e01519093508491508b906104a99083610836565b6104b3919061086b565b9350836104c457600193505061052f565b506104ce816109bf565b9050610477565b61052f565b8581101561052f57816104ec816109bf565b60c08e01519093508491508b906105039083610836565b61050d919061086b565b93508361051e57600193505061052f565b50610528816109bf565b90506104da565b60a08c015160c08d0151610543908c610897565b60c08e01516105529086610836565b61055c878e610836565b6105669190610897565b610570919061086b565b61057a9190610836565b8c6101200181815161058c919061087f565b90525060208c0180518391906105a390839061087f565b905250505060408a01525061062692505050565b806001141561062657828560c0015186604001516105d59190610836565b6105df919061086b565b6040860152602085018051600191906105f990839061087f565b905250604085015160a08601516106109190610836565b8561012001818151610622919061087f565b9052505b811561068e57828560c0015186604001516106419190610836565b61064b919061086b565b60408601526020850180516001919061066590839061087f565b9052506040850151610678908390610836565b856101200181815161068a919061087f565b9052505b505b63ffffffff1660808401525090919050565b604051610140810167ffffffffffffffff811182821017156106d457634e487b7160e01b600052604160045260246000fd5b60405290565b803563ffffffff811681146106ee57600080fd5b919050565b803561ffff811681146106ee57600080fd5b6000610140828403121561071857600080fd5b6107206106a2565b610729836106da565b81526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015261077360e084016106f3565b60e08201526101006107868185016106f3565b90820152610120928301359281019290925250919050565b815163ffffffff16815261014081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e08301516107fe60e084018261ffff169052565b506101008381015161ffff811684830152505061012092830151919092015290565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561085057610850610820565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261087a5761087a610855565b500490565b6000821982111561089257610892610820565b500190565b6000828210156108a9576108a9610820565b500390565b6000826108bd576108bd610855565b500690565b600181815b808511156108fd5781600019048211156108e3576108e3610820565b808516156108f057918102915b93841c93908002906108c7565b509250929050565b600082610914575060016109a2565b81610921575060006109a2565b816001811461093757600281146109415761095d565b60019150506109a2565b60ff84111561095257610952610820565b50506001821b6109a2565b5060208310610133831016604e8410600b8410161715610980575081810a6109a2565b61098a83836108c2565b806000190482111561099e5761099e610820565b0290505b92915050565b60006109b861ffff841683610905565b9392505050565b60006000198214156109d3576109d3610820565b506001019056fea26469706673582212201bd0102fbb3fbae87de1d6ff569e7b83f9d503974f785928b769cc0270b5ac5364736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
