Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 113 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 6218949 | 2766 days ago | IN | 0 ETH | 0.00025826 | ||||
| Transfer | 6214418 | 2767 days ago | IN | 0 ETH | 0.00015495 | ||||
| Transfer | 6214417 | 2767 days ago | IN | 0 ETH | 0.00015493 | ||||
| Transfer | 6214417 | 2767 days ago | IN | 0 ETH | 0.0000568 | ||||
| Update Max Token... | 6212499 | 2767 days ago | IN | 0 ETH | 0.00011016 | ||||
| Issue Tokens | 6212485 | 2767 days ago | IN | 0 ETH | 0.00021258 | ||||
| Transfer | 6202537 | 2769 days ago | IN | 0 ETH | 0.00025826 | ||||
| Transfer | 6202526 | 2769 days ago | IN | 0 ETH | 0.000105 | ||||
| Transfer | 6198847 | 2770 days ago | IN | 0 ETH | 0.0001033 | ||||
| Transfer | 6197052 | 2770 days ago | IN | 0 ETH | 0.0001033 | ||||
| Transfer | 6196988 | 2770 days ago | IN | 0 ETH | 0.00009812 | ||||
| Transfer | 6196920 | 2770 days ago | IN | 0 ETH | 0.00009297 | ||||
| Transfer | 6196358 | 2770 days ago | IN | 0 ETH | 0.00015493 | ||||
| Transfer | 6196204 | 2770 days ago | IN | 0 ETH | 0.00015495 | ||||
| Transfer | 6196202 | 2770 days ago | IN | 0 ETH | 0.00015495 | ||||
| Transfer | 6196168 | 2770 days ago | IN | 0 ETH | 0.00011879 | ||||
| Transfer | 6196164 | 2770 days ago | IN | 0 ETH | 0.00011879 | ||||
| Transfer | 6194557 | 2770 days ago | IN | 0 ETH | 0.0002066 | ||||
| Transfer | 6194550 | 2770 days ago | IN | 0 ETH | 0.0002066 | ||||
| Transfer | 6194536 | 2770 days ago | IN | 0 ETH | 0.00025826 | ||||
| Transfer | 6194531 | 2770 days ago | IN | 0 ETH | 0.00046486 | ||||
| Transfer | 6194519 | 2770 days ago | IN | 0 ETH | 0.00046486 | ||||
| Transfer | 6193814 | 2770 days ago | IN | 0 ETH | 0.0001113 | ||||
| Transfer | 6193763 | 2770 days ago | IN | 0 ETH | 0.0001897 | ||||
| Transfer | 6193736 | 2770 days ago | IN | 0 ETH | 0.00016496 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DNNRedemption
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
608060405260006003556a18d0bf423c03d8de0000006004557d014040096b988780982fbc1f7b75016b541685c7526d28d089ad04cc3cee60055534801561004657600080fd5b50739d9832d1beb29cc949d75d61415fd00279f84dc26000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733cf26a9fe33c219db87c2e50572e50803efb2981600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739ffe2ad5d76954c7c25be0cee30795279c4cab9f600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107a1806101546000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063152b6f9a146100be578063152e84a7146101195780633ff54c711461014457806351290d061461019b5780637d94792a146101f2578063bb68b86f1461021d578063e4fffb3a14610248578063f05aa33414610275578063fa508d3e146102cc575b6100a233610323565b15156100b7576100b13361036e565b506100bc565b600080fd5b005b3480156100ca57600080fd5b506100ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610323565b604051808215151515815260200191505060405180910390f35b34801561012557600080fd5b5061012e610634565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b50610185600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b506101b061063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b50610207610660565b6040518082815260200191505060405180910390f35b34801561022957600080fd5b50610232610666565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b506102736004803603810190808035906020019092919050505061066c565b005b34801561028157600080fd5b5061028a61072a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610750565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000806000836000151561038182610323565b151514151561038f57600080fd5b6103e86001430340600554604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156103fd57805182526020820191506020810190506020830392506103d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001900481151561043757fe5b06925060c88311156104485760c892505b670de0b6b3a7640000830292506004548360035401111561046857600080fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260035401600381905550600691506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663237d26288685856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600681111561056e57fe5b60ff1681526020019350505050602060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b810190808051906020019092919050505015156105db57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c639846040518082815260200191505060405180910390a2829350505050919050565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561072057600080fd5b8060048190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c37160029
Deployed Bytecode
0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063152b6f9a146100be578063152e84a7146101195780633ff54c711461014457806351290d061461019b5780637d94792a146101f2578063bb68b86f1461021d578063e4fffb3a14610248578063f05aa33414610275578063fa508d3e146102cc575b6100a233610323565b15156100b7576100b13361036e565b506100bc565b600080fd5b005b3480156100ca57600080fd5b506100ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610323565b604051808215151515815260200191505060405180910390f35b34801561012557600080fd5b5061012e610634565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b50610185600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b506101b061063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b50610207610660565b6040518082815260200191505060405180910390f35b34801561022957600080fd5b50610232610666565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b506102736004803603810190808035906020019092919050505061066c565b005b34801561028157600080fd5b5061028a61072a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610750565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000806000836000151561038182610323565b151514151561038f57600080fd5b6103e86001430340600554604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156103fd57805182526020820191506020810190506020830392506103d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001900481151561043757fe5b06925060c88311156104485760c892505b670de0b6b3a7640000830292506004548360035401111561046857600080fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260035401600381905550600691506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663237d26288685856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600681111561056e57fe5b60ff1681526020019350505050602060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b810190808051906020019092919050505015156105db57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe6c82503aaaa3db78b70f183901ae8668918f895b3982b2c851cf2ffe0c6c639846040518082815260200191505060405180910390a2829350505050919050565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561072057600080fd5b8060048190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c37160029
Swarm Source
bzzr://c592fa300c7d55276867e0a649d24f9d17cf95d08c080034a7601021b09c3716
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.