Sponsored:   Temco - Join the Largest VC Backed ICO on the Bitcoin Network! TEMCO KYC Whitelist Starts Now!!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 10205 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x3caf983accccc2551195e0809b7824da6fde4ec8at txn 0xd63f398ca7022e0a52f22164569a43da204003f5223088e6fa5ebaf3b5682f14
Token Balance:
 Latest 25 transactions from a total of 10205 transactions

TxHash Age From To Value [TxFee]
0xf27b93788b520d5dc05fd2461e6080e811a3548e6714af52f0bf10d84ba4422d242 days 15 mins ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x19e07186c1dd5e868f25f44927c67de548853b2fe4bc08d60f6ee870437c5d23242 days 37 mins ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x33f3c4c54c82e1c1037b03e75194305269040864249824c1e9992e6db15aa487242 days 39 mins ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x441dd271f8dc7f087bcb1d9077fb6f80aa0fe809d0edf9c6325dc690a24d6669242 days 50 mins ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xf17f53a1f12c745e167a8925db89b63be5937429c40ba410cb89f19decb403c6242 days 1 hr ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110867
0xd5ef3e1188c4e752e9e166ba9f63864f231595bb60b61b96d07199c6828bba7a242 days 1 hr ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x7243f01faa71fa5637cdc826afa437f1da4d7caa1ba09833ba625badaf80fa98242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xc30ae06cb97300b1947b5e07a384f3619c270a366302cd6693a32781165b4443242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110867
0x927e3394f0db0074f9da56eaf9f1e6e244f5576cf50f4a22b38655d71777efd3242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110867
0xdd35a29669c67a56ef2859fcbfb66ec7ba9f297557b8257cb9008b315bcbe851242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xf857be2a01233da58bdba373c413b661b82cb430fa90fe4c82ef17f43ffa8ece242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xac2f70b3ca3c99a0546f7ab469ea651b362ae5bdee76655a3c35d92ee9ff9124242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x812cfc8e7814529a53c0d813f5327df78a8d9050f3957ef535fd14754f288b24242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x6997f1004751604619e90900d389477953ce7cc5bc23ac95fb97e5dc53f6c0ea242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x8ff1b252fcaa2bdc73b1ff9f7803a915e1cf2ded9d6ac3cc6ba0904237a9f8b9242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xc91590daebe0bbb3f6185d01fddbe759837ed8d2e18be039a4c012f5c00067ce242 days 2 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x79642539a96a422753cff42e550e61ba86c903718c4005ce77971e05de51fa83242 days 13 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x1c7fd5c38d9c7ff6e53d433470320d09ab740471b4fe988d4bac99b562f88f0b242 days 13 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x6a71b3d5c05e60fb7e34acd3392272a9c2d251e68950d2057b4ccab820ccf3bd242 days 13 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110867
0x44371c06f0c03f49a173ffd41ab92a88c3501b510558ed659fba3268cd8203b7242 days 13 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xb0ac1140338f54c689e6a91840626544a2eac607948f42e087a00e53640115c8242 days 21 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x4f696950a21389ee1db115a6c9ba5dd31be853b339272ec4b0790c742fdce94a242 days 21 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x0c844da5026b7bea282d621b86c6e3bfd316cb5cb7ac1b04b848fd980b27de12242 days 21 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0xbb7dcb0c8b0410189c7bc73a2e87ec9fc11898c5d686d89bf01d6275874aec48242 days 21 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
0x8634354359cf8d6b1897983f51cffcc7223b21d8edbe739fc97316ed4d5185bf242 days 21 hrs ago0x454023a0d64517b2453de954b938ecee827fc6a3  IN   0x531ac3341edfc39a04ed4c8b44ec396a46bc86900 Ether0.000110931
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Whitelist
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

/**
 * IOwnership
 *
 * Perminent ownership
 *
 * #created 01/10/2017
 * #author Frank Bonnet
 */
interface IOwnership {

    /**
     * Returns true if `_account` is the current owner
     *
     * @param _account The address to test against
     */
    function isOwner(address _account) public view returns (bool);


    /**
     * Gets the current owner
     *
     * @return address The current owner
     */
    function getOwner() public view returns (address);
}


/**
 * Ownership
 *
 * Perminent ownership
 *
 * #created 01/10/2017
 * #author Frank Bonnet
 */
contract Ownership is IOwnership {

    // Owner
    address internal owner;


    /**
     * Access is restricted to the current owner
     */
    modifier only_owner() {
        require(msg.sender == owner);
        _;
    }


    /**
     * The publisher is the inital owner
     */
    function Ownership() public {
        owner = msg.sender;
    }


    /**
     * Returns true if `_account` is the current owner
     *
     * @param _account The address to test against
     */
    function isOwner(address _account) public view returns (bool) {
        return _account == owner;
    }


    /**
     * Gets the current owner
     *
     * @return address The current owner
     */
    function getOwner() public view returns (address) {
        return owner;
    }
}


/**
 * ITransferableOwnership
 *
 * Enhances ownership by allowing the current owner to 
 * transfer ownership to a new owner
 *
 * #created 01/10/2017
 * #author Frank Bonnet
 */
interface ITransferableOwnership {
    

    /**
     * Transfer ownership to `_newOwner`
     *
     * @param _newOwner The address of the account that will become the new owner 
     */
    function transferOwnership(address _newOwner) public;
}



/**
 * TransferableOwnership
 *
 * Enhances ownership by allowing the current owner to 
 * transfer ownership to a new owner
 *
 * #created 01/10/2017
 * #author Frank Bonnet
 */
contract TransferableOwnership is ITransferableOwnership, Ownership {


    /**
     * Transfer ownership to `_newOwner`
     *
     * @param _newOwner The address of the account that will become the new owner 
     */
    function transferOwnership(address _newOwner) public only_owner {
        owner = _newOwner;
    }
}


/**
 * IAuthenticator 
 *
 * Authenticator interface
 *
 * #created 15/10/2017
 * #author Frank Bonnet
 */
interface IAuthenticator {
    

    /**
     * Authenticate 
     *
     * Returns whether `_account` is authenticated or not
     *
     * @param _account The account to authenticate
     * @return whether `_account` is successfully authenticated
     */
    function authenticate(address _account) public view returns (bool);
}


/**
 * IWhitelist 
 *
 * Whitelist authentication interface
 *
 * #created 04/10/2017
 * #author Frank Bonnet
 */
interface IWhitelist {
    

    /**
     * Returns whether an entry exists for `_account`
     *
     * @param _account The account to check
     * @return whether `_account` is has an entry in the whitelist
     */
    function hasEntry(address _account) public view returns (bool);


    /**
     * Add `_account` to the whitelist
     *
     * If an account is currently disabled, the account is reenabled, otherwise 
     * a new entry is created
     *
     * @param _account The account to add
     */
    function add(address _account) public;


    /**
     * Remove `_account` from the whitelist
     *
     * Will not actually remove the entry but disable it by updating
     * the accepted record
     *
     * @param _account The account to remove
     */
    function remove(address _account) public;
}


/**
 * Whitelist authentication list
 *
 * #created 04/10/2017
 * #author Frank Bonnet
 */
contract Whitelist is IWhitelist, IAuthenticator, TransferableOwnership {

    struct Entry {
        uint datetime;
        bool accepted;
        uint index;
    }

    mapping(address => Entry) internal list;
    address[] internal listIndex;


    /**
     * Returns whether an entry exists for `_account`
     *
     * @param _account The account to check
     * @return whether `_account` is has an entry in the whitelist
     */
    function hasEntry(address _account) public view returns (bool) {
        return listIndex.length > 0 && _account == listIndex[list[_account].index];
    }


    /**
     * Add `_account` to the whitelist
     *
     * If an account is currently disabled, the account is reenabled, otherwise 
     * a new entry is created
     *
     * @param _account The account to add
     */
    function add(address _account) public only_owner {
        if (!hasEntry(_account)) {
            list[_account] = Entry(
                now, true, listIndex.push(_account) - 1);
        } else {
            Entry storage entry = list[_account];
            if (!entry.accepted) {
                entry.accepted = true;
                entry.datetime = now;
            }
        }
    }


    /**
     * Remove `_account` from the whitelist
     *
     * Will not acctually remove the entry but disable it by updating
     * the accepted record
     *
     * @param _account The account to remove
     */
    function remove(address _account) public only_owner {
        if (hasEntry(_account)) {
            Entry storage entry = list[_account];
            entry.accepted = false;
            entry.datetime = now;
        }
    }


    /**
     * Authenticate 
     *
     * Returns whether `_account` is on the whitelist
     *
     * @param _account The account to authenticate
     * @return whether `_account` is successfully authenticated
     */
    function authenticate(address _account) public view returns (bool) {
        return list[_account].accepted;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"authenticate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"add","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"remove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"hasEntry","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

  Contract Creation Code Switch To Opcodes View
606060405260008054600160a060020a033316600160a060020a031990911617905561044a806100306000396000f3006060604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308e0d29d81146100875780630a3b0a4f146100ba57806329092d0e146100db5780632f54bf6e146100fa578063893d20e814610119578063a25047a214610148578063f2fde38b14610167575b600080fd5b341561009257600080fd5b6100a6600160a060020a0360043516610186565b604051901515815260200160405180910390f35b34156100c557600080fd5b6100d9600160a060020a03600435166101a8565b005b34156100e657600080fd5b6100d9600160a060020a03600435166102bb565b341561010557600080fd5b6100a6600160a060020a0360043516610310565b341561012457600080fd5b61012c610324565b604051600160a060020a03909116815260200160405180910390f35b341561015357600080fd5b6100a6600160a060020a0360043516610334565b341561017257600080fd5b6100d9600160a060020a036004351661038d565b600160a060020a03166000908152600160208190526040909120015460ff1690565b6000805433600160a060020a039081169116146101c457600080fd5b6101cd82610334565b151561027a5760606040519081016040528042815260200160011515815260200160016002805480600101828161020491906103d7565b6000928352602080842092909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1690811790915593900390935290815260019091526040902081518155602082015160018201805460ff19169115159190911790556040820151600290910155506102b7565b50600160a060020a03811660009081526001602081905260409091209081015460ff1615156102b7576001818101805460ff191690911790554281555b5050565b6000805433600160a060020a039081169116146102d757600080fd5b6102e082610334565b156102b75750600160a060020a03166000908152600160208190526040909120908101805460ff19169055429055565b600054600160a060020a0390811691161490565b600054600160a060020a03165b90565b60025460009081901180156103875750600160a060020a03821660009081526001602052604090206002908101548154811061036c57fe5b600091825260209091200154600160a060020a038381169116145b92915050565b60005433600160a060020a039081169116146103a857600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b8154818355818115116103fb576000838152602090206103fb918101908301610400565b505050565b61033191905b8082111561041a5760008155600101610406565b50905600a165627a7a7230582051f5ff8c79e994ddc09cbb11498f19a23ad4cce93515f3bc6007d16f5a744dc60029

   Swarm Source:
bzzr://51f5ff8c79e994ddc09cbb11498f19a23ad4cce93515f3bc6007d16f5a744dc6

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.