all files / contracts/peripherals/ Keep3rAccountance.sol

0% Statements 0/2
100% Branches 0/0
0% Functions 0/2
0% Lines 0/2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75                                                                                                                                                     
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4 <0.9.0;
 
import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol';
import '../../interfaces/peripherals/IKeep3rAccountance.sol';
 
abstract contract Keep3rAccountance is IKeep3rAccountance {
  using EnumerableSet for EnumerableSet.AddressSet;
 
  /// @notice List of all enabled keepers
  EnumerableSet.AddressSet internal _keepers;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => uint256) public override workCompleted;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => uint256) public override firstSeen;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => bool) public override disputes;
 
  /// @inheritdoc IKeep3rAccountance
  /// @notice Mapping (job => bonding => amount)
  mapping(address => mapping(address => uint256)) public override bonds;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => mapping(address => uint256)) public override jobTokenCredits;
 
  /// @notice The current liquidity credits available for a job
  mapping(address => uint256) internal _jobLiquidityCredits;
 
  /// @notice Map the address of a job to its correspondent periodCredits
  mapping(address => uint256) internal _jobPeriodCredits;
 
  /// @notice Enumerable array of Job Tokens for Credits
  mapping(address => EnumerableSet.AddressSet) internal _jobTokens;
 
  /// @notice List of liquidities that a job has (job => liquidities)
  mapping(address => EnumerableSet.AddressSet) internal _jobLiquidities;
 
  /// @notice Liquidity pool to observe
  mapping(address => address) internal _liquidityPool;
 
  /// @notice Tracks if a pool has KP3R as token0
  mapping(address => bool) internal _isKP3RToken0;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => mapping(address => uint256)) public override pendingBonds;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => mapping(address => uint256)) public override canActivateAfter;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => mapping(address => uint256)) public override canWithdrawAfter;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => mapping(address => uint256)) public override pendingUnbonds;
 
  /// @inheritdoc IKeep3rAccountance
  mapping(address => bool) public override hasBonded;
 
  /// @notice List of all enabled jobs
  EnumerableSet.AddressSet internal _jobs;
 
  /// @inheritdoc IKeep3rAccountance
  function jobs() external view override returns (address[] memory _list) {
    _list = _jobs.values();
  }
 
  /// @inheritdoc IKeep3rAccountance
  function keepers() external view override returns (address[] memory _list) {
    _list = _keepers.values();
  }
}