ETH Price: $3,343.79 (-1.06%)

Token

DigiPulse (DGT)
 

Overview

Max Total Supply

553,179.65502971 DGT

Holders

650 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
Gemini
Balance
5.75 DGT

Value
$0.00
0xd24400ae8bfebb18ca49be86258a3c749cf46853
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DigiPulse

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.4;

contract DigiPulse {

	// Token data for ERC20
  string public constant name = "DigiPulse";
  string public constant symbol = "DGT";
  uint8 public constant decimals = 8;
  mapping (address => uint256) public balanceOf;

  // Max available supply is 16581633 * 1e8 (incl. 100000 presale and 2% bounties)
  uint constant tokenSupply = 16125000 * 1e8;
  uint8 constant dgtRatioToEth = 250;
  uint constant raisedInPresale = 961735343125;
  mapping (address => uint256) ethBalanceOf;
  address owner;

  // For LIVE
  uint constant startOfIco = 1501833600; // 08/04/2017 @ 8:00am (UTC)
  uint constant endOfIco = 1504223999; // 08/31/2017 @ 23:59pm (UTC)

  uint allocatedSupply = 0;
  bool icoFailed = false;
  bool icoFulfilled = false;

  // Generate public event that will notify clients
	event Transfer(address indexed from, address indexed to, uint256 value);
  event Refund(address indexed _from, uint256 _value);

  // No special actions are required upon creation, so initialiser is left empty
  function DigiPulse() {
    owner = msg.sender;
  }

  // For future transfers of DGT
  function transfer(address _to, uint256 _value) {
    require (balanceOf[msg.sender] >= _value);          // Check if the sender has enough
    require (balanceOf[_to] + _value > balanceOf[_to]); // Check for overflows

    balanceOf[msg.sender] -= _value;                    // Subtract from the sender
    balanceOf[_to] += _value;                           // Add the same to the recipient

    Transfer(msg.sender, _to, _value);
  }

  // logic which converts eth to dgt and stores in allocatedSupply
  function() payable external {
    // Abort if crowdfunding has reached an end
    require (now > startOfIco);
    require (now < endOfIco);
    require (!icoFulfilled);

    // Do not allow creating 0 tokens
    require (msg.value != 0);

    // Must adjust number of decimals, so the ratio will work as expected
    // From ETH 16 decimals to DGT 8 decimals
    uint256 dgtAmount = msg.value / 1e10 * dgtRatioToEth;
    require (dgtAmount < (tokenSupply - allocatedSupply));

    // Tier bonus calculations
    uint256 dgtWithBonus;
    uint256 applicable_for_tier;

    for (uint8 i = 0; i < 4; i++) {
      // Each tier has same amount of DGT
      uint256 tier_amount = 3750000 * 1e8;
      // Every next tier has 5% less bonus pool
      uint8 tier_bonus = 115 - (i * 5);
      applicable_for_tier += tier_amount;

      // Skipping over this tier, since it is filled already
      if (allocatedSupply >= applicable_for_tier) continue;

      // Reached this tier with 0 amount, so abort
      if (dgtAmount == 0) break;

      // Cases when part of the contribution is covering two tiers
      int256 diff = int(allocatedSupply) + int(dgtAmount - applicable_for_tier);

      if (diff > 0) {
        // add bonus for current tier and strip the difference for
        // calculation in the next tier
        dgtWithBonus += (uint(int(dgtAmount) - diff) * tier_bonus / 100);
        dgtAmount = uint(diff);
      } else {
        dgtWithBonus += (dgtAmount * tier_bonus / 100);
        dgtAmount = 0;
      }
    }

    // Increase supply
    allocatedSupply += dgtWithBonus;

    // Assign new tokens to the sender and log token creation event
    ethBalanceOf[msg.sender] += msg.value;
    balanceOf[msg.sender] += dgtWithBonus;
    Transfer(0, msg.sender, dgtWithBonus);
  }

  // Decide the state of the project
  function finalise() external {
    require (!icoFailed);
    require (!icoFulfilled);
    require (now > endOfIco || allocatedSupply >= tokenSupply);

    // Min cap is 8000 ETH
    if (this.balance < 8000 ether) {
      icoFailed = true;
    } else {
      setPreSaleAmounts();
      allocateBountyTokens();
      icoFulfilled = true;
    }
  }

  // If the goal is not reached till the end of the ICO
  // allow refunds
  function refundEther() external {
  	require (icoFailed);

    var ethValue = ethBalanceOf[msg.sender];
    require (ethValue != 0);
    ethBalanceOf[msg.sender] = 0;

    // Refund original Ether amount
    msg.sender.transfer(ethValue);
    Refund(msg.sender, ethValue);
  }

  // Returns balance raised in ETH from specific address
	function getBalanceInEth(address addr) returns(uint){
		return ethBalanceOf[addr];
	}

  // Returns balance raised in DGT from specific address
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balanceOf[_owner];
  }

	// Get remaining supply of DGT
	function getRemainingSupply() returns(uint) {
		return tokenSupply - allocatedSupply;
	}

  // Get raised amount during ICO
  function totalSupply() returns (uint totalSupply) {
    return allocatedSupply;
  }

  // Upon successfull ICO
  // Allow owner to withdraw funds
  function withdrawFundsToOwner(uint256 _amount) {
    require (icoFulfilled);
    require (this.balance >= _amount);

    owner.transfer(_amount);
  }

  // Raised during Pre-sale
  // Since some of the wallets in pre-sale were on exchanges, we transfer tokens
  // to account which will send tokens manually out
	function setPreSaleAmounts() private {
    balanceOf[0x8776A6fA922e65efcEa2371692FEFE4aB7c933AB] += raisedInPresale;
    allocatedSupply += raisedInPresale;
    Transfer(0, 0x8776A6fA922e65efcEa2371692FEFE4aB7c933AB, raisedInPresale);
	}

	// Bounty pool makes up 2% from all tokens bought
	function allocateBountyTokens() private {
    uint256 bountyAmount = allocatedSupply * 100 / 98 * 2 / 100;
		balanceOf[0x663F98e9c37B9bbA460d4d80ca48ef039eAE4052] += bountyAmount;
    allocatedSupply += bountyAmount;
    Transfer(0, 0x663F98e9c37B9bbA460d4d80ca48ef039eAE4052, bountyAmount);
	}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawFundsToOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"refundEther","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getBalanceInEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalise","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"getRemainingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Refund","type":"event"}]

606060405260006003556004805461ffff19169055341561001f57600080fd5b5b60028054600160a060020a03191633600160a060020a03161790555b5b6108ef8061004c6000396000f300606060405236156100ac5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461020e57806312f20e2a1461029957806318160ddd146102b1578063313ce567146102d6578063560ed6a1146102ff57806370a08231146103145780637bd703e81461034557806395d89b4114610376578063a439926314610401578063a9059cbb14610416578063e4b7fb731461043a575b61020c5b6000808080808080635984298042116100c857600080fd5b6359a8a2ff42106100d857600080fd5b600454610100900460ff16156100ed57600080fd5b3415156100f957600080fd5b60fa6402540be400345b040296506003546605ba8f69b34800038710151561012057600080fd5b600093505b60048460ff1610156101ab576003546601550f7dca70009586019593506005850260730392508590106101575761019f565b861515610163576101ab565b5060035484870301600081131561018c57606481880360ff8416025b048601955080965061019f565b606460ff831688025b0486019550600096505b5b600190930192610125565b6003805487019055600160a060020a03331660008181526001602090815260408083208054340190559082905280822080548a0190556000805160206108a48339815191529089905190815260200160405180910390a35b50505050505050565b005b341561021957600080fd5b61022161045f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025e5780820151818401525b602001610245565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a457600080fd5b61020c600435610496565b005b34156102bc57600080fd5b6102c46104fb565b60405190815260200160405180910390f35b34156102e157600080fd5b6102e9610502565b60405160ff909116815260200160405180910390f35b341561030a57600080fd5b61020c610507565b005b341561031f57600080fd5b6102c4600160a060020a03600435166105c6565b60405190815260200160405180910390f35b341561035057600080fd5b6102c4600160a060020a03600435166105e5565b60405190815260200160405180910390f35b341561038157600080fd5b610221610604565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025e5780820151818401525b602001610245565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561040c57600080fd5b61020c61063b565b005b341561042157600080fd5b61020c600160a060020a03600435166024356106d7565b005b341561044557600080fd5b6102c461077b565b60405190815260200160405180910390f35b60408051908101604052600981527f4469676950756c73650000000000000000000000000000000000000000000000602082015281565b600454610100900460ff1615156104ac57600080fd5b600160a060020a03301631819010156104c457600080fd5b600254600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156104f757600080fd5b5b50565b6003545b90565b600881565b60045460009060ff16151561051b57600080fd5b50600160a060020a03331660009081526001602052604090205480151561054157600080fd5b600160a060020a0333166000818152600160205260408082209190915582156108fc0290839051600060405180830381858888f19350505050151561058557600080fd5b33600160a060020a03167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8260405190815260200160405180910390a25b50565b600160a060020a0381166000908152602081905260409020545b919050565b600160a060020a0381166000908152600160205260409020545b919050565b60408051908101604052600381527f4447540000000000000000000000000000000000000000000000000000000000602082015281565b60045460ff161561064b57600080fd5b600454610100900460ff161561066057600080fd5b6359a8a2ff42118061067b57506605ba8f69b3480060035410155b151561068657600080fd5b6901b1ae4d6e2ef500000030600160a060020a03163110156106b4576004805460ff191660011790556106d4565b6106bc61078b565b6106c4610805565b6004805461ff0019166101001790555b5b565b600160a060020a033316600090815260208190526040902054819010156106fd57600080fd5b600160a060020a0382166000908152602081905260409020548181011161072357600080fd5b600160a060020a033381166000818152602081905260408082208054869003905592851680825290839020805485019055916000805160206108a48339815191529084905190815260200160405180910390a35b5050565b6003546605ba8f69b34800035b90565b738776a6fa922e65efcea2371692fefe4ab7c933ab600081815260208190527f54b86b24e0739953f0796bb6750fe9b0cc308d045b20e7ada7524ca2b1c4aa81805464dfebe4bc1590810190915560038054820190556000805160206108a48339815191529060405190815260200160405180910390a35b565b60006064606260035460640281151561081a57fe5b0460020281151561082757fe5b73663f98e9c37b9bba460d4d80ca48ef039eae4052600081815260208190527f9515311a1bc0dcec2209378e0cc30da473dc304936bce99a2a09e48741c7647e80549490930493840190925560038054840190559192506000805160206108a48339815191528360405190815260200160405180910390a35b505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820470ac43204901dc7db9d442d8dbf8692c7e30a11d5792d8f022e370d5ced1fd60029

Deployed Bytecode

0x606060405236156100ac5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461020e57806312f20e2a1461029957806318160ddd146102b1578063313ce567146102d6578063560ed6a1146102ff57806370a08231146103145780637bd703e81461034557806395d89b4114610376578063a439926314610401578063a9059cbb14610416578063e4b7fb731461043a575b61020c5b6000808080808080635984298042116100c857600080fd5b6359a8a2ff42106100d857600080fd5b600454610100900460ff16156100ed57600080fd5b3415156100f957600080fd5b60fa6402540be400345b040296506003546605ba8f69b34800038710151561012057600080fd5b600093505b60048460ff1610156101ab576003546601550f7dca70009586019593506005850260730392508590106101575761019f565b861515610163576101ab565b5060035484870301600081131561018c57606481880360ff8416025b048601955080965061019f565b606460ff831688025b0486019550600096505b5b600190930192610125565b6003805487019055600160a060020a03331660008181526001602090815260408083208054340190559082905280822080548a0190556000805160206108a48339815191529089905190815260200160405180910390a35b50505050505050565b005b341561021957600080fd5b61022161045f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025e5780820151818401525b602001610245565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a457600080fd5b61020c600435610496565b005b34156102bc57600080fd5b6102c46104fb565b60405190815260200160405180910390f35b34156102e157600080fd5b6102e9610502565b60405160ff909116815260200160405180910390f35b341561030a57600080fd5b61020c610507565b005b341561031f57600080fd5b6102c4600160a060020a03600435166105c6565b60405190815260200160405180910390f35b341561035057600080fd5b6102c4600160a060020a03600435166105e5565b60405190815260200160405180910390f35b341561038157600080fd5b610221610604565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025e5780820151818401525b602001610245565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561040c57600080fd5b61020c61063b565b005b341561042157600080fd5b61020c600160a060020a03600435166024356106d7565b005b341561044557600080fd5b6102c461077b565b60405190815260200160405180910390f35b60408051908101604052600981527f4469676950756c73650000000000000000000000000000000000000000000000602082015281565b600454610100900460ff1615156104ac57600080fd5b600160a060020a03301631819010156104c457600080fd5b600254600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156104f757600080fd5b5b50565b6003545b90565b600881565b60045460009060ff16151561051b57600080fd5b50600160a060020a03331660009081526001602052604090205480151561054157600080fd5b600160a060020a0333166000818152600160205260408082209190915582156108fc0290839051600060405180830381858888f19350505050151561058557600080fd5b33600160a060020a03167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8260405190815260200160405180910390a25b50565b600160a060020a0381166000908152602081905260409020545b919050565b600160a060020a0381166000908152600160205260409020545b919050565b60408051908101604052600381527f4447540000000000000000000000000000000000000000000000000000000000602082015281565b60045460ff161561064b57600080fd5b600454610100900460ff161561066057600080fd5b6359a8a2ff42118061067b57506605ba8f69b3480060035410155b151561068657600080fd5b6901b1ae4d6e2ef500000030600160a060020a03163110156106b4576004805460ff191660011790556106d4565b6106bc61078b565b6106c4610805565b6004805461ff0019166101001790555b5b565b600160a060020a033316600090815260208190526040902054819010156106fd57600080fd5b600160a060020a0382166000908152602081905260409020548181011161072357600080fd5b600160a060020a033381166000818152602081905260408082208054869003905592851680825290839020805485019055916000805160206108a48339815191529084905190815260200160405180910390a35b5050565b6003546605ba8f69b34800035b90565b738776a6fa922e65efcea2371692fefe4ab7c933ab600081815260208190527f54b86b24e0739953f0796bb6750fe9b0cc308d045b20e7ada7524ca2b1c4aa81805464dfebe4bc1590810190915560038054820190556000805160206108a48339815191529060405190815260200160405180910390a35b565b60006064606260035460640281151561081a57fe5b0460020281151561082757fe5b73663f98e9c37b9bba460d4d80ca48ef039eae4052600081815260208190527f9515311a1bc0dcec2209378e0cc30da473dc304936bce99a2a09e48741c7647e80549490930493840190925560038054840190559192506000805160206108a48339815191528360405190815260200160405180910390a35b505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820470ac43204901dc7db9d442d8dbf8692c7e30a11d5792d8f022e370d5ced1fd60029

Swarm Source

bzzr://470ac43204901dc7db9d442d8dbf8692c7e30a11d5792d8f022e370d5ced1fd6
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.