Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0x6C2adC2073994fb2CCC5032cC2906Fa221e9B391
Balance 0 ETH
Nonce 1
Code Size 2223 bytes
Indexed Transactions 0 (1 on-chain, 1.2% indexed)
External Etherscan · Sourcify

Contract Bytecode

2223 bytes
0x606060405236156100885763ffffffff60e060020a60003504166306fdde03811461008d578063095ea7b3146101185780630b7abf771461014e57806318160ddd1461017357806323b872dd14610198578063313ce567146101d457806370a08231146101fd57806395d89b411461022e578063a9059cbb146102b9578063dd62ed3e146102ef575b600080fd5b341561009857600080fd5b6100a0610326565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100dd5780820151818401525b6020016100c4565b50505050905090810190601f16801561010a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561012357600080fd5b61013a600160a060020a036004351660243561035d565b604051901515815260200160405180910390f35b341561015957600080fd5b6101616103ca565b60405190815260200160405180910390f35b341561017e57600080fd5b6101616103d9565b60405190815260200160405180910390f35b34156101a357600080fd5b61013a600160a060020a03600435811690602435166044356103df565b604051901515815260200160405180910390f35b34156101df57600080fd5b6101e7610650565b60405160ff909116815260200160405180910390f35b341561020857600080fd5b610161600160a060020a0360043516610655565b60405190815260200160405180910390f35b341561023957600080fd5b6100a0610674565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100dd5780820151818401525b6020016100c4565b50505050905090810190601f16801561010a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c457600080fd5b61013a600160a060020a03600435166024356106ab565b604051901515815260200160405180910390f35b34156102fa57600080fd5b610161600160a060020a0360043581169060243516610856565b60405190815260200160405180910390f35b60408051908101604052600c81527f44656c70687920546f6b656e0000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6a52b7d2dcc80cd2e400000081565b60005481565b600160a060020a038316600090815260016020526040808220547319d07141c1ac170630ddf66835ec28a79bc53ee09163e31c71c4919085908590516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561045857600080fd5b6102c65a03f4151561046957600080fd5b50505060405180519050158061051c5750600160a060020a038085166000908152600260209081526040808320339094168352929052818120547319d07141c1ac170630ddf66835ec28a79bc53ee09263e31c71c4928691516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b15156104ff57600080fd5b6102c65a03f4151561051057600080fd5b50505060405180519050155b806105b65750600160a060020a038316600090815260016020526040808220547319d07141c1ac170630ddf66835ec28a79bc53ee092634e30a66c92869190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561059957600080fd5b6102c65a03f415156105aa57600080fd5b50505060405180519050155b156105c357506000610649565b600160a060020a0380851660008181526001602081815260408084208054899003905560028252808420338716855282528084208054899003905594881680845291905290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b601281565b600160a060020a0381166000908152600160205260409020545b919050565b60408051908101604052600381527f4450590000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a033316600090815260016020526040808220547319d07141c1ac170630ddf66835ec28a79bc53ee09163e31c71c4919085908590516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561072457600080fd5b6102c65a03f4151561073557600080fd5b5050506040518051905015806107da5750600160a060020a038316600090815260016020526040808220547319d07141c1ac170630ddf66835ec28a79bc53ee092634e30a66c92869190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b15156107bd57600080fd5b6102c65a03f415156107ce57600080fd5b50505060405180519050155b156107e7575060006103c4565b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b929150505600a165627a7a72305820af20de791f399f98d8df3b7a750106ff67555b58af7107391efa635b97c655fe0029

Verified Source Code Partial Match

Compiler: v0.4.13+commit.0fb4cb1a Optimization: Yes (200 runs)
DelphyToken.sol 289 lines
/*
  Copyright 2017 Delphy Foundation.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

*/

//   /$$$$$$$            /$$           /$$
//  | $$__  $$          | $$          | $$
//  | $$  \ $$  /$$$$$$ | $$  /$$$$$$ | $$$$$$$  /$$   /$$
//  | $$  | $$ /$$__  $$| $$ /$$__  $$| $$__  $$| $$  | $$
//  | $$  | $$| $$$$$$$$| $$| $$  \ $$| $$  \ $$| $$  | $$
//  | $$  | $$| $$_____/| $$| $$  | $$| $$  | $$| $$  | $$
//  | $$$$$$$/|  $$$$$$$| $$| $$$$$$$/| $$  | $$|  $$$$$$$
//  |_______/  \_______/|__/| $$____/ |__/  |__/ \____  $$
//                          | $$                 /$$  | $$
//                          | $$                |  $$$$$$/
//                          |__/                 \______/

pragma solidity ^0.4.11;


/// @title Abstract token contract - Functions to be implemented by token contracts
contract Token {

    /*
     *  Events
     */
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    /*
     *  Public functions
     */
    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint _value) public returns (bool);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint _value) public returns (bool);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint _value) public returns (bool);

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) public constant returns (uint);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) public constant returns (uint);

    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    uint256 public totalSupply;
}

library Math {
    /// @dev Returns whether an add operation causes an overflow
    /// @param a First addend
    /// @param b Second addend
    /// @return Did no overflow occur?
    function safeToAdd(uint a, uint b)
        public
        constant
        returns (bool)
    {
        return a + b >= a;
    }

    /// @dev Returns whether a subtraction operation causes an underflow
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Did no underflow occur?
    function safeToSub(uint a, uint b)
        public
        constant
        returns (bool)
    {
        return a >= b;
    }

    /// @dev Returns whether a multiply operation causes an overflow
    /// @param a First factor
    /// @param b Second factor
    /// @return Did no overflow occur?
    function safeToMul(uint a, uint b)
        public
        constant
        returns (bool)
    {
        return b == 0 || a * b / b == a;
    }

    /// @dev Returns sum if no overflow occurred
    /// @param a First addend
    /// @param b Second addend
    /// @return Sum
    function add(uint a, uint b)
        public
        constant
        returns (uint)
    {
        require(safeToAdd(a, b));
        return a + b;
    }

    /// @dev Returns difference if no overflow occurred
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Difference
    function sub(uint a, uint b)
        public
        constant
        returns (uint)
    {
        require(safeToSub(a, b));
        return a - b;
    }

    /// @dev Returns product if no overflow occurred
    /// @param a First factor
    /// @param b Second factor
    /// @return Product
    function mul(uint a, uint b)
        public
        constant
        returns (uint)
    {
        require(safeToMul(a, b));
        return a * b;
    }
}


/// @title Standard token contract with overflow protection
contract StandardToken is Token {
    using Math for *;

    /*
     *  Storage
     */
    mapping (address => uint) balances;
    mapping (address => mapping (address => uint)) allowances;

    /*
     *  Public functions
     */
    /// @dev Transfers sender's tokens to a given address. Returns success
    /// @param to Address of token receiver
    /// @param value Number of tokens to transfer
    /// @return Was transfer successful?
    function transfer(address to, uint value)
        public
        returns (bool)
    {
        if (!balances[msg.sender].safeToSub(value)
            || !balances[to].safeToAdd(value))
            return false;
        balances[msg.sender] -= value;
        balances[to] += value;
        Transfer(msg.sender, to, value);
        return true;
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success
    /// @param from Address from where tokens are withdrawn
    /// @param to Address to where tokens are sent
    /// @param value Number of tokens to transfer
    /// @return Was transfer successful?
    function transferFrom(address from, address to, uint value)
        public
        returns (bool)
    {
        if (   !balances[from].safeToSub(value)
            || !allowances[from][msg.sender].safeToSub(value)
            || !balances[to].safeToAdd(value))
            return false;
        balances[from] -= value;
        allowances[from][msg.sender] -= value;
        balances[to] += value;
        Transfer(from, to, value);
        return true;
    }

    /// @dev Sets approved amount of tokens for spender. Returns success
    /// @param spender Address of allowed account
    /// @param value Number of approved tokens
    /// @return Was approval successful?
    function approve(address spender, uint value)
        public
        returns (bool)
    {
        allowances[msg.sender][spender] = value;
        Approval(msg.sender, spender, value);
        return true;
    }

    /// @dev Returns number of allowed tokens for given address
    /// @param owner Address of token owner
    /// @param spender Address of token spender
    /// @return Remaining allowance for spender
    function allowance(address owner, address spender)
        public
        constant
        returns (uint)
    {
        return allowances[owner][spender];
    }

    /// @dev Returns number of tokens owned by given address
    /// @param owner Address of token owner
    /// @return Balance of owner
    function balanceOf(address owner)
        public
        constant
        returns (uint)
    {
        return balances[owner];
    }
}

/// @title Delphy Token contract
/// For Delphy ICO details: https://delphy.org/index.html#ICO
/// For Delphy Project: https://delphy.org
/// @author [email protected]
contract DelphyToken is StandardToken {
    /*
     *  Constants
     */

    string constant public name = "Delphy Token";
    string constant public symbol = "DPY";
    uint8 constant public decimals = 18;

    /// Delphy token total supply
    uint public constant TOTAL_TOKENS = 100000000 * 10**18; // 1e

    /*
     *  Public functions
     */

    /// @dev Initialization of the Delphy Token contract
    /// @param owners is the addresses of Delphy token distribution
    /// @param tokens is the token number of Delphy token distribution
    function DelphyToken(address[] owners, uint[] tokens)
        public
    {
        totalSupply = 0;

        for (uint i=0; i<owners.length; i++) {
            require (owners[i] != 0);

            balances[owners[i]] += tokens[i];
            Transfer(0, owners[i], tokens[i]);
            totalSupply += tokens[i];
        }

        require (totalSupply == TOTAL_TOKENS);
    }
}

Write Contract 10 functions

These functions modify contract state and require a wallet transaction to execute.

TOTAL_TOKENS 0x0b7abf77
No parameters
returns: uint256
allowance 0xdd62ed3e
address owner
address spender
returns: uint256
approve 0x095ea7b3
address spender
uint256 value
returns: bool
balanceOf 0x70a08231
address owner
returns: uint256
decimals 0x313ce567
No parameters
returns: uint8
name 0x06fdde03
No parameters
returns: string
symbol 0x95d89b41
No parameters
returns: string
totalSupply 0x18160ddd
No parameters
returns: uint256
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool

Recent Transactions

This address has 1 on-chain transactions, but only 1.2% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →