{
  "_format": "hh-sol-artifact-1",
  "contractName": "BaseShareFieldV2",
  "sourceName": "contracts/staking/BaseShareFieldV2.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getProductivity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getStats",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_accAmountPerShare",
          "type": "uint256"
        },
        {
          "internalType": "uint128",
          "name": "_mintedRewards",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_totalProductivity",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_totalEffectiveStakes",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_accumulatedRewards",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_lastRewardBlock",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "_maxMultiplierThreshold",
          "type": "uint64"
        },
        {
          "internalType": "uint8",
          "name": "_tokenDecimalDifference",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "rewardsPerBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "blockStart",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "blockEnd",
          "type": "uint256"
        }
      ],
      "name": "getUserPendingReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "rewardsPerBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "blockStart",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "blockEnd",
          "type": "uint256"
        }
      ],
      "name": "rewardsMinted",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "users",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "effectiveStakes",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "rewardDebt",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "rewardEarn",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "rewardMinted",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "lastRewardTime",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "multiplierResetTime",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610f86806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806328e964e91461005c578063574c5c93146100b8578063a82415ae146100d9578063a87430ba146100ec578063c59d4847146101a9575b600080fd5b61009e61006a366004610cf2565b6001600160a01b031660009081526004602052604081205490546001600160801b0391821692600160801b90910490911690565b604080519283526020830191909152015b60405180910390f35b6100cb6100c6366004610d14565b610222565b6040519081526020016100af565b6100cb6100e7366004610d14565b610335565b6101556100fa366004610cf2565b6004602052600090815260409020805460018201546002909201546001600160801b0380831693600160801b9384900482169381831693918190048316928216916001600160401b03918104821691600160c01b9091041687565b604080516001600160801b039889168152968816602088015294871694860194909452918516606085015290931660808301526001600160401b0392831660a08301529190911660c082015260e0016100af565b600354600054600154600254604080519485526001600160801b038085166020870152600160801b948590048116918601919091528083166060860152918390048216608085015290811660a08401529081046001600160401b031660c0830152600160c01b900460ff1660e0820152610100016100af565b600061022f8484846105c2565b6001600160a01b03851660009081526004602052604090205461025e9086906001600160801b03166001610746565b6001600160a01b03851660009081526004602052604081206001810180546001600160801b0380821690925560029092018054600160801b9093048216938493919290916102ae91859116610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508060008054906101000a90046001600160801b03166102f19190610d63565b600080546001600160801b0319166001600160801b0392909216919091179055610322662386f26fc1000082610da0565b6001600160801b03169695505050505050565b6001600160a01b0384166000908152600460209081526040808320815160e08101835281546001600160801b038082168352600160801b9182900481169583019590955260018084015480871695840195909552938190048516606083015260029092015480851660808301526001600160401b03928104831660a0830152600160c01b900490911660c082015260035491549092849116158015906103db5750854310155b80156103e75750438510155b1561059d57600254600090610405906001600160801b031643610dc6565b9050600061041a89662386f26fc10000610ddf565b6104249083610ddf565b9050600080600061043488610be0565b600254929550909350915061045490600160c01b900460ff16600a610eda565b60015461046a91906001600160801b0316610ddf565b61047f85676765c793fa10079d601b1b610ddf565b6104899190610ee9565b6104939088610efd565b96508783156105965780604001516001600160801b0316676765c793fa10079d601b1b89600260189054906101000a900460ff16600a6104d39190610eda565b84602001516001600160801b03166104eb9190610ddf565b6104f59190610ddf565b6104ff9190610ee9565b6105099190610dc6565b9650600061051f85670de0b6b3a7640000610ddf565b61053489676765c793fa10079d601b1b610ddf565b61053e9190610ee9565b905064174876e80081610552856064610ddf565b600a61055f886064610ddf565b61056a906005610ddf565b6105749190610ee9565b61057e9190610efd565b6105889190610ddf565b6105929190610ee9565b9750505b5050505050505b8083606001516001600160801b03166105b69190610efd565b98975050505050505050565b6001546001600160801b03166000036105f5575050600280546001600160801b031916436001600160801b031617905550565b81431015801561060f57506002546001600160801b031682115b1561063057600280546001600160801b0319166001600160801b0384161790555b6002546000906001600160801b03168311801561064d5750824310155b610662576002546001600160801b0316610664565b825b905060008243116106755743610677565b825b9050838110806106875750828210155b15610693575050505050565b600061069f8383610dc6565b905060006106b487662386f26fc10000610ddf565b6106be9083610ddf565b6002549091506106d990600160c01b900460ff16600a610eda565b6001546106ef91906001600160801b0316610ddf565b61070482676765c793fa10079d601b1b610ddf565b61070e9190610ee9565b60035461071b9190610efd565b6003555050600280546001600160801b0319166001600160801b039290921691909117905550505050565b6001600160a01b038316600090815260046020526040902080546001600160801b0380821691600160801b9004168015610958576040805160e08101825284546001600160801b038082168352600160801b91829004811660208401526001870154808216948401949094529281900483166060830152600286015492831660808301526001600160401b03908304811660a0830152600160c01b90920490911660c0820152600090819081906107fc90610be0565b925092509250826000146109505760018601546003546002546000926001600160801b031691676765c793fa10079d601b1b9161084490600160c01b900460ff16600a610eda565b61084e9089610ddf565b6108589190610ddf565b6108629190610ee9565b61086c9190610dc6565b905060008461087f83633b9aca00610ddf565b6108899190610ee9565b905064174876e8008161089d856064610ddf565b600a6108aa886064610ddf565b6108b5906005610ddf565b6108bf9190610ee9565b6108c99190610efd565b6108d39190610ddf565b6108dd9190610ee9565b6001890154909250610900908390600160801b90046001600160801b0316610efd565b600189810180546001600160801b03908116600160801b9482168502179091559054610930928592910416610efd565b600180546001600160801b03928316600160801b02921691909117905550505b50505061097b565b6002830180546001600160c01b0316600160c01b436001600160401b0316021790555b818511610a79576002830180546001600160c01b0316600160c01b436001600160401b0316021790558115610a745782546000908390600160801b90046001600160801b03166109cb8883610dc6565b6109d59190610ddf565b6109df9190610ee9565b845490915081908590601090610a06908490600160801b90046001600160801b0316610f10565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555080600160008282829054906101000a90046001600160801b0316610a4e9190610f10565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505b610b1d565b83600003610b1d57610a8b8286610dc6565b83548490601090610aad908490600160801b90046001600160801b0316610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508185610add9190610dc6565b60018054600090610af89084906001600160801b0316610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60028381018054600160801b600160c01b031916600160801b436001600160401b03160217905583546001600160801b0319166001600160801b0387161784556003549054676765c793fa10079d601b1b9190610b8590600160c01b900460ff16600a610eda565b8554610ba19190600160801b90046001600160801b0316610ddf565b610bab9190610ddf565b610bb59190610ee9565b60019390930180546001600160801b0319166001600160801b03909416939093179092555050505050565b6000806000808460c001518560a00151610bfa9190610f30565b6001600160401b0316905060008560c001516001600160401b031643610c209190610dc6565b600254600160801b90046001600160401b031610610c555760c0860151610c50906001600160401b031643610dc6565b610c69565b600254600160801b90046001600160401b03165b905060008660a001516001600160401b031643610c869190610dc6565b600254909150600090600160801b90046001600160401b0316841015610cb557610cb08484610dc6565b610cb8565b60005b90506000610cc68284610dc6565b9299919850919650945050505050565b80356001600160a01b0381168114610ced57600080fd5b919050565b600060208284031215610d0457600080fd5b610d0d82610cd6565b9392505050565b60008060008060808587031215610d2a57600080fd5b610d3385610cd6565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b6001600160801b03818116838216019080821115610d8357610d83610d4d565b5092915050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0383811680610dba57610dba610d8a565b92169190910492915050565b81810381811115610dd957610dd9610d4d565b92915050565b8082028115828204841417610dd957610dd9610d4d565b600181815b80851115610e31578160001904821115610e1757610e17610d4d565b80851615610e2457918102915b93841c9390800290610dfb565b509250929050565b600082610e4857506001610dd9565b81610e5557506000610dd9565b8160018114610e6b5760028114610e7557610e91565b6001915050610dd9565b60ff841115610e8657610e86610d4d565b50506001821b610dd9565b5060208310610133831016604e8410600b8410161715610eb4575081810a610dd9565b610ebe8383610df6565b8060001904821115610ed257610ed2610d4d565b029392505050565b6000610d0d60ff841683610e39565b600082610ef857610ef8610d8a565b500490565b80820180821115610dd957610dd9610d4d565b6001600160801b03828116828216039080821115610d8357610d83610d4d565b6001600160401b03828116828216039080821115610d8357610d83610d4d56fea26469706673582212208293f37ca7950c55824772f541a38a7fcf817c3e303a1a822b475f442d553f4f64736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806328e964e91461005c578063574c5c93146100b8578063a82415ae146100d9578063a87430ba146100ec578063c59d4847146101a9575b600080fd5b61009e61006a366004610cf2565b6001600160a01b031660009081526004602052604081205490546001600160801b0391821692600160801b90910490911690565b604080519283526020830191909152015b60405180910390f35b6100cb6100c6366004610d14565b610222565b6040519081526020016100af565b6100cb6100e7366004610d14565b610335565b6101556100fa366004610cf2565b6004602052600090815260409020805460018201546002909201546001600160801b0380831693600160801b9384900482169381831693918190048316928216916001600160401b03918104821691600160c01b9091041687565b604080516001600160801b039889168152968816602088015294871694860194909452918516606085015290931660808301526001600160401b0392831660a08301529190911660c082015260e0016100af565b600354600054600154600254604080519485526001600160801b038085166020870152600160801b948590048116918601919091528083166060860152918390048216608085015290811660a08401529081046001600160401b031660c0830152600160c01b900460ff1660e0820152610100016100af565b600061022f8484846105c2565b6001600160a01b03851660009081526004602052604090205461025e9086906001600160801b03166001610746565b6001600160a01b03851660009081526004602052604081206001810180546001600160801b0380821690925560029092018054600160801b9093048216938493919290916102ae91859116610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508060008054906101000a90046001600160801b03166102f19190610d63565b600080546001600160801b0319166001600160801b0392909216919091179055610322662386f26fc1000082610da0565b6001600160801b03169695505050505050565b6001600160a01b0384166000908152600460209081526040808320815160e08101835281546001600160801b038082168352600160801b9182900481169583019590955260018084015480871695840195909552938190048516606083015260029092015480851660808301526001600160401b03928104831660a0830152600160c01b900490911660c082015260035491549092849116158015906103db5750854310155b80156103e75750438510155b1561059d57600254600090610405906001600160801b031643610dc6565b9050600061041a89662386f26fc10000610ddf565b6104249083610ddf565b9050600080600061043488610be0565b600254929550909350915061045490600160c01b900460ff16600a610eda565b60015461046a91906001600160801b0316610ddf565b61047f85676765c793fa10079d601b1b610ddf565b6104899190610ee9565b6104939088610efd565b96508783156105965780604001516001600160801b0316676765c793fa10079d601b1b89600260189054906101000a900460ff16600a6104d39190610eda565b84602001516001600160801b03166104eb9190610ddf565b6104f59190610ddf565b6104ff9190610ee9565b6105099190610dc6565b9650600061051f85670de0b6b3a7640000610ddf565b61053489676765c793fa10079d601b1b610ddf565b61053e9190610ee9565b905064174876e80081610552856064610ddf565b600a61055f886064610ddf565b61056a906005610ddf565b6105749190610ee9565b61057e9190610efd565b6105889190610ddf565b6105929190610ee9565b9750505b5050505050505b8083606001516001600160801b03166105b69190610efd565b98975050505050505050565b6001546001600160801b03166000036105f5575050600280546001600160801b031916436001600160801b031617905550565b81431015801561060f57506002546001600160801b031682115b1561063057600280546001600160801b0319166001600160801b0384161790555b6002546000906001600160801b03168311801561064d5750824310155b610662576002546001600160801b0316610664565b825b905060008243116106755743610677565b825b9050838110806106875750828210155b15610693575050505050565b600061069f8383610dc6565b905060006106b487662386f26fc10000610ddf565b6106be9083610ddf565b6002549091506106d990600160c01b900460ff16600a610eda565b6001546106ef91906001600160801b0316610ddf565b61070482676765c793fa10079d601b1b610ddf565b61070e9190610ee9565b60035461071b9190610efd565b6003555050600280546001600160801b0319166001600160801b039290921691909117905550505050565b6001600160a01b038316600090815260046020526040902080546001600160801b0380821691600160801b9004168015610958576040805160e08101825284546001600160801b038082168352600160801b91829004811660208401526001870154808216948401949094529281900483166060830152600286015492831660808301526001600160401b03908304811660a0830152600160c01b90920490911660c0820152600090819081906107fc90610be0565b925092509250826000146109505760018601546003546002546000926001600160801b031691676765c793fa10079d601b1b9161084490600160c01b900460ff16600a610eda565b61084e9089610ddf565b6108589190610ddf565b6108629190610ee9565b61086c9190610dc6565b905060008461087f83633b9aca00610ddf565b6108899190610ee9565b905064174876e8008161089d856064610ddf565b600a6108aa886064610ddf565b6108b5906005610ddf565b6108bf9190610ee9565b6108c99190610efd565b6108d39190610ddf565b6108dd9190610ee9565b6001890154909250610900908390600160801b90046001600160801b0316610efd565b600189810180546001600160801b03908116600160801b9482168502179091559054610930928592910416610efd565b600180546001600160801b03928316600160801b02921691909117905550505b50505061097b565b6002830180546001600160c01b0316600160c01b436001600160401b0316021790555b818511610a79576002830180546001600160c01b0316600160c01b436001600160401b0316021790558115610a745782546000908390600160801b90046001600160801b03166109cb8883610dc6565b6109d59190610ddf565b6109df9190610ee9565b845490915081908590601090610a06908490600160801b90046001600160801b0316610f10565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555080600160008282829054906101000a90046001600160801b0316610a4e9190610f10565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505b610b1d565b83600003610b1d57610a8b8286610dc6565b83548490601090610aad908490600160801b90046001600160801b0316610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508185610add9190610dc6565b60018054600090610af89084906001600160801b0316610d63565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60028381018054600160801b600160c01b031916600160801b436001600160401b03160217905583546001600160801b0319166001600160801b0387161784556003549054676765c793fa10079d601b1b9190610b8590600160c01b900460ff16600a610eda565b8554610ba19190600160801b90046001600160801b0316610ddf565b610bab9190610ddf565b610bb59190610ee9565b60019390930180546001600160801b0319166001600160801b03909416939093179092555050505050565b6000806000808460c001518560a00151610bfa9190610f30565b6001600160401b0316905060008560c001516001600160401b031643610c209190610dc6565b600254600160801b90046001600160401b031610610c555760c0860151610c50906001600160401b031643610dc6565b610c69565b600254600160801b90046001600160401b03165b905060008660a001516001600160401b031643610c869190610dc6565b600254909150600090600160801b90046001600160401b0316841015610cb557610cb08484610dc6565b610cb8565b60005b90506000610cc68284610dc6565b9299919850919650945050505050565b80356001600160a01b0381168114610ced57600080fd5b919050565b600060208284031215610d0457600080fd5b610d0d82610cd6565b9392505050565b60008060008060808587031215610d2a57600080fd5b610d3385610cd6565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b6001600160801b03818116838216019080821115610d8357610d83610d4d565b5092915050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0383811680610dba57610dba610d8a565b92169190910492915050565b81810381811115610dd957610dd9610d4d565b92915050565b8082028115828204841417610dd957610dd9610d4d565b600181815b80851115610e31578160001904821115610e1757610e17610d4d565b80851615610e2457918102915b93841c9390800290610dfb565b509250929050565b600082610e4857506001610dd9565b81610e5557506000610dd9565b8160018114610e6b5760028114610e7557610e91565b6001915050610dd9565b60ff841115610e8657610e86610d4d565b50506001821b610dd9565b5060208310610133831016604e8410600b8410161715610eb4575081810a610dd9565b610ebe8383610df6565b8060001904821115610ed257610ed2610d4d565b029392505050565b6000610d0d60ff841683610e39565b600082610ef857610ef8610d8a565b500490565b80820180821115610dd957610dd9610d4d565b6001600160801b03828116828216039080821115610d8357610d83610d4d565b6001600160401b03828116828216039080821115610d8357610d83610d4d56fea26469706673582212208293f37ca7950c55824772f541a38a7fcf817c3e303a1a822b475f442d553f4f64736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
