all files / contracts/ AssessmentData.sol

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100                                                                                                                                                                                                       
pragma solidity ^0.4.23;
 
import "./Math.sol";
import "./Concept.sol";
import "./FathomToken.sol";
import "./Proxy.sol";
 
 
contract AssessmentParameters {
    //for each concept, at most NofMembers * memberCeilingFactor/10 are going to be called
    // (5 -> half the members, 2 -> 20% of the members, ...)
    uint constant MEMBERCALL_CEILING_FACTOR = 5;
    // minimal size for an assessment to be valid
    uint constant MIN_ASSESSMENT_SIZE = 5;
    // an assessment of size x will have to try sampling x * minAssessmentPoolFactor/10 assessors
    // (so use 20 as 2, 15 as 1.5 ...)
    uint constant ASSESSORPOOL_SIZEFACTOR = 20;
    uint constant CHALLENGE_PERIOD = 12 hours;
    // Max distance two scores can be apart to be seen as agreeing
    uint constant public CONSENT_RADIUS = 13; // 13 is 5% of the total range of 256
}
 
 
contract AssessmentHeader {
    event DataChanged(address user, bytes oldData, bytes newData);
}
 
 
contract AssessmentData is ProxyData, AssessmentHeader, AssessmentParameters {
    address public assessee;
    address[] internal assessors;
 
    mapping (address => Stage) public assessorStage;
    Stage public assessmentStage;
 
    enum Stage {
        None,
        Called,
        Confirmed,
        Committed,
        Done,
        Burned,
        Dissent
    }
 
    Concept public concept;
    FathomToken public fathomToken;
 
    uint public endTime;
    // will keep track of timelimits for 1) latest possible time to confirm and
    // 2) earliest time to reveal
    uint public checkpoint;
    uint public size;
    uint public cost;
 
    mapping(address => bytes32) internal commits;
    uint public done; //counter how many assessors have committed/revealed their score
    mapping(address => int128) internal scores;
    int public finalScore;
    bytes32 public salt; //used for token distribution
    mapping (address => bytes) public data;
}
 
 
// same as assessmentData but with all variables internal, so as to not produce getter methods on the Assessment-Proxy
contract AssessmentDataInternal is ProxyData, AssessmentHeader, AssessmentParameters {
    address internal assessee;
    address[] internal assessors;
 
    mapping (address => Stage) internal assessorStage;
    Stage internal assessmentStage;
 
    enum Stage {
        None,
        Called,
        Confirmed,
        Committed,
        Done,
        Burned,
        Dissent
    }
 
    Concept internal concept;
    FathomToken internal fathomToken;
 
    uint internal endTime;
    // will keep track of timelimits for 1) latest possible time to confirm and
    // 2) earliest time to reveal
    uint internal checkpoint;
    uint internal size;
    uint internal cost;
 
    mapping(address => bytes32) internal commits;
    uint internal done; //counter how many assessors have committed/revealed their score
    mapping(address => int128) internal scores;
    int internal finalScore;
    bytes32 internal salt; //used for token distribution
    mapping (address => bytes) internal data;
}