Sponsored:   -1st place at World Blockchain Forum in New York. Best ICO 2018! BUY W12 TOKENS NOW!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 23 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xf1fbe8a2f7c8096eef5ecb1b20103a9316135c85at txn 0x03b8f6a67360ee503841f875cf15862be921076a9bb0c619240ea5faa925fa81
Token Balance:
 Latest 23 txns

TxHash Age From To Value [TxFee]
0x6a19d6eb2e2d3cdd575fa60af39c44b5e5553ee4184f3d4185b22bc97f9cac98108 days 9 hrs ago0x8c5fc43ad00cc53e11f61bece329ddc5e3ea0929  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.007475343
0x9a34aef3c9e2ce79cbeeaad6a5c1c745c375fc096170db71703fca75e33113be140 days 4 hrs ago0xfaeababced4e9aa052f386551d8a2e407f819cc9  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00002226
0x2b6434e264e0c8d01fdd35ff43e5eea8ae5ad6acde13e0399ef9975b9f69b436140 days 4 hrs ago0xfaeababced4e9aa052f386551d8a2e407f819cc9  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00002226
0x5cd52ef8afa427ee055aa00bdf949bc4827383218af4e224a8945733a8670132147 days 22 hrs ago0x1937c6864c2fd439aed0b69201b88476cf96fa61  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00002226
0xd1ce13689ed7ec4c3acca416b8cde38537a1d13f791dd29b5ab192d0d819ad17173 days 7 hrs ago0x3fd51473217cf4a556620523d9cc5e23e85e7c5f  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0.000135 Ether0.000861
0x9c7e4eea0a81a434b82a90a90fdba034ce30289d1912c8a29fac694c73feb9ac200 days 7 hrs ago0x26ae6c3561d37dd3ae435541ce686f017f005057  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.022436595
0xb37b9ffd277c11c01041cd98046f225236b12303a38315b1a61bb308b78ed4c6200 days 8 hrs ago0x26ae6c3561d37dd3ae435541ce686f017f005057  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.022447827
0x29e69381afdae8d6e4b60cc2f61f06473c9075e58f4cffb2237f60d69ee0cf53246 days 18 hrs ago0xf1fbe8a2f7c8096eef5ecb1b20103a9316135c85  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.000450528
0x2d278a0255d63158025bfdb618ce8cb4d0acf111cc5a40149255dd175081a5d9246 days 18 hrs ago0xf1fbe8a2f7c8096eef5ecb1b20103a9316135c85  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00019809
0x2da4c8702e2fb0b14582ef02a7c0fd9f3c59e6f1a239d9626f084c5b9e98976f246 days 18 hrs ago0xf1fbe8a2f7c8096eef5ecb1b20103a9316135c85  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00045012
0x8df4ce5ec48e1890eb4a992664547e08cb4c69852f6ed15a744629b3ac8a8485246 days 18 hrs ago0x578bc83af59dcb2cf2599fbee6767a64f695fe6b  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.000360528
0x2189ba7b74e922b576a654e378f1f586c6d7462886014dd5d4425bf9a363fc3a246 days 18 hrs ago0x578bc83af59dcb2cf2599fbee6767a64f695fe6b  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.000289475
0x5801f1a8b2084fe795f3dba3dc3e2b9cc5393936e16d36943c33ed06211b47f4266 days 12 hrs ago0x31231c5131b65f3ae9399af62a4236cb7097f453  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00017808
0x382190ee439d49ffa0927e2de879701fcf335e84490076ff4a221b1762761de8284 days 12 hrs ago0x0cbd761d72905df047f22a2c6fbaca215a986406  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00112533
0x899863e9dedcfd7d8ab6394d45c89078a5fcec104f4888a0907e7cfa9e65c0fb284 days 13 hrs ago0x109fe1a727a13a7140bd41c96095695e3f98c016  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00113166
0x66057b7f2323d978402a0f7bcb07bba1885a8ddcc9f54478e20c02fb3a167771285 days 4 hrs ago0x578bc83af59dcb2cf2599fbee6767a64f695fe6b  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00986648
0xaa5cc4fbf65191a9aeb4f58cdc0fa352dc567729264d1343642065e6922e5f69285 days 4 hrs ago0x578bc83af59dcb2cf2599fbee6767a64f695fe6b  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.001983264
0x9091121ebdcd8a4574d4a655d9fc47b8431cb436fe0ee48943efbd99a549aa1d285 days 5 hrs ago0x578bc83af59dcb2cf2599fbee6767a64f695fe6b  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00150176
0x05b7a4b10b77bb574ff11d6198d8e260aa92483e3e10a7e32b399bd3076fe638287 days 6 hrs ago0x109fe1a727a13a7140bd41c96095695e3f98c016  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.000211196
0xb6e8fa11b8b11bcc3ab6edd63c1fe89ccc0ea246828556d9fdec829edc4c4f7e287 days 7 hrs ago0x0cbd761d72905df047f22a2c6fbaca215a986406  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.00155893
0xc1b53eb03523b97918b3d9a09856e76f5dc4ed27e42fe791a5e8a2584e32683b287 days 7 hrs ago0x3618857b96dc715a8a95f962be9b374bb173a3d3  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.000420096
0xc22adedd4af88621bb2c410b91a1acab05e87c34c9186c884aaf900fdae512bb287 days 8 hrs ago0x3618857b96dc715a8a95f962be9b374bb173a3d3  IN   0x7f6eac2ea38284645795996b11f9bf227cf9551d0 Ether0.001714236
0x03b8f6a67360ee503841f875cf15862be921076a9bb0c619240ea5faa925fa81287 days 8 hrs ago0xf1fbe8a2f7c8096eef5ecb1b20103a9316135c85  IN    Contract Creation0 Ether0.107658
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CryptoTask
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

/* TODO: Add reporting mechanism to punish revealing votes off-chain either on purpose or by using weak salt for computing vote commit hash */


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable {
  address public owner;

  function Ownable() {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }
}


contract CryptoTask is Ownable {
   
    uint MAX_UINT32 = 4294967295;
    uint public MIN_TASK_VALUE = 200000000000000000000;
    uint public CLIENT_TIME_TO_DECIDE = 3 days;
    uint public VOTING_PERIOD = 5 days;
    /*uint public MIN_TASK_VALUE = 2000000000000000000;
    uint public CLIENT_TIME_TO_DECIDE = 15 minutes;
    uint public VOTING_PERIOD = 15 minutes;*/
    
    struct Task {
        address client;
        address fl;
        uint taskValue;
        uint workTime;
        uint applyTime;
        uint solutionSubmittedTime;
        uint disputeStartedTime;
        bytes32 blockHash;
        mapping(address => bytes32) voteCommits;
        mapping(uint32 => uint32) votes;
        mapping(uint32 => address) voters;
        uint32 votesTotal;
        uint32 votesClient;
        uint32 votesFl;        
        uint32 stage;
        uint prev;
        uint next;
    }
    //due to stack depth error not everything could be fitted to the struct
    mapping(uint => string) public titles;
    mapping(uint => string) public descriptions;
    mapping(uint => string) public solutions;
    mapping(uint => uint) public disputeBlockNos;
    
    
    ERC20 public tokenContract = ERC20(0x4545750F39aF6Be4F237B6869D4EccA928Fd5A85);
    
    //owner can prevent new task submissions if platform is to be moved to a new contract
    //apart from this and airdrops, owner has no other privileges
    bool public migrating;
    mapping(address => uint32) public ADs;
    
    mapping(uint => Task) public tasks;
    uint public tasksSize;
    uint public lastTaskIndex;
    mapping(address => uint) public stakes;
    mapping(address => uint) public lastStakings;
    uint public totalStake;
    
    
    function setMigrating(bool willMigrate) onlyOwner {
        migrating = willMigrate;
    }
    
    function setMinTaskValue(uint minTaskValue) onlyOwner {
        MIN_TASK_VALUE = minTaskValue;
    }
    
    function postTask(string title, string description, uint taskValue, uint workTime) {
        require(!migrating && taskValue > MIN_TASK_VALUE);
        
        tasksSize++;
        
        tasks[tasksSize].client = msg.sender;
        titles[tasksSize] = title;
        tasks[tasksSize].workTime = workTime;
        tasks[tasksSize].taskValue = taskValue;
        descriptions[tasksSize] = description;
        
        //linked list connecting
        tasks[tasksSize].prev = lastTaskIndex;
        if(lastTaskIndex > 0) {
            tasks[lastTaskIndex].next = tasksSize;
        }
        lastTaskIndex = tasksSize;
        
        tokenContract.transferFrom(msg.sender, this, taskValue + taskValue/10);
    }
    
    function applyForTask(uint taskID) {
        require(tasks[taskID].stage == 0 && tasks[taskID].client != address(0));
        tasks[taskID].fl = msg.sender;
        tasks[taskID].applyTime = now;
        tasks[taskID].stage = 1;
        tokenContract.transferFrom(msg.sender, this, tasks[taskID].taskValue/10);
    }
    
    function submitSolution(uint taskID, string solution) {
        require(tasks[taskID].stage == 1 && msg.sender == tasks[taskID].fl && now < tasks[taskID].applyTime + tasks[taskID].workTime);
        solutions[taskID] = solution;
        tasks[taskID].solutionSubmittedTime = now;
        tasks[taskID].stage = 2;
    }
    
    function startDispute(uint taskID) {
        require(tasks[taskID].stage == 2 && tasks[taskID].client == msg.sender && now < tasks[taskID].solutionSubmittedTime + CLIENT_TIME_TO_DECIDE);
        disputeBlockNos[taskID] = block.number;
        tasks[taskID].stage = 3;
    }
    
    //commitDispute and startDispute need to be separate stages to ensure blockHash randomness
    function commitDispute(uint taskID) {
        require(tasks[taskID].stage == 3 && tasks[taskID].client == msg.sender && now < tasks[taskID].solutionSubmittedTime + CLIENT_TIME_TO_DECIDE && block.number > disputeBlockNos[taskID]+5);
        tasks[taskID].blockHash = block.blockhash(disputeBlockNos[taskID]);
        tasks[taskID].disputeStartedTime = now;
        tasks[taskID].stage = 4;
    }
    
    function commitVote(uint taskID, bytes32 voteHash) {
        require(tasks[taskID].stage == 4 && now < tasks[taskID].disputeStartedTime + VOTING_PERIOD && tasks[taskID].voteCommits[msg.sender] == bytes32(0));
        tasks[taskID].voteCommits[msg.sender] = voteHash;
    }
    
    function revealVote(uint taskID, uint8 v, bytes32 r, bytes32 s, uint32 vote, bytes32 salt) {
        //100 sec buffer between commit and reveal vote stages
        require(tasks[taskID].stage == 4 && now > tasks[taskID].disputeStartedTime + VOTING_PERIOD+100 && now < tasks[taskID].disputeStartedTime + 2*VOTING_PERIOD && tasks[taskID].voteCommits[msg.sender] != bytes32(0));
        //check that revealed signature matches public key, that stake is high enough (selection likelihood proportional to stake), that tokens haven't been moved around since dispute started to prevent biasing the selection likelihood, that revealed vote matches the vote commit
        if(ecrecover(keccak256(taskID, tasks[taskID].blockHash), v, r, s) == msg.sender && (10*MAX_UINT32)/(uint(s) % (MAX_UINT32+1)) > totalStake/stakes[msg.sender] && lastStakings[msg.sender] < tasks[taskID].disputeStartedTime && keccak256(salt, vote) == tasks[taskID].voteCommits[msg.sender]) {
            if(vote==1) {
                tasks[taskID].votesClient++;
            } else if(vote==2) {
                tasks[taskID].votesFl++;
            } else {
                throw;
            }
            tasks[taskID].votes[tasks[taskID].votesTotal] = vote;
            tasks[taskID].voters[tasks[taskID].votesTotal] = msg.sender;
            tasks[taskID].votesTotal++;
            //prevent multiple revealing of same vote
            tasks[taskID].voteCommits[msg.sender] = bytes32(0);
        }
    }
    
    function finalizeTask(uint taskID) {
        uint taskValueTenth = tasks[taskID].taskValue/10;
        uint reviewerReward;
        uint32 i;
        
        //cancel posted task no has applied for yet
        if(tasks[taskID].stage == 0 && msg.sender == tasks[taskID].client) {
            tokenContract.transfer(tasks[taskID].client, tasks[taskID].taskValue + taskValueTenth);
            tasks[taskID].stage = 5;
        }
        //accept freelancer's solution
        else if(tasks[taskID].stage == 2 && msg.sender == tasks[taskID].client) {
            tokenContract.transfer(tasks[taskID].fl, tasks[taskID].taskValue + taskValueTenth);
            tokenContract.transfer(tasks[taskID].client, taskValueTenth);
            tasks[taskID].stage = 6;
        }
        //client didn't review freelancer's solution on time, treated as solution accepted
        else if((tasks[taskID].stage == 2 || tasks[taskID].stage == 3) && now > tasks[taskID].solutionSubmittedTime + CLIENT_TIME_TO_DECIDE) {
            tokenContract.transfer(tasks[taskID].fl, tasks[taskID].taskValue + 2*taskValueTenth);
            tasks[taskID].stage = 7;
        }
        //dispute was started and reviewers voted in freelancer's favour
        else if(tasks[taskID].stage == 4 && tasks[taskID].votesFl > tasks[taskID].votesClient && now > tasks[taskID].disputeStartedTime + 2*VOTING_PERIOD) {
            tokenContract.transfer(tasks[taskID].fl, tasks[taskID].taskValue + taskValueTenth);
            reviewerReward = taskValueTenth / tasks[taskID].votesFl;
            //distribute reviewer rewards
            for(i=0; i < tasks[taskID].votesTotal; i++) {
                if(tasks[taskID].votes[i] == 2) {
                    tokenContract.transfer(tasks[taskID].voters[i], reviewerReward);
                }
            }
            tasks[taskID].stage = 8;
        }
        //freelancer didn't submit solution on time, client gets freelancer's escrow
        else if(tasks[taskID].stage == 1 && now > tasks[taskID].applyTime + tasks[taskID].workTime) {
            tokenContract.transfer(tasks[taskID].client, tasks[taskID].taskValue + 2*taskValueTenth);
            tasks[taskID].stage = 9;
        }
        //dispute was started and reviewers voted in client's favour
        else if(tasks[taskID].stage == 4 && tasks[taskID].votesClient >= tasks[taskID].votesFl && now > tasks[taskID].disputeStartedTime + 2*VOTING_PERIOD) {
            if(tasks[taskID].votesTotal == 0) {
                tokenContract.transfer(tasks[taskID].client, tasks[taskID].taskValue + taskValueTenth);
                tokenContract.transfer(tasks[taskID].fl, taskValueTenth);
            } else {
                tokenContract.transfer(tasks[taskID].client, tasks[taskID].taskValue + taskValueTenth);
                reviewerReward = taskValueTenth / tasks[taskID].votesClient;
                //distribute reviewer rewards
                for(i=0; i < tasks[taskID].votesTotal; i++) {
                    if(tasks[taskID].votes[i] == 1) {
                        tokenContract.transfer(tasks[taskID].voters[i], reviewerReward);
                    }
                }
            }
            tasks[taskID].stage = 10;
        } else {
            throw;
        }
        
        //connect linked list after the task removal
        if(tasks[taskID].prev > 0) {
            tasks[tasks[taskID].prev].next = tasks[taskID].next;
        }
        if(tasks[taskID].next > 0) {
            tasks[tasks[taskID].next].prev = tasks[taskID].prev;
        }
        if(taskID == lastTaskIndex) {
            lastTaskIndex = tasks[taskID].prev;
        }
        
        //if users who received airdrops
        if(ADs[tasks[taskID].client] > 0) {
            ADs[tasks[taskID].client]++;
        }
        if(ADs[tasks[taskID].fl] > 0) {
            ADs[tasks[taskID].fl]++;
        }
    }
    
    
    function addStake(uint value) {
        if(value > 0) {
            stakes[msg.sender] += value;
            lastStakings[msg.sender] = now;
            totalStake += value;
            tokenContract.transferFrom(msg.sender, this, value);
        }
    }
    
    function withdrawStake(uint value) {
        if(value > 0 && stakes[msg.sender] >= value) {
            //received airdrop but completed less than 10 tasks
            if(ADs[msg.sender] > 0 && ADs[msg.sender] < 10) {
                throw;
            }
            stakes[msg.sender] -= value;
            lastStakings[msg.sender] = now;
            totalStake -= value;
            tokenContract.transfer(msg.sender, value);
        }
    }
    
    //airdrop
    function addStakeAD(uint value, address recipient) onlyOwner {
        //prevent owner from adding a small value to set regular user to airdropped user
        if(value > 0 && value > 1000*stakes[recipient]) {
            stakes[recipient] += value;
            lastStakings[recipient] = now;
            totalStake += value;
            ADs[recipient]++;
            tokenContract.transferFrom(msg.sender, this, value);
        }
    }
    
    
    function getVoteCommit(uint taskID, address commiter) constant returns (bytes32 commit) {
        return tasks[taskID].voteCommits[commiter];
    }
    
    function getVote(uint taskID, uint32 index) constant returns (uint32 vote) {
        return tasks[taskID].votes[index];
    }
    
    function getVoter(uint taskID, uint32 index) constant returns (address voter) {
        return tasks[taskID].voters[index];
    }
    
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"withdrawStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MIN_TASK_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"titles","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"}],"name":"commitDispute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"vote","type":"uint32"},{"name":"salt","type":"bytes32"}],"name":"revealVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"migrating","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CLIENT_TIME_TO_DECIDE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastStakings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"taskID","type":"uint256"},{"name":"index","type":"uint32"}],"name":"getVote","outputs":[{"name":"vote","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"minTaskValue","type":"uint256"}],"name":"setMinTaskValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ADs","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tasksSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"}],"name":"finalizeTask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tasks","outputs":[{"name":"client","type":"address"},{"name":"fl","type":"address"},{"name":"taskValue","type":"uint256"},{"name":"workTime","type":"uint256"},{"name":"applyTime","type":"uint256"},{"name":"solutionSubmittedTime","type":"uint256"},{"name":"disputeStartedTime","type":"uint256"},{"name":"blockHash","type":"bytes32"},{"name":"votesTotal","type":"uint32"},{"name":"votesClient","type":"uint32"},{"name":"votesFl","type":"uint32"},{"name":"stage","type":"uint32"},{"name":"prev","type":"uint256"},{"name":"next","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"},{"name":"voteHash","type":"bytes32"}],"name":"commitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"taskID","type":"uint256"},{"name":"commiter","type":"address"}],"name":"getVoteCommit","outputs":[{"name":"commit","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VOTING_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"solutions","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"disputeBlockNos","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"}],"name":"startDispute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"title","type":"string"},{"name":"description","type":"string"},{"name":"taskValue","type":"uint256"},{"name":"workTime","type":"uint256"}],"name":"postTask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"},{"name":"solution","type":"string"}],"name":"submitSolution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastTaskIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"taskID","type":"uint256"}],"name":"applyForTask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"descriptions","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"addStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"willMigrate","type":"bool"}],"name":"setMigrating","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"recipient","type":"address"}],"name":"addStakeAD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"taskID","type":"uint256"},{"name":"index","type":"uint32"}],"name":"getVoter","outputs":[{"name":"voter","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

  Contract Creation Code Switch To Opcodes View
606060405263ffffffff600155680ad78ebc5ac62000006002556203f4806003556206978060045560098054600160a060020a0319908116734545750f39af6be4f237b6869d4ecca928fd5a85179091556000805433600160a060020a03169216919091179055612523806100756000396000f3006060604052600436106101875763ffffffff60e060020a60003504166316934fc4811461018c57806325d5971f146101bd5780632bc67bde146101d55780632cda1bf7146101e85780633a84f0021461027557806343de82f31461028b5780634956cf1c146102b95780634f7fc13f146102e057806350ed6264146102f357806355a373d61461031257806356412d85146103415780635abd7728146103795780636666fa681461038f57806367ea2fa0146103ae57806388488c33146103c15780638b0e9f3f146103d75780638d977672146103ea5780638da5cb5b1461048c5780639da691801461049f578063ad19bd26146104b8578063b1610d7e146104da578063b71698c7146104ed578063bea76c3c14610503578063c0cfa7e514610519578063ce63cc891461052f578063d3b5c016146105c9578063d5c655c91461061f578063d9b7d15414610632578063e6f859e714610648578063eb4f16b51461065e578063f785f03d14610674578063f853343d1461068c578063fb48cf0e146106ae575b600080fd5b341561019757600080fd5b6101ab600160a060020a03600435166106cd565b60405190815260200160405180910390f35b34156101c857600080fd5b6101d36004356106df565b005b34156101e057600080fd5b6101ab610811565b34156101f357600080fd5b6101fe600435610817565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023a578082015183820152602001610222565b50505050905090810190601f1680156102675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028057600080fd5b6101d36004356108c7565b341561029657600080fd5b6101d360043560ff6024351660443560643563ffffffff6084351660a4356109a7565b34156102c457600080fd5b6102cc610d1e565b604051901515815260200160405180910390f35b34156102eb57600080fd5b6101ab610d3f565b34156102fe57600080fd5b6101ab600160a060020a0360043516610d45565b341561031d57600080fd5b610325610d57565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61036060043563ffffffff60243516610d66565b60405163ffffffff909116815260200160405180910390f35b341561038457600080fd5b6101d3600435610d8f565b341561039a57600080fd5b610360600160a060020a0360043516610daf565b34156103b957600080fd5b6101ab610dc7565b34156103cc57600080fd5b6101d3600435610dcd565b34156103e257600080fd5b6101ab611b09565b34156103f557600080fd5b610400600435611b0f565b604051600160a060020a039e8f1681529c909d1660208d01526040808d019b909b5260608c019990995260808b019790975260a08a019590955260c089019390935260e088019190915263ffffffff908116610100880152908116610120870152908116610140860152166101608401526101808301526101a08201929092526101c001905180910390f35b341561049757600080fd5b610325611ba3565b34156104aa57600080fd5b6101d3600435602435611bb2565b34156104c357600080fd5b6101ab600435600160a060020a0360243516611c58565b34156104e557600080fd5b6101ab611c84565b34156104f857600080fd5b6101fe600435611c8a565b341561050e57600080fd5b6101ab600435611d07565b341561052457600080fd5b6101d3600435611d19565b341561053a57600080fd5b6101d360046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050843594602001359350611dd392505050565b34156105d457600080fd5b6101d3600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611f7b95505050505050565b341561062a57600080fd5b6101ab612057565b341561063d57600080fd5b6101d360043561205d565b341561065357600080fd5b6101fe600435612184565b341561066957600080fd5b6101d3600435612201565b341561067f57600080fd5b6101d360043515156122a7565b341561069757600080fd5b6101d3600435600160a060020a0360243516612302565b34156106b957600080fd5b61032560043563ffffffff6024351661242a565b600e6020526000908152604090205481565b6000811180156107085750600160a060020a0333166000908152600e6020526040902054819010155b1561080e57600160a060020a0333166000908152600a602052604081205463ffffffff161180156107585750600160a060020a0333166000908152600a602081905260409091205463ffffffff16105b1561076257600080fd5b600160a060020a03338181166000908152600e6020908152604080832080548790039055600f9091528082204290556010805486900390556009549093169263a9059cbb92918591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156107f257600080fd5b6102c65a03f1151561080357600080fd5b505050604051805150505b50565b60025481565b60056020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108bf5780601f10610894576101008083540402835291602001916108bf565b820191906000526020600020905b8154815290600101906020018083116108a257829003601f168201915b505050505081565b6000818152600b602081905260409091200154606060020a900463ffffffff16600314801561091057506000818152600b602052604090205433600160a060020a039081169116145b801561093057506003546000828152600b60205260409020600501540142105b801561094c575060008181526008602052604090205460050143115b151561095757600080fd5b600090815260086020908152604080832054600b928390529220914060078301554260068301550180546fffffffff00000000000000000000000019166c04000000000000000000000000179055565b6000868152600b602081905260409091200154606060020a900463ffffffff1660041480156109ed57506004546000878152600b60205260409020600601540160640142115b8015610a1257506004546000878152600b602052604090206006015460029091020142105b8015610a4257506000868152600b60209081526040808320600160a060020a033316845260080190915290205415155b1515610a4d57600080fd5b33600160a060020a0316600187600b60008a81526020019081526020016000206007015460405191825260208201526040908101905180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610aea57600080fd5b505060206040510351600160a060020a0316148015610b515750600160a060020a0333166000908152600e6020526040902054601054811515610b2957fe5b046001546001018460019004811515610b3e57fe5b06600154600a02811515610b4e57fe5b04115b8015610b8457506000868152600b6020908152604080832060060154600160a060020a0333168452600f90925290912054105b8015610bdb57506000868152600b60209081526040808320600160a060020a0333168452600801909152908190205490829084905191825263ffffffff1660e060020a026020820152602401604051908190039020145b15610d16578163ffffffff1660011415610c30576000868152600b60208190526040909120018054600163ffffffff640100000000808404821692909201160267ffffffff0000000019909116179055610c84565b8163ffffffff1660021415610187576000868152600b60208190526040909120018054600163ffffffff6801000000000000000080840482169290920116026bffffffff0000000000000000199091161790555b6000868152600b60208181526040808420928301805463ffffffff9081168652600985018452828620805463ffffffff199081168a841617909155825482168752600a86018552838720805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03169081179091558354918216918316600101909216179091558452600890920190528120555b505050505050565b60095474010000000000000000000000000000000000000000900460ff1681565b60035481565b600f6020526000908152604090205481565b600954600160a060020a031681565b6000918252600b6020908152604080842063ffffffff9384168552600901909152909120541690565b60005433600160a060020a03908116911614610daa57600080fd5b600255565b600a6020526000908152604090205463ffffffff1681565b600c5481565b6000818152600b6020819052604082206002810154910154600a90910491908190606060020a900463ffffffff16158015610e2257506000848152600b602052604090205433600160a060020a039081169116145b15610efb576009546000858152600b60205260408082208054600290910154600160a060020a039485169463a9059cbb949216929088019190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ea357600080fd5b6102c65a03f11515610eb457600080fd5b505050604051805150506000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c05000000000000000000000000179055611980565b6000848152600b602081905260409091200154606060020a900463ffffffff166002148015610f4457506000848152600b602052604090205433600160a060020a039081169116145b156110ae576009546000858152600b60205260408082206001810154600290910154600160a060020a039485169463a9059cbb949216929088019190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fc857600080fd5b6102c65a03f11515610fd957600080fd5b505050604051805150506009546000858152600b602052604080822054600160a060020a039384169363a9059cbb93911691879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561105657600080fd5b6102c65a03f1151561106757600080fd5b505050604051805150506000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c06000000000000000000000000179055611980565b6000848152600b602081905260409091200154606060020a900463ffffffff16600214806110fb57506000848152600b602081905260409091200154606060020a900463ffffffff166003145b801561111b57506003546000858152600b60205260409020600501540142115b156111f7576009546000858152600b60205260408082206001810154600291820154600160a060020a039586169563a9059cbb959216939289020191516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561119f57600080fd5b6102c65a03f115156111b057600080fd5b505050604051805150506000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c07000000000000000000000000179055611980565b6000848152600b602081905260409091200154606060020a900463ffffffff16600414801561125357506000848152600b60208190526040909120015463ffffffff640100000000820481166801000000000000000090920416115b801561127857506004546000858152600b602052604090206006015460029091020142115b1561148a576009546000858152600b60205260408082206001810154600290910154600160a060020a039485169463a9059cbb949216929088019190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112fc57600080fd5b6102c65a03f1151561130d57600080fd5b505050604051805150506000848152600b60208190526040909120015468010000000000000000900463ffffffff168381151561134657fe5b049150600090505b6000848152600b60208190526040909120015463ffffffff908116908216101561144d576000848152600b6020908152604080832063ffffffff85811685526009909101909252909120541660021415611445576009546000858152600b6020908152604080832063ffffffff86168452600a0190915280822054600160a060020a039384169363a9059cbb93911691869190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561142957600080fd5b6102c65a03f1151561143a57600080fd5b505050604051805150505b60010161134e565b6000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c08000000000000000000000000179055611980565b6000848152600b602081905260409091200154606060020a900463ffffffff1660011480156114d157506000848152600b6020526040902060038101546004909101540142115b156115aa576009546000858152600b60205260408082208054600291820154600160a060020a039586169563a9059cbb959216939289020191516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561155257600080fd5b6102c65a03f1151561156357600080fd5b505050604051805150506000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c09000000000000000000000000179055611980565b6000848152600b602081905260409091200154606060020a900463ffffffff16600414801561160757506000848152600b60208190526040909120015463ffffffff68010000000000000000820481166401000000009092041610155b801561162c57506004546000858152600b602052604090206006015460029091020142115b15610187576000848152600b60208190526040909120015463ffffffff16151561177e576009546000858152600b60205260408082208054600290910154600160a060020a039485169463a9059cbb949216929088019190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156116cc57600080fd5b6102c65a03f115156116dd57600080fd5b505050604051805150506009546000858152600b602052604080822060010154600160a060020a039384169363a9059cbb93911691879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561175d57600080fd5b6102c65a03f1151561176e57600080fd5b5050506040518051905050611947565b6009546000858152600b60205260408082208054600290910154600160a060020a039485169463a9059cbb949216929088019190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117fa57600080fd5b6102c65a03f1151561180b57600080fd5b505050604051805150506000848152600b602081905260409091200154640100000000900463ffffffff168381151561184057fe5b049150600090505b6000848152600b60208190526040909120015463ffffffff9081169082161015611947576000848152600b6020908152604080832063ffffffff8086168552600990910190925290912054166001141561193f576009546000858152600b6020908152604080832063ffffffff86168452600a0190915280822054600160a060020a039384169363a9059cbb93911691869190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561192357600080fd5b6102c65a03f1151561193457600080fd5b505050604051805150505b600101611848565b6000848152600b602081905260409091200180546fffffffff00000000000000000000000019166c0a0000000000000000000000001790555b6000848152600b60205260408120600c015411156119bc576000848152600b6020526040808220600d80820154600c9092015484529190922001555b6000848152600b60205260408120600d015411156119f8576000848152600b6020526040808220600c80820154600d9092015484529190922001555b600d54841415611a18576000848152600b60205260409020600c0154600d555b6000848152600b6020908152604080832054600160a060020a03168352600a90915281205463ffffffff161115611a88576000848152600b6020908152604080832054600160a060020a03168352600a9091529020805463ffffffff8082166001011663ffffffff199091161790555b6000848152600b6020908152604080832060010154600160a060020a03168352600a90915281205463ffffffff161115611b03576000848152600b60209081526040808320600190810154600160a060020a03168452600a909252909120805463ffffffff19811663ffffffff918216909301169190911790555b50505050565b60105481565b600b6020819052600091825260409091208054600182015460028301546003840154600485015460058601546006870154600788015498880154600c890154600d90990154600160a060020a039889169a9790981698959794969395929491939263ffffffff808316936401000000008404821693680100000000000000008104831693606060020a90910490921691908e565b600054600160a060020a031681565b6000828152600b602081905260409091200154606060020a900463ffffffff166004148015611bf557506004546000838152600b60205260409020600601540142105b8015611c2457506000828152600b60209081526040808320600160a060020a0333168452600801909152902054155b1515611c2f57600080fd5b6000918252600b60209081526040808420600160a060020a033316855260080190915290912055565b6000828152600b60209081526040808320600160a060020a038516845260080190915290205492915050565b60045481565b60076020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108bf5780601f10610894576101008083540402835291602001916108bf565b60086020526000908152604090205481565b6000818152600b602081905260409091200154606060020a900463ffffffff166002148015611d6257506000818152600b602052604090205433600160a060020a039081169116145b8015611d8257506003546000828152600b60205260409020600501540142105b1515611d8d57600080fd5b6000908152600860209081526040808320439055600b918290529091200180546fffffffff00000000000000000000000019166c03000000000000000000000000179055565b60095474010000000000000000000000000000000000000000900460ff16158015611dff575060025482115b1515611e0a57600080fd5b600c80546001018082556000908152600b60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316179055925482526005905220848051611e6592916020019061245c565b50600c80546000908152600b6020908152604080832060030185905583548352808320600201869055925482526006905220838051611ea892916020019061245c565b50600d54600c80546000908152600b60205260408120909101829055901115611ee357600c54600d80546000908152600b6020526040902001555b600c54600d55600954600160a060020a03166323b872dd3330600a8604860160006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611f5a57600080fd5b6102c65a03f11515611f6b57600080fd5b5050506040518051505050505050565b6000828152600b602081905260409091200154606060020a900463ffffffff166001148015611fc757506000828152600b602052604090206001015433600160a060020a039081169116145b8015611feb57506000828152600b6020526040902060038101546004909101540142105b1515611ff657600080fd5b600082815260076020526040902081805161201592916020019061245c565b50506000908152600b602081905260409091204260058201550180546fffffffff00000000000000000000000019166c02000000000000000000000000179055565b600d5481565b6000818152600b602081905260409091200154606060020a900463ffffffff161580156120a057506000818152600b6020526040902054600160a060020a031615155b15156120ab57600080fd5b6000818152600b60208190526040909120600181018054600160a060020a033381811673ffffffffffffffffffffffffffffffffffffffff199093169290921790925542600484015592820180546fffffffff0000000000000000000000001916606060020a1790556009546002909201549116916323b872dd913090600a900460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107f257600080fd5b60066020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108bf5780601f10610894576101008083540402835291602001916108bf565b600081111561080e57600160a060020a03338181166000908152600e60209081526040808320805487019055600f9091528082204290556010805486019055600954909316926323b872dd92913091869190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107f257600080fd5b60005433600160a060020a039081169116146122c257600080fd5b60098054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a0390811691161461231d57600080fd5b6000821180156123485750600160a060020a0381166000908152600e60205260409020546103e80282115b1561242657600160a060020a038082166000908152600e60209081526040808320805487019055600f82528083204290556010805487019055600a909152808220805463ffffffff8082166001011663ffffffff19909116179055600954909216916323b872dd91339130918791516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561240a57600080fd5b6102c65a03f1151561241b57600080fd5b505050604051805150505b5050565b6000828152600b6020908152604080832063ffffffff85168452600a01909152902054600160a060020a031692915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061249d57805160ff19168380011785556124ca565b828001600101855582156124ca579182015b828111156124ca5782518255916020019190600101906124af565b506124d69291506124da565b5090565b6124f491905b808211156124d657600081556001016124e0565b905600a165627a7a72305820de082cfdf349e1d737e366ca5d9d27e0134ab12dcc04d00becc883e9f324cb5e0029

   Swarm Source:
bzzr://de082cfdf349e1d737e366ca5d9d27e0134ab12dcc04d00becc883e9f324cb5e

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.