ETH Price: $2,600.17 (-0.51%)

Token

Browsers Lab Token (BAL)
 

Overview

Max Total Supply

2,000,000,000 BAL

Holders

581

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,130 BAL

Value
$0.00
0xd702B7d0b6b5341A652dc7113c90b79E0C5529a6
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:
BalToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-02-25
*/

pragma solidity ^0.4.18;

contract owned {
    address public owner;

    function owned() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        owner = newOwner;
    }
}

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

contract BalToken is owned {
    string public name;                 // Name of the Token
    string public symbol;               // Symbol of the Token
    uint8 public decimals = 18;         // Decimal Places for the token
    uint256 public totalSupply;         // Total Supply of the token

    struct frozenInfo {
        bool frozen;                    // Frozen state of the account
        uint till;                      // The timestamp account will be frozen till
    }
    
    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;

    // This creates an array with all allowances
    mapping (address => mapping (address => uint256)) public allowance;

    // This creates and array with all Frozen accounts with time limit
    mapping (address => frozenInfo) public frozenAccount;
    
    // This generates a public event on the blockchain that will notify clients
    event FrozenFunds(address target, bool frozen, uint till);

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * Constrctor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    function BalToken(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public 
    {
        totalSupply = initialSupply * 10 ** uint256(decimals);      // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                        // Give the creator all initial tokens
        name = tokenName;                                           // Set the name for display purposes
        symbol = tokenSymbol;                                       // Set the symbol for display purposes
    }

    /**
     * Function for other contracts to call to get balances of individual accounts
     */
    function getBalanceOf(address _owner) public constant returns (uint256 balance) {
        return balanceOf[_owner];
    }    

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal {
        require (_to != 0x0);                                           // Prevent transfer to 0x0 address.
        require (_to != address(this));                                 // Prevent transfer back to this contract
        require (balanceOf[_from] >= _value);                           // Check if the sender has enough
        require (balanceOf[_to] + _value > balanceOf[_to]);             // Check for overflows
        require(!(frozenAccount[_from].frozen));                        // Check if sender is frozen
        require(!(frozenAccount[_to].frozen));                          // Check if recipient is frozen
        uint previousBalances = balanceOf[_from] + balanceOf[_to];      // Save this value for assertion

        balanceOf[_from] -= _value;                                     // Subtract from the sender
        balanceOf[_to] += _value;                                       // Add the same to the recipient
        Transfer(_from, _to, _value);                                   // Transfer the token from _from to _to for the amount of _value
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);  // Asserts that the previous value matches the current value 
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public {
        _transfer(msg.sender, _to, _value);
    }

    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` in behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value; // Subtract from the 
        _transfer(_from, _to, _value);
        return true;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens in your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        return true;
    }

    /**
     * Set allowance for other address and notify
     *
     * Allows `_spender` to spend no more than `_value` tokens in your behalf, and then ping the contract about it
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     * @param _extraData some extra information to send to the approved contract
     */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }

    /// @notice `freeze? Prevent` `target` from sending & receiving tokens
    /// @param target Address to be frozen
    /// @param till Timestamp frozen till
    function freezeAccount(address target, uint till) onlyOwner public {
        require(!frozenAccount[target].frozen); 

        frozenInfo memory fi = frozenInfo(true, till);
        frozenAccount[target] = fi;
        FrozenFunds(target, true, till);

    }

    /// @notice `unfreeze? Allows` `target` from sending & receiving tokens
    /// @param target Address to be unfrozen
    function unfreezeAccount(address target) onlyOwner public {
        require(frozenAccount[target].frozen);
        require(frozenAccount[target].till < now);
        
        frozenInfo memory fi = frozenInfo(false, 0);
        frozenAccount[target] = fi;
        FrozenFunds(target, false, 0);
    }
}

Contract Security Audit

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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","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":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"till","type":"uint256"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"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":"target","type":"address"}],"name":"unfreezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"frozen","type":"bool"},{"name":"till","type":"uint256"}],"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":"success","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":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"},{"indexed":false,"name":"till","type":"uint256"}],"name":"FrozenFunds","type":"event"},{"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"}]

60606040526003805460ff19166012179055341561001c57600080fd5b604051610cba380380610cba833981016040528080519190602001805182019190602001805160008054600160a060020a033316600160a060020a03199091168117825560035460ff16600a0a870260048190559082526005602052604090912055909101905060018280516100969291602001906100b3565b5060028180516100aa9291602001906100b3565b5050505061014e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f457805160ff1916838001178555610121565b82800160010185558215610121579182015b82811115610121578251825591602001919060010190610106565b5061012d929150610131565b5090565b61014b91905b8082111561012d5760008155600101610137565b90565b610b5d8061015d6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b31461017457806318160ddd146101aa57806323b872dd146101cf57806329846afe146101f7578063313ce5671461021b57806370a0823114610244578063788649ea146102635780638da5cb5b1461028257806395d89b41146102b15780639b96eece146102c4578063a9059cbb146102e3578063b414d4b614610305578063cae9ca511461033e578063dd62ed3e146103a3578063f2fde38b146103c8575b600080fd5b34156100f557600080fd5b6100fd6103e7565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610139578082015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017f57600080fd5b610196600160a060020a0360043516602435610485565b604051901515815260200160405180910390f35b34156101b557600080fd5b6101bd6104b5565b60405190815260200160405180910390f35b34156101da57600080fd5b610196600160a060020a03600435811690602435166044356104bb565b341561020257600080fd5b610219600160a060020a0360043516602435610532565b005b341561022657600080fd5b61022e61061f565b60405160ff909116815260200160405180910390f35b341561024f57600080fd5b6101bd600160a060020a0360043516610628565b341561026e57600080fd5b610219600160a060020a036004351661063a565b341561028d57600080fd5b61029561074b565b604051600160a060020a03909116815260200160405180910390f35b34156102bc57600080fd5b6100fd61075a565b34156102cf57600080fd5b6101bd600160a060020a03600435166107c5565b34156102ee57600080fd5b610219600160a060020a03600435166024356107e0565b341561031057600080fd5b610324600160a060020a03600435166107ef565b604051911515825260208201526040908101905180910390f35b341561034957600080fd5b61019660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061080e95505050505050565b34156103ae57600080fd5b6101bd600160a060020a0360043581169060243516610940565b34156103d357600080fd5b610219600160a060020a036004351661095d565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561047d5780601f106104525761010080835404028352916020019161047d565b820191906000526020600020905b81548152906001019060200180831161046057829003601f168201915b505050505081565b600160a060020a033381166000908152600660209081526040808320938616835292905220819055600192915050565b60045481565b600160a060020a038084166000908152600660209081526040808320339094168352929052908120548211156104f057600080fd5b600160a060020a03808516600090815260066020908152604080832033909416835292905220805483900390556105288484846109a7565b5060019392505050565b61053a610b1a565b60005433600160a060020a0390811691161461055557600080fd5b600160a060020a03831660009081526007602052604090205460ff161561057b57600080fd5b604080519081016040908152600182526020808301859052600160a060020a038616600090815260079091522090915081908151815460ff1916901515178155602082015181600101559050507fe498f5de034ff24e6c60a58f79f46177b3549748e793928ba8588593e9fec1b983600184604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1505050565b60035460ff1681565b60056020526000908152604090205481565b610642610b1a565b60005433600160a060020a0390811691161461065d57600080fd5b600160a060020a03821660009081526007602052604090205460ff16151561068457600080fd5b600160a060020a0382166000908152600760205260409020600101544290106106ac57600080fd5b60408051908101604090815260008083526020808401829052600160a060020a0386168252600790522090915081908151815460ff19169015151781556020820151600190910155507fe498f5de034ff24e6c60a58f79f46177b3549748e793928ba8588593e9fec1b982600080604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a15050565b600054600160a060020a031681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561047d5780601f106104525761010080835404028352916020019161047d565b600160a060020a031660009081526005602052604090205490565b6107eb3383836109a7565b5050565b6007602052600090815260409020805460019091015460ff9091169082565b60008361081b8185610485565b156109385780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108d15780820151838201526020016108b9565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561091f57600080fd5b6102c65a03f1151561093057600080fd5b505050600191505b509392505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a0390811691161461097857600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615156109be57600080fd5b30600160a060020a031683600160a060020a0316141515156109df57600080fd5b600160a060020a03841660009081526005602052604090205482901015610a0557600080fd5b600160a060020a03831660009081526005602052604090205482810111610a2b57600080fd5b600160a060020a03841660009081526007602052604090205460ff1615610a5157600080fd5b600160a060020a03831660009081526007602052604090205460ff1615610a7757600080fd5b50600160a060020a0380831660008181526005602052604080822080549488168084528284208054888103909155938590528154870190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600160a060020a03808416600090815260056020526040808220549287168252902054018114610b1457fe5b50505050565b6040805190810160405260008082526020820152905600a165627a7a723058207e37138bd05a4be8774e82a6ed8101daf43554c363247fba085a48704065ce3800290000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001242726f7773657273204c616220546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000342414c0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b31461017457806318160ddd146101aa57806323b872dd146101cf57806329846afe146101f7578063313ce5671461021b57806370a0823114610244578063788649ea146102635780638da5cb5b1461028257806395d89b41146102b15780639b96eece146102c4578063a9059cbb146102e3578063b414d4b614610305578063cae9ca511461033e578063dd62ed3e146103a3578063f2fde38b146103c8575b600080fd5b34156100f557600080fd5b6100fd6103e7565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610139578082015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017f57600080fd5b610196600160a060020a0360043516602435610485565b604051901515815260200160405180910390f35b34156101b557600080fd5b6101bd6104b5565b60405190815260200160405180910390f35b34156101da57600080fd5b610196600160a060020a03600435811690602435166044356104bb565b341561020257600080fd5b610219600160a060020a0360043516602435610532565b005b341561022657600080fd5b61022e61061f565b60405160ff909116815260200160405180910390f35b341561024f57600080fd5b6101bd600160a060020a0360043516610628565b341561026e57600080fd5b610219600160a060020a036004351661063a565b341561028d57600080fd5b61029561074b565b604051600160a060020a03909116815260200160405180910390f35b34156102bc57600080fd5b6100fd61075a565b34156102cf57600080fd5b6101bd600160a060020a03600435166107c5565b34156102ee57600080fd5b610219600160a060020a03600435166024356107e0565b341561031057600080fd5b610324600160a060020a03600435166107ef565b604051911515825260208201526040908101905180910390f35b341561034957600080fd5b61019660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061080e95505050505050565b34156103ae57600080fd5b6101bd600160a060020a0360043581169060243516610940565b34156103d357600080fd5b610219600160a060020a036004351661095d565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561047d5780601f106104525761010080835404028352916020019161047d565b820191906000526020600020905b81548152906001019060200180831161046057829003601f168201915b505050505081565b600160a060020a033381166000908152600660209081526040808320938616835292905220819055600192915050565b60045481565b600160a060020a038084166000908152600660209081526040808320339094168352929052908120548211156104f057600080fd5b600160a060020a03808516600090815260066020908152604080832033909416835292905220805483900390556105288484846109a7565b5060019392505050565b61053a610b1a565b60005433600160a060020a0390811691161461055557600080fd5b600160a060020a03831660009081526007602052604090205460ff161561057b57600080fd5b604080519081016040908152600182526020808301859052600160a060020a038616600090815260079091522090915081908151815460ff1916901515178155602082015181600101559050507fe498f5de034ff24e6c60a58f79f46177b3549748e793928ba8588593e9fec1b983600184604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1505050565b60035460ff1681565b60056020526000908152604090205481565b610642610b1a565b60005433600160a060020a0390811691161461065d57600080fd5b600160a060020a03821660009081526007602052604090205460ff16151561068457600080fd5b600160a060020a0382166000908152600760205260409020600101544290106106ac57600080fd5b60408051908101604090815260008083526020808401829052600160a060020a0386168252600790522090915081908151815460ff19169015151781556020820151600190910155507fe498f5de034ff24e6c60a58f79f46177b3549748e793928ba8588593e9fec1b982600080604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a15050565b600054600160a060020a031681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561047d5780601f106104525761010080835404028352916020019161047d565b600160a060020a031660009081526005602052604090205490565b6107eb3383836109a7565b5050565b6007602052600090815260409020805460019091015460ff9091169082565b60008361081b8185610485565b156109385780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108d15780820151838201526020016108b9565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561091f57600080fd5b6102c65a03f1151561093057600080fd5b505050600191505b509392505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a0390811691161461097857600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615156109be57600080fd5b30600160a060020a031683600160a060020a0316141515156109df57600080fd5b600160a060020a03841660009081526005602052604090205482901015610a0557600080fd5b600160a060020a03831660009081526005602052604090205482810111610a2b57600080fd5b600160a060020a03841660009081526007602052604090205460ff1615610a5157600080fd5b600160a060020a03831660009081526007602052604090205460ff1615610a7757600080fd5b50600160a060020a0380831660008181526005602052604080822080549488168084528284208054888103909155938590528154870190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600160a060020a03808416600090815260056020526040808220549287168252902054018114610b1457fe5b50505050565b6040805190810160405260008082526020820152905600a165627a7a723058207e37138bd05a4be8774e82a6ed8101daf43554c363247fba085a48704065ce380029

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

0000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001242726f7773657273204c616220546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000342414c0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 2000000000
Arg [1] : tokenName (string): Browsers Lab Token
Arg [2] : tokenSymbol (string): BAL

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000077359400
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 42726f7773657273204c616220546f6b656e0000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 42414c0000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://7e37138bd05a4be8774e82a6ed8101daf43554c363247fba085a48704065ce38
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.