├── DCN time lock ├── DCN TimeLock addresses.pdf ├── Dentacoin_lock.sol └── time lock contract unlock how to ├── Presale Bonus └── PresaleBonus.sol ├── README.md ├── contract (solidity) └── Dentacoin └── LICENSE /DCN time lock/DCN TimeLock addresses.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dentacoin/ERC20-token/HEAD/DCN time lock/DCN TimeLock addresses.pdf -------------------------------------------------------------------------------- /DCN time lock/Dentacoin_lock.sol: -------------------------------------------------------------------------------- 1 | /* 2 | Dentacoin Foundation TimeLock Contract 2043 3 | 4 | 6 158 604 361 608 DCN will be locked in total 5 | Every year a certain amount will be released: 6 | 01/01/2018 = 121777777777 //2% Contract Address: 0x3668F174859271c88537d633a2Cac59de26B0641 7 | 01/01/2019 = 182666666666 //3% Contract Address: 0xf20fC45f6e6204C3C0a97da219D714937CA7321D 8 | 01/01/2020 = 243555555555 //4% Contract Address: 0x1b6F112B2C6fbe28Cf9394B64f493E0ffeb5c020 9 | 01/01/2021 = 304444444444 //5% Contract Address: 0x3d666A7932De1F34121F768fd1Ed27386E84A422 10 | 01/01/2022 = 365333333333 //6% Contract Address: 0x572f457882102FfeaaC4121338Ced3E94A006Cdc 11 | 01/01/2023 = 487111111111 //8% Contract Address: 0x2FD80316c6271CbeF643742A3CA8265cF6ab4480 12 | 01/01/2024 = 608888888888 //10% Contract Address: 0x5fd371718415DaB653D42cc65105AF88dB0205de 13 | 01/01/2025 = 547999999999 //9% Contract Address: 0xf1EAB24B40C0D040ccfD1d3BbB3419003074E3D9 14 | 01/01/2026 = 487111111111 //8% Contract Address: 0xEa63C813253E1d30b74A1f46E76a67D499B6d4C8 15 | 01/01/2027 = 487111111111 //8% Contract Address: 0x2a1bb55f021d40d98f937665b42e69f4be7cc8f9 16 | 01/01/2028 = 365333333333 //6% Contract Address: 0xA407A4f537e0Ee4936e3Fc32DB64914d4d5d3f43 17 | 01/01/2029 = 304444444444 //5% Contract Address: 0x3572DE393113A3b4faCDB12deE3e92733058EF67 18 | 01/01/2030 = 121777777777 //2% Contract Address: 0x22877c076B09A65dbB865b4a29e5436231634Fc4 19 | 01/01/2031 = 121777777777 //2% Contract Address: 0xE3345eb610C2F3B0d9884A4784B0e980eA420dA3 20 | 01/01/2032 = 121777777777 //2% Contract Address: 0xbBaf33931dbCFcE91337986f5B953e555DFA0526 21 | 01/01/2033 = 121777777777 //2% Contract Address: 0x864F9244aF3aBeB595c8d825861E3767FE3849DC 22 | 01/01/2034 = 121777777777 //2% Contract Address: 0xb8e6Eae57A926b393C3d040CF3F4f9f663c6C487 23 | 01/01/2035 = 121777777777 //2% Contract Address: 0x0e5a15e153Bd89C113A6e8fb3d14A99004C9CD94 24 | 01/01/2036 = 121777777777 //2% Contract Address: 0x0d4346f96B7512222448bAD36AC01709634f76B0 25 | 01/01/2037 = 121777777777 //2% Contract Address: 0x1c6A6cdEE958F3FeF8A9c9ccC9f49649aF9311C1 26 | 01/01/2038 = 121777777777 //2% Contract Address: 0xA5d2CC94C9251c92C29126C6869E111F8D0a1275 27 | 01/01/2039 = 121777777777 //2% Contract Address: 0x977a1A431c94d0725E06eAE00F5e33f0F8666274 28 | 01/01/2040 = 121777777777 //2% Contract Address: 0x918cddD8394bDb7C258bAc66E3DBa4f47078BE87 29 | 01/01/2041 = 121777777777 //2% Contract Address: 0xa3f9Fe2E8bf25E48E5098cBd48b16B88e7D4742A 30 | 01/01/2042 = 121777777777 //2% Contract Address: 0xC8C1a15d6Be8eC0c923a3D251AB85935223d2105 31 | 01/01/2042 = 312015856340 //5% Contract Address: 0x24f4F418adc1007F90763a47493aDe189DeFD7Ed 32 | 01/01/2043 = everything else Contract Address: 0x787ac420CB08fB3391E96FC5f6F7A4C18C74502E 33 | */ 34 | 35 | 36 | pragma solidity ^0.4.15; 37 | 38 | //Dentacoin token import 39 | contract exToken { 40 | function transfer(address, uint256) constant returns (bool) { } 41 | function balanceOf(address) constant returns (uint256) { } 42 | } 43 | 44 | 45 | // Timelock 46 | contract DentacoinTimeLock { 47 | 48 | uint constant public year = 2043; 49 | address public owner; 50 | uint public lockTime = 9178 days; 51 | uint public startTime; 52 | uint256 lockedAmount; 53 | exToken public tokenAddress; 54 | 55 | modifier onlyBy(address _account){ 56 | require(msg.sender == _account); 57 | _; 58 | } 59 | 60 | function () payable {} 61 | 62 | function DentacoinTimeLock() { 63 | 64 | //owner = msg.sender; 65 | owner = 0xd560Be7E053f6bDB113C2814Faa339e29f4a385f; // Dentacoin Foundation owner 66 | startTime = now; 67 | tokenAddress = exToken(0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6); 68 | } 69 | 70 | function withdraw() onlyBy(owner) { 71 | lockedAmount = tokenAddress.balanceOf(this); 72 | require((startTime + lockTime) < now); 73 | tokenAddress.transfer(owner, lockedAmount); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Presale Bonus/PresaleBonus.sol: -------------------------------------------------------------------------------- 1 | /* 2 | Dentacoin Foundation Presale Bonus 3 | */ 4 | 5 | pragma solidity ^0.4.11; 6 | 7 | 8 | 9 | //Dentacoin token import 10 | contract exToken { 11 | function transfer(address, uint256) returns (bool) { } 12 | function balanceOf(address) constant returns (uint256) { } 13 | } 14 | 15 | 16 | // Presale Bonus after Presale 17 | contract PresaleBonus { 18 | uint public getBonusTime = 14 days; // Time span from contract deployment to end of bonus request period. Afterwards bonus will be paid out 19 | uint public startTime; // Time of contract deployment 20 | address public owner; // Owner of this contract, who may refund all remaining DCN and ETH 21 | exToken public tokenAddress; // Address of the DCN token: 0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6 22 | 23 | mapping (address => bool) public requestOf; // List of all DCN holders, which requested the bonus 24 | address[] public receiver; // Array to iterate threw this receivers and send the bonus to them 25 | 26 | modifier onlyBy(address _account){ // All functions modified by this, must only be used by the owner 27 | require(msg.sender == _account); 28 | _; 29 | } 30 | 31 | function PresaleBonus() { // The function that is run only once at contract deployment 32 | owner = msg.sender; // Set the owner address to the account which deploys this contract 33 | startTime = now; // Set the start time of the request period to the contract deployment time 34 | tokenAddress = exToken(0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6); // Define Dentacoin token address 35 | } 36 | 37 | //Send tiny amount of eth to request DCN bonus 38 | function () payable { // This empty function runs by definition if anyone sends ETH to this contract 39 | if (msg.sender != owner) { // Check if the contract owner sends ETH, which shouldn't have any effect 40 | require((startTime + getBonusTime) > now); // Make sure that the request period has not ended yet 41 | require(msg.value < 1000000000000000 && msg.value >= 1); // Make sure that the requester sends 1 Wei - 0,001 ETH to this contract (proof of ownership) 42 | require(requestOf[msg.sender] == false); // Make sure that the requester didn't request yet 43 | requestOf[msg.sender] = true; // Finally add the requester to the list of requesters 44 | receiver.push(msg.sender); // And add the requester to the array of receivers 45 | } 46 | } 47 | 48 | 49 | 50 | function sendBonus() onlyBy(owner) { 51 | require((startTime + getBonusTime) < now); // Make sure that the request period has ended 52 | for (uint i = 0; i < receiver.length-1; i++) { // Iterate threw the list of receivers TODO: check iteration 53 | if (requestOf[receiver[i]] && tokenAddress.balanceOf(receiver[i]) >= 200) { // TODO: First check needed? 54 | requestOf[receiver[i]] = false; // Remove the requester from the list of requesters 55 | uint256 bonus = tokenAddress.balanceOf(receiver[i])/20; // Set the bonus amount to 5% of the requesters DCN holdings 56 | tokenAddress.transfer(receiver[i], bonus); // Transfer the bonus from this contract to the requester 57 | } 58 | } 59 | } 60 | 61 | 62 | 63 | 64 | // refund to owner 65 | function refundToOwner () onlyBy(owner) { // Send remaining ETH and DCN to the contract owner 66 | if (!msg.sender.send(this.balance)) { // Send ether to the owner 67 | throw; 68 | } 69 | tokenAddress.transfer(owner, tokenAddress.balanceOf(this)); // Send DCN to the owner 70 | } 71 | 72 | 73 | 74 | 75 | // web3 getter function 76 | function balanceOf(address _owner) constant returns (uint256 balance) { 77 | return tokenAddress.balanceOf(_owner); 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dentacoin - The First Blockchain Solution for the Global Dental Industry 2 | 3 | [Verify Contract](https://etherscan.io/token/0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6) 4 | 5 | Founded in March 2017, the Netherlands-based Dentacoin Foundation develops the first Blockchain solution for the global dental industry. 6 | 7 | Driven by a vast community of progressive dentists, software developers and marketing specialists, the Foundation has managed to create a new dental ecosystem which favours all industry stakeholders: patients, dentists, manufacturers, suppliers, labs, insurance companies. Through a common, industry-specific cryptocurrency Dentacoin (DCN) and several Blockchain-based software tools, all market participants are securely interconnected, empowered to efficiently exchange information and values. 8 | 9 | The core purpose of the Foundation is to improve long-term health, reduce costs and pain, and continuously support the growth in the value of the DCN currency. 10 | 11 | 12 | ## DENTACOIN (DCN) CURRENCY 13 | ### "The Bitcoin of Dentistry" 14 | 15 | Dentacoin (DCN) is an Ethereum-based [utility token](https://www.merriam-webster.com/dictionary/utility%20token) which is embedded as an incentive in the Dentacoin tools. It can be easily exchanged to other crypto and fiat (USD, EUR, GBP, etc.) currencies and is already being accepted as a means of payment by dental clinics, laboratories, shops in 18 countries. Every new participant in the Dentacoin community leads to increase of DCN value ([“network effect”](https://www.investopedia.com/terms/n/network-effect.asp)) - i.e. the more people use DCN, the higher its value grows. 16 | 17 | Dentacoin is the one and only cryptocurrency in the world that connects all participants in the global dental industry. In contrast to the inflation-prone world currencies, it holds the potential to make people richer rather than poorer. In its essence, Dеntacoin has a strong social aspect - it empowers people to receive affordable and sustainable dental care and to earn additional income for their active usage of Dentacoin tools. 18 | 19 | 20 | ## DENTACOIN TOOLS 21 | ### Bringing Patients Back Into Focus 22 | 23 | Communication and attention are the key components on which every relationship builds. The Dentacoin Foundation has already developed four Blockchain-based software applications intended to facilitate and leverage the interaction between patients and dentists. 24 | 25 | • [DentaVox](https://dentavox.dentacoin.com) - An online market research platform surveying users (patients) on various dental health topics and providing key results publicly. 26 | 27 | • [Trusted Reviews](https://reviews.dentacoin.com/) - The first platform for detailed, verified and incentivized dental treatment reviews written by patients with verified identities. 28 | 29 | • [Dentacare Mobile app](https://dentacare.dentacoin.com/) - A mobile app which teaches kids and adults to maintain good oral hygiene through a 3-month, incentivized challenge. 30 | 31 | • [Dentacoin Wallet dApp](https://wallet.dentacoin.com/) - Allows users to easily and securely store, send, receive DCN tokens, as well as buy DCN against fiat and crypto currencies. 32 | 33 | 34 | ## DENTACOIN ASSURANCE 35 | ### Preaching & Practicing Preventive Dental Care 36 | 37 | Dentacoin Assurance is a revolutionary dental, insurance-like program that compensates dentists for prevention and not only for treatment. By paying an affordable monthly premium in DCN to their dentists, patients are entitled to a lifelong, prevention-focused dental care. This Blockchain-based model brings the financial interests of patients and dentists into complete alignment without any intermediaries and establishes strong and lasting bonds. ETA: Testnet Dec 2018 38 | 39 | 40 | ## DENTAL HEALTH DATABASE 41 | ### Making Patients Owners of Their Dental Health Records 42 | 43 | Another central project to be developed by the Dentacoin Foundation is a decentralized dental health database which stores patient’s data in a safe and reliable way. It is fully managed by patients - only they decide what to store and who can access it. This peerless security degree and control over one’s own data is ensured by the Blockchain. For dentists, this means easier and more precise prophylaxis plans and highly individualized treatment based on a more holistic view of the patient’s health. ETA: 2019 44 | 45 | 46 | ## DENTACOIN NETWORK 47 | ### Developing the Largest Blockchain-Supported Dental Network 48 | 49 | 180K+ community members (users, dentists, followers, subscribers) and 70+ dental labs, suppliers, producers, and mobile dental care providers accepting DCN payments, united by the mission to REshape the future of dentistry. 50 | 51 | 52 | ## Useful links 53 | 54 | Official Website: https://dentacoin.com/ 55 | 56 | Corporate Identity: https://dentacoin.com/corporate-identity/ 57 | 58 | Corporate Design Manual: https://dentacoin.com/corporate-design/ 59 | 60 | Partner Network: https://dentacoin.com/partner-network 61 | 62 | Partner Testimonials: https://dentacoin.com/testimonials/page/1 63 | 64 | Dentacoin Blog: https://blog.dentacoin.com/ 65 | 66 | 67 | ## Contact us 68 | 69 | Feel free to email us at [admin@dentacoin.com](mailto:admin@dentacoin.com) or better yet, [join our Telegram](https://t.me/dentacoin). 70 | -------------------------------------------------------------------------------- /contract (solidity)/Dentacoin: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.8; 2 | 3 | 4 | 5 | /** 6 | * Dentacoin extended ERC20 token contract created on February the 14th, 2017 by Dentacoin B.V. in the Netherlands 7 | * 8 | * For terms and conditions visit https://dentacoin.com 9 | */ 10 | 11 | 12 | 13 | contract owned { 14 | address public owner; 15 | 16 | function owned() { 17 | owner = msg.sender; 18 | } 19 | 20 | modifier onlyOwner { 21 | if (msg.sender != owner) throw; 22 | _; 23 | } 24 | 25 | function transferOwnership(address newOwner) onlyOwner { 26 | if (newOwner == 0x0) throw; 27 | owner = newOwner; 28 | } 29 | } 30 | 31 | 32 | 33 | 34 | /** 35 | * Overflow aware uint math functions. 36 | */ 37 | contract SafeMath { 38 | //internals 39 | 40 | function safeMul(uint a, uint b) internal returns (uint) { 41 | uint c = a * b; 42 | assert(a == 0 || c / a == b); 43 | return c; 44 | } 45 | 46 | function safeSub(uint a, uint b) internal returns (uint) { 47 | assert(b <= a); 48 | return a - b; 49 | } 50 | 51 | function safeAdd(uint a, uint b) internal returns (uint) { 52 | uint c = a + b; 53 | assert(c>=a && c>=b); 54 | return c; 55 | } 56 | 57 | function assert(bool assertion) internal { 58 | if (!assertion) throw; 59 | } 60 | } 61 | 62 | 63 | 64 | 65 | contract Token { 66 | /* This is a slight change to the ERC20 base standard. 67 | function totalSupply() constant returns (uint256 supply); 68 | is replaced with: 69 | uint256 public totalSupply; 70 | This automatically creates a getter function for the totalSupply. 71 | This is moved to the base contract since public getter functions are not 72 | currently recognised as an implementation of the matching abstract 73 | function by the compiler. 74 | */ 75 | /// total amount of tokens 76 | uint256 public totalSupply; 77 | 78 | 79 | /// @param _owner The address from which the balance will be retrieved 80 | /// @return The balance 81 | function balanceOf(address _owner) constant returns (uint256 balance); 82 | 83 | /// @notice send `_value` token to `_to` from `msg.sender` 84 | /// @param _to The address of the recipient 85 | /// @param _value The amount of token to be transferred 86 | /// @return Whether the transfer was successful or not 87 | function transfer(address _to, uint256 _value) returns (bool success); 88 | 89 | /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` 90 | /// @param _from The address of the sender 91 | /// @param _to The address of the recipient 92 | /// @param _value The amount of token to be transferred 93 | /// @return Whether the transfer was successful or not 94 | function transferFrom(address _from, address _to, uint256 _value) returns (bool success); 95 | 96 | /// @notice `msg.sender` approves `_spender` to spend `_value` tokens 97 | /// @param _spender The address of the account able to transfer the tokens 98 | /// @param _value The amount of tokens to be approved for transfer 99 | /// @return Whether the approval was successful or not 100 | function approve(address _spender, uint256 _value) returns (bool success); 101 | 102 | /// @param _owner The address of the account owning tokens 103 | /// @param _spender The address of the account able to transfer the tokens 104 | /// @return Amount of remaining tokens allowed to spent 105 | function allowance(address _owner, address _spender) constant returns (uint256 remaining); 106 | 107 | event Transfer(address indexed _from, address indexed _to, uint256 _value); 108 | event Approval(address indexed _owner, address indexed _spender, uint256 _value); 109 | } 110 | 111 | 112 | 113 | 114 | 115 | contract StandardToken is Token { 116 | 117 | function transfer(address _to, uint256 _value) returns (bool success) { 118 | //Default assumes totalSupply can't be over max (2^256 - 1). 119 | //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap. 120 | //Replace the if with this one instead. 121 | if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { 122 | //if (balances[msg.sender] >= _value && _value > 0) { 123 | balances[msg.sender] -= _value; 124 | balances[_to] += _value; 125 | Transfer(msg.sender, _to, _value); 126 | return true; 127 | } else { return false; } 128 | } 129 | 130 | function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { 131 | //same as above. Replace this line with the following if you want to protect against wrapping uints. 132 | if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) { 133 | //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) { 134 | balances[_from] -= _value; 135 | balances[_to] += _value; 136 | allowed[_from][msg.sender] -= _value; 137 | Transfer(_from, _to, _value); 138 | return true; 139 | } else { return false; } 140 | } 141 | 142 | function balanceOf(address _owner) constant returns (uint256 balance) { 143 | return balances[_owner]; 144 | } 145 | 146 | function approve(address _spender, uint256 _value) returns (bool success) { 147 | allowed[msg.sender][_spender] = _value; 148 | Approval(msg.sender, _spender, _value); 149 | return true; 150 | } 151 | 152 | function allowance(address _owner, address _spender) constant returns (uint256 remaining) { 153 | return allowed[_owner][_spender]; 154 | } 155 | 156 | mapping (address => uint256) balances; 157 | mapping (address => mapping (address => uint256)) allowed; 158 | } 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | /* Dentacoin Contract */ 167 | contract DentacoinToken is owned, SafeMath, StandardToken { 168 | string public name = "Dentacoin"; // Set the name for display purposes 169 | string public symbol = "٨"; // Set the symbol for display purposes 170 | address public DentacoinAddress = this; // Address of the Dentacoin token 171 | uint8 public decimals = 0; // Amount of decimals for display purposes 172 | uint256 public totalSupply = 8000000000000; // Set total supply of Dentacoins (eight trillion) 173 | uint256 public buyPriceEth = 1 finney; // Buy price for Dentacoins 174 | uint256 public sellPriceEth = 1 finney; // Sell price for Dentacoins 175 | uint256 public gasForDCN = 5 finney; // Eth from contract against DCN to pay tx (10 times sellPriceEth) 176 | uint256 public DCNForGas = 10; // DCN to contract against eth to pay tx 177 | uint256 public gasReserve = 1 ether; // Eth amount that remains in the contract for gas and can't be sold 178 | uint256 public minBalanceForAccounts = 10 finney; // Minimal eth balance of sender and recipient 179 | bool public directTradeAllowed = false; // Halt trading DCN by sending to the contract directly 180 | 181 | 182 | /* Initializes contract with initial supply tokens to the creator of the contract */ 183 | function DentacoinToken() { 184 | balances[msg.sender] = totalSupply; // Give the creator all tokens 185 | } 186 | 187 | 188 | /* Constructor parameters */ 189 | function setEtherPrices(uint256 newBuyPriceEth, uint256 newSellPriceEth) onlyOwner { 190 | buyPriceEth = newBuyPriceEth; // Set prices to buy and sell DCN 191 | sellPriceEth = newSellPriceEth; 192 | } 193 | function setGasForDCN(uint newGasAmountInWei) onlyOwner { 194 | gasForDCN = newGasAmountInWei; 195 | } 196 | function setDCNForGas(uint newDCNAmount) onlyOwner { 197 | DCNForGas = newDCNAmount; 198 | } 199 | function setGasReserve(uint newGasReserveInWei) onlyOwner { 200 | gasReserve = newGasReserveInWei; 201 | } 202 | function setMinBalance(uint minimumBalanceInWei) onlyOwner { 203 | minBalanceForAccounts = minimumBalanceInWei; 204 | } 205 | 206 | 207 | /* Halts or unhalts direct trades without the sell/buy functions below */ 208 | function haltDirectTrade() onlyOwner { 209 | directTradeAllowed = false; 210 | } 211 | function unhaltDirectTrade() onlyOwner { 212 | directTradeAllowed = true; 213 | } 214 | 215 | 216 | /* Transfer function extended by check of eth balances and pay transaction costs with DCN if not enough eth */ 217 | function transfer(address _to, uint256 _value) returns (bool success) { 218 | if (_value < DCNForGas) throw; // Prevents drain and spam 219 | if (msg.sender != owner && _to == DentacoinAddress && directTradeAllowed) { 220 | sellDentacoinsAgainstEther(_value); // Trade Dentacoins against eth by sending to the token contract 221 | return true; 222 | } 223 | 224 | if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { // Check if sender has enough and for overflows 225 | balances[msg.sender] = safeSub(balances[msg.sender], _value); // Subtract DCN from the sender 226 | 227 | if (msg.sender.balance >= minBalanceForAccounts && _to.balance >= minBalanceForAccounts) { // Check if sender can pay gas and if recipient could 228 | balances[_to] = safeAdd(balances[_to], _value); // Add the same amount of DCN to the recipient 229 | Transfer(msg.sender, _to, _value); // Notify anyone listening that this transfer took place 230 | return true; 231 | } else { 232 | balances[this] = safeAdd(balances[this], DCNForGas); // Pay DCNForGas to the contract 233 | balances[_to] = safeAdd(balances[_to], safeSub(_value, DCNForGas)); // Recipient balance -DCNForGas 234 | Transfer(msg.sender, _to, safeSub(_value, DCNForGas)); // Notify anyone listening that this transfer took place 235 | 236 | if(msg.sender.balance < minBalanceForAccounts) { 237 | if(!msg.sender.send(gasForDCN)) throw; // Send eth to sender 238 | } 239 | if(_to.balance < minBalanceForAccounts) { 240 | if(!_to.send(gasForDCN)) throw; // Send eth to recipient 241 | } 242 | } 243 | } else { throw; } 244 | } 245 | 246 | 247 | /* User buys Dentacoins and pays in Ether */ 248 | function buyDentacoinsAgainstEther() payable returns (uint amount) { 249 | if (buyPriceEth == 0 || msg.value < buyPriceEth) throw; // Avoid dividing 0, sending small amounts and spam 250 | amount = msg.value / buyPriceEth; // Calculate the amount of Dentacoins 251 | if (balances[this] < amount) throw; // Check if it has enough to sell 252 | balances[msg.sender] = safeAdd(balances[msg.sender], amount); // Add the amount to buyer's balance 253 | balances[this] = safeSub(balances[this], amount); // Subtract amount from Dentacoin balance 254 | Transfer(this, msg.sender, amount); // Execute an event reflecting the change 255 | return amount; 256 | } 257 | 258 | 259 | /* User sells Dentacoins and gets Ether */ 260 | function sellDentacoinsAgainstEther(uint256 amount) returns (uint revenue) { 261 | if (sellPriceEth == 0 || amount < DCNForGas) throw; // Avoid selling and spam 262 | if (balances[msg.sender] < amount) throw; // Check if the sender has enough to sell 263 | revenue = safeMul(amount, sellPriceEth); // Revenue = eth that will be send to the user 264 | if (safeSub(this.balance, revenue) < gasReserve) throw; // Keep min amount of eth in contract to provide gas for transactions 265 | if (!msg.sender.send(revenue)) { // Send ether to the seller. It's important 266 | throw; // To do this last to avoid recursion attacks 267 | } else { 268 | balances[this] = safeAdd(balances[this], amount); // Add the amount to Dentacoin balance 269 | balances[msg.sender] = safeSub(balances[msg.sender], amount); // Subtract the amount from seller's balance 270 | Transfer(this, msg.sender, revenue); // Execute an event reflecting on the change 271 | return revenue; // End function and returns 272 | } 273 | } 274 | 275 | 276 | /* refund to owner */ 277 | function refundToOwner (uint256 amountOfEth, uint256 dcn) onlyOwner { 278 | uint256 eth = safeMul(amountOfEth, 1 ether); 279 | if (!msg.sender.send(eth)) { // Send ether to the owner. It's important 280 | throw; // To do this last to avoid recursion attacks 281 | } else { 282 | Transfer(this, msg.sender, eth); // Execute an event reflecting on the change 283 | } 284 | if (balances[this] < dcn) throw; // Check if it has enough to sell 285 | balances[msg.sender] = safeAdd(balances[msg.sender], dcn); // Add the amount to buyer's balance 286 | balances[this] = safeSub(balances[this], dcn); // Subtract amount from seller's balance 287 | Transfer(this, msg.sender, dcn); // Execute an event reflecting the change 288 | } 289 | 290 | 291 | /* This unnamed function is called whenever someone tries to send ether to it and possibly sells Dentacoins */ 292 | function() payable { 293 | if (msg.sender != owner) { 294 | if (!directTradeAllowed) throw; 295 | buyDentacoinsAgainstEther(); // Allow direct trades by sending eth to the contract 296 | } 297 | } 298 | } 299 | 300 | /* JJG */ 301 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /DCN time lock/time lock contract unlock how to: -------------------------------------------------------------------------------- 1 | time lock contract unlock how to: 2 | 3 | 1. Open MyCrypto Legacy Desktop index.html -> (https://github.com/MyCryptoHQ/mycrypto.com/releases) 4 | 2. Generate new OFFLINE transaction from 0xd560be7e053f6bdb113c2814faa339e29f4a385f 5 | 3. In cold storage go to MEW and Offline Transactions. 6 | - In data field paste: 0x3ccfd60b 7 | - gas limit: 100.000 8 | 4. Use private keys from cold storage for contract owner: 0xd560Be7E053f6bDB113C2814Faa339e29f4a385f 9 | 5. Sign transaction and scan signed qr code. 10 | 6. Paste tx in MyCrypto and broadcast 11 | 12 | Addresses and ABIs for each year: 13 | 14 | 2018 0x3668F174859271c88537d633a2Cac59de26B0641 15 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "16588800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498243603" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2018" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 16 | 2019 0xf20fC45f6e6204C3C0a97da219D714937CA7321D 17 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "48556800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498243479" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2019" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 18 | 2020 0x1b6F112B2C6fbe28Cf9394B64f493E0ffeb5c020 19 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "80092800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498243299" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2020" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 20 | 2021 0x3d666A7932De1F34121F768fd1Ed27386E84A422 21 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "111628800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498243029" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2021" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 22 | 2022 0x572f457882102FfeaaC4121338Ced3E94A006Cdc 23 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "143164800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498242887" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2022" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 24 | 2023 0x2FD80316c6271CbeF643742A3CA8265cF6ab4480 25 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "174700800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498242722" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2023" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 26 | 2024 0x5fd371718415DaB653D42cc65105AF88dB0205de 27 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "206236800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498242601" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2024" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 28 | 2025 0xf1EAB24B40C0D040ccfD1d3BbB3419003074E3D9 29 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "237772800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498242341" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 30 | 2026 0xEa63C813253E1d30b74A1f46E76a67D499B6d4C8 31 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "269308800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498242175" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2026" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 32 | 2027 0x2a1Bb55F021D40d98f937665B42e69F4bE7CC8f9 33 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "300844800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498240823" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2027" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 34 | 2028 0xA407A4f537e0Ee4936e3Fc32DB64914d4d5d3f43 35 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 36 | 2029 0x3572DE393113A3b4faCDB12deE3e92733058EF67 37 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "363916800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498149446" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2029" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 38 | 2030 0x22877c076B09A65dbB865b4a29e5436231634Fc4 39 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "395452800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498149249" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2030" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 40 | 2031 0xE3345eb610C2F3B0d9884A4784B0e980eA420dA3 41 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "426988800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498148823" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2031" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 42 | 2032 0xbBaf33931dbCFcE91337986f5B953e555DFA0526 43 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "458524800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498148599" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2032" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 44 | 2033 0x864F9244aF3aBeB595c8d825861E3767FE3849DC 45 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "490060800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498148463" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2033" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 46 | 2034 0xb8e6Eae57A926b393C3d040CF3F4f9f663c6C487 47 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "521596800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498148328" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2034" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 48 | 2035 0x0e5a15e153Bd89C113A6e8fb3d14A99004C9CD94 49 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "553132800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498148066" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2035" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 50 | 2036 0x0d4346f96B7512222448bAD36AC01709634f76B0 51 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "584668800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498147886" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2036" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 52 | 2037 0x1c6A6cdEE958F3FeF8A9c9ccC9f49649aF9311C1 53 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "616204800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498147557" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 54 | 2038 0xA5d2CC94C9251c92C29126C6869E111F8D0a1275 55 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "647740800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498147429" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2038" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 56 | 2039 0x977a1A431c94d0725E06eAE00F5e33f0F8666274 57 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "679276800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498146634" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2039" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 58 | 2040 0x918cddD8394bDb7C258bAc66E3DBa4f47078BE87 59 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "710467200" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498110196" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2040" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 60 | 2041 0xa3f9Fe2E8bf25E48E5098cBd48b16B88e7D4742A 61 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "742003200" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498111222" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2041" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 62 | 2042 0xC8C1a15d6Be8eC0c923a3D251AB85935223d2105 63 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "773712000" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498077938" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 64 | 2042 Rest 0x24f4F418adc1007F90763a47493aDe189DeFD7Ed 65 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "773884800" } ], "payable": false, "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1498109073" } ], "payable": false, "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2041" } ], "payable": false, "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "type": "constructor" }, { "payable": true, "type": "fallback" } ] 66 | 2043 ICO Rest 0x787ac420CB08fB3391E96FC5f6F7A4C18C74502E 67 | [ { "constant": true, "inputs": [], "name": "lockTime", "outputs": [ { "name": "", "type": "uint256", "value": "790905600" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x0d668087" }, { "constant": false, "inputs": [], "name": "withdraw", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x3ccfd60b" }, { "constant": true, "inputs": [], "name": "startTime", "outputs": [ { "name": "", "type": "uint256", "value": "1512777340" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x78e97925" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0xd560Be7E053f6bDB113C2814Faa339e29f4a385f" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address", "value": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x9d76ea58" }, { "constant": true, "inputs": [], "name": "year", "outputs": [ { "name": "", "type": "uint256", "value": "2043" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xf3269716" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" } ] 68 | 69 | --------------------------------------------------------------------------------