Contract 0x19d12479f0159d624249c26949509e010dbce8be

 

Contract Overview

dVEST: DVEST Token
Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0xfdbb41fbe87157bab4bcaa2b19969086f54df392353caf91f3dcf56c4c0015f995488502021-07-28 13:35:415 days 17 hrs ago0x950d49e594aafc6db76cf04f1f9b06c6f6f5f3aa IN  dVEST: DVEST Token0 BNB0.00022675
0x02d63eb66466d1a30c1cc2e9dbe9581074167d95e4c97482b0bac9ff8ddd1c7094363842021-07-24 12:01:409 days 19 hrs ago0xbef9a4c1f99bfd4189cbddbb3435fdf56cbd6a2d IN  dVEST: DVEST Token0 BNB0.00018571
0xc2807e0bf50493ddca2495ec6fc4e412413ba2e00cc71b32a6378e09f782628394338922021-07-24 9:56:549 days 21 hrs ago0xbef9a4c1f99bfd4189cbddbb3435fdf56cbd6a2d IN  dVEST: DVEST Token0 BNB0.00026071
0x581569826d49160795f40857f74f80ed130eb4278ef5c618c193b9c92a929bc994124172021-07-23 15:57:2010 days 15 hrs ago0xbef9a4c1f99bfd4189cbddbb3435fdf56cbd6a2d IN  dVEST: DVEST Token0 BNB0.00022675
0x94a0476dc35e84811580506b4d7370a3186756dea5204948c66a2eb8b25e362093794642021-07-22 12:24:1411 days 18 hrs ago0xf84750ae307d6692daf2c9819dc8b2016f2889a3 IN  dVEST: DVEST Token0 BNB0.00022675
0x07968d506eef5d87b2fda573d7cfab136bfe5cb9f05fddd882c93026602e96cb92831392021-07-19 4:05:0915 days 3 hrs ago0x2541c0b15beece06a124043f22b78402116b153b IN  dVEST: DVEST Token0 BNB0.00026077
0x254fb8bd898532e177d801789c434c919abeeb2e0cd939c29a12fe2b170f623492829902021-07-19 3:57:4215 days 3 hrs ago0x2541c0b15beece06a124043f22b78402116b153b IN  dVEST: DVEST Token0 BNB0.00026077
0x02109010007b5c6d5e416ae9486f88fd8db76f60bcb563b815569da62903942b92583552021-07-18 7:25:0915 days 23 hrs ago0x1e460b9389395df7b3362619b8adbfaac6212b01 IN  dVEST: DVEST Token0 BNB0.00018565
0x20987b24cbd133a0801f3519fcf148d78210a8a718f0e424622fb3954c1bcd3b91604772021-07-14 21:48:4819 days 9 hrs ago0xc9e916a3e5573843b791cf8aac6902f01e3e0efd IN  dVEST: DVEST Token0 BNB0.00022675
0x17c70c43c4f2754e089a97f4513d37b56641cf11c61b8e6c86af0f55f69e472189271492021-07-06 19:18:5227 days 11 hrs ago0xdaeab4db5428409864b750de42d71506f4b7453b IN  dVEST: DVEST Token0 BNB0.00022675
0x9578663221a61d92751bb8c137b80e3e102ddfbf8ccf0ab27e5239c01bb55a7288621702021-07-04 12:43:4229 days 18 hrs ago0xdaeab4db5428409864b750de42d71506f4b7453b IN  dVEST: DVEST Token0 BNB0.00018583
0x29e1352a8e727d7040c41ae61bcca159232d2c7d6993b112978bb17a331497b187863732021-07-01 20:55:4932 days 10 hrs ago0x6b2773cbe698f5fb753918ae6a583ce9b0283459 IN  dVEST: DVEST Token0 BNB0.00022675
0xb201d1c7bcd146f0c6c957449e038bcd6b8956075c714fe473891621eea6fc3c87523252021-06-30 16:19:5533 days 14 hrs ago0xd3792cc984bfd0f3e2f9bbe557a499d207916096 IN  dVEST: DVEST Token0 BNB0.00022675
0x4a06a75b43415e12ba60fff7a26fc607467ebd67331716fb0d11f223bf735b0c86932352021-06-28 14:39:1035 days 16 hrs ago0xd3792cc984bfd0f3e2f9bbe557a499d207916096 IN  dVEST: DVEST Token0 BNB0.00022675
0x93394580ac72859160e5b0738c2cc9fb74053a2bac3f781a15031f5f34e87b9385742522021-06-24 11:11:1939 days 19 hrs ago0x7ad779a0f45a9356a124781b04b542cd641c75c9 IN  dVEST: DVEST Token0 BNB0.000231285
0x09d6f265d9abcab92e757266fa0edda7bb32ac0e6e3b988910ab47eeb3037dfd84172722021-06-18 23:47:3445 days 7 hrs ago0x165f875012f98fdcb81ee8e1fa3e906a544909e9 IN  dVEST: DVEST Token0 BNB0.00022675
0xce13ef0e677dbe3042a72e206a5a13d3c195754f6d6fe87a7610c36923c996b784054132021-06-18 13:46:4445 days 17 hrs ago0xb0da6344493b567f287f7e13d7d286ef617f9d35 IN  dVEST: DVEST Token0 BNB0.00018583
0x7271952845f65b32a78710178b881f369dde95134dcaa1c3fdbfc0251efa3c8c83877642021-06-17 22:55:3246 days 8 hrs ago0x73e1d5d08b5a3b156de2a96a65f0c7bf60c29001 IN  dVEST: DVEST Token0 BNB0.00022675
0x342eb9b996aa60d245f59ad81fdaf473ec1f1172a201d319c438a4715117f89683797762021-06-17 16:13:5746 days 14 hrs ago0x7b25bb13d9faff69fd760d2edaea7241fcfc0e28 IN  dVEST: DVEST Token0 BNB0.00022675
0x537800b88ca759d139a3b6e53ca3f123b7bdaf9b781ff9e5715869256b450ec283768602021-06-17 13:47:5146 days 17 hrs ago0x562d398bcfc102fa17f1bfcc722b0a7b6369d247 IN  dVEST: DVEST Token0 BNB0.000231285
0xf3aa3b81dbd3b190e62abe2218bff9f8583706bf1f5168becc1f9beeb15dad2083733262021-06-17 10:48:1346 days 20 hrs ago0x30e955d6d4ef059349b816a5dc31aea2962d8071 IN  dVEST: DVEST Token0 BNB0.00022675
0xfeb1c14407024c076e8a535ba034fc4232c5175c71e60ba5e99ae60ae3078a6583696122021-06-17 7:38:1046 days 23 hrs ago0x3c7372b0791eadce748893e657cb6827c35fea06 IN  dVEST: DVEST Token0 BNB0.00022675
0x1397062914bdcb4c13b260f5cfbb40caec2436338407777b13124150b76199c583694852021-06-17 7:31:4946 days 23 hrs ago0x3c7372b0791eadce748893e657cb6827c35fea06 IN  dVEST: DVEST Token0 BNB0.00022675
0x6fe204b7c923edf17b93b10b7e279b062e45c98e4aa3fad6503ffbb3fd428be583353452021-06-16 2:54:4148 days 4 hrs ago0xca4b350d74c7ba3c81c16ebeb7efc64e136b5c18 IN  dVEST: DVEST Token0 BNB0.00022675
0x259d00c4cb211cc9bfbb20ea44deff756e49f232d1f733325450c308c8d05c7482729162021-06-13 22:09:2850 days 8 hrs ago0x1f93ab15b0f82e082a9bcaa089e3e55a4c6b7d65 IN  dVEST: DVEST Token0 BNB0.00022675
[ Download CSV Export 

OVERVIEW

dVest CEX users can trade all cryptocurrencies include BTC, ETH, DVEST, CPI, LTC, UNI, DOGE, ADA, XRP, DOT, BCH, LINK, XLM, TRX, XMR, XTZ, and many more.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7e14341d63656a59ce045840f679901787595e38ab485cbbd9b34b7f6a4d463b73620492021-05-13 1:55:2082 days 5 hrs ago 0x29cdfd505b908d3e2d02b411e86550bec7c8dec1  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xfAF4cF39d4Fe6ecb908B4344b402D0A7DFb76De4

Contract Name:
ERC20Chocolate

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-02
*/

/**

WPSmartContracts.com

Blockchain Made Easy

http://wpsmartcontracts.com/

*/

pragma solidity ^0.5.7;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {
    
    int256 constant private INT256_MIN = -2**255;

    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Multiplies two signed integers, reverts on overflow.
    */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == INT256_MIN)); // This is the only case of overflow not detected by the check below

        int256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Integer division of two signed integers truncating the quotient, reverts on division by zero.
    */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0); // Solidity only automatically asserts when dividing by 0
        require(!(b == -1 && a == INT256_MIN)); // This is the only case of overflow

        int256 c = a / b;

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Subtracts two signed integers, reverts on overflow.
    */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Adds two signed integers, reverts on overflow.
    */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20Pistachio is IERC20 {

    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 private _totalSupply;

    /**
    * @dev Public parameters to define the token
    */

    // Token symbol (short)
    string public symbol;

    // Token name (Long)
    string public  name;

    // Decimals (18 maximum)
    uint8 public decimals;

    /**
    * @dev Public functions to make the contract accesible
    */
    constructor (address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance) public {

        // Initialize Contract Parameters
        symbol = _tokenSymbol;
        name = _tokenName;
        decimals = 18;  // default decimals is going to be 18 always

        _mint(initialAccount, initialBalance);

    }

    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param owner The address to query the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
    * @dev Transfer token for a specified address
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone 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 which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
    * @dev Transfer token for a specified addresses
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }

}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract ERC20Burnable is ERC20Pistachio {

    bool private _burnableActive;

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public whenBurnableActive {
        _burn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public whenBurnableActive {
        _burnFrom(from, value);
    }

    /**
     * @dev Options to activate or deactivate Burn ability
     */

    function _setBurnableActive(bool _active) internal {
        _burnableActive = _active;
    }

    modifier whenBurnableActive() {
        require(_burnableActive);
        _;
    }

}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

/**
 * @title ERC20Mintable
 * @dev ERC20 minting logic
 */
contract ERC20Mintable is ERC20Pistachio, MinterRole {

    bool private _mintableActive;
    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 value) public onlyMinter whenMintableActive returns (bool) {
        _mint(to, value);
        return true;
    }

    /**
     * @dev Options to activate or deactivate Burn ability
     */

    function _setMintableActive(bool _active) internal {
        _mintableActive = _active;
    }

    modifier whenMintableActive() {
        require(_mintableActive);
        _;
    }

}

contract PauserRole {
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _pausableActive;
    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused whenPausableActive {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused whenPausableActive {
        _paused = false;
        emit Unpaused(msg.sender);
    }

    /**
     * @dev Options to activate or deactivate Pausable ability
     */

    function _setPausableActive(bool _active) internal {
        _pausableActive = _active;
    }

    modifier whenPausableActive() {
        require(_pausableActive);
        _;
    }

}

/**
 * @title Advanced ERC20 token
 *
 * @dev Implementation of the basic standard token plus mint and burn public functions.
 *
 * Version 2. This version delegates the minter and pauser renounce to parent-factory contract
 * that allows ICOs to be minter for token selling
 *
 */
contract ERC20Chocolate is ERC20Pistachio, ERC20Burnable, ERC20Mintable, Pausable {

    // maximum capital, if defined > 0
    uint256 private _cap;

    constructor (
        address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance, uint256 cap,
        bool _burnableOption, bool _mintableOption, bool _pausableOption
    ) public
        ERC20Pistachio(initialAccount, _tokenSymbol, _tokenName, initialBalance) {

        // we must add customer account as the first minter
        addMinter(initialAccount);

        // add customer as pauser
        addPauser(initialAccount);

        if (cap > 0) {
            _cap = cap; // maximum capitalization limited
        } else {
            _cap = 0; // unlimited capitalization
        }

        // activate or deactivate options
        _setBurnableActive(_burnableOption);
        _setMintableActive(_mintableOption);
        _setPausableActive(_pausableOption);

    }

    /**
     * @return the cap for the token minting.
     */
    function cap() public view returns (uint256) {
        return _cap;
    }

    /**
     * limit the mint to a maximum cap only if cap is defined
     */
    function _mint(address account, uint256 value) internal {
        if (_cap > 0) {
            require(totalSupply().add(value) <= _cap);
        }
        super._mint(account, value);
    }

    /**
     * Pausable options
     */
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from,address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseAllowance(spender, subtractedValue);
    }

}

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":"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":"","type":"bool"}],"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":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"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":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialAccount","type":"address"},{"name":"_tokenSymbol","type":"string"},{"name":"_tokenName","type":"string"},{"name":"initialBalance","type":"uint256"},{"name":"cap","type":"uint256"},{"name":"_burnableOption","type":"bool"},{"name":"_mintableOption","type":"bool"},{"name":"_pausableOption","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","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"},{"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"}]

60806040523480156200001157600080fd5b50604051620028083803806200280883398101806040526101008110156200003857600080fd5b810190808051906020019092919080516401000000008111156200005b57600080fd5b828101905060208101848111156200007257600080fd5b81518560018202830111640100000000821117156200009057600080fd5b50509291906020018051640100000000811115620000ad57600080fd5b82810190506020810184811115620000c457600080fd5b8151856001820283011164010000000082111715620000e257600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508787878782600390805190602001906200013b9291906200073a565b508160049080519060200190620001549291906200073a565b506012600560006101000a81548160ff021916908360ff1602179055506200018384826200024760201b60201c565b505050506200019833620002a760201b60201c565b620001a9336200030860201b60201c565b6000600960016101000a81548160ff021916908315150217905550620001d5886200036960201b60201c565b620001e6886200039860201b60201c565b6000841115620001fd5783600a8190555062000206565b6000600a819055505b6200021783620003c760201b60201c565b6200022882620003e460201b60201c565b62000239816200040160201b60201c565b5050505050505050620007e9565b6000600a5411156200028c57600a546200027f826200026b6200041e60201b60201c565b6200042860201b62001d1b1790919060201c565b11156200028b57600080fd5b5b620002a382826200044860201b62001d3a1760201c565b5050565b620002c2816006620005a960201b62001f371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b62000323816008620005a960201b62001f371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6200037a336200065f60201b60201c565b6200038457600080fd5b6200039581620002a760201b60201c565b50565b620003a9336200068360201b60201c565b620003b357600080fd5b620003c4816200030860201b60201c565b50565b80600560016101000a81548160ff02191690831515021790555050565b80600760006101000a81548160ff02191690831515021790555050565b80600960006101000a81548160ff02191690831515021790555050565b6000600254905090565b6000808284019050838110156200043e57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200048357600080fd5b6200049f816002546200042860201b62001d1b1790919060201c565b600281905550620004fd816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200042860201b62001d1b1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620005e457600080fd5b620005f68282620006a760201b60201c565b156200060157600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006200067c826006620006a760201b620014ed1790919060201c565b9050919050565b6000620006a0826008620006a760201b620014ed1790919060201c565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006e357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200077d57805160ff1916838001178555620007ae565b82800160010185558215620007ae579182015b82811115620007ad57825182559160200191906001019062000790565b5b509050620007bd9190620007c1565b5090565b620007e691905b80821115620007e2576000816000905550600101620007c8565b5090565b90565b61200f80620007f96000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636ef8d66d116100c3578063983b2d561161007c578063983b2d561461062f5780639865027514610673578063a457c2d71461067d578063a9059cbb146106e3578063aa271e1a14610749578063dd62ed3e146107a557610158565b80636ef8d66d146104ae57806370a08231146104b857806379cc67901461051057806382dc1ec41461055e5780638456cb59146105a257806395d89b41146105ac57610158565b80633950935111610115578063395093511461032c5780633f4ba83a1461039257806340c10f191461039c57806342966c681461040257806346fbf68e146104305780635c975abb1461048c57610158565b806306fdde031461015d578063095ea7b3146101e057806318160ddd1461024657806323b872dd14610264578063313ce567146102ea578063355274ea1461030e575b600080fd5b61016561081d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108bb565b604051808215151515815260200191505060405180910390f35b61024e6108e9565b6040518082815260200191505060405180910390f35b6102d06004803603606081101561027a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f3565b604051808215151515815260200191505060405180910390f35b6102f2610923565b604051808260ff1660ff16815260200191505060405180910390f35b610316610936565b6040518082815260200191505060405180910390f35b6103786004803603604081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610940565b604051808215151515815260200191505060405180910390f35b61039a61096e565b005b6103e8600480360360408110156103b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a32565b604051808215151515815260200191505060405180910390f35b61042e6004803603602081101561041857600080fd5b8101908080359060200190929190505050610a73565b005b6104726004803603602081101561044657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a99565b604051808215151515815260200191505060405180910390f35b610494610ab6565b604051808215151515815260200191505060405180910390f35b6104b6610acd565b005b6104fa600480360360208110156104ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ad8565b6040518082815260200191505060405180910390f35b61055c6004803603604081101561052657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b20565b005b6105a06004803603602081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b47565b005b6105aa610b65565b005b6105b4610c2a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106716004803603602081101561064557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc8565b005b61067b610ce6565b005b6106c96004803603604081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf1565b604051808215151515815260200191505060405180910390f35b61072f600480360360408110156106f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1f565b604051808215151515815260200191505060405180910390f35b61078b6004803603602081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b610807600480360360408110156107bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6a565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b505050505081565b6000600960019054906101000a900460ff16156108d757600080fd5b6108e18383610df1565b905092915050565b6000600254905090565b6000600960019054906101000a900460ff161561090f57600080fd5b61091a848484610f1c565b90509392505050565b600560009054906101000a900460ff1681565b6000600a54905090565b6000600960019054906101000a900460ff161561095c57600080fd5b6109668383611124565b905092915050565b61097733610a99565b61098057600080fd5b600960019054906101000a900460ff1661099957600080fd5b600960009054906101000a900460ff166109b257600080fd5b6000600960016101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a3d33610d4d565b610a4657600080fd5b600760009054906101000a900460ff16610a5f57600080fd5b610a698383611359565b6001905092915050565b600560019054906101000a900460ff16610a8c57600080fd5b610a96338261139b565b50565b6000610aaf8260086114ed90919063ffffffff16565b9050919050565b6000600960019054906101000a900460ff16905090565b610ad63361157f565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560019054906101000a900460ff16610b3957600080fd5b610b4382826115d9565b5050565b610b5033610a99565b610b5957600080fd5b610b62816117d7565b50565b610b6e33610a99565b610b7757600080fd5b600960019054906101000a900460ff1615610b9157600080fd5b600960009054906101000a900460ff16610baa57600080fd5b6001600960016101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cc05780601f10610c9557610100808354040283529160200191610cc0565b820191906000526020600020905b815481529060010190602001808311610ca357829003601f168201915b505050505081565b610cd133610d4d565b610cda57600080fd5b610ce381611831565b50565b610cef3361188b565b565b6000600960019054906101000a900460ff1615610d0d57600080fd5b610d1783836118e5565b905092915050565b6000600960019054906101000a900460ff1615610d3b57600080fd5b610d458383611b1a565b905092915050565b6000610d638260066114ed90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e2c57600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610fad82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611038848484611b51565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561115f57600080fd5b6111ee82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600a54111561138d57600a54611381826113736108e9565b611d1b90919063ffffffff16565b111561138c57600080fd5b5b6113978282611d3a565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d557600080fd5b6113ea81600254611b3190919063ffffffff16565b600281905550611441816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152857600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611593816008611e8c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61166881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116f2828261139b565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b6117eb816008611f3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b611845816006611f3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61189f816006611e8c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192057600080fd5b6119af82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611b27338484611b51565b6001905092915050565b600082821115611b4057600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b8b57600080fd5b611bdc816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c6f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015611d3057600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d7457600080fd5b611d8981600254611d1b90919063ffffffff16565b600281905550611de0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ec657600080fd5b611ed082826114ed565b611ed957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f7157600080fd5b611f7b82826114ed565b15611f8557600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a72305820848a6fa410baa57e55049401a8a434236ad9f06ed1bf3911a9a1823a391f8e620029000000000000000000000000bf112617bf6de09aa276249356a74e456226fe4e000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

18893:2308:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18893:2308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4814:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4814:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20680:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20680:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5409:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20513:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20513:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4872:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19964:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20828:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20828:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18176:137;;;:::i;:::-;;15598:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15598:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12536:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12536:98:0;;;;;;;;;;;;;;;;;:::i;:::-;;16396:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16396:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17410:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16613:77;;;:::i;:::-;;5716:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5716:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12893:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12893:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16513:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16513:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17946:135;;;:::i;:::-;;4759:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4759:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14738:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14738:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14838:77;;;:::i;:::-;;21011:185;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21011:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20373:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20373:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14621:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14621:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6161:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6161:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4814:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20680:140::-;20759:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20783:29;20797:7;20806:5;20783:13;:29::i;:::-;20776:36;;20680:140;;;;:::o;5409:91::-;5453:7;5480:12;;5473:19;;5409:91;:::o;20513:159::-;20605:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20629:35;20648:4;20654:2;20658:5;20629:18;:35::i;:::-;20622:42;;20513:159;;;;;:::o;4872:21::-;;;;;;;;;;;;;:::o;19964:75::-;20000:7;20027:4;;20020:11;;19964:75;:::o;20828:175::-;20919:12;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20951:44;20975:7;20984:10;20951:23;:44::i;:::-;20944:51;;20828:175;;;;:::o;18176:137::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;17826:7;;;;;;;;;;;17818:16;;;;;;18557:15;;;;;;;;;;;18549:24;;;;;;18264:5;18254:7;;:15;;;;;;;;;;;;;;;;;;18285:20;18294:10;18285:20;;;;;;;;;;;;;;;;;;;;;;18176:137::o;15598:150::-;15685:4;14572:20;14581:10;14572:8;:20::i;:::-;14564:29;;;;;;15988:15;;;;;;;;;;;15980:24;;;;;;15702:16;15708:2;15712:5;15702;:16::i;:::-;15736:4;15729:11;;15598:150;;;;:::o;12536:98::-;13247:15;;;;;;;;;;;13239:24;;;;;;12602;12608:10;12620:5;12602;:24::i;:::-;12536:98;:::o;16396:109::-;16452:4;16476:21;16489:7;16476:8;:12;;:21;;;;:::i;:::-;16469:28;;16396:109;;;:::o;17410:78::-;17449:4;17473:7;;;;;;;;;;;17466:14;;17410:78;:::o;16613:77::-;16657:25;16671:10;16657:13;:25::i;:::-;16613:77::o;5716:106::-;5771:7;5798:9;:16;5808:5;5798:16;;;;;;;;;;;;;;;;5791:23;;5716:106;;;:::o;12893:114::-;13247:15;;;;;;;;;;;13239:24;;;;;;12977:22;12987:4;12993:5;12977:9;:22::i;:::-;12893:114;;:::o;16513:92::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;16578:19;16589:7;16578:10;:19::i;:::-;16513:92;:::o;17946:135::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;18557:15;;;;;;;;;;;18549:24;;;;;;18035:4;18025:7;;:14;;;;;;;;;;;;;;;;;;18055:18;18062:10;18055:18;;;;;;;;;;;;;;;;;;;;;;17946:135::o;4759:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14738:92::-;14572:20;14581:10;14572:8;:20::i;:::-;14564:29;;;;;;14803:19;14814:7;14803:10;:19::i;:::-;14738:92;:::o;14838:77::-;14882:25;14896:10;14882:13;:25::i;:::-;14838:77::o;21011:185::-;21107:12;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;21139:49;21163:7;21172:15;21139:23;:49::i;:::-;21132:56;;21011:185;;;;:::o;20373:132::-;20448:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20472:25;20487:2;20491:5;20472:14;:25::i;:::-;20465:32;;20373:132;;;;:::o;14621:109::-;14677:4;14701:21;14714:7;14701:8;:12;;:21;;;;:::i;:::-;14694:28;;14621:109;;;:::o;6161:131::-;6233:7;6260:8;:15;6269:5;6260:15;;;;;;;;;;;;;;;:24;6276:7;6260:24;;;;;;;;;;;;;;;;6253:31;;6161:131;;;;:::o;7250:244::-;7315:4;7359:1;7340:21;;:7;:21;;;;7332:30;;;;;;7407:5;7375:8;:20;7384:10;7375:20;;;;;;;;;;;;;;;:29;7396:7;7375:29;;;;;;;;;;;;;;;:37;;;;7449:7;7428:36;;7437:10;7428:36;;;7458:5;7428:36;;;;;;;;;;;;;;;;;;7482:4;7475:11;;7250:244;;;;:::o;7967:299::-;8046:4;8092:37;8123:5;8092:8;:14;8101:4;8092:14;;;;;;;;;;;;;;;:26;8107:10;8092:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;8063:8;:14;8072:4;8063:14;;;;;;;;;;;;;;;:26;8078:10;8063:26;;;;;;;;;;;;;;;:66;;;;8140:26;8150:4;8156:2;8160:5;8140:9;:26::i;:::-;8197:10;8182:54;;8191:4;8182:54;;;8209:8;:14;8218:4;8209:14;;;;;;;;;;;;;;;:26;8224:10;8209:26;;;;;;;;;;;;;;;;8182:54;;;;;;;;;;;;;;;;;;8254:4;8247:11;;7967:299;;;;;:::o;8781:323::-;8861:4;8905:1;8886:21;;:7;:21;;;;8878:30;;;;;;8953:45;8987:10;8953:8;:20;8962:10;8953:20;;;;;;;;;;;;;;;:29;8974:7;8953:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;8921:8;:20;8930:10;8921:20;;;;;;;;;;;;;;;:29;8942:7;8921:29;;;;;;;;;;;;;;;:77;;;;9035:7;9014:60;;9023:10;9014:60;;;9044:8;:20;9053:10;9044:20;;;;;;;;;;;;;;;:29;9065:7;9044:29;;;;;;;;;;;;;;;;9014:60;;;;;;;;;;;;;;;;;;9092:4;9085:11;;8781:323;;;;:::o;20128:194::-;20206:1;20199:4;;:8;20195:82;;;20260:4;;20232:24;20250:5;20232:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:32;;20224:41;;;;;;20195:82;20287:27;20299:7;20308:5;20287:11;:27::i;:::-;20128:194;;:::o;11296:269::-;11390:1;11371:21;;:7;:21;;;;11363:30;;;;;;11421:23;11438:5;11421:12;;:16;;:23;;;;:::i;:::-;11406:12;:38;;;;11476:29;11499:5;11476:9;:18;11486:7;11476:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;11455:9;:18;11465:7;11455:18;;;;;;;;;;;;;;;:50;;;;11547:1;11521:36;;11530:7;11521:36;;;11551:5;11521:36;;;;;;;;;;;;;;;;;;11296:269;;:::o;14086:165::-;14158:4;14202:1;14183:21;;:7;:21;;;;14175:30;;;;;;14223:4;:11;;:20;14235:7;14223:20;;;;;;;;;;;;;;;;;;;;;;;;;14216:27;;14086:165;;;;:::o;16828:130::-;16888:24;16904:7;16888:8;:15;;:24;;;;:::i;:::-;16942:7;16928:22;;;;;;;;;;;;16828:130;:::o;11964:259::-;12067:40;12101:5;12067:8;:17;12076:7;12067:17;;;;;;;;;;;;;;;:29;12085:10;12067:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;12035:8;:17;12044:7;12035:17;;;;;;;;;;;;;;;:29;12053:10;12035:29;;;;;;;;;;;;;;;:72;;;;12118:21;12124:7;12133:5;12118;:21::i;:::-;12173:10;12155:60;;12164:7;12155:60;;;12185:8;:17;12194:7;12185:17;;;;;;;;;;;;;;;:29;12203:10;12185:29;;;;;;;;;;;;;;;;12155:60;;;;;;;;;;;;;;;;;;11964:259;;:::o;16698:122::-;16755:21;16768:7;16755:8;:12;;:21;;;;:::i;:::-;16804:7;16792:20;;;;;;;;;;;;16698:122;:::o;14923:::-;14980:21;14993:7;14980:8;:12;;:21;;;;:::i;:::-;15029:7;15017:20;;;;;;;;;;;;14923:122;:::o;15053:130::-;15113:24;15129:7;15113:8;:15;;:24;;;;:::i;:::-;15167:7;15153:22;;;;;;;;;;;;15053:130;:::o;9624:333::-;9709:4;9753:1;9734:21;;:7;:21;;;;9726:30;;;;;;9801:50;9835:15;9801:8;:20;9810:10;9801:20;;;;;;;;;;;;;;;:29;9822:7;9801:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;9769:8;:20;9778:10;9769:20;;;;;;;;;;;;;;;:29;9790:7;9769:29;;;;;;;;;;;;;;;:82;;;;9888:7;9867:60;;9876:10;9867:60;;;9897:8;:20;9906:10;9897:20;;;;;;;;;;;;;;;:29;9918:7;9897:29;;;;;;;;;;;;;;;;9867:60;;;;;;;;;;;;;;;;;;9945:4;9938:11;;9624:333;;;;:::o;6463:140::-;6524:4;6541:32;6551:10;6563:2;6567:5;6541:9;:32::i;:::-;6591:4;6584:11;;6463:140;;;;:::o;2449:150::-;2507:7;2540:1;2535;:6;;2527:15;;;;;;2553:9;2569:1;2565;:5;2553:17;;2590:1;2583:8;;;2449:150;;;;:::o;10179:262::-;10281:1;10267:16;;:2;:16;;;;10259:25;;;;;;10315:26;10335:5;10315:9;:15;10325:4;10315:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;10297:9;:15;10307:4;10297:15;;;;;;;;;;;;;;;:44;;;;10368:24;10386:5;10368:9;:13;10378:2;10368:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;10352:9;:13;10362:2;10352:13;;;;;;;;;;;;;;;:40;;;;10423:2;10408:25;;10417:4;10408:25;;;10427:5;10408:25;;;;;;;;;;;;;;;;;;10179:262;;;:::o;2952:150::-;3010:7;3030:9;3046:1;3042;:5;3030:17;;3071:1;3066;:6;;3058:15;;;;;;3093:1;3086:8;;;2952:150;;;;:::o;10793:269::-;10887:1;10868:21;;:7;:21;;;;10860:30;;;;;;10918:23;10935:5;10918:12;;:16;;:23;;;;:::i;:::-;10903:12;:38;;;;10973:29;10996:5;10973:9;:18;10983:7;10973:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;10952:9;:18;10962:7;10952:18;;;;;;;;;;;;;;;:50;;;;11039:7;11018:36;;11035:1;11018:36;;;11048:5;11018:36;;;;;;;;;;;;;;;;;;10793:269;;:::o;13803:189::-;13902:1;13883:21;;:7;:21;;;;13875:30;;;;;;13924:18;13928:4;13934:7;13924:3;:18::i;:::-;13916:27;;;;;;13979:5;13956:4;:11;;:20;13968:7;13956:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13803:189;;:::o;13538:186::-;13634:1;13615:21;;:7;:21;;;;13607:30;;;;;;13657:18;13661:4;13667:7;13657:3;:18::i;:::-;13656:19;13648:28;;;;;;13712:4;13689;:11;;:20;13701:7;13689:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13538:186;;:::o

Swarm Source

bzzr://848a6fa410baa57e55049401a8a434236ad9f06ed1bf3911a9a1823a391f8e62
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.