ETH Price: $3,400.63 (-1.70%)
Gas: 8 Gwei

Token

BidiPass (BDP)
 

Overview

Max Total Supply

1,500,000,000 BDP

Holders

678 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$299,955.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.00000000000014142 BDP

Value
$0.00 ( ~0 Eth) [0.0000%]
0x369cb234262c6738309531a0079658a9b47848fd
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

An identity authentication protocol built on Ethereum.

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 BDP
Market Data Source: Coinmarketcap


 


# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BDPToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 12: BDPToken.sol
pragma solidity 0.4.25;

import "./StandardBurnableToken.sol";
import "./Whitelist.sol";
import "./SafeMath.sol";

contract BDPToken is StandardBurnableToken, Whitelist {
    using SafeMath for uint256;

    event Mint(address indexed to, uint256 amount);

    string public name = "BidiPass";
    string public symbol = "BDP";
    uint8 public decimals = 18;

    mapping(address => uint256) public _burnAllowance;

    /**
     * @param _beneficiary Beneficiary of whole amount of tokens
     * @param _cap Total amount of tokens to be minted
     */
    constructor(
        address _beneficiary,
        uint256 _cap
    ) public {
        require(_cap > 0, "MissingCap");

        totalSupply_ = totalSupply_.add(_cap);
        balances[_beneficiary] = balances[_beneficiary].add(_cap);

        emit Mint(_beneficiary, _cap);
        emit Transfer(address(0), _beneficiary, _cap);
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public {
        uint256 allowance = burnAllowance(msg.sender);

        require(_value > 0, "MissingValue");
        require(allowance >= _value, "NotEnoughAllowance");

        _setBurnAllowance(msg.sender, allowance.sub(_value));

        _burn(msg.sender, _value);
    }

    /**
     * @dev Get tokens amount allowed to be burned
     * @param _who Tokens holder address
     */
    function burnAllowance(address _who)
        public
        view
        returns (uint256)
    {
        return _burnAllowance[_who];
    }

    /** MANAGER FUNCTIONS */

    /**
     * @dev Set amount of tokens allowed to be burned by the holder
     * @param _who Tokens holder address
     * @param _amount Amount of tokens allowed to be burned
     */
    function setBurnAllowance(
        address _who,
        uint256 _amount
    )
        public
        onlyIfWhitelisted(msg.sender)
    {
        require(_amount <= balances[_who]);
        _setBurnAllowance(_who, _amount);
    }

    /** INTERNAL FUNCTIONS */

    /**
     * @dev Set amount of tokens allowed to be burned by the holder
     * @param _who Tokens holder address
     * @param _amount Amount of tokens allowed to be burned
     */
    function _setBurnAllowance(
        address _who,
        uint256 _amount
    ) internal {
        _burnAllowance[_who] = _amount;
    }
}

File 1 of 12: BasicToken.sol
pragma solidity ^0.4.24;


import "./ERC20Basic.sol";
import "./SafeMath.sol";


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) internal balances;

  uint256 internal totalSupply_;

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

  /**
  * @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) {
    require(_value <= balances[msg.sender]);
    require(_to != address(0));

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the 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];
  }

}

File 3 of 12: BurnableToken.sol
pragma solidity ^0.4.24;

import "./BasicToken.sol";


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

  event Burn(address indexed burner, uint256 value);

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

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
    // no need to require value <= totalSupply, since that would imply the
    // sender's balance is greater than the totalSupply, which *should* be an assertion failure

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}

File 4 of 12: ERC20.sol
pragma solidity ^0.4.24;

import "./ERC20Basic.sol";


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address _owner, address _spender)
    public view returns (uint256);

  function transferFrom(address _from, address _to, uint256 _value)
    public returns (bool);

  function approve(address _spender, uint256 _value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

File 5 of 12: ERC20Basic.sol
pragma solidity ^0.4.24;


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * See https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address _who) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

File 6 of 12: Ownable.sol
pragma solidity ^0.4.24;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

File 7 of 12: RBAC.sol
pragma solidity ^0.4.24;

import "./Roles.sol";


/**
 * @title RBAC (Role-Based Access Control)
 * @author Matt Condon (@Shrugs)
 * @dev Stores and provides setters and getters for roles and addresses.
 * Supports unlimited numbers of roles and addresses.
 * See //contracts/mocks/RBACMock.sol for an example of usage.
 * This RBAC method uses strings to key roles. It may be beneficial
 * for you to write your own implementation of this interface using Enums or similar.
 */
contract RBAC {
  using Roles for Roles.Role;

  mapping (string => Roles.Role) private roles;

  event RoleAdded(address indexed operator, string role);
  event RoleRemoved(address indexed operator, string role);

  /**
   * @dev reverts if addr does not have role
   * @param _operator address
   * @param _role the name of the role
   * // reverts
   */
  function checkRole(address _operator, string _role)
    public
    view
  {
    roles[_role].check(_operator);
  }

  /**
   * @dev determine if addr has role
   * @param _operator address
   * @param _role the name of the role
   * @return bool
   */
  function hasRole(address _operator, string _role)
    public
    view
    returns (bool)
  {
    return roles[_role].has(_operator);
  }

  /**
   * @dev add a role to an address
   * @param _operator address
   * @param _role the name of the role
   */
  function addRole(address _operator, string _role)
    internal
  {
    roles[_role].add(_operator);
    emit RoleAdded(_operator, _role);
  }

  /**
   * @dev remove a role from an address
   * @param _operator address
   * @param _role the name of the role
   */
  function removeRole(address _operator, string _role)
    internal
  {
    roles[_role].remove(_operator);
    emit RoleRemoved(_operator, _role);
  }

  /**
   * @dev modifier to scope access to a single role (uses msg.sender as addr)
   * @param _role the name of the role
   * // reverts
   */
  modifier onlyRole(string _role)
  {
    checkRole(msg.sender, _role);
    _;
  }

  /**
   * @dev modifier to scope access to a set of roles (uses msg.sender as addr)
   * @param _roles the names of the roles to scope access to
   * // reverts
   *
   * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this
   *  see: https://github.com/ethereum/solidity/issues/2467
   */
  // modifier onlyRoles(string[] _roles) {
  //     bool hasAnyRole = false;
  //     for (uint8 i = 0; i < _roles.length; i++) {
  //         if (hasRole(msg.sender, _roles[i])) {
  //             hasAnyRole = true;
  //             break;
  //         }
  //     }

  //     require(hasAnyRole);

  //     _;
  // }
}

File 8 of 12: Roles.sol
pragma solidity ^0.4.24;


/**
 * @title Roles
 * @author Francisco Giordano (@frangio)
 * @dev Library for managing addresses assigned to a Role.
 * See RBAC.sol for example usage.
 */
library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an address access to this role
   */
  function add(Role storage _role, address _addr)
    internal
  {
    _role.bearer[_addr] = true;
  }

  /**
   * @dev remove an address' access to this role
   */
  function remove(Role storage _role, address _addr)
    internal
  {
    _role.bearer[_addr] = false;
  }

  /**
   * @dev check if an address has this role
   * // reverts
   */
  function check(Role storage _role, address _addr)
    internal
    view
  {
    require(has(_role, _addr));
  }

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

File 9 of 12: SafeMath.sol
pragma solidity ^0.4.24;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
    return _a / _b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    c = _a + _b;
    assert(c >= _a);
    return c;
  }
}

File 10 of 12: StandardBurnableToken.sol
pragma solidity ^0.4.24;

import "./BurnableToken.sol";
import "./StandardToken.sol";


/**
 * @title Standard Burnable Token
 * @dev Adds burnFrom method to ERC20 implementations
 */
contract StandardBurnableToken is BurnableToken, StandardToken {

  /**
   * @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 {
    require(_value <= allowed[_from][msg.sender]);
    // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
    // this function needs to emit an event with the updated approval.
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    _burn(_from, _value);
  }
}

File 11 of 12: StandardToken.sol
pragma solidity ^0.4.24;

import "./BasicToken.sol";
import "./ERC20.sol";


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/issues/20
 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @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)
  {
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);
    require(_to != address(0));

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _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) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @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 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(
    address _spender,
    uint256 _addedValue
  )
    public
    returns (bool)
  {
    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
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(
    address _spender,
    uint256 _subtractedValue
  )
    public
    returns (bool)
  {
    uint256 oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue >= oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

File 12 of 12: Whitelist.sol
pragma solidity ^0.4.24;


import "./Ownable.sol";
import "./RBAC.sol";


/**
 * @title Whitelist
 * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions.
 * This simplifies the implementation of "user permissions".
 */
contract Whitelist is Ownable, RBAC {
  string public constant ROLE_WHITELISTED = "whitelist";

  /**
   * @dev Throws if operator is not whitelisted.
   * @param _operator address
   */
  modifier onlyIfWhitelisted(address _operator) {
    checkRole(_operator, ROLE_WHITELISTED);
    _;
  }

  /**
   * @dev add an address to the whitelist
   * @param _operator address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
  function addAddressToWhitelist(address _operator)
    public
    onlyOwner
  {
    addRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev getter to determine if address is in whitelist
   */
  function whitelist(address _operator)
    public
    view
    returns (bool)
  {
    return hasRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev add addresses to the whitelist
   * @param _operators addresses
   * @return true if at least one address was added to the whitelist,
   * false if all addresses were already in the whitelist
   */
  function addAddressesToWhitelist(address[] _operators)
    public
    onlyOwner
  {
    for (uint256 i = 0; i < _operators.length; i++) {
      addAddressToWhitelist(_operators[i]);
    }
  }

  /**
   * @dev remove an address from the whitelist
   * @param _operator address
   * @return true if the address was removed from the whitelist,
   * false if the address wasn't in the whitelist in the first place
   */
  function removeAddressFromWhitelist(address _operator)
    public
    onlyOwner
  {
    removeRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev remove addresses from the whitelist
   * @param _operators addresses
   * @return true if at least one address was removed from the whitelist,
   * false if all addresses weren't in the whitelist in the first place
   */
  function removeAddressesFromWhitelist(address[] _operators)
    public
    onlyOwner
  {
    for (uint256 i = 0; i < _operators.length; i++) {
      removeAddressFromWhitelist(_operators[i]);
    }
  }

}

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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ROLE_WHITELISTED","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_burnAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_who","type":"address"},{"name":"_amount","type":"uint256"}],"name":"setBurnAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"addAddressToWhitelist","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":"_operator","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"burnAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"},{"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"}]

60c0604052600860808190527f426964695061737300000000000000000000000000000000000000000000000060a09081526200004091600591906200023e565b506040805180820190915260038082527f4244500000000000000000000000000000000000000000000000000000000000602090920191825262000087916006916200023e565b506007805460ff19166012179055348015620000a257600080fd5b506040516040806200186c83398101604052805160209091015160038054600160a060020a03191633179055600081116200013e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4d697373696e6743617000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001546200015b90826401000000006200115b6200022a82021704565b600155600160a060020a0382166000908152602081905260409020546200019190826401000000006200115b6200022a82021704565b600160a060020a03831660008181526020818152604091829020939093558051848152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050620002e3565b818101828110156200023857fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028157805160ff1916838001178555620002b1565b82800160010185558215620002b1579182015b82811115620002b157825182559160200191906001019062000294565b50620002bf929150620002c3565b5090565b620002e091905b80821115620002bf5760008155600101620002ca565b90565b61157980620002f36000396000f30060806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610163578063095ea7b3146101ed5780630988ca8c1461022557806318160ddd1461028e57806318b919e9146102b55780631fc693f2146102ca578063217fe6c6146102eb57806323b872dd1461035257806324953eaa1461037c578063286dd3f5146103d1578063313ce567146103f257806342966c681461041d578063661884631461043557806370a0823114610459578063715018a61461047a57806379cc67901461048f5780637b1f8c17146104b35780637b9417c8146104d75780638da5cb5b146104f857806395d89b41146105295780639b19251a1461053e578063a9059cbb1461055f578063d73dd62314610583578063dd62ed3e146105a7578063e2ec6ec3146105ce578063f2fde38b14610623578063f93102b814610644575b600080fd5b34801561016f57600080fd5b50610178610665565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b257818101518382015260200161019a565b50505050905090810190601f1680156101df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f957600080fd5b50610211600160a060020a03600435166024356106f3565b604080519115158252519081900360200190f35b34801561023157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261028c958335600160a060020a03169536956044949193909101919081908401838280828437509497506107599650505050505050565b005b34801561029a57600080fd5b506102a36107c7565b60408051918252519081900360200190f35b3480156102c157600080fd5b506101786107cd565b3480156102d657600080fd5b506102a3600160a060020a03600435166107f2565b3480156102f757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610211958335600160a060020a03169536956044949193909101919081908401838280828437509497506108049650505050505050565b34801561035e57600080fd5b50610211600160a060020a0360043581169060243516604435610877565b34801561038857600080fd5b506040805160206004803580820135838102808601850190965280855261028c953695939460249493850192918291850190849080828437509497506109ec9650505050505050565b3480156103dd57600080fd5b5061028c600160a060020a0360043516610a3b565b3480156103fe57600080fd5b50610407610a82565b6040805160ff9092168252519081900360200190f35b34801561042957600080fd5b5061028c600435610a8b565b34801561044157600080fd5b50610211600160a060020a0360043516602435610b99565b34801561046557600080fd5b506102a3600160a060020a0360043516610c88565b34801561048657600080fd5b5061028c610ca3565b34801561049b57600080fd5b5061028c600160a060020a0360043516602435610d11565b3480156104bf57600080fd5b5061028c600160a060020a0360043516602435610da3565b3480156104e357600080fd5b5061028c600160a060020a0360043516610e05565b34801561050457600080fd5b5061050d610e49565b60408051600160a060020a039092168252519081900360200190f35b34801561053557600080fd5b50610178610e58565b34801561054a57600080fd5b50610211600160a060020a0360043516610eb3565b34801561056b57600080fd5b50610211600160a060020a0360043516602435610ee8565b34801561058f57600080fd5b50610211600160a060020a0360043516602435610fc7565b3480156105b357600080fd5b506102a3600160a060020a0360043581169060243516611060565b3480156105da57600080fd5b506040805160206004803580820135838102808601850190965280855261028c9536959394602494938501929182918501908490808284375094975061108b9650505050505050565b34801561062f57600080fd5b5061028c600160a060020a03600435166110da565b34801561065057600080fd5b506102a3600160a060020a03600435166110fa565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6107c3826004836040518082805190602001908083835b6020831061078f5780518252601f199092019160209182019101610770565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611115565b5050565b60015490565b604080518082019091526009815260008051602061152e833981519152602082015281565b60086020526000908152604090205481565b6000610870836004846040518082805190602001908083835b6020831061083c5780518252601f19909201916020918201910161081d565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061112a565b9392505050565b600160a060020a03831660009081526020819052604081205482111561089c57600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156108cc57600080fd5b600160a060020a03831615156108e157600080fd5b600160a060020a03841660009081526020819052604090205461090a908363ffffffff61114916565b600160a060020a03808616600090815260208190526040808220939093559085168152205461093f908363ffffffff61115b16565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610981908363ffffffff61114916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600354600090600160a060020a03163314610a0657600080fd5b5060005b81518110156107c357610a338282815181101515610a2457fe5b90602001906020020151610a3b565b600101610a0a565b600354600160a060020a03163314610a5257600080fd5b610a7f8160408051908101604052806009815260200160008051602061152e833981519152815250611168565b50565b60075460ff1681565b6000610a96336110fa565b905060008211610b0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4d697373696e6756616c75650000000000000000000000000000000000000000604482015290519081900360640190fd5b81811015610b7657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f74456e6f756768416c6c6f77616e63650000000000000000000000000000604482015290519081900360640190fd5b610b8f33610b8a838563ffffffff61114916565b611279565b6107c33383611295565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610bed57336000908152600260209081526040808320600160a060020a0388168452909152812055610c22565b610bfd818463ffffffff61114916565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a03163314610cba57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0382166000908152600260209081526040808320338452909152902054811115610d4157600080fd5b600160a060020a0382166000908152600260209081526040808320338452909152902054610d75908263ffffffff61114916565b600160a060020a03831660009081526002602090815260408083203384529091529020556107c38282611295565b33610dd18160408051908101604052806009815260200160008051602061152e833981519152815250610759565b600160a060020a038316600090815260208190526040902054821115610df657600080fd5b610e008383611279565b505050565b600354600160a060020a03163314610e1c57600080fd5b610a7f8160408051908101604052806009815260200160008051602061152e833981519152815250611396565b600354600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106eb5780601f106106c0576101008083540402835291602001916106eb565b6000610ee28260408051908101604052806009815260200160008051602061152e833981519152815250610804565b92915050565b33600090815260208190526040812054821115610f0457600080fd5b600160a060020a0383161515610f1957600080fd5b33600090815260208190526040902054610f39908363ffffffff61114916565b3360009081526020819052604080822092909255600160a060020a03851681522054610f6b908363ffffffff61115b16565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a0386168452909152812054610ffb908363ffffffff61115b16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a031633146110a557600080fd5b5060005b81518110156107c3576110d282828151811015156110c357fe5b90602001906020020151610e05565b6001016110a9565b600354600160a060020a031633146110f157600080fd5b610a7f81611468565b600160a060020a031660009081526008602052604090205490565b61111f828261112a565b15156107c357600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b60008282111561115557fe5b50900390565b81810182811015610ee257fe5b6111d2826004836040518082805190602001908083835b6020831061119e5780518252601f19909201916020918201910161117f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506114e6565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561123b578181015183820152602001611223565b50505050905090810190601f1680156112685780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03909116600090815260086020526040902055565b600160a060020a0382166000908152602081905260409020548111156112ba57600080fd5b600160a060020a0382166000908152602081905260409020546112e3908263ffffffff61114916565b600160a060020a03831660009081526020819052604090205560015461130f908263ffffffff61114916565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b611400826004836040518082805190602001908083835b602083106113cc5780518252601f1990920191602091820191016113ad565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611508565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101561123b578181015183820152602001611223565b600160a060020a038116151561147d57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff19166001179055560077686974656c6973740000000000000000000000000000000000000000000000a165627a7a723058200f0bca38511b2066ce8ab19eeeb26adf91f8f93436f8b48b026d87fcc9d0a93d0029000000000000000000000000c9c61fdc3c6efe656ecc2b0735be827e80b607ec000000000000000000000000000000000000000004d8c55aefb8c05b5c000000

Deployed Bytecode

0x60806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610163578063095ea7b3146101ed5780630988ca8c1461022557806318160ddd1461028e57806318b919e9146102b55780631fc693f2146102ca578063217fe6c6146102eb57806323b872dd1461035257806324953eaa1461037c578063286dd3f5146103d1578063313ce567146103f257806342966c681461041d578063661884631461043557806370a0823114610459578063715018a61461047a57806379cc67901461048f5780637b1f8c17146104b35780637b9417c8146104d75780638da5cb5b146104f857806395d89b41146105295780639b19251a1461053e578063a9059cbb1461055f578063d73dd62314610583578063dd62ed3e146105a7578063e2ec6ec3146105ce578063f2fde38b14610623578063f93102b814610644575b600080fd5b34801561016f57600080fd5b50610178610665565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b257818101518382015260200161019a565b50505050905090810190601f1680156101df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f957600080fd5b50610211600160a060020a03600435166024356106f3565b604080519115158252519081900360200190f35b34801561023157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261028c958335600160a060020a03169536956044949193909101919081908401838280828437509497506107599650505050505050565b005b34801561029a57600080fd5b506102a36107c7565b60408051918252519081900360200190f35b3480156102c157600080fd5b506101786107cd565b3480156102d657600080fd5b506102a3600160a060020a03600435166107f2565b3480156102f757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610211958335600160a060020a03169536956044949193909101919081908401838280828437509497506108049650505050505050565b34801561035e57600080fd5b50610211600160a060020a0360043581169060243516604435610877565b34801561038857600080fd5b506040805160206004803580820135838102808601850190965280855261028c953695939460249493850192918291850190849080828437509497506109ec9650505050505050565b3480156103dd57600080fd5b5061028c600160a060020a0360043516610a3b565b3480156103fe57600080fd5b50610407610a82565b6040805160ff9092168252519081900360200190f35b34801561042957600080fd5b5061028c600435610a8b565b34801561044157600080fd5b50610211600160a060020a0360043516602435610b99565b34801561046557600080fd5b506102a3600160a060020a0360043516610c88565b34801561048657600080fd5b5061028c610ca3565b34801561049b57600080fd5b5061028c600160a060020a0360043516602435610d11565b3480156104bf57600080fd5b5061028c600160a060020a0360043516602435610da3565b3480156104e357600080fd5b5061028c600160a060020a0360043516610e05565b34801561050457600080fd5b5061050d610e49565b60408051600160a060020a039092168252519081900360200190f35b34801561053557600080fd5b50610178610e58565b34801561054a57600080fd5b50610211600160a060020a0360043516610eb3565b34801561056b57600080fd5b50610211600160a060020a0360043516602435610ee8565b34801561058f57600080fd5b50610211600160a060020a0360043516602435610fc7565b3480156105b357600080fd5b506102a3600160a060020a0360043581169060243516611060565b3480156105da57600080fd5b506040805160206004803580820135838102808601850190965280855261028c9536959394602494938501929182918501908490808284375094975061108b9650505050505050565b34801561062f57600080fd5b5061028c600160a060020a03600435166110da565b34801561065057600080fd5b506102a3600160a060020a03600435166110fa565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6107c3826004836040518082805190602001908083835b6020831061078f5780518252601f199092019160209182019101610770565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611115565b5050565b60015490565b604080518082019091526009815260008051602061152e833981519152602082015281565b60086020526000908152604090205481565b6000610870836004846040518082805190602001908083835b6020831061083c5780518252601f19909201916020918201910161081d565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061112a565b9392505050565b600160a060020a03831660009081526020819052604081205482111561089c57600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156108cc57600080fd5b600160a060020a03831615156108e157600080fd5b600160a060020a03841660009081526020819052604090205461090a908363ffffffff61114916565b600160a060020a03808616600090815260208190526040808220939093559085168152205461093f908363ffffffff61115b16565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610981908363ffffffff61114916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600354600090600160a060020a03163314610a0657600080fd5b5060005b81518110156107c357610a338282815181101515610a2457fe5b90602001906020020151610a3b565b600101610a0a565b600354600160a060020a03163314610a5257600080fd5b610a7f8160408051908101604052806009815260200160008051602061152e833981519152815250611168565b50565b60075460ff1681565b6000610a96336110fa565b905060008211610b0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4d697373696e6756616c75650000000000000000000000000000000000000000604482015290519081900360640190fd5b81811015610b7657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f74456e6f756768416c6c6f77616e63650000000000000000000000000000604482015290519081900360640190fd5b610b8f33610b8a838563ffffffff61114916565b611279565b6107c33383611295565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610bed57336000908152600260209081526040808320600160a060020a0388168452909152812055610c22565b610bfd818463ffffffff61114916565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a03163314610cba57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0382166000908152600260209081526040808320338452909152902054811115610d4157600080fd5b600160a060020a0382166000908152600260209081526040808320338452909152902054610d75908263ffffffff61114916565b600160a060020a03831660009081526002602090815260408083203384529091529020556107c38282611295565b33610dd18160408051908101604052806009815260200160008051602061152e833981519152815250610759565b600160a060020a038316600090815260208190526040902054821115610df657600080fd5b610e008383611279565b505050565b600354600160a060020a03163314610e1c57600080fd5b610a7f8160408051908101604052806009815260200160008051602061152e833981519152815250611396565b600354600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106eb5780601f106106c0576101008083540402835291602001916106eb565b6000610ee28260408051908101604052806009815260200160008051602061152e833981519152815250610804565b92915050565b33600090815260208190526040812054821115610f0457600080fd5b600160a060020a0383161515610f1957600080fd5b33600090815260208190526040902054610f39908363ffffffff61114916565b3360009081526020819052604080822092909255600160a060020a03851681522054610f6b908363ffffffff61115b16565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a0386168452909152812054610ffb908363ffffffff61115b16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a031633146110a557600080fd5b5060005b81518110156107c3576110d282828151811015156110c357fe5b90602001906020020151610e05565b6001016110a9565b600354600160a060020a031633146110f157600080fd5b610a7f81611468565b600160a060020a031660009081526008602052604090205490565b61111f828261112a565b15156107c357600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b60008282111561115557fe5b50900390565b81810182811015610ee257fe5b6111d2826004836040518082805190602001908083835b6020831061119e5780518252601f19909201916020918201910161117f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929150506114e6565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561123b578181015183820152602001611223565b50505050905090810190601f1680156112685780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03909116600090815260086020526040902055565b600160a060020a0382166000908152602081905260409020548111156112ba57600080fd5b600160a060020a0382166000908152602081905260409020546112e3908263ffffffff61114916565b600160a060020a03831660009081526020819052604090205560015461130f908263ffffffff61114916565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b611400826004836040518082805190602001908083835b602083106113cc5780518252601f1990920191602091820191016113ad565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611508565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101561123b578181015183820152602001611223565b600160a060020a038116151561147d57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff19166001179055560077686974656c6973740000000000000000000000000000000000000000000000a165627a7a723058200f0bca38511b2066ce8ab19eeeb26adf91f8f93436f8b48b026d87fcc9d0a93d0029

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

000000000000000000000000c9c61fdc3c6efe656ecc2b0735be827e80b607ec000000000000000000000000000000000000000004d8c55aefb8c05b5c000000

-----Decoded View---------------
Arg [0] : _beneficiary (address): 0xc9c61FDC3C6eFe656EcC2b0735BE827E80B607EC
Arg [1] : _cap (uint256): 1500000000000000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c9c61fdc3c6efe656ecc2b0735be827e80b607ec
Arg [1] : 000000000000000000000000000000000000000004d8c55aefb8c05b5c000000


Deployed Bytecode Sourcemap

115:2268:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;261:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;261:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;261:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:188:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1814:188:10;-1:-1:-1;;;;;1814:188:10;;;;;;;;;;;;;;;;;;;;;;;;;837:114:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;837:114:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;837:114:6;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;837:114:6;;-1:-1:-1;837:114:6;;-1:-1:-1;;;;;;;837:114:6;;;380:83:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;380:83:1;;;;;;;;;;;;;;;;;;;;316:53:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:53:11;;;;365:49:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;365:49:0;-1:-1:-1;;;;;365:49:0;;;;;1091:136:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1091:136:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:136:6;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1091:136:6;;-1:-1:-1;1091:136:6;;-1:-1:-1;;;;;;;1091:136:6;726:470:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;726:470:10;-1:-1:-1;;;;;726:470:10;;;;;;;;;;;;2105:201:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2105:201:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2105:201:11;;-1:-1:-1;2105:201:11;;-1:-1:-1;;;;;;;2105:201:11;1732:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1732:132:11;-1:-1:-1;;;;;1732:132:11;;;;;332:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:26:0;;;;;;;;;;;;;;;;;;;;;;;1016:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1016:304:0;;;;;3679:432:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3679:432:10;-1:-1:-1;;;;;3679:432:10;;;;;;;1140:99:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1140:99:1;-1:-1:-1;;;;;1140:99:1;;;;;1001:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:5;;;;490:370:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;490:370:9;-1:-1:-1;;;;;490:370:9;;;;;;;1794:229:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1794:229:0;-1:-1:-1;;;;;1794:229:0;;;;;;;766:124:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;766:124:11;-1:-1:-1;;;;;766:124:11;;;;;238:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;-1:-1:-1;;;;;238:20:5;;;;;;;;;;;;;;298:28:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;298:28:0;;;;963:133:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;963:133:11;-1:-1:-1;;;;;963:133:11;;;;;617:321:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;617:321:1;-1:-1:-1;;;;;617:321:1;;;;;;;2926:296:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2926:296:10;-1:-1:-1;;;;;2926:296:10;;;;;;;2321:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2321:153:10;-1:-1:-1;;;;;2321:153:10;;;;;;;;;;1314:191:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1314:191:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1314:191:11;;-1:-1:-1;1314:191:11;;-1:-1:-1;;;;;;;1314:191:11;1274:103:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:5;-1:-1:-1;;;;;1274:103:5;;;;;1434:139:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1434:139:0;-1:-1:-1;;;;;1434:139:0;;;;;261:31;;;;;;;;;;;;;;;-1:-1:-1;;261:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1814:188:10:-;1901:10;1881:4;1893:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;1893:29:10;;;;;;;;;;;:38;;;1942;;;;;;;1881:4;;1893:29;;1901:10;;1942:38;;;;;;;;-1:-1:-1;1993:4:10;1814:188;;;;:::o;837:114:6:-;917:29;936:9;917:5;923;917:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;917:12:6;;;;;-1:-1:-1;917:12:6;;;;;;;;;;;;-1:-1:-1;;917:18:6;:29::i;:::-;837:114;;:::o;380:83:1:-;446:12;;380:83;:::o;316:53:11:-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;316:53:11;;;;;:::o;365:49:0:-;;;;;;;;;;;;;:::o;1091:136:6:-;1174:4;1195:27;1212:9;1195:5;1201;1195:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1195:12:6;;;;;-1:-1:-1;1195:12:6;;;;;;;;;;;;-1:-1:-1;;1195:16:6;:27::i;:::-;1188:34;1091:136;-1:-1:-1;;;1091:136:6:o;726:470:10:-;-1:-1:-1;;;;;864:15:10;;832:4;864:15;;;;;;;;;;;854:25;;;846:34;;;;;;-1:-1:-1;;;;;904:14:10;;;;;;:7;:14;;;;;;;;919:10;904:26;;;;;;;;894:36;;;886:45;;;;;;-1:-1:-1;;;;;945:17:10;;;;937:26;;;;;;-1:-1:-1;;;;;988:15:10;;:8;:15;;;;;;;;;;;:27;;1008:6;988:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;970:15:10;;;:8;:15;;;;;;;;;;;:45;;;;1037:13;;;;;;;:25;;1055:6;1037:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1021:13:10;;;:8;:13;;;;;;;;;;;:41;;;;1097:14;;;;;:7;:14;;;;;1112:10;1097:26;;;;;;;:38;;1128:6;1097:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1068:14:10;;;;;;;:7;:14;;;;;;;;1083:10;1068:26;;;;;;;;:67;;;;1146:28;;;;;;;;;;;1068:14;;1146:28;;;;;;;;;;;-1:-1:-1;1187:4:10;726:470;;;;;:::o;2105:201:11:-;719:5:5;;2203:9:11;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;-1:-1:-1;2215:1:11;2198:104;2222:10;:17;2218:1;:21;2198:104;;;2254:41;2281:10;2292:1;2281:13;;;;;;;;;;;;;;;;;;2254:26;:41::i;:::-;2241:3;;2198:104;;1732:132;719:5:5;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;1820:39:11;1831:9;1842:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1842:16:11;;;1820:10;:39::i;:::-;1732:132;:::o;332:26:0:-;;;;;;:::o;1016:304::-;1063:17;1083:25;1097:10;1083:13;:25::i;:::-;1063:45;-1:-1:-1;1136:1:0;1127:10;;1119:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1172:19;;;;1164:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:52;1243:10;1255:21;:9;1269:6;1255:21;:13;:21;:::i;:::-;1225:17;:52::i;:::-;1288:25;1294:10;1306:6;1288:5;:25::i;3679:432:10:-;3826:10;3785:4;3818:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3818:29:10;;;;;;;;;;3857:28;;;3853:165;;3903:10;3927:1;3895:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3895:29:10;;;;;;;;;:33;3853:165;;;3981:30;:8;3994:16;3981:30;:12;:30;:::i;:::-;3957:10;3949:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3949:29:10;;;;;;;;;:62;3853:165;4037:10;4059:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4028:61:10;;4059:29;;;;;;;;;;;4028:61;;;;;;;;;4037:10;4028:61;;;;;;;;;;;-1:-1:-1;4102:4:10;;3679:432;-1:-1:-1;;;3679:432:10:o;1140:99:1:-;-1:-1:-1;;;;;1218:16:1;1196:7;1218:16;;;;;;;;;;;;1140:99::o;1001:111:5:-;719:5;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:5;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:5;;;1001:111::o;490:370:9:-;-1:-1:-1;;;;;570:14:9;;;;;;:7;:14;;;;;;;;585:10;570:26;;;;;;;;560:36;;;552:45;;;;;;-1:-1:-1;;;;;791:14:9;;;;;;:7;:14;;;;;;;;806:10;791:26;;;;;;;;:38;;822:6;791:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;762:14:9;;;;;;:7;:14;;;;;;;;777:10;762:26;;;;;;;:67;835:20;770:5;848:6;835:5;:20::i;1794:229:0:-;1914:10;517:38:11;527:9;538:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;538:16:11;;;517:9;:38::i;:::-;-1:-1:-1;;;;;1959:14:0;;:8;:14;;;;;;;;;;;1948:25;;;1940:34;;;;;;1984:32;2002:4;2008:7;1984:17;:32::i;:::-;1794:229;;;:::o;766:124:11:-;719:5:5;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;849:36:11;857:9;868:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:16:11;;;849:7;:36::i;238:20:5:-;;;-1:-1:-1;;;;;238:20:5;;:::o;298:28:0:-;;;;;;;;;;;;;;;-1:-1:-1;;298:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;963:133:11;1034:4;1055:36;1063:9;1074:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1074:16:11;;;1055:7;:36::i;:::-;1048:43;963:133;-1:-1:-1;;963:133:11:o;617:321:1:-;719:10;680:4;710:20;;;;;;;;;;;700:30;;;692:39;;;;;;-1:-1:-1;;;;;745:17:1;;;;737:26;;;;;;802:10;793:8;:20;;;;;;;;;;;:32;;818:6;793:32;:24;:32;:::i;:::-;779:10;770:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;847:13:1;;;;;;:25;;865:6;847:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;831:13:1;;:8;:13;;;;;;;;;;;;:41;;;;883:33;;;;;;;831:13;;892:10;;883:33;;;;;;;;;;-1:-1:-1;929:4:1;617:321;;;;:::o;2926:296:10:-;3089:10;3027:4;3081:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3081:29:10;;;;;;;;;;:46;;3115:11;3081:46;:33;:46;:::i;:::-;3049:10;3041:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3041:29:10;;;;;;;;;;;;:87;;;3139:61;;;;;;3041:29;;3139:61;;;;;;;;;;;-1:-1:-1;3213:4:10;2926:296;;;;:::o;2321:153::-;-1:-1:-1;;;;;2444:15:10;;;2420:7;2444:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2321:153::o;1314:191:11:-;719:5:5;;1407:9:11;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;-1:-1:-1;1419:1:11;1402:99;1426:10;:17;1422:1;:21;1402:99;;;1458:36;1480:10;1491:1;1480:13;;;;;;;;;;;;;;;;;;1458:21;:36::i;:::-;1445:3;;1402:99;;1274:103:5;719:5;;-1:-1:-1;;;;;719:5:5;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;1434:139:0:-;-1:-1:-1;;;;;1546:20:0;1516:7;1546:20;;;:14;:20;;;;;;;1434:139::o;666:111:7:-;754:17;758:5;765;754:3;:17::i;:::-;746:26;;;;;;;855:128;-1:-1:-1;;;;;959:19:7;938:4;959:19;;;;;;;;;;;;;;;855:128::o;1060:116:8:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:8;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;1613:149:6;1687:30;1707:9;1687:5;1693;1687:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1687:12:6;;;;;-1:-1:-1;1687:12:6;;;;;;;;;;;;-1:-1:-1;;1687:19:6;:30::i;:::-;1740:9;-1:-1:-1;;;;;1728:29:6;;1751:5;1728:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1728:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:149;;:::o;2245:136:0:-;-1:-1:-1;;;;;2344:20:0;;;;;;;:14;:20;;;;;:30;2245:136::o;430:438:2:-;-1:-1:-1;;;;;508:14:2;;:8;:14;;;;;;;;;;;498:24;;;490:33;;;;;;-1:-1:-1;;;;;718:14:2;;:8;:14;;;;;;;;;;;:26;;737:6;718:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;701:14:2;;:8;:14;;;;;;;;;;:43;765:12;;:24;;782:6;765:24;:16;:24;:::i;:::-;750:12;:39;800:18;;;;;;;;-1:-1:-1;;;;;800:18:2;;;;;;;;;;;;;829:34;;;;;;;;852:1;;-1:-1:-1;;;;;829:34:2;;;;;;;;;;;;430:438;;:::o;1347:141:6:-;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:6;;;;;-1:-1:-1;1418:12:6;;;;;;;;;;;;-1:-1:-1;;1418:16:6;:27::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:6;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1512:171:5;-1:-1:-1;;;;;1582:23:5;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:5;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:5;-1:-1:-1;;;;;1661:17:5;;;;;;;;;;1512:171::o;486:104:7:-;-1:-1:-1;;;;;558:19:7;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:7;;;486:104::o;321:100::-;-1:-1:-1;;;;;390:19:7;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:7;412:4;390:26;;;321:100::o

Swarm Source

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