Feature Tip: Add private address tag to any address under My Name Tag !
Token migration announcement. Ocean Protocol token contract has migrated to a new address.
ERC-20
Old Contract
Overview
Max Total Supply
613,099,141 OCEAN
Holders
11,679 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
23,330.7697 OCEANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OceanToken
Compiler Version
v0.5.3+commit.10d17f24
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-10 */ // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol pragma solidity ^0.5.0; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { 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); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: openzeppelin-solidity/contracts/math/SafeMath.sol pragma solidity ^0.5.0; /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @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 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 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 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 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; } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol pragma solidity ^0.5.0; /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md * Originally based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol * * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for * all accounts just by listening to said events. Note that this isn't required by the specification, and other * compliant implementations may not do it. */ contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; /** * @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]); } } // File: openzeppelin-solidity/contracts/access/Roles.sol pragma solidity ^0.5.0; /** * @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]; } } // File: openzeppelin-solidity/contracts/access/roles/MinterRole.sol pragma solidity ^0.5.0; 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); } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Mintable.sol pragma solidity ^0.5.0; /** * @title ERC20Mintable * @dev ERC20 minting logic */ contract ERC20Mintable is ERC20, MinterRole { /** * @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 returns (bool) { _mint(to, value); return true; } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Capped.sol pragma solidity ^0.5.0; /** * @title Capped token * @dev Mintable token with a token cap. */ contract ERC20Capped is ERC20Mintable { uint256 private _cap; constructor (uint256 cap) public { require(cap > 0); _cap = cap; } /** * @return the cap for the token minting. */ function cap() public view returns (uint256) { return _cap; } function _mint(address account, uint256 value) internal { require(totalSupply().add(value) <= _cap); super._mint(account, value); } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol pragma solidity ^0.5.0; /** * @title ERC20Detailed token * @dev The decimals are only for visualization purposes. * All the operations are done using the smallest and indivisible token unit, * just as on Ethereum all the operations are done in wei. */ contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } // File: openzeppelin-solidity/contracts/access/roles/PauserRole.sol pragma solidity ^0.5.0; 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); } } // File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol pragma solidity ^0.5.0; /** * @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 _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 { _paused = true; emit Paused(msg.sender); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(msg.sender); } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol pragma solidity ^0.5.0; /** * @title Pausable token * @dev ERC20 modified with pausable transfers. **/ contract ERC20Pausable is ERC20, Pausable { 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); } } // File: openzeppelin-solidity/contracts/ownership/Ownable.sol pragma solidity ^0.5.0; /** * @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 private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner()); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return 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 OwnershipTransferred(_owner, address(0)); _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: contracts/OceanToken.sol pragma solidity 0.5.3; /** * @title Ocean Protocol ERC20 Token Contract * @author Ocean Protocol Team * @dev Implementation of the Ocean Token. */ contract OceanToken is Ownable, ERC20Pausable, ERC20Detailed, ERC20Capped { using SafeMath for uint256; uint8 constant DECIMALS = 18; uint256 constant CAP = 690900000; uint256 TOTALSUPPLY = CAP.mul(uint256(10) ** DECIMALS); // keep track token holders address[] private accounts = new address[](0); mapping(address => bool) private tokenHolders; /** * @dev OceanToken constructor * @param contractOwner refers to the owner of the contract */ constructor( address contractOwner ) public ERC20Detailed('OceanToken', 'OCEAN', DECIMALS) ERC20Capped(TOTALSUPPLY) Ownable() { addPauser(contractOwner); renouncePauser(); addMinter(contractOwner); renounceMinter(); transferOwnership(contractOwner); } /** * @dev transfer tokens when not paused (pausable transfer function) * @param _to receiver address * @param _value amount of tokens * @return true if receiver is illegible to receive tokens */ function transfer( address _to, uint256 _value ) public returns (bool) { bool success = super.transfer(_to, _value); if (success) { updateTokenHolders(msg.sender, _to); } return success; } /** * @dev transferFrom transfers tokens only when token is not paused * @param _from sender address * @param _to receiver address * @param _value amount of tokens * @return true if receiver is illegible to receive tokens */ function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { bool success = super.transferFrom(_from, _to, _value); if (success) { updateTokenHolders(_from, _to); } return success; } /** * @dev retrieve the address & token balance of token holders (each time retrieve partial from the list) * @param _start index * @param _end index * @return array of accounts and array of balances */ function getAccounts( uint256 _start, uint256 _end ) external view onlyOwner returns (address[] memory, uint256[] memory) { require( _start <= _end && _end < accounts.length, 'Array index out of bounds' ); uint256 length = _end.sub(_start).add(1); address[] memory _tokenHolders = new address[](length); uint256[] memory _tokenBalances = new uint256[](length); for (uint256 i = _start; i <= _end; i++) { address account = accounts[i]; uint256 accountBalance = super.balanceOf(account); if (accountBalance > 0) { _tokenBalances[i] = accountBalance; _tokenHolders[i] = account; } } return (_tokenHolders, _tokenBalances); } /** * @dev get length of account list */ function getAccountsLength() external view onlyOwner returns (uint256) { return accounts.length; } /** * @dev kill the contract and destroy all tokens */ function kill() external onlyOwner { selfdestruct(address(uint160(owner()))); } /** * @dev fallback function prevents ether transfer to this contract */ function() external payable { revert('Invalid ether transfer'); } /* * @dev tryToAddTokenHolder try to add the account to the token holders structure * @param account address */ function tryToAddTokenHolder( address account ) private { if (!tokenHolders[account] && super.balanceOf(account) > 0) { accounts.push(account); tokenHolders[account] = true; } } /* * @dev updateTokenHolders maintains the accounts array and set the address as a promising token holder * @param sender address * @param receiver address. */ function updateTokenHolders( address sender, address receiver ) private { tryToAddTokenHolder(sender); tryToAddTokenHolder(receiver); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"getAccountsLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"kill","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":"renounceOwnership","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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"},{"constant":true,"inputs":[{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"}],"name":"getAccounts","outputs":[{"name":"","type":"address[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"contractOwner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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":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":"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60806040526200002a63292e4c20670de0b6b3a7640000640100000000620015676200021582021704565b600b5560408051600081526020810191829052516200004c91600c91620005f5565b503480156200005a57600080fd5b5060405160208062001d12833981018060405260208110156200007c57600080fd5b5051600b54604080518082018252600a81527f4f6365616e546f6b656e0000000000000000000000000000000000000000000060208281019190915282518084018452600581527f4f4345414e0000000000000000000000000000000000000000000000000000009181019190915260008054600160a060020a0319163317808255935192939192601292600160a060020a0316919060008051602062001cf2833981519152908290a36200013a336401000000006200024d810204565b6005805460ff191690558251620001599060069060208601906200065f565b5081516200016f9060079060208501906200065f565b506008805460ff191660ff92909216919091179055506200019b9050336401000000006200029f810204565b60008111620001a957600080fd5b600a55620001c081640100000000620002f1810204565b620001d364010000000062000328810204565b620001e7816401000000006200033e810204565b620001fa64010000000062000372810204565b6200020e8164010000000062000386810204565b5062000724565b6000821515620002285750600062000247565b8282028284828115156200023857fe5b04146200024457600080fd5b90505b92915050565b6200026860048264010000000062001441620003b982021704565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b620002ba60098264010000000062001441620003b982021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b620003053364010000000062000414810204565b15156200031157600080fd5b62000325816401000000006200024d810204565b50565b6200033c3364010000000062000431810204565b565b620003523364010000000062000483810204565b15156200035e57600080fd5b62000325816401000000006200029f810204565b6200033c33640100000000620004a0810204565b62000399640100000000620004f2810204565b1515620003a557600080fd5b620003258164010000000062000504810204565b600160a060020a0381161515620003cf57600080fd5b620003e4828264010000000062000564810204565b15620003ef57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60006200024760048364010000000062000f736200056482021704565b6200044c600482640100000000620013f56200059c82021704565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b60006200024760098364010000000062000f736200056482021704565b620004bb600982640100000000620013f56200059c82021704565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600054600160a060020a031633145b90565b600160a060020a03811615156200051a57600080fd5b60008054604051600160a060020a038085169392169160008051602062001cf283398151915291a360008054600160a060020a031916600160a060020a0392909216919091179055565b6000600160a060020a03821615156200057c57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0381161515620005b257600080fd5b620005c7828264010000000062000564810204565b1515620005d357600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b8280548282559060005260206000209081019282156200064d579160200282015b828111156200064d5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000616565b506200065b929150620006e0565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006a257805160ff1916838001178555620006d2565b82800160010185558215620006d2579182015b82811115620006d2578251825591602001919060010190620006b5565b506200065b92915062000707565b6200050191905b808211156200065b578054600160a060020a0319168155600101620006e7565b6200050191905b808211156200065b57600081556001016200070e565b6115be80620007346000396000f3fe6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806370a0823111610114578063983b2d56116100b2578063aa271e1a11610081578063aa271e1a1461067c578063dd62ed3e146106af578063e68a7c3b146106ea578063f2fde38b146107b3576101df565b8063983b2d56146105c257806398650275146105f5578063a457c2d71461060a578063a9059cbb14610643576101df565b80638456cb59116100ee5780638456cb59146105525780638da5cb5b146105675780638f32d59b1461059857806395d89b41146105ad576101df565b806370a08231146104d7578063715018a61461050a57806382dc1ec41461051f576101df565b8063395093511161018157806341c0e1b51161015b57806341c0e1b51461046557806346fbf68e1461047a5780635c975abb146104ad5780636ef8d66d146104c2576101df565b806339509351146103dc5780633f4ba83a1461041557806340c10f191461042c576101df565b806318160ddd116101bd57806318160ddd1461034457806323b872dd14610359578063313ce5671461039c578063355274ea146103c7576101df565b806306fdde0314610246578063095ea7b3146102d057806314f326a11461031d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206574686572207472616e7366657200000000000000000000604482015290519081900360640190fd5b34801561025257600080fd5b5061025b6107e6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029557818101518382015260200161027d565b50505050905090810190601f1680156102c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102dc57600080fd5b50610309600480360360408110156102f357600080fd5b50600160a060020a03813516906020013561087c565b604080519115158252519081900360200190f35b34801561032957600080fd5b506103326108a2565b60408051918252519081900360200190f35b34801561035057600080fd5b506103326108be565b34801561036557600080fd5b506103096004803603606081101561037c57600080fd5b50600160a060020a038135811691602081013590911690604001356108c4565b3480156103a857600080fd5b506103b16108ec565b6040805160ff9092168252519081900360200190f35b3480156103d357600080fd5b506103326108f5565b3480156103e857600080fd5b50610309600480360360408110156103ff57600080fd5b50600160a060020a0381351690602001356108fb565b34801561042157600080fd5b5061042a610918565b005b34801561043857600080fd5b506103096004803603604081101561044f57600080fd5b50600160a060020a03813516906020013561097c565b34801561047157600080fd5b5061042a6109a5565b34801561048657600080fd5b506103096004803603602081101561049d57600080fd5b5035600160a060020a03166109cb565b3480156104b957600080fd5b506103096109de565b3480156104ce57600080fd5b5061042a6109e7565b3480156104e357600080fd5b50610332600480360360208110156104fa57600080fd5b5035600160a060020a03166109f2565b34801561051657600080fd5b5061042a610a0d565b34801561052b57600080fd5b5061042a6004803603602081101561054257600080fd5b5035600160a060020a0316610a77565b34801561055e57600080fd5b5061042a610a97565b34801561057357600080fd5b5061057c610afd565b60408051600160a060020a039092168252519081900360200190f35b3480156105a457600080fd5b50610309610b0c565b3480156105b957600080fd5b5061025b610b1d565b3480156105ce57600080fd5b5061042a600480360360208110156105e557600080fd5b5035600160a060020a0316610b7e565b34801561060157600080fd5b5061042a610b9b565b34801561061657600080fd5b506103096004803603604081101561062d57600080fd5b50600160a060020a038135169060200135610ba4565b34801561064f57600080fd5b506103096004803603604081101561066657600080fd5b50600160a060020a038135169060200135610bc1565b34801561068857600080fd5b506103096004803603602081101561069f57600080fd5b5035600160a060020a0316610be0565b3480156106bb57600080fd5b50610332600480360360408110156106d257600080fd5b50600160a060020a0381358116916020013516610bf3565b3480156106f657600080fd5b5061071a6004803603604081101561070d57600080fd5b5080359060200135610c1e565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561075e578181015183820152602001610746565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561079d578181015183820152602001610785565b5050505090500194505050505060405180910390f35b3480156107bf57600080fd5b5061042a600480360360208110156107d657600080fd5b5035600160a060020a0316610dd1565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108725780601f1061084757610100808354040283529160200191610872565b820191906000526020600020905b81548152906001019060200180831161085557829003601f168201915b5050505050905090565b60055460009060ff161561088f57600080fd5b6108998383610ded565b90505b92915050565b60006108ac610b0c565b15156108b757600080fd5b50600c5490565b60035490565b6000806108d2858585610e6b565b905080156108e4576108e48585610e89565b949350505050565b60085460ff1690565b600a5490565b60055460009060ff161561090e57600080fd5b6108998383610e9f565b610921336109cb565b151561092c57600080fd5b60055460ff16151561093d57600080fd5b6005805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600061098733610be0565b151561099257600080fd5b61099c8383610f4f565b50600192915050565b6109ad610b0c565b15156109b857600080fd5b6109c0610afd565b600160a060020a0316ff5b600061089c60048363ffffffff610f7316565b60055460ff1690565b6109f033610faa565b565b600160a060020a031660009081526001602052604090205490565b610a15610b0c565b1515610a2057600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b610a80336109cb565b1515610a8b57600080fd5b610a9481610ff2565b50565b610aa0336109cb565b1515610aab57600080fd5b60055460ff1615610abb57600080fd5b6005805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a031690565b600054600160a060020a0316331490565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108725780601f1061084757610100808354040283529160200191610872565b610b8733610be0565b1515610b9257600080fd5b610a948161103a565b6109f033611082565b60055460009060ff1615610bb757600080fd5b61089983836110ca565b600080610bce8484611115565b90508015610899576108993385610e89565b600061089c60098363ffffffff610f7316565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b606080610c29610b0c565b1515610c3457600080fd5b828411158015610c455750600c5483105b1515610cb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f417272617920696e646578206f7574206f6620626f756e647300000000000000604482015290519081900360640190fd5b6000610cd56001610cc9868863ffffffff61113216565b9063ffffffff61114716565b9050606081604051908082528060200260200182016040528015610d03578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610d32578160200160208202803883390190505b509050865b868111610dc4576000600c82815481101515610d4f57fe5b6000918252602082200154600160a060020a03169150610d6e826109f2565b90506000811115610dba57808484815181101515610d8857fe5b6020908102909101015284518290869085908110610da257fe5b600160a060020a039092166020928302909101909101525b5050600101610d37565b5090969095509350505050565b610dd9610b0c565b1515610de457600080fd5b610a9481611159565b6000600160a060020a0383161515610e0457600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60055460009060ff1615610e7e57600080fd5b6108e48484846111d6565b610e928261129f565b610e9b8161129f565b5050565b6000600160a060020a0383161515610eb657600080fd5b336000908152600260209081526040808320600160a060020a0387168452909152902054610eea908363ffffffff61114716565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600a54610f5e82610cc96108be565b1115610f6957600080fd5b610e9b8282611349565b6000600160a060020a0382161515610f8a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610fbb60048263ffffffff6113f516565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b61100360048263ffffffff61144116565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b61104b60098263ffffffff61144116565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61109360098263ffffffff6113f516565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03831615156110e157600080fd5b336000908152600260209081526040808320600160a060020a0387168452909152902054610eea908363ffffffff61113216565b60055460009060ff161561112857600080fd5b610899838361148f565b60008282111561114157600080fd5b50900390565b60008282018381101561089957600080fd5b600160a060020a038116151561116e57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038316600090815260026020908152604080832033845290915281205461120a908363ffffffff61113216565b600160a060020a0385166000908152600260209081526040808320338452909152902055611239848484611498565b600160a060020a0384166000818152600260209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a0381166000908152600d602052604090205460ff161580156112d0575060006112ce826109f2565b115b15610a9457600c805460018181019092557fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7018054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff1990911681179091556000908152600d60205260409020805460ff1916909117905550565b600160a060020a038216151561135e57600080fd5b600354611371908263ffffffff61114716565b600355600160a060020a03821660009081526001602052604090205461139d908263ffffffff61114716565b600160a060020a03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038116151561140a57600080fd5b6114148282610f73565b151561141f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561145657600080fd5b6114608282610f73565b1561146a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600061099c3384845b600160a060020a03821615156114ad57600080fd5b600160a060020a0383166000908152600160205260409020546114d6908263ffffffff61113216565b600160a060020a03808516600090815260016020526040808220939093559084168152205461150b908263ffffffff61114716565b600160a060020a0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008215156115785750600061089c565b82820282848281151561158757fe5b041461089957600080fdfea165627a7a72305820bc25a5af7df97a44a2b331fdf9f568e9de38d50b1b3a718ed5864b5dcb79ce1700298be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000bcf0eac47aa2e3f19b81926cd634301bfe18caaf
Deployed Bytecode
0x6080604052600436106101df576000357c01000000000000000000000000000000000000000000000000000000009004806370a0823111610114578063983b2d56116100b2578063aa271e1a11610081578063aa271e1a1461067c578063dd62ed3e146106af578063e68a7c3b146106ea578063f2fde38b146107b3576101df565b8063983b2d56146105c257806398650275146105f5578063a457c2d71461060a578063a9059cbb14610643576101df565b80638456cb59116100ee5780638456cb59146105525780638da5cb5b146105675780638f32d59b1461059857806395d89b41146105ad576101df565b806370a08231146104d7578063715018a61461050a57806382dc1ec41461051f576101df565b8063395093511161018157806341c0e1b51161015b57806341c0e1b51461046557806346fbf68e1461047a5780635c975abb146104ad5780636ef8d66d146104c2576101df565b806339509351146103dc5780633f4ba83a1461041557806340c10f191461042c576101df565b806318160ddd116101bd57806318160ddd1461034457806323b872dd14610359578063313ce5671461039c578063355274ea146103c7576101df565b806306fdde0314610246578063095ea7b3146102d057806314f326a11461031d575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206574686572207472616e7366657200000000000000000000604482015290519081900360640190fd5b34801561025257600080fd5b5061025b6107e6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029557818101518382015260200161027d565b50505050905090810190601f1680156102c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102dc57600080fd5b50610309600480360360408110156102f357600080fd5b50600160a060020a03813516906020013561087c565b604080519115158252519081900360200190f35b34801561032957600080fd5b506103326108a2565b60408051918252519081900360200190f35b34801561035057600080fd5b506103326108be565b34801561036557600080fd5b506103096004803603606081101561037c57600080fd5b50600160a060020a038135811691602081013590911690604001356108c4565b3480156103a857600080fd5b506103b16108ec565b6040805160ff9092168252519081900360200190f35b3480156103d357600080fd5b506103326108f5565b3480156103e857600080fd5b50610309600480360360408110156103ff57600080fd5b50600160a060020a0381351690602001356108fb565b34801561042157600080fd5b5061042a610918565b005b34801561043857600080fd5b506103096004803603604081101561044f57600080fd5b50600160a060020a03813516906020013561097c565b34801561047157600080fd5b5061042a6109a5565b34801561048657600080fd5b506103096004803603602081101561049d57600080fd5b5035600160a060020a03166109cb565b3480156104b957600080fd5b506103096109de565b3480156104ce57600080fd5b5061042a6109e7565b3480156104e357600080fd5b50610332600480360360208110156104fa57600080fd5b5035600160a060020a03166109f2565b34801561051657600080fd5b5061042a610a0d565b34801561052b57600080fd5b5061042a6004803603602081101561054257600080fd5b5035600160a060020a0316610a77565b34801561055e57600080fd5b5061042a610a97565b34801561057357600080fd5b5061057c610afd565b60408051600160a060020a039092168252519081900360200190f35b3480156105a457600080fd5b50610309610b0c565b3480156105b957600080fd5b5061025b610b1d565b3480156105ce57600080fd5b5061042a600480360360208110156105e557600080fd5b5035600160a060020a0316610b7e565b34801561060157600080fd5b5061042a610b9b565b34801561061657600080fd5b506103096004803603604081101561062d57600080fd5b50600160a060020a038135169060200135610ba4565b34801561064f57600080fd5b506103096004803603604081101561066657600080fd5b50600160a060020a038135169060200135610bc1565b34801561068857600080fd5b506103096004803603602081101561069f57600080fd5b5035600160a060020a0316610be0565b3480156106bb57600080fd5b50610332600480360360408110156106d257600080fd5b50600160a060020a0381358116916020013516610bf3565b3480156106f657600080fd5b5061071a6004803603604081101561070d57600080fd5b5080359060200135610c1e565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561075e578181015183820152602001610746565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561079d578181015183820152602001610785565b5050505090500194505050505060405180910390f35b3480156107bf57600080fd5b5061042a600480360360208110156107d657600080fd5b5035600160a060020a0316610dd1565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108725780601f1061084757610100808354040283529160200191610872565b820191906000526020600020905b81548152906001019060200180831161085557829003601f168201915b5050505050905090565b60055460009060ff161561088f57600080fd5b6108998383610ded565b90505b92915050565b60006108ac610b0c565b15156108b757600080fd5b50600c5490565b60035490565b6000806108d2858585610e6b565b905080156108e4576108e48585610e89565b949350505050565b60085460ff1690565b600a5490565b60055460009060ff161561090e57600080fd5b6108998383610e9f565b610921336109cb565b151561092c57600080fd5b60055460ff16151561093d57600080fd5b6005805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600061098733610be0565b151561099257600080fd5b61099c8383610f4f565b50600192915050565b6109ad610b0c565b15156109b857600080fd5b6109c0610afd565b600160a060020a0316ff5b600061089c60048363ffffffff610f7316565b60055460ff1690565b6109f033610faa565b565b600160a060020a031660009081526001602052604090205490565b610a15610b0c565b1515610a2057600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b610a80336109cb565b1515610a8b57600080fd5b610a9481610ff2565b50565b610aa0336109cb565b1515610aab57600080fd5b60055460ff1615610abb57600080fd5b6005805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a031690565b600054600160a060020a0316331490565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108725780601f1061084757610100808354040283529160200191610872565b610b8733610be0565b1515610b9257600080fd5b610a948161103a565b6109f033611082565b60055460009060ff1615610bb757600080fd5b61089983836110ca565b600080610bce8484611115565b90508015610899576108993385610e89565b600061089c60098363ffffffff610f7316565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b606080610c29610b0c565b1515610c3457600080fd5b828411158015610c455750600c5483105b1515610cb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f417272617920696e646578206f7574206f6620626f756e647300000000000000604482015290519081900360640190fd5b6000610cd56001610cc9868863ffffffff61113216565b9063ffffffff61114716565b9050606081604051908082528060200260200182016040528015610d03578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610d32578160200160208202803883390190505b509050865b868111610dc4576000600c82815481101515610d4f57fe5b6000918252602082200154600160a060020a03169150610d6e826109f2565b90506000811115610dba57808484815181101515610d8857fe5b6020908102909101015284518290869085908110610da257fe5b600160a060020a039092166020928302909101909101525b5050600101610d37565b5090969095509350505050565b610dd9610b0c565b1515610de457600080fd5b610a9481611159565b6000600160a060020a0383161515610e0457600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60055460009060ff1615610e7e57600080fd5b6108e48484846111d6565b610e928261129f565b610e9b8161129f565b5050565b6000600160a060020a0383161515610eb657600080fd5b336000908152600260209081526040808320600160a060020a0387168452909152902054610eea908363ffffffff61114716565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600a54610f5e82610cc96108be565b1115610f6957600080fd5b610e9b8282611349565b6000600160a060020a0382161515610f8a57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610fbb60048263ffffffff6113f516565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b61100360048263ffffffff61144116565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b61104b60098263ffffffff61144116565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61109360098263ffffffff6113f516565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03831615156110e157600080fd5b336000908152600260209081526040808320600160a060020a0387168452909152902054610eea908363ffffffff61113216565b60055460009060ff161561112857600080fd5b610899838361148f565b60008282111561114157600080fd5b50900390565b60008282018381101561089957600080fd5b600160a060020a038116151561116e57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038316600090815260026020908152604080832033845290915281205461120a908363ffffffff61113216565b600160a060020a0385166000908152600260209081526040808320338452909152902055611239848484611498565b600160a060020a0384166000818152600260209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a0381166000908152600d602052604090205460ff161580156112d0575060006112ce826109f2565b115b15610a9457600c805460018181019092557fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7018054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff1990911681179091556000908152600d60205260409020805460ff1916909117905550565b600160a060020a038216151561135e57600080fd5b600354611371908263ffffffff61114716565b600355600160a060020a03821660009081526001602052604090205461139d908263ffffffff61114716565b600160a060020a03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038116151561140a57600080fd5b6114148282610f73565b151561141f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561145657600080fd5b6114608282610f73565b1561146a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600061099c3384845b600160a060020a03821615156114ad57600080fd5b600160a060020a0383166000908152600160205260409020546114d6908263ffffffff61113216565b600160a060020a03808516600090815260016020526040808220939093559084168152205461150b908263ffffffff61114716565b600160a060020a0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008215156115785750600061089c565b82820282848281151561158757fe5b041461089957600080fdfea165627a7a72305820bc25a5af7df97a44a2b331fdf9f568e9de38d50b1b3a718ed5864b5dcb79ce170029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bcf0eac47aa2e3f19b81926cd634301bfe18caaf
-----Decoded View---------------
Arg [0] : contractOwner (address): 0xbcf0eac47Aa2e3f19B81926CD634301BfE18CaAF
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bcf0eac47aa2e3f19b81926cd634301bfe18caaf
Deployed Bytecode Sourcemap
21006:4550:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24715:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14682:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14682:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;14682:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18047:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18047:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18047:140:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;24230:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24230:137:0;;;:::i;:::-;;;;;;;;;;;;;;;;3810:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3810:91:0;;;:::i;22676:314::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22676:314:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22676:314:0;;;;;;;;;;;;;;;;;:::i;14998:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14998:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13736:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13736:75:0;;;:::i;18195:175::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18195:175:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18195:175:0;;;;;;;;:::i;17374:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17374:118:0;;;:::i;:::-;;13185:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13185:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13185:131:0;;;;;;;;:::i;24451:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24451:108:0;;;:::i;15552:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15552:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15552:109:0;-1:-1:-1;;;;;15552:109:0;;:::i;16627:78::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16627:78:0;;;:::i;15769:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15769:77:0;;;:::i;4117:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4117:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4117:106:0;-1:-1:-1;;;;;4117:106:0;;:::i;20032:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20032:140:0;;;:::i;15669:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15669:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15669:92:0;-1:-1:-1;;;;;15669:92:0;;:::i;17163:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17163:116:0;;;:::i;19319:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19319:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;19319:79:0;;;;;;;;;;;;;;19654:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19654:92:0;;;:::i;14832:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14832:87:0;;;:::i;12266:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12266:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12266:92:0;-1:-1:-1;;;;;12266:92:0;;:::i;12366:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12366:77:0;;;:::i;18378:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18378:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18378:185:0;;;;;;;;:::i;22118:280::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22118:280:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22118:280:0;;;;;;;;:::i;12149:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12149:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12149:109:0;-1:-1:-1;;;;;12149:109:0;;:::i;4562:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4562:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4562:131:0;;;;;;;;;;:::i;23240:920::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23240:920:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23240:920:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;23240:920:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;23240:920:0;;;;;;;;;;;;;;;;;;;20349:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20349:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20349:109:0;-1:-1:-1;;;;;20349:109:0;;:::i;14682:83::-;14752:5;14745:12;;;;;;;;-1:-1:-1;;14745:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14719:13;;14745:12;;14752:5;;14745:12;;14752:5;14745:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14682:83;:::o;18047:140::-;16864:7;;18126:4;;16864:7;;16863:8;16855:17;;;;;;18150:29;18164:7;18173:5;18150:13;:29::i;:::-;18143:36;;16883:1;18047:140;;;;:::o;24230:137::-;24312:7;19531:9;:7;:9::i;:::-;19523:18;;;;;;;;-1:-1:-1;24344:8:0;:15;24230:137;:::o;3810:91::-;3881:12;;3810:91;:::o;22676:314::-;22802:4;22824:12;22839:38;22858:5;22865:3;22870:6;22839:18;:38::i;:::-;22824:53;;22892:7;22888:70;;;22916:30;22935:5;22942:3;22916:18;:30::i;:::-;22975:7;22676:314;-1:-1:-1;;;;22676:314:0:o;14998:83::-;15064:9;;;;14998:83;:::o;13736:75::-;13799:4;;13736:75;:::o;18195:175::-;16864:7;;18286:12;;16864:7;;16863:8;16855:17;;;;;;18318:44;18342:7;18351:10;18318:23;:44::i;17374:118::-;15503:20;15512:10;15503:8;:20::i;:::-;15495:29;;;;;;;;17043:7;;;;17035:16;;;;;;;;17433:7;:15;;-1:-1:-1;;17433:15:0;;;17464:20;;;17473:10;17464:20;;;;;;;;;;;;;17374:118::o;13185:131::-;13253:4;12100:20;12109:10;12100:8;:20::i;:::-;12092:29;;;;;;;;13270:16;13276:2;13280:5;13270;:16::i;:::-;-1:-1:-1;13304:4:0;13185:131;;;;:::o;24451:108::-;19531:9;:7;:9::i;:::-;19523:18;;;;;;;;24541:7;:5;:7::i;:::-;-1:-1:-1;;;;;24512:39:0;;15552:109;15608:4;15632:21;:8;15645:7;15632:21;:12;:21;:::i;16627:78::-;16690:7;;;;16627:78;:::o;15769:77::-;15813:25;15827:10;15813:13;:25::i;:::-;15769:77::o;4117:106::-;-1:-1:-1;;;;;4199:16:0;4172:7;4199:16;;;:9;:16;;;;;;;4117:106::o;20032:140::-;19531:9;:7;:9::i;:::-;19523:18;;;;;;;;20131:1;20115:6;;20094:40;;-1:-1:-1;;;;;20115:6:0;;;;20094:40;;20131:1;;20094:40;20162:1;20145:19;;-1:-1:-1;;20145:19:0;;;20032:140::o;15669:92::-;15503:20;15512:10;15503:8;:20::i;:::-;15495:29;;;;;;;;15734:19;15745:7;15734:10;:19::i;:::-;15669:92;:::o;17163:116::-;15503:20;15512:10;15503:8;:20::i;:::-;15495:29;;;;;;;;16864:7;;;;16863:8;16855:17;;;;;;17223:7;:14;;-1:-1:-1;;17223:14:0;17233:4;17223:14;;;17253:18;;;17260:10;17253:18;;;;;;;;;;;;;17163:116::o;19319:79::-;19357:7;19384:6;-1:-1:-1;;;;;19384:6:0;19319:79;:::o;19654:92::-;19694:4;19732:6;-1:-1:-1;;;;;19732:6:0;19718:10;:20;;19654:92::o;14832:87::-;14904:7;14897:14;;;;;;;;-1:-1:-1;;14897:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14871:13;;14897:14;;14904:7;;14897:14;;14904:7;14897:14;;;;;;;;;;;;;;;;;;;;;;;;12266:92;12100:20;12109:10;12100:8;:20::i;:::-;12092:29;;;;;;;;12331:19;12342:7;12331:10;:19::i;12366:77::-;12410:25;12424:10;12410:13;:25::i;18378:185::-;16864:7;;18474:12;;16864:7;;16863:8;16855:17;;;;;;18506:49;18530:7;18539:15;18506:23;:49::i;22118:280::-;22216:4;22238:12;22253:27;22268:3;22273:6;22253:14;:27::i;:::-;22238:42;;22295:7;22291:75;;;22319:35;22338:10;22350:3;22319:18;:35::i;12149:109::-;12205:4;12229:21;:8;12242:7;12229:21;:12;:21;:::i;4562:131::-;-1:-1:-1;;;;;4661:15:0;;;4634:7;4661:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;4562:131::o;23240:920::-;23369:16;23387;19531:9;:7;:9::i;:::-;19523:18;;;;;;;;23453:4;23443:6;:14;;:40;;;;-1:-1:-1;23468:8:0;:15;23461:22;;23443:40;23421:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23557:14;23574:23;23595:1;23574:16;:4;23583:6;23574:16;:8;:16;:::i;:::-;:20;:23;:20;:23;:::i;:::-;23557:40;;23618:30;23665:6;23651:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;23651:21:0;;23618:54;;23683:31;23731:6;23717:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;23717:21:0;-1:-1:-1;23683:55:0;-1:-1:-1;23776:6:0;23759:335;23784:9;;;23759:335;;23824:15;23842:8;23851:1;23842:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23842:11:0;;-1:-1:-1;23893:24:0;23842:11;23893:15;:24::i;:::-;23868:49;;23953:1;23936:14;:18;23932:151;;;24008:14;23988;24003:1;23988:17;;;;;;;;;;;;;;;;;;:34;24041:16;;24060:7;;24041:13;;24055:1;;24041:16;;;;;;-1:-1:-1;;;;;24041:26:0;;;:16;;;;;;;;;;:26;23932:151;-1:-1:-1;;23795:3:0;;23759:335;;;-1:-1:-1;24122:13:0;;;;-1:-1:-1;23240:920:0;-1:-1:-1;;;;23240:920:0:o;20349:109::-;19531:9;:7;:9::i;:::-;19523:18;;;;;;;;20422:28;20441:8;20422:18;:28::i;5651:244::-;5716:4;-1:-1:-1;;;;;5741:21:0;;;;5733:30;;;;;;5785:10;5776:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5776:29:0;;;;;;;;;;;;:37;;;5829:36;;;;;;;5776:29;;5785:10;5829:36;;;;;;;;;;;-1:-1:-1;5883:4:0;5651:244;;;;:::o;17879:160::-;16864:7;;17972:4;;16864:7;;16863:8;16855:17;;;;;;17996:35;18015:4;18021:2;18025:5;17996:18;:35::i;25362:191::-;25478:27;25498:6;25478:19;:27::i;:::-;25516:29;25536:8;25516:19;:29::i;:::-;25362:191;;:::o;7182:323::-;7262:4;-1:-1:-1;;;;;7287:21:0;;;;7279:30;;;;;;7363:10;7354:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7354:29:0;;;;;;;;;;:45;;7388:10;7354:45;:33;:45;:::i;:::-;7331:10;7322:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7322:29:0;;;;;;;;;;;;:77;;;7415:60;;;;;;7322:29;;7415:60;;;;;;;;;;;-1:-1:-1;7493:4:0;7182:323;;;;:::o;13819:154::-;13922:4;;13894:24;13912:5;13894:13;:11;:13::i;:24::-;:32;;13886:41;;;;;;13938:27;13950:7;13959:5;13938:11;:27::i;11513:165::-;11585:4;-1:-1:-1;;;;;11610:21:0;;;;11602:30;;;;;;-1:-1:-1;;;;;;11650:20:0;:11;:20;;;;;;;;;;;;;;;11513:165::o;15984:130::-;16044:24;:8;16060:7;16044:24;:15;:24;:::i;:::-;16084:22;;-1:-1:-1;;;;;16084:22:0;;;;;;;;15984:130;:::o;15854:122::-;15911:21;:8;15924:7;15911:21;:12;:21;:::i;:::-;15948:20;;-1:-1:-1;;;;;15948:20:0;;;;;;;;15854:122;:::o;12451:::-;12508:21;:8;12521:7;12508:21;:12;:21;:::i;:::-;12545:20;;-1:-1:-1;;;;;12545:20:0;;;;;;;;12451:122;:::o;12581:130::-;12641:24;:8;12657:7;12641:24;:15;:24;:::i;:::-;12681:22;;-1:-1:-1;;;;;12681:22:0;;;;;;;;12581:130;:::o;8025:333::-;8110:4;-1:-1:-1;;;;;8135:21:0;;;;8127:30;;;;;;8211:10;8202:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;8202:29:0;;;;;;;;;;:50;;8236:15;8202:50;:33;:50;:::i;17739:132::-;16864:7;;17814:4;;16864:7;;16863:8;16855:17;;;;;;17838:25;17853:2;17857:5;17838:14;:25::i;2161:150::-;2219:7;2247:6;;;;2239:15;;;;;;-1:-1:-1;2277:5:0;;;2161:150::o;2397:::-;2455:7;2487:5;;;2511:6;;;;2503:15;;;;;20608:187;-1:-1:-1;;;;;20682:22:0;;;;20674:31;;;;;;20742:6;;;20721:38;;-1:-1:-1;;;;;20721:38:0;;;;20742:6;;;20721:38;;;20770:6;:17;;-1:-1:-1;;20770:17:0;-1:-1:-1;;;;;20770:17:0;;;;;;;;;;20608:187::o;6368:299::-;-1:-1:-1;;;;;6493:14:0;;6447:4;6493:14;;;:8;:14;;;;;;;;6508:10;6493:26;;;;;;;;:37;;6524:5;6493:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;6464:14:0;;;;;;:8;:14;;;;;;;;6479:10;6464:26;;;;;;;:66;6541:26;6473:4;6557:2;6561:5;6541:9;:26::i;:::-;-1:-1:-1;;;;;6583:54:0;;6610:14;;;;:8;:14;;;;;;;;6598:10;6610:26;;;;;;;;;;;6583:54;;;;;;;6598:10;;6583:54;;;;;;;;;;;;-1:-1:-1;6655:4:0;6368:299;;;;;:::o;24902:259::-;-1:-1:-1;;;;;24998:21:0;;;;;;:12;:21;;;;;;;;24997:22;:54;;;;;25050:1;25023:24;25039:7;25023:15;:24::i;:::-;:28;24997:54;24993:161;;;25077:8;27:10:-1;;39:1;23:18;;;45:23;;;25077:22:0;;;;-1:-1:-1;;;;;25077:22:0;;-1:-1:-1;;25077:22:0;;;;;;;;-1:-1:-1;25114:21:0;;;:12;25077:22;25114:21;;;;:28;;-1:-1:-1;;25114:28:0;;;;;;24902:259;:::o;9194:269::-;-1:-1:-1;;;;;9269:21:0;;;;9261:30;;;;;;9319:12;;:23;;9336:5;9319:23;:16;:23;:::i;:::-;9304:12;:38;-1:-1:-1;;;;;9374:18:0;;;;;;:9;:18;;;;;;:29;;9397:5;9374:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;9353:18:0;;;;;;:9;:18;;;;;;;;:50;;;;9419:36;;;;;;;9353:18;;;;9419:36;;;;;;;;;;9194:269;;:::o;11230:189::-;-1:-1:-1;;;;;11310:21:0;;;;11302:30;;;;;;11351:18;11355:4;11361:7;11351:3;:18::i;:::-;11343:27;;;;;;;;-1:-1:-1;;;;;11383:20:0;11406:5;11383:20;;;;;;;;;;;:28;;-1:-1:-1;;11383:28:0;;;11230:189::o;10965:186::-;-1:-1:-1;;;;;11042:21:0;;;;11034:30;;;;;;11084:18;11088:4;11094:7;11084:3;:18::i;:::-;11083:19;11075:28;;;;;;-1:-1:-1;;;;;11116:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;11116:27:0;11139:4;11116:27;;;10965:186::o;4864:140::-;4925:4;4942:32;4952:10;4964:2;4968:5;8580:262;-1:-1:-1;;;;;8668:16:0;;;;8660:25;;;;;;-1:-1:-1;;;;;8716:15:0;;;;;;:9;:15;;;;;;:26;;8736:5;8716:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;8698:15:0;;;;;;;:9;:15;;;;;;:44;;;;8769:13;;;;;;;:24;;8787:5;8769:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;8753:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;8809:25;;;;;;;8753:13;;8809:25;;;;;;;;;;;;;8580:262;;;:::o;1156:433::-;1214:7;1458:6;;1454:47;;;-1:-1:-1;1488:1:0;1481:8;;1454:47;1525:5;;;1529:1;1525;:5;1549;;;;;;;;:10;1541:19;;;;
Swarm Source
bzzr://bc25a5af7df97a44a2b331fdf9f568e9de38d50b1b3a718ed5864b5dcb79ce17
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.