Latest 25 transactions from a total of 6163 transactions

TxHash Age From To Value [TxFee]
0xa4ccbce2cbaf7357441084c38f6f661b6c14a64a3637bd0329559c8e22073cdd253 days 12 hrs ago0x6f8103606b649522af9687e8f1e7399eff8c4a6b  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000573925
0x69fae3391ed0deb01c60ceb0946de88c1874e9e84d397afadfe7d542289ba23c255 days 12 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001094331
0x06ecb628b83d308383d112a8cd7361842a3865b301a5ed163c25c9afe4a0d3ff255 days 12 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000706325
0xcd97e356c291fa5a6bc3cdb98d59f0dae37175f4ce3d98e8e4ffb1de9ef962a2255 days 12 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000780675
0x5de66fbbd26e6e5e6916fc398e66adb3a620b8719fa47d61c65c1a142829bdfa255 days 12 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001095675
0x005166924a56f1536b56b83e8de4976b840dff3b7d609482a7a96e0ed72c7e7a255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000780675
0xec16ca8c29d0db508b4533de7667e6246d0f046540e2eb142774c3db9ad17fbe255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000991325
0xe4b3eb5842531a8939a6461671795d09bc969122ecf820754bc7b7bc86384e11255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000052175
0x51401ba71625c89f3186def813880d61e20be75e0970ddfdfa9d6bd8eebd974a255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000573925
0xf48a974cc63ab7b8c5fe9cd359ffd826290b1cc2144c30074c03bf8beab26121255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000833776
0x2986a479e0503077b8dc5292b1a123bc56e4448016bb256726c3179d148a0a84255 days 13 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001617425
0xb021b727b79d46290351092181196ff65554d84c85427bb7505d2a99998dee10255 days 14 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000037175
0x2438b8d17da9e5929e69e99ee43f5c54643f6cad5178a030f5662c804ec994c1255 days 14 hrs ago0x1785dabae321702b216269a3da5c8278049803a0  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000052175
0x41d387f8f7b3fa52321699ef8ec5475b3d609946daebd3e49a726c16c336056f266 days 10 hrs ago0x6f8103606b649522af9687e8f1e7399eff8c4a6b  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.000407517
0x66ab2d25e26f2c200bf15dc7111afa3942bde4dcad79c9a998b398cfb03fb6e6266 days 10 hrs ago0x6f8103606b649522af9687e8f1e7399eff8c4a6b  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.0006261
0x3d4b6eadf653008a25e9ac800d6f13f2181d7b3df5118f4bfae63f924c98de9f273 days 9 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x14f7e7c764041b00ef2a3c454151d878c01d55335c227577ca79dc929ef80607273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0xddd2633ed134d8e6cdf6220c3ae810245d47509cca86d5a98de36a04fa08d5b5273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x47b49db527f690f55947922317133e6a54d84b7651f37ebf79e71218de732403273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x47f1ebefcac2b6d78e2ccb823001734e11cc7203ab9f1f9bd50fb8da962126dd273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0xc545c47ee78b062eae461bf07e778a882dbf0d12a25f7bd2603b4f8477dcd902273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x79798fe11742e1a94d6c759772df20d80dc8442a7ca65e9ddcf1fec563f3236a273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x6a79d9c9dcc9213ddb60faee1d8f6c3aa6520363dba1d166572dc8f91984a331273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0xb8e0082aeedeead17cea4761c523875e69375916b451a0ddd4fc460e3989f394273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
0x83e20e440c9dd05d67b08724f52554561f71cf8adba640971be67cb92606a49b273 days 10 hrs ago0xbfd04af48c978cc0d9bc5e06d9593cb4fb7f6f98  IN   0xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether0.001304375
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xc5eafe16d7e9eb30f710bf81b7fdc192f7edafe297c79823dec8df62fac56f193434347253 days 10 hrs ago0x518d6df67c59ca3e9ac1fe1974770dac70a951040xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x660befcdbc93ab36ccc495ad729443a48fd4c41b1400bc2d4898d960cd7307333421793255 days 13 hrs ago0x518d6df67c59ca3e9ac1fe1974770dac70a951040xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x1f7c3e06c991e1f988a5f31d19970150e7b0ff59d17d36b2f1fe6074f885d5e33421040255 days 16 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xba1e47141e67827fadf5c2851108b993df1cfd7a0f711dc25822c738db5e41963353351266 days 9 hrs ago0x518d6df67c59ca3e9ac1fe1974770dac70a951040xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xb532dc92aa9195950d18dc3bce0b958d73cbb6d1657b7dac3d456e424a7956a93320345271 days 4 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xda936361aebc0ac7e914296313f199797a65d060c1e7ba169b82d148fe85e5e53320290271 days 4 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x749f2e0a2decd89a51851ea91bc47220bca5985131c5ce5b9f5e501c1c0ad7113319802271 days 6 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xeb2b8f635452e015250cf35e4c839983e14ec67b8924de554355832e00b3c8f83319000271 days 9 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xefc39fcbdf84eb21aeff831e195563544110c876a6a64c9b4ee5ad7f56b6671c3314875272 days 2 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x73d4d11a0a905abe253cb3bbea9e1433efa2ec13b6e7ec2acbddb453f3c57c493314584272 days 3 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x5f03feb29222c25f9c69c2d3a3aea55d2e814711608571dbd6a6f781e6b19fcc3314584272 days 3 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x7c360394aec799058ad6857cb654eb3ca8de8517e931a421cea4d7d6a01456f43314581272 days 3 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xfa93a3b28a94602ad1fa30b5d81a5bab792aefb63c82f03379e2113234e52fd43314562272 days 3 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x7e1828446e545fde48fb391ecbc43610938ca419cb9264959a81936bdf47234f3314549272 days 4 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x3a273f9aed755d842d5bbf748d2409db7fab98113f8b406b7b8c290b83973cf33314475272 days 4 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x523381461f37ba2b9e559fb156b805d1e3b491eec22d21efa731e425ccc935243314194272 days 6 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x7dd44529771358b9ae468685bd9c027e42d2367521c4ee710166b5dc8d84fa353314073272 days 6 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x7add54bb3b321b0410d9ec4019819c626995ee6b212220f52e30347d1617fd523313827272 days 7 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x200bf86f596a4b2f015d44526204c220fbd29d976e4c92e4744e31695a290bf03313584272 days 8 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xc6a5d7ecbf898603e3b800ef336cd21e559683d1089d8d5cdab12f22896937443313583272 days 8 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x8bcf5a100123e380bcbe478248d82a31e9262248544ca990dc3eb8901b09853b3312945272 days 10 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0xa2a4ff7f0c8059a9ee3ae3dab495b5e5c1b402e0fef26cb3e4117822a81659a93312874272 days 11 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x6c821ef3bd908929770ce6db2a762357ef91b69cab9da17c6e89f3aa0312919a3312510272 days 13 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x7cfbf68b83cd57c5474c24e14c1f2ec3d005e47ee650eb436e19ee40c7aa9fc93312394272 days 13 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
0x049268dd015452b560960133ea179dab737248671d4e70901d7280af06a1e1213312366272 days 14 hrs ago0x7ddb3d916877366b0cce9e034c0b7487733013080xcad9c6677f51b936408ca3631220c9e45a9af0f60 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: DTT
Compiler Version: v0.4.23+commit.124ca40d
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.23;

interface tokenRecipient {
    function receiveApproval (address from, uint256 value, address token, bytes extraData) external;
}

/**
 * DreamTeam token contract. It implements the next capabilities:
 * 1. Standard ERC20 functionality. [OK]
 * 2. Additional utility function approveAndCall. [OK]
 * 3. Function to rescue "lost forever" tokens, which were accidentally sent to the contract address. [OK]
 * 4. Additional transfer and approve functions which allow to distinct the transaction signer and executor,
 *    which enables accounts with no Ether on their balances to make token transfers and use DreamTeam services. [ALPHA]
 * 5. Token sale distribution rules. [OK]
 */
contract DTT {

    string public name;
    string public symbol;
    uint8 public decimals = 6; // Makes JavaScript able to handle precise calculations (until totalSupply < 9 milliards)
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => mapping(uint => bool)) public usedSigIds; // Used in *ViaSignature(..)
    address public tokenDistributor; // Account authorized to distribute tokens only during the token distribution event
    address public rescueAccount; // Account authorized to withdraw tokens accidentally sent to this contract

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    bytes public ethSignedMessagePrefix = "\x19Ethereum Signed Message:\n";
    enum sigStandard { typed, personal, stringHex }
    enum sigDestination { transfer, approve, approveAndCall, transferFrom }
    bytes32 public sigDestinationTransfer = keccak256(
        "address Token Contract Address",
        "address Sender's Address",
        "address Recipient's Address",
        "uint256 Amount to Transfer (last six digits are decimals)",
        "uint256 Fee in Tokens Paid to Executor (last six digits are decimals)",
        "uint256 Signature Expiration Timestamp (unix timestamp)",
        "uint256 Signature ID"
    ); // `transferViaSignature`: keccak256(address(this), from, to, value, fee, deadline, sigId)
    bytes32 public sigDestinationTransferFrom = keccak256(
        "address Token Contract Address",
        "address Address Approved for Withdraw",
        "address Account to Withdraw From",
        "address Withdrawal Recipient Address",
        "uint256 Amount to Transfer (last six digits are decimals)",
        "uint256 Fee in Tokens Paid to Executor (last six digits are decimals)",
        "uint256 Signature Expiration Timestamp (unix timestamp)",
        "uint256 Signature ID"
    ); // `transferFromViaSignature`: keccak256(address(this), signer, from, to, value, fee, deadline, sigId)
    bytes32 public sigDestinationApprove = keccak256(
        "address Token Contract Address",
        "address Withdrawal Approval Address",
        "address Withdrawal Recipient Address",
        "uint256 Amount to Transfer (last six digits are decimals)",
        "uint256 Fee in Tokens Paid to Executor (last six digits are decimals)",
        "uint256 Signature Expiration Timestamp (unix timestamp)",
        "uint256 Signature ID"
    ); // `approveViaSignature`: keccak256(address(this), from, spender, value, fee, deadline, sigId)
    bytes32 public sigDestinationApproveAndCall = keccak256( // `approveAndCallViaSignature`
        "address Token Contract Address",
        "address Withdrawal Approval Address",
        "address Withdrawal Recipient Address",
        "uint256 Amount to Transfer (last six digits are decimals)",
        "bytes Data to Transfer",
        "uint256 Fee in Tokens Paid to Executor (last six digits are decimals)",
        "uint256 Signature Expiration Timestamp (unix timestamp)",
        "uint256 Signature ID"
    ); // `approveAndCallViaSignature`: keccak256(address(this), from, spender, value, extraData, fee, deadline, sigId)

    constructor (string tokenName, string tokenSymbol) public {
        name = tokenName;
        symbol = tokenSymbol;
        rescueAccount = tokenDistributor = msg.sender;
    }

    /**
     * Utility internal function used to safely transfer `value` tokens `from` -> `to`. Throws if transfer is impossible.
     */
    function internalTransfer (address from, address to, uint value) internal {
        // Prevent people from accidentally burning their tokens + uint256 wrap prevention
        require(to != 0x0 && balanceOf[from] >= value && balanceOf[to] + value >= balanceOf[to]);
        balanceOf[from] -= value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);
    }

    /**
     * Utility internal function used to safely transfer `value1` tokens `from` -> `to1`, and `value2` tokens
     * `from` -> `to2`, minimizing gas usage (calling `internalTransfer` twice is more expensive). Throws if
     * transfers are impossible.
     */
    function internalDoubleTransfer (address from, address to1, uint value1, address to2, uint value2) internal {
        require( // Prevent people from accidentally burning their tokens + uint256 wrap prevention
            to1 != 0x0 && to2 != 0x0 && value1 + value2 >= value1 && balanceOf[from] >= value1 + value2
            && balanceOf[to1] + value1 >= balanceOf[to1] && balanceOf[to2] + value2 >= balanceOf[to2]
        );
        balanceOf[from] -= value1 + value2;
        balanceOf[to1] += value1;
        emit Transfer(from, to1, value1);
        if (value2 > 0) {
            balanceOf[to2] += value2;
            emit Transfer(from, to2, value2);
        }
    }

    /**
     * Internal method that makes sure that the given signature corresponds to a given data and is made by `signer`.
     * It utilizes three (four) standards of message signing in Ethereum, as at the moment of this smart contract
     * development there is no single signing standard defined. For example, Metamask and Geth both support
     * personal_sign standard, SignTypedData is only supported by Matamask, Trezor does not support "widely adopted"
     * Ethereum personal_sign but rather personal_sign with fixed prefix and so on.
     * Note that it is always possible to forge any of these signatures using the private key, the problem is that
     * third-party wallets must adopt a single standard for signing messages.
     */
    function requireSignature (
        bytes32 data, address signer, uint256 deadline, uint256 sigId, bytes sig, sigStandard std, sigDestination signDest
    ) internal {
        bytes32 r;
        bytes32 s;
        uint8 v;
        assembly { // solium-disable-line security/no-inline-assembly
            r := mload(add(sig, 32))
            s := mload(add(sig, 64))
            v := byte(0, mload(add(sig, 96)))
        }
        if (v < 27)
            v += 27;
        require(block.timestamp <= deadline && !usedSigIds[signer][sigId]); // solium-disable-line security/no-block-members
        if (std == sigStandard.typed) { // Typed signature. This is the most likely scenario to be used and accepted
            require(
                signer == ecrecover(
                    keccak256(
                        signDest == sigDestination.transfer
                            ? sigDestinationTransfer
                            : signDest == sigDestination.approve
                                ? sigDestinationApprove
                                : signDest == sigDestination.approveAndCall
                                    ? sigDestinationApproveAndCall
                                    : sigDestinationTransferFrom,
                        data
                    ),
                    v, r, s
                )
            );
        } else if (std == sigStandard.personal) { // Ethereum signed message signature (Geth and Trezor)
            require(
                signer == ecrecover(keccak256(ethSignedMessagePrefix, "32", data), v, r, s) // Geth-adopted
                ||
                signer == ecrecover(keccak256(ethSignedMessagePrefix, "\x20", data), v, r, s) // Trezor-adopted
            );
        } else { // == 2; Signed string hash signature (the most expensive but universal)
            require(
                signer == ecrecover(keccak256(ethSignedMessagePrefix, "64", hexToString(data)), v, r, s) // Geth
                ||
                signer == ecrecover(keccak256(ethSignedMessagePrefix, "\x40", hexToString(data)), v, r, s) // Trezor
            );
        }
        usedSigIds[signer][sigId] = true;
    }

    /**
     * Utility costly function to encode bytes HEX representation as string.
     * @param sig - signature to encode.
     */
    function hexToString (bytes32 sig) internal pure returns (bytes) { // /to-try/ convert to two uint256 and test gas
        bytes memory str = new bytes(64);
        for (uint8 i = 0; i < 32; ++i) {
            str[2 * i] = byte((uint8(sig[i]) / 16 < 10 ? 48 : 87) + uint8(sig[i]) / 16);
            str[2 * i + 1] = byte((uint8(sig[i]) % 16 < 10 ? 48 : 87) + (uint8(sig[i]) % 16));
        }
        return str;
    }

    /**
     * Transfer `value` tokens to `to` address from the account of sender.
     * @param to - the address of the recipient
     * @param value - the amount to send
     */
    function transfer (address to, uint256 value) public returns (bool) {
        internalTransfer(msg.sender, to, value);
        return true;
    }

    /**
     * This function distincts transaction signer from transaction executor. It allows anyone to transfer tokens
     * from the `from` account by providing a valid signature, which can only be obtained from the `from` account
     * owner.
     * Note that passed parameter sigId is unique and cannot be passed twice (prevents replay attacks). When there's
     * a need to make signature once again (because the first on is lost or whatever), user should sign the message
     * with the same sigId, thus ensuring that the previous signature won't be used if the new one passes.
     * Use case: the user wants to send some tokens to other user or smart contract, but don't have ether to do so.
     * @param from - the account giving its signature to transfer `value` tokens to `to` address
     * @param to - the account receiving `value` tokens
     * @param value - the value in tokens to transfer
     * @param fee - a fee to pay to transaction executor (`msg.sender`)
     * @param deadline - until when the signature is valid
     * @param sigId - signature unique ID. Signatures made with the same signature ID cannot be submitted twice
     * @param sig - signature made by `from`, which is the proof of `from`'s agreement with the above parameters
     * @param sigStd - chosen standard for signature validation. The signer must explicitly tell which standard they use
     */
    function transferViaSignature (
        address     from,
        address     to,
        uint256     value,
        uint256     fee,
        uint256     deadline,
        uint256     sigId,
        bytes       sig,
        sigStandard sigStd
    ) external returns (bool) {
        requireSignature(
            keccak256(address(this), from, to, value, fee, deadline, sigId),
            from, deadline, sigId, sig, sigStd, sigDestination.transfer
        );
        internalDoubleTransfer(from, to, value, msg.sender, fee);
        return true;
    }

    /**
     * Allow `spender` to take `value` tokens from the transaction sender's account.
     * Beware that changing an allowance with this method brings the risk that `spender` may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender - the address authorized to spend
     * @param value - the maximum amount they can spend
     */
    function approve (address spender, uint256 value) public returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * Same as `transferViaSignature`, but for `approve`.
     * Use case: the user wants to set an allowance for the smart contract or another user without having ether on their
     * balance.
     * @param from - the account to approve withdrawal from, which signed all below parameters
     * @param spender - the account allowed to withdraw tokens from `from` address
     * @param value - the value in tokens to approve to withdraw
     * @param fee - a fee to pay to transaction executor (`msg.sender`)
     * @param deadline - until when the signature is valid
     * @param sigId - signature unique ID. Signatures made with the same signature ID cannot be submitted twice
     * @param sig - signature made by `from`, which is the proof of `from`'s agreement with the above parameters
     * @param sigStd - chosen standard for signature validation. The signer must explicitely tell which standard they use
     */
    function approveViaSignature (
        address     from,
        address     spender,
        uint256     value,
        uint256     fee,
        uint256     deadline,
        uint256     sigId,
        bytes       sig,
        sigStandard sigStd
    ) external returns (bool) {
        requireSignature(
            keccak256(address(this), from, spender, value, fee, deadline, sigId),
            from, deadline, sigId, sig, sigStd, sigDestination.approve
        );
        allowance[from][spender] = value;
        emit Approval(from, spender, value);
        internalTransfer(from, msg.sender, fee);
        return true;
    }

    /**
     * Transfer `value` tokens to `to` address from the `from` account, using the previously set allowance.
     * @param from - the address to transfer tokens from
     * @param to - the address of the recipient
     * @param value - the amount to send
     */
    function transferFrom (address from, address to, uint256 value) public returns (bool) {
        require(value <= allowance[from][msg.sender]); // Test whether allowance was set
        allowance[from][msg.sender] -= value;
        internalTransfer(from, to, value);
        return true;
    }

    /**
     * Same as `transferViaSignature`, but for `transferFrom`.
     * Use case: the user wants to withdraw tokens from a smart contract or another user who allowed the user to do so.
     * Important note: fee is subtracted from `value` before it reaches `to`.
     * @param from - the address to transfer tokens from
     * @param to - the address of the recipient
     * @param value - the amount to send
     */
    function transferFromViaSignature (
        address     signer,
        address     from,
        address     to,
        uint256     value,
        uint256     fee,
        uint256     deadline,
        uint256     sigId,
        bytes       sig,
        sigStandard sigStd
    ) external returns (bool) {
        requireSignature(
            keccak256(address(this), signer, from, to, value, fee, deadline, sigId),
            signer, deadline, sigId, sig, sigStd, sigDestination.transferFrom
        );
        require(value <= allowance[from][signer] && value >= fee);
        allowance[from][signer] -= value;
        internalDoubleTransfer(from, to, value - fee, msg.sender, fee);
        return true;
    }

    /**
     * Utility function, which acts the same as approve(...) does, but also calls `receiveApproval` function on a
     * `spender` address, which is usually the address of the smart contract. In the same call, smart contract can
     * withdraw tokens from the sender's account and receive additional `extraData` for processing.
     * @param spender - the address to be authorized to spend tokens
     * @param value - the max amount the `spender` can withdraw
     * @param extraData - some extra information to send to the approved contract
     */
    function approveAndCall (address spender, uint256 value, bytes extraData) public returns (bool) {
        approve(spender, value);
        tokenRecipient(spender).receiveApproval(msg.sender, value, this, extraData);
        return true;
    }

    /**
     * Same as `approveViaSignature`, but for `approveAndCall`.
     * Use case: the user wants to send tokens to the smart contract and pass additional data within one transaction.
     * @param from - the account to approve withdrawal from, which signed all below parameters
     * @param spender - the account allowed to withdraw tokens from `from` address (in this case, smart contract only)
     * @param value - the value in tokens to approve to withdraw
     * @param extraData - additional data to pass to the `spender` smart contract
     * @param fee - a fee to pay to transaction executor (`msg.sender`)
     * @param deadline - until when the signature is valid
     * @param sigId - signature unique ID. Signatures made with the same signature ID cannot be submitted twice
     * @param sig - signature made by `from`, which is the proof of `from`'s agreement with the above parameters
     * @param sigStd - chosen standard for signature validation. The signer must explicitely tell which standard they use
     */
    function approveAndCallViaSignature (
        address     from,
        address     spender,
        uint256     value,
        bytes       extraData,
        uint256     fee,
        uint256     deadline,
        uint256     sigId,
        bytes       sig,
        sigStandard sigStd
    ) external returns (bool) {
        requireSignature(
            keccak256(address(this), from, spender, value, extraData, fee, deadline, sigId),
            from, deadline, sigId, sig, sigStd, sigDestination.approveAndCall
        );
        allowance[from][spender] = value;
        emit Approval(from, spender, value);
        tokenRecipient(spender).receiveApproval(from, value, this, extraData);
        internalTransfer(from, msg.sender, fee);
        return true;
    }

    /**
     * `tokenDistributor` is authorized to distribute tokens to the parties who participated in the token sale by the
     * time the `lastMint` function is triggered, which closes the ability to mint any new tokens forever.
     * @param recipients - Addresses of token recipients
     * @param amounts - Corresponding amount of each token recipient in `recipients`
     */
    function multiMint (address[] recipients, uint256[] amounts) external {
        
        // Once the token distribution ends, tokenDistributor will become 0x0 and multiMint will never work
        require(tokenDistributor != 0x0 && tokenDistributor == msg.sender && recipients.length == amounts.length);

        uint total = 0;

        for (uint i = 0; i < recipients.length; ++i) {
            balanceOf[recipients[i]] += amounts[i];
            total += amounts[i];
            emit Transfer(0x0, recipients[i], amounts[i]);
        }

        totalSupply += total;
        
    }

    /**
     * The last mint that will ever happen. Disables the multiMint function and mints remaining 40% of tokens (in
     * regard of 60% tokens minted before) to a `tokenDistributor` address.
     */
    function lastMint () external {

        require(tokenDistributor != 0x0 && tokenDistributor == msg.sender && totalSupply > 0);

        uint256 remaining = totalSupply * 40 / 60; // Portion of tokens for DreamTeam (40%)

        // To make the total supply rounded (no fractional part), subtract the fractional part from DreamTeam's balance
        uint256 fractionalPart = (remaining + totalSupply) % (uint256(10) ** decimals);
        if (fractionalPart <= remaining)
            remaining -= fractionalPart; // Remove the fractional part to round the totalSupply

        balanceOf[tokenDistributor] += remaining;
        emit Transfer(0x0, tokenDistributor, remaining);

        totalSupply += remaining;
        tokenDistributor = 0x0; // Disable multiMint and lastMint functions forever

    }

    /**
     * ERC20 token is not designed to hold any tokens itself. This function allows to rescue tokens accidentally sent
     * to the address of this smart contract.
     * @param tokenContract - ERC-20 compatible token
     * @param value - amount to rescue
     */
    function rescueTokens (DTT tokenContract, uint256 value) public {
        require(msg.sender == rescueAccount);
        tokenContract.approve(rescueAccount, value);
    }

    /**
     * Utility function that allows to change the rescueAccount address.
     * @param newRescueAccount - account which will be authorized to rescue tokens.
     */
    function changeRescueAccount (address newRescueAccount) public {
        require(msg.sender == rescueAccount);
        rescueAccount = newRescueAccount;
    }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"usedSigIds","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenDistributor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"multiMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newRescueAccount","type":"address"}],"name":"changeRescueAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sigDestinationApprove","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"extraData","type":"bytes"},{"name":"fee","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"sigId","type":"uint256"},{"name":"sig","type":"bytes"},{"name":"sigStd","type":"uint8"}],"name":"approveAndCallViaSignature","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenContract","type":"address"},{"name":"value","type":"uint256"}],"name":"rescueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"lastMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ethSignedMessagePrefix","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"sigId","type":"uint256"},{"name":"sig","type":"bytes"},{"name":"sigStd","type":"uint8"}],"name":"transferViaSignature","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sigDestinationTransfer","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"sigId","type":"uint256"},{"name":"sig","type":"bytes"},{"name":"sigStd","type":"uint8"}],"name":"approveViaSignature","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sigDestinationTransferFrom","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rescueAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"signer","type":"address"},{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"sigId","type":"uint256"},{"name":"sig","type":"bytes"},{"name":"sigStd","type":"uint8"}],"name":"transferFromViaSignature","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sigDestinationApproveAndCall","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6002805460ff1916600617905560c0604052601a60808190527f19457468657265756d205369676e6564204d6573736167653a0a00000000000060a09081526200004d9160099190620006bc565b506040518080600080516020620024e4833981519152815250601e01807f616464726573732053656e646572277320416464726573730000000000000000815250601801807f6164647265737320526563697069656e74277320416464726573730000000000815250601b0180600080516020620024a4833981519152815260200160008051602062002464833981519152815250603901806000805160206200248483398151915281526020016000805160206200252483398151915281526020017f6d616c7329000000000000000000000000000000000000000000000000000000815250604501806000805160206200254483398151915281526020016000805160206200256483398151915281525060370180600080516020620024c483398151915281525060140190506040518091039020600a906000191690556040518080600080516020620024e4833981519152815250601e01807f61646472657373204164647265737320417070726f76656420666f722057697481526020017f6864726177000000000000000000000000000000000000000000000000000000815250602501807f61646472657373204163636f756e7420746f2057697468647261772046726f6d815250602001806000805160206200250483398151915281526020017f726573730000000000000000000000000000000000000000000000000000000081525060240180600080516020620024a4833981519152815260200160008051602062002464833981519152815250603901806000805160206200248483398151915281526020016000805160206200252483398151915281526020017f6d616c7329000000000000000000000000000000000000000000000000000000815250604501806000805160206200254483398151915281526020016000805160206200256483398151915281525060370180600080516020620024c483398151915281525060140190506040518091039020600b906000191690556040518080600080516020620024e4833981519152815250601e01806000805160206200258483398151915281526020017f6573730000000000000000000000000000000000000000000000000000000000815250602301806000805160206200250483398151915281526020017f726573730000000000000000000000000000000000000000000000000000000081525060240180600080516020620024a4833981519152815260200160008051602062002464833981519152815250603901806000805160206200248483398151915281526020016000805160206200252483398151915281526020017f6d616c7329000000000000000000000000000000000000000000000000000000815250604501806000805160206200254483398151915281526020016000805160206200256483398151915281525060370180600080516020620024c483398151915281525060140190506040518091039020600c906000191690556040518080600080516020620024e4833981519152815250601e01806000805160206200258483398151915281526020017f6573730000000000000000000000000000000000000000000000000000000000815250602301806000805160206200250483398151915281526020017f726573730000000000000000000000000000000000000000000000000000000081525060240180600080516020620024a4833981519152815260200160008051602062002464833981519152815250603901807f6279746573204461746120746f205472616e7366657200000000000000000000815250601601806000805160206200248483398151915281526020016000805160206200252483398151915281526020017f6d616c7329000000000000000000000000000000000000000000000000000000815250604501806000805160206200254483398151915281526020016000805160206200256483398151915281525060370180600080516020620024c483398151915281525060140190506040518091039020600d906000191690553480156200063657600080fd5b50604051620025a4380380620025a4833981016040528051602080830151918301805190939290920191620006729160009190850190620006bc565b50805162000688906001906020840190620006bc565b505060078054600160a060020a033316600160a060020a031991821681179092556008805490911690911790555062000761565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006ff57805160ff19168380011785556200072f565b828001600101855582156200072f579182015b828111156200072f57825182559160200191906001019062000712565b506200073d92915062000741565b5090565b6200075e91905b808211156200073d576000815560010162000748565b90565b611cf380620007716000396000f30060806040526004361061013a5763ffffffff60e060020a60003504166306fdde03811461013f578063095ea7b3146101c957806316f1d1191461020157806318160ddd1461022557806318a6bc321461024c57806323b872dd1461027d5780632f81bc71146102a7578063313ce567146102d55780633a6937591461030057806344bb60cf1461032157806351c9a08c14610336578063573761981461038e578063586fc5b5146103b25780635f647d5a146103c757806370a08231146103dc578063818518d1146103fd57806381d9600514610448578063936bf3561461045d57806395d89b41146104a8578063a9059cbb146104bd578063bc39d42f146104e1578063c1c0e046146104f6578063cae9ca511461050b578063cd001f9c14610574578063dd62ed3e146105c5578063e797496b146105ec575b600080fd5b34801561014b57600080fd5b50610154610601565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018e578181015183820152602001610176565b50505050905090810190601f1680156101bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d557600080fd5b506101ed600160a060020a036004351660243561068f565b604080519115158252519081900360200190f35b34801561020d57600080fd5b506101ed600160a060020a03600435166024356106f9565b34801561023157600080fd5b5061023a610719565b60408051918252519081900360200190f35b34801561025857600080fd5b5061026161071f565b60408051600160a060020a039092168252519081900360200190f35b34801561028957600080fd5b506101ed600160a060020a036004358116906024351660443561072e565b3480156102b357600080fd5b506102d360246004803582810192908201359181359182019101356107a5565b005b3480156102e157600080fd5b506102ea6108d7565b6040805160ff9092168252519081900360200190f35b34801561030c57600080fd5b506102d3600160a060020a03600435166108e0565b34801561032d57600080fd5b5061023a61092a565b34801561034257600080fd5b506101ed600160a060020a03600480358216916024803590911691604435916064358082019290810135916084359160a4359160c4359160e43591820191013560ff6101043516610930565b34801561039a57600080fd5b506102d3600160a060020a0360043516602435610b97565b3480156103be57600080fd5b506102d3610c51565b3480156103d357600080fd5b50610154610d3d565b3480156103e857600080fd5b5061023a600160a060020a0360043516610d98565b34801561040957600080fd5b506101ed600160a060020a0360048035821691602480359091169160443591606435916084359160a4359160c43591820191013560ff60e43516610daa565b34801561045457600080fd5b5061023a610e62565b34801561046957600080fd5b506101ed600160a060020a0360048035821691602480359091169160443591606435916084359160a4359160c43591820191013560ff60e43516610e68565b3480156104b457600080fd5b50610154610f6b565b3480156104c957600080fd5b506101ed600160a060020a0360043516602435610fc5565b3480156104ed57600080fd5b5061023a610fdb565b34801561050257600080fd5b50610261610fe1565b34801561051757600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101ed948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610ff09650505050505050565b34801561058057600080fd5b506101ed60048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e4359182019101356101043560ff16611106565b3480156105d157600080fd5b5061023a600160a060020a0360043581169060243516611237565b3480156105f857600080fd5b5061023a611254565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106875780601f1061065c57610100808354040283529160200191610687565b820191906000526020600020905b81548152906001019060200180831161066a57829003601f168201915b505050505081565b600160a060020a03338116600081815260056020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600660209081526000928352604080842090915290825290205460ff1681565b60035481565b600754600160a060020a031681565b600160a060020a0380841660009081526005602090815260408083203390941683529290529081205482111561076357600080fd5b600160a060020a038085166000908152600560209081526040808320339094168352929052208054839003905561079b84848461125a565b5060019392505050565b6007546000908190600160a060020a0316158015906107d2575060075433600160a060020a039081169116145b80156107dd57508483145b15156107e857600080fd5b5060009050805b848110156108c75783838281811061080357fe5b9050602002013560046000888885818110151561081c57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805491909101905583838281811061085257fe5b9050602002013582019150858582818110151561086b57fe5b90506020020135600160a060020a0316600160a060020a03166000600080516020611ca883398151915286868581811015156108a357fe5b905060200201356040518082815260200191505060405180910390a36001016107ef565b5060038054909101905550505050565b60025460ff1681565b60085433600160a060020a039081169116146108fb57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600c5481565b6000610a2b308d8d8d8d8d8d8d8d604051808a600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140189600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140188600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018781526020018686808284378201915050848152602001838152602001828152602001995050505050505050505060405180910390208d888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050876002611315565b89600560008e600160a060020a0316600160a060020a0316815260200190815260200160002060008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508a600160a060020a03168c600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258c6040518082815260200191505060405180910390a38a600160a060020a0316638f4ffcb18d8c308d8d6040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185815260200184600160a060020a0316600160a060020a0316815260200180602001828103825284848281815260200192508082843782019150509650505050505050600060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b50505050610b858c338961125a565b5060019b9a5050505050505050505050565b60085433600160a060020a03908116911614610bb257600080fd5b600854604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519184169163095ea7b3916044808201926020929091908290030181600087803b158015610c2157600080fd5b505af1158015610c35573d6000803e3d6000fd5b505050506040513d6020811015610c4b57600080fd5b50505050565b6007546000908190600160a060020a031615801590610c7e575060075433600160a060020a039081169116145b8015610c8c57506000600354115b1515610c9757600080fd5b600354600254603c6028830204935060ff16600a0a908301811515610cb857fe5b069050818111610cc85780820391505b60078054600160a060020a0390811660009081526004602090815260408083208054880190559354845187815294519316939192600080516020611ca88339815191529281900390910190a3506003805490910190556007805473ffffffffffffffffffffffffffffffffffffffff19169055565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106875780601f1061065c57610100808354040283529160200191610687565b60046020526000908152604090205481565b604080516c01000000000000000000000000600160a060020a0330811682028352808d16820260148401528b16026028820152603c8101899052605c8101889052607c8101879052609c810186905281519081900360bc0181206020601f8601819004810283018101909352848252600092610e45928d918a918a918a908a9081908401838280828437820191505050505050876000611315565b610e528a8a8a338b611997565b5060019998505050505050505050565b600a5481565b604080516c01000000000000000000000000600160a060020a0330811682028352808d16820260148401528b16026028820152603c8101899052605c8101889052607c8101879052609c810186905281519081900360bc0181206020601f8601819004810283018101909352848252600092610f03928d918a918a918a908a9081908401838280828437820191505050505050876001611315565b600160a060020a03808b166000818152600560209081526040808320948e16808452948252918290208c905581518c815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3610e528a338961125a565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106875780601f1061065c57610100808354040283529160200191610687565b6000610fd233848461125a565b50600192915050565b600b5481565b600854600160a060020a031681565b6000610ffc848461068f565b5083600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561109557818101518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b506001979650505050505050565b604080516c01000000000000000000000000600160a060020a0330811682028352808e1682026014840152808d16820260288401528b1602603c82015260508101899052607081018890526090810187905260b0810186905281519081900360d00181206020601f86018190048102830181019093528482526000926111ab928e918a918a918a908a9081908401838280828437820191505050505050876003611315565b600160a060020a03808b166000908152600560209081526040808320938f168352929052205488118015906111e05750868810155b15156111eb57600080fd5b600160a060020a03808b166000908152600560209081526040808320938f16835292905220805489900390556112268a8a898b03338b611997565b5060019a9950505050505050505050565b600560209081526000928352604080842090915290825290205481565b600d5481565b600160a060020a0382161580159061128a5750600160a060020a0383166000908152600460205260409020548111155b80156112b05750600160a060020a03821660009081526004602052604090205481810110155b15156112bb57600080fd5b600160a060020a0380841660008181526004602090815260408083208054879003905593861680835291849020805486019055835185815293519193600080516020611ca8833981519152929081900390910190a3505050565b60208301516040840151606085015160001a601b60ff8216101561133757601b015b87421115801561136b5750600160a060020a03891660009081526006602090815260408083208a845290915290205460ff16155b151561137657600080fd5b600085600281111561138457fe5b141561147b576001600085600381111561139a57fe5b146113df5760018560038111156113ad57fe5b146113d65760028560038111156113c057fe5b146113cd57600b546113d1565b600d545b6113da565b600c545b6113e3565b600a545b6040805191825260208083018e90528151928390038201832060008085528483018085529190915260ff8616848401526060840188905260808401879052915160a0808501949293601f198301938390039091019190865af115801561144d573d6000803e3d6000fd5b50505060206040510351600160a060020a031689600160a060020a031614151561147657600080fd5b61195c565b600185600281111561148957fe5b141561169c57600160098b60405180838054600181600116156101000203166002900480156114ef5780601f106114cd5761010080835404028352918201916114ef565b820191906000526020600020905b8154815290600101906020018083116114db575b50507f3332000000000000000000000000000000000000000000000000000000000000815260028101929092525060408051918290036022018220600080845260208481018085529290925260ff8716848401526060840189905260808401889052915160a080850195509193601f198201939082900390920191865af115801561157e573d6000803e3d6000fd5b50505060206040510351600160a060020a031689600160a060020a031614806116915750600160098b60405180838054600181600116156101000203166002900480156116025780601f106115e0576101008083540402835291820191611602565b820191906000526020600020905b8154815290600101906020018083116115ee575b50507f2000000000000000000000000000000000000000000000000000000000000000815260018101929092525060408051918290036021018220600080845260208481018085529290925260ff8716848401526060840189905260808401889052915160a080850195509193601f198201939082900390920191865af115801561144d573d6000803e3d6000fd5b151561147657600080fd5b600160096116a98c611af1565b60405180838054600181600116156101000203166002900480156117045780601f106116e2576101008083540402835291820191611704565b820191906000526020600020905b8154815290600101906020018083116116f0575b5050807f363400000000000000000000000000000000000000000000000000000000000081525060020182805190602001908083835b602083106117595780518252601f19909201916020918201910161173a565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8a1683860152606083018c9052608083018b9052935160a08084019850919650601f1981019550918290030192909150865af11580156117d5573d6000803e3d6000fd5b50505060206040510351600160a060020a031689600160a060020a031614806119515750600160096118068c611af1565b60405180838054600181600116156101000203166002900480156118615780601f1061183f576101008083540402835291820191611861565b820191906000526020600020905b81548152906001019060200180831161184d575b5050807f400000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b602083106118b65780518252601f199092019160209182019101611897565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8a1683860152606083018c9052608083018b9052935160a08084019850919650601f1981019550918290030192909150865af1158015611932573d6000803e3d6000fd5b50505060206040510351600160a060020a031689600160a060020a0316145b151561195c57600080fd5b505050600160a060020a03909516600090815260066020908152604080832095835294905292909220805460ff191660011790555050505050565b600160a060020a038416158015906119b75750600160a060020a03821615155b80156119c557508281840110155b80156119eb5750600160a060020a03851660009081526004602052604090205483820111155b8015611a115750600160a060020a03841660009081526004602052604090205483810110155b8015611a375750600160a060020a03821660009081526004602052604090205481810110155b1515611a4257600080fd5b600160a060020a03808616600081815260046020908152604080832080548988019003905593881680835291849020805488019055835187815293519193600080516020611ca8833981519152929081900390910190a36000811115611aea57600160a060020a03808316600081815260046020908152604091829020805486019055815185815291519293891692600080516020611ca88339815191529281900390910190a35b5050505050565b60408051818152606080820183529182916000916020820161080080388339019050509150600090505b60208160ff161015611ca05760108460ff831660208110611b3857fe5b1a60f860020a0260f860020a900460ff16811515611b5257fe5b04600a60108660ff851660208110611b6657fe5b1a60f860020a0260f860020a900460ff16811515611b8057fe5b0460ff1610611b90576057611b93565b60305b0160f860020a02828260020260ff16815181101515611bae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060108460ff831660208110611bef57fe5b1a60f860020a0260f860020a900460ff16811515611c0957fe5b06600a60108660ff851660208110611c1d57fe5b1a60f860020a0260f860020a900460ff16811515611c3757fe5b0660ff1610611c47576057611c4a565b60305b0160f860020a02828260020260010160ff16815181101515611c6857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611b1b565b50929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582049ecfbd4bac0b561305b37d9829bab7a27f37044e15d6ff3f2957c92435da72e002920736978206469676974732061726520646563696d616c73290000000000000075696e743235362046656520696e20546f6b656e73205061696420746f20457875696e7432353620416d6f756e7420746f205472616e7366657220286c61737475696e74323536205369676e61747572652049440000000000000000000000006164647265737320546f6b656e20436f6e74726163742041646472657373000061646472657373205769746864726177616c20526563697069656e7420416464656375746f7220286c617374207369782064696769747320617265206465636975696e74323536205369676e61747572652045787069726174696f6e2054696d657374616d702028756e69782074696d657374616d702900000000000000000061646472657373205769746864726177616c20417070726f76616c204164647200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f447265616d5465616d20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034454540000000000000000000000000000000000000000000000000000000000

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f447265616d5465616d20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034454540000000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [3] : 447265616d5465616d20546f6b656e0000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 4454540000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://49ecfbd4bac0b561305b37d9829bab7a27f37044e15d6ff3f2957c92435da72e

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward