ETH Price: $2,156.91 (+1.07%)

Contract

0x5D08C4f5DfbD6770fFAfB4E40264c85FD93410Cc
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer62189492018-08-26 20:27:082766 days ago1535315228IN
0x5D08C4f5...FD93410Cc
0 ETH0.000258265
Transfer62144182018-08-26 2:22:062767 days ago1535250126IN
0x5D08C4f5...FD93410Cc
0 ETH0.000154953
Transfer62144172018-08-26 2:21:522767 days ago1535250112IN
0x5D08C4f5...FD93410Cc
0 ETH0.000154933
Transfer62144172018-08-26 2:21:522767 days ago1535250112IN
0x5D08C4f5...FD93410Cc
0 ETH0.00005681.1
Update Max Token...62124992018-08-25 18:38:102767 days ago1535222290IN
0x5D08C4f5...FD93410Cc
0 ETH0.000110164
Issue Tokens62124852018-08-25 18:35:342767 days ago1535222134IN
0x5D08C4f5...FD93410Cc
0 ETH0.000212584
Transfer62025372018-08-24 2:17:572769 days ago1535077077IN
0x5D08C4f5...FD93410Cc
0 ETH0.000258265
Transfer62025262018-08-24 2:14:072769 days ago1535076847IN
0x5D08C4f5...FD93410Cc
0 ETH0.0001055
Transfer61988472018-08-23 11:07:012770 days ago1535022421IN
0x5D08C4f5...FD93410Cc
0 ETH0.00010332
Transfer61970522018-08-23 3:34:132770 days ago1534995253IN
0x5D08C4f5...FD93410Cc
0 ETH0.00010332
Transfer61969882018-08-23 3:19:512770 days ago1534994391IN
0x5D08C4f5...FD93410Cc
0 ETH0.000098121.9
Transfer61969202018-08-23 3:02:452770 days ago1534993365IN
0x5D08C4f5...FD93410Cc
0 ETH0.000092971.8
Transfer61963582018-08-23 0:53:432770 days ago1534985623IN
0x5D08C4f5...FD93410Cc
0 ETH0.000154933
Transfer61962042018-08-23 0:14:552770 days ago1534983295IN
0x5D08C4f5...FD93410Cc
0 ETH0.000154953
Transfer61962022018-08-23 0:14:172770 days ago1534983257IN
0x5D08C4f5...FD93410Cc
0 ETH0.000154953
Transfer61961682018-08-23 0:07:162770 days ago1534982836IN
0x5D08C4f5...FD93410Cc
0 ETH0.000118792.3
Transfer61961642018-08-23 0:06:192770 days ago1534982779IN
0x5D08C4f5...FD93410Cc
0 ETH0.000118792.3
Transfer61945572018-08-22 17:33:172770 days ago1534959197IN
0x5D08C4f5...FD93410Cc
0 ETH0.00020664
Transfer61945502018-08-22 17:31:282770 days ago1534959088IN
0x5D08C4f5...FD93410Cc
0 ETH0.00020664
Transfer61945362018-08-22 17:27:322770 days ago1534958852IN
0x5D08C4f5...FD93410Cc
0 ETH0.000258265
Transfer61945312018-08-22 17:26:452770 days ago1534958805IN
0x5D08C4f5...FD93410Cc
0 ETH0.000464869
Transfer61945192018-08-22 17:24:132770 days ago1534958653IN
0x5D08C4f5...FD93410Cc
0 ETH0.000464869
Transfer61938142018-08-22 14:35:512770 days ago1534948551IN
0x5D08C4f5...FD93410Cc
0 ETH0.00011135.3
Transfer61937632018-08-22 14:21:352770 days ago1534947695IN
0x5D08C4f5...FD93410Cc
0 ETH0.00018972.3
Transfer61937362018-08-22 14:14:362770 days ago1534947276IN
0x5D08C4f5...FD93410Cc
0 ETH0.000164962
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DNNRedemption

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-08-21
*/

pragma solidity ^0.4.11;

/// @title DNNToken contract - Main DNN contract
/// @author Dondrey Taylor - <dondrey@dnn.media>
contract DNNToken {
    enum DNNSupplyAllocations {
        EarlyBackerSupplyAllocation,
        PRETDESupplyAllocation,
        TDESupplyAllocation,
        BountySupplyAllocation,
        WriterAccountSupplyAllocation,
        AdvisorySupplyAllocation,
        PlatformSupplyAllocation
    }
    function issueTokens(address, uint256, DNNSupplyAllocations) public returns (bool) {}
}

/// @title DNNRedemption contract - Issues DNN tokens
/// @author Dondrey Taylor - <dondrey@dnn.media>
contract DNNRedemption {

    /////////////////////////
    // DNN Token Contract  //
    /////////////////////////
    DNNToken public dnnToken;

    //////////////////////////////////////////
    // Addresses of the co-founders of DNN. //
    //////////////////////////////////////////
    address public cofounderA;
    address public cofounderB;

    /////////////////////////////////////////////////
    // Number of tokens distributed (in atto-DNN) //
    /////////////////////////////////////////////////
    uint256 public tokensDistributed = 0;

    //////////////////////////////////////////////////////////////////
    // Maximum number of tokens for this distribution (in atto-DNN) //
    //////////////////////////////////////////////////////////////////
    uint256 public maxTokensToDistribute = 30000000 * 1 ether;

    ///////////////////////////////////////////////
    // Used to generate number of tokens to send //
    ///////////////////////////////////////////////
    uint256 public seed = 8633926795440059073718754917553891166080514579013872221976080033791214;

    /////////////////////////////////////////////////
    // We'll keep track of who we have sent DNN to //
    /////////////////////////////////////////////////
    mapping(address => uint256) holders;

    /////////////////////////////////////////////////////////////////////////////
    // Event triggered when tokens are transferred from one address to another //
    /////////////////////////////////////////////////////////////////////////////
    event Redemption(address indexed to, uint256 value);


    ////////////////////////////////////////////////////
    // Checks if CoFounders are performing the action //
    ////////////////////////////////////////////////////
    modifier onlyCofounders() {
        require (msg.sender == cofounderA || msg.sender == cofounderB);
        _;
    }

    ///////////////////////////////////////////////////////////////
    // @des DNN Holder Check                                     //
    // @param Checks if we sent DNN to the benfeficiary before   //
    ///////////////////////////////////////////////////////////////
    function hasDNN(address beneficiary) public view returns (bool) {
        return holders[beneficiary] > 0;
    }

    ///////////////////////////////////////////////////
    // Make sure that user did no redeeem DNN before //
    ///////////////////////////////////////////////////
    modifier doesNotHaveDNN(address beneficiary) {
        require(hasDNN(beneficiary) == false);
        _;
    }

    //////////////////////////////////////////////////////////
    //  @des Updates max token distribution amount          //
    //  @param New amount of tokens that can be distributed //
    //////////////////////////////////////////////////////////
    function updateMaxTokensToDistribute(uint256 maxTokens)
      public
      onlyCofounders
    {
        maxTokensToDistribute = maxTokens;
    }

    ///////////////////////////////////////////////////////////////
    // @des Issues bounty tokens                                 //
    // @param beneficiary Address the tokens will be issued to.  //
    ///////////////////////////////////////////////////////////////
    function issueTokens(address beneficiary)
        public
        doesNotHaveDNN(beneficiary)
        returns (uint256)
    {
        // Number of tokens that we'll send
        uint256 tokenCount = (uint(keccak256(abi.encodePacked(blockhash(block.number-1), seed ))) % 1000);

        // If the amount is over 200 then we'll cap the tokens we'll
        // give to 200 to prevent giving too many. Since the highest amount
        // of tokens earned in the bounty was 99 DNN, we'll be issuing a bonus to everyone
        // for the long wait.
        if (tokenCount > 200) {
            tokenCount = 200;
        }

        // Change atto-DNN to DNN
        tokenCount = tokenCount * 1 ether;

        // If we have reached our max tokens then we'll bail out of the transaction
        if (tokensDistributed+tokenCount > maxTokensToDistribute) {
            revert();
        }

        // Update holder balance
        holders[beneficiary] = tokenCount;

        // Update total amount of tokens distributed (in atto-DNN)
        tokensDistributed = tokensDistributed + tokenCount;

        // Allocation type will be Platform
        DNNToken.DNNSupplyAllocations allocationType = DNNToken.DNNSupplyAllocations.PlatformSupplyAllocation;

        // Attempt to issue tokens
        if (!dnnToken.issueTokens(beneficiary, tokenCount, allocationType)) {
            revert();
        }

        // Emit redemption event
        Redemption(beneficiary, tokenCount);

        return tokenCount;
    }

    ///////////////////////////////
    // @des Contract constructor //
    ///////////////////////////////
    constructor() public
    {
        // Set token address
        dnnToken = DNNToken(0x9d9832d1beb29cc949d75d61415fd00279f84dc2);

        // Set cofounder addresses
        cofounderA = 0x3Cf26a9FE33C219dB87c2e50572e50803eFb2981;
        cofounderB = 0x9FFE2aD5D76954C7C25be0cEE30795279c4Cab9f;
    }

    ////////////////////////////////////////////////////////
    // @des ONLY SEND 0 ETH TRANSACTIONS TO THIS CONTRACT //
    ////////////////////////////////////////////////////////
    function () public payable {
        if (!hasDNN(msg.sender)) issueTokens(msg.sender);
        else revert();
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"beneficiary","type":"address"}],"name":"hasDNN","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensDistributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"issueTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cofounderB","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"seed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxTokensToDistribute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"maxTokens","type":"uint256"}],"name":"updateMaxTokensToDistribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cofounderA","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dnnToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Redemption","type":"event"}]

608060405260006003556a18d0bf423c03d8de0000006004557d014040096b988780982fbc1f7b75016b541685c7526d28d089ad04cc3cee60055534801561004657600080fd5b50739d9832d1beb29cc949d75d61415fd00279f84dc26000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733cf26a9fe33c219db87c2e50572e50803efb2981600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739ffe2ad5d76954c7c25be0cee30795279c4cab9f600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107a1806101546000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063152b6f9a146100be578063152e84a7146101195780633ff54c711461014457806351290d061461019b5780637d94792a146101f2578063bb68b86f1461021d578063e4fffb3a14610248578063f05aa33414610275578063fa508d3e146102cc575b6100a233610323565b15156100b7576100b13361036e565b506100bc565b600080fd5b005b3480156100ca57600080fd5b506100ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610323565b604051808215151515815260200191505060405180910390f35b34801561012557600080fd5b5061012e610634565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b50610185600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b506101b061063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b50610207610660565b6040518082815260200191505060405180910390f35b34801561022957600080fd5b50610232610666565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b506102736004803603810190808035906020019092919050505061066c565b005b34801561028157600080fd5b5061028a61072a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610750565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000806000836000151561038182610323565b151514151561038f57600080fd5b6103e86001430340600554604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156103fd57805182526020820191506020810190506020830392506103d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001900481151561043757fe5b06925060c88311156104485760c892505b670de0b6b3a7640000830292506004548360035401111561046857600080fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260035401600381905550600691506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663237d26288685856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600681111561056e57fe5b60ff1681526020019350505050602060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b810190808051906020019092919050505015156105db57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c639846040518082815260200191505060405180910390a2829350505050919050565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561072057600080fd5b8060048190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c37160029

Deployed Bytecode

0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063152b6f9a146100be578063152e84a7146101195780633ff54c711461014457806351290d061461019b5780637d94792a146101f2578063bb68b86f1461021d578063e4fffb3a14610248578063f05aa33414610275578063fa508d3e146102cc575b6100a233610323565b15156100b7576100b13361036e565b506100bc565b600080fd5b005b3480156100ca57600080fd5b506100ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610323565b604051808215151515815260200191505060405180910390f35b34801561012557600080fd5b5061012e610634565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b50610185600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b506101b061063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b50610207610660565b6040518082815260200191505060405180910390f35b34801561022957600080fd5b50610232610666565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b506102736004803603810190808035906020019092919050505061066c565b005b34801561028157600080fd5b5061028a61072a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610750565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000806000836000151561038182610323565b151514151561038f57600080fd5b6103e86001430340600554604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156103fd57805182526020820191506020810190506020830392506103d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001900481151561043757fe5b06925060c88311156104485760c892505b670de0b6b3a7640000830292506004548360035401111561046857600080fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260035401600381905550600691506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663237d26288685856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600681111561056e57fe5b60ff1681526020019350505050602060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b810190808051906020019092919050505015156105db57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c639846040518082815260200191505060405180910390a2829350505050919050565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561072057600080fd5b8060048190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c37160029

Swarm Source

bzzr://c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c3716

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.