ETH Price: $3,106.73 (+1.24%)
Gas: 6 Gwei

Token

Hashbarium (HASH)
 

Overview

Max Total Supply

1,000,000 HASH

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.05 HASH

Value
$0.00
0x88d2f1a39a3d473d2836e9bee7bce3a242b489fc
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Hashbarium

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-01
*/

pragma solidity ^0.7.0;
// SPDX-License-Identifier: Unlicensed
interface FactoryInterface {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface RouterInterface {
	function WETH() external view returns (address);
    function factory() external view returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
	function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
	function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
}

interface ERC20Interface {
    function totalSupply() external view returns (uint);
    function balanceOf(address tokenOwner) external view returns (uint balance);
    function allowance(address tokenOwner, address spender) external view returns (uint remaining);
    function transfer(address to, uint tokens) external returns (bool success);
    function approve(address spender, uint tokens) external returns (bool success);
    function transferFrom(address from, address to, uint tokens) external returns (bool success);
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Liquifier {
	using SafeMath for uint256;
	address public router;
	address public factory;
	address public liquifiable;	// token it will liquify
	address public weth;
	
	address[] path;
	
	address public liquifiablePair;
	
	constructor(address _routerAddr) {
		router = _routerAddr;
		RouterInterface _router = RouterInterface(_routerAddr);
		factory = _router.factory();
		liquifiable = msg.sender;
		weth = _router.WETH();
		path.push(liquifiable);
		path.push(weth);
		
		liquifiablePair = FactoryInterface(factory).createPair(weth, liquifiable);
	}
	
	function _swapForWETH(uint256 amountToken) private {
		ERC20Interface(liquifiable).approve(router, uint256(-1));
		RouterInterface(router).swapExactTokensForTokens(amountToken, 0, path, address(this), block.timestamp);
	}
	
	function _addLiquidity() private {
		ERC20Interface(weth).approve(router, uint256(-1));
		uint256 _amtToken = ERC20Interface(liquifiable).balanceOf(address(this));
		uint256 _amtWETH = ERC20Interface(weth).balanceOf(address(this));
		RouterInterface(router).addLiquidity(liquifiable, weth, _amtToken, _amtWETH, 0, 0, address(this), block.timestamp);
	}
	
	function liquify() public {
		uint256 bal = ERC20Interface(liquifiable).balanceOf(address(this));
		_swapForWETH(bal.div(2));
		_addLiquidity();
	}
}

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);
	event OwnershipRenounced();

    constructor() {
        owner = msg.sender;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
	
	function _chainId() internal pure returns (uint256) {
		uint256 id;
		assembly {
			id := chainid()
		}
		return id;
	}
	
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
	
	function renounceOwnership() public onlyOwner {
		owner = address(0);
		newOwner = address(0);
		emit OwnershipRenounced();
	}
}

contract Hashbarium is Owned {
	using SafeMath for uint256;
	
	// assigned on constructor
	address public excluder;	// the address that can exclude from antiwhale (owner at start, can be changed later)
	address public marketing;	// marketing address
	string 	public name;		// token name
	string 	public symbol;		// token symbol
	uint256 public supply;		// total supply
	
	// hardcoded
	uint8 public decimals = 18;	// erc20 decimals (18 by default)
	uint256 public mktTax = 3;	// 3% editable later (onlyOwner)
	uint256 public liqTax = 2;	// 2% editable later (onlyOwner too)
	
	// generated on deployment
	address public liquifier;	// liquifier contract address (set by constructor after deploying it)
	address public liquifiablePair;
	
	
	// used by system
	bool isLiquifying;
	
	// user data
	mapping (address => uint256) public balances;							// user balances
	mapping (address => mapping (address => uint256)) public allowances;	// user allowances
	mapping (address => bool) excluded;										// excluded from antiwhale
	
	// ERC20 mandatory events
	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
	
	// custom events
	event TaxesChanged(uint256 indexed marketingTax, uint256 indexed liquidityTax);
	event ExcluderChanged(address indexed newExcluder);
	event Excluded(address indexed guy);
	event UnExcluded(address indexed guy);
	event MarketingAddressChanged(address indexed newAddress);
	
	constructor(string memory _name, string memory _symbol, uint256 _totalSupply, address router, address _marketing) {
		name = _name;
		symbol = _symbol;
		supply = _totalSupply;
		
		Liquifier _liquifierCnt = new Liquifier(router);
		liquifier = address(_liquifierCnt);
		liquifiablePair = _liquifierCnt.liquifiablePair();
		excluded[liquifiablePair] = true;
		
		marketing = _marketing;
		balances[msg.sender] = _totalSupply;	// mints supply to deployer
		excluded[msg.sender] = true;			// excludes deployer from antiwhale
		excluder = msg.sender;					// sets msg.sender as excluder
		
		// excludes burn addresses (allows to burn unlimited amount)
		excluded[address(0)] = true;
		excluded[address(0xdead)] = true;
		emit Transfer(address(0), msg.sender, _totalSupply);
	}
	
	// view functions
	function balanceOf(address tokenOwner) public view returns (uint256) {
		return ((tokenOwner == address(0xdead)) || (tokenOwner == address(0))) ? 0 : balances[tokenOwner];	// returns 0 when dead or 0 address asked, otherwise return balance
	}
	
	function totalSupply() public view returns (uint256) {
		return supply.sub(balances[address(0xdead)]).sub(balances[address(0)]);
	}
	
	function allowance(address tokenOwner, address spender) public view returns (uint256) {
		return allowances[tokenOwner][spender];
	}

	// private functions
	function _transfer(address from, address to, uint256 tokens) private {
		uint256 toLP = isLiquifying ? 0 : tokens.mul(liqTax).div(100);	// calculates amount to LP
		uint256 toMkt = isLiquifying ? 0 : tokens.mul(mktTax).div(100);	// calculates amount to marketing
		uint256 totalTax = toLP.add(toMkt);
		uint256 toRecipient = tokens.sub(totalTax);
		
		balances[from] = balances[from].sub(tokens);	// deducts tokens from sender
		
		balances[liquifier] = balances[liquifier].add(toLP);	// adds them to LP balance
		if (!isLiquifying) {	// liquifying when to == liquifiablePair messes with reserves
			isLiquifying = true;	// lock variable to prevent infinite recursion
			(bool success, ) = liquifier.call(abi.encodeWithSelector(bytes4(keccak256(abi.encodePacked("liquify()")))));	// calls liquifier contract to add liquidity
            success;    // silents warning
			isLiquifying = false;	// unlocks it to allow further liquify
		}
		// executed AFTER to avoid messing with reserves
		balances[to] = balances[to].add(toRecipient);			// adds tokens to recipient balance
		balances[marketing] = balances[marketing].add(toMkt);	// adds marketing tokens to marketing balance
		
		emit Transfer(from, to, toRecipient);						// event ALWAYS fired in accordance with ERC20 standard
		if (toLP > 0) { emit Transfer(from, liquifier, toLP); }	// event only if lpTax > 0
		if (toMkt > 0) { emit Transfer(from, marketing, toMkt); }	// event only if mkt tax > 0
		
		require((balances[to] <= totalSupply().div(100)) || excluded[to], "UNMATCHED_ANTIWHALE");
	}
	
	// public functions
	function transfer(address to, uint256 tokens) public returns (bool) {
		_transfer(msg.sender, to, tokens);
		return true;
	}
	
	function transferFrom(address from, address to, uint256 tokens) public returns (bool) {
		allowances[from][msg.sender] = allowances[from][msg.sender].sub(tokens, "INSUFFICIENT_ALLOWANCE");
		_transfer(from, to, tokens);
		return true;
	}
	
	function approve(address spender, uint256 tokens) public returns (bool) {
		allowances[msg.sender][spender] = allowances[msg.sender][spender].add(tokens);
		emit Approval(msg.sender, spender, tokens);
		return true;
	}
	
	
	// only owner stuff
	function setTaxes(uint256 _marketing, uint256 _liquidity) public onlyOwner {
		mktTax = _marketing;
		liqTax = _liquidity;
		emit TaxesChanged(_marketing, _liquidity);
	}
	
	
	// only excluder stuff (*allows both owner AND excluder)
	modifier onlyExcluder {
		require(msg.sender == owner || msg.sender == excluder, "Excluder: wut");
		_;
	}
	
	function changeExcluder(address newExcluder) public onlyExcluder {
		excluder = newExcluder;
		emit ExcluderChanged(newExcluder);
	}
	
	function exclude(address addr) public onlyExcluder {
		excluded[addr] = true;
		emit Excluded(addr);
	}
	
	function unexclude(address addr) public onlyExcluder {
		excluded[addr] = false;
		emit UnExcluded(addr);
	}
	
	// set marketing stuff
	function setMarketing(address _newAddress) public {
		require(msg.sender == owner || msg.sender == marketing, "Marketing: wut");
		marketing = _newAddress;
		emit MarketingAddressChanged(_newAddress);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"}],"name":"Excluded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newExcluder","type":"address"}],"name":"ExcluderChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"MarketingAddressChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketingTax","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"liquidityTax","type":"uint256"}],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"}],"name":"UnExcluded","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newExcluder","type":"address"}],"name":"changeExcluder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"excluder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifiablePair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"unexclude","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526007805460ff19166012179055600360085560026009553480156200002857600080fd5b506040516200211f3803806200211f833981810160405260a08110156200004e57600080fd5b81019080805160405193929190846401000000008211156200006f57600080fd5b9083019060208201858111156200008557600080fd5b8251640100000000811182820188101715620000a057600080fd5b82525081516020918201929091019080838360005b83811015620000cf578181015183820152602001620000b5565b50505050905090810190601f168015620000fd5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012157600080fd5b9083019060208201858111156200013757600080fd5b82516401000000008111828201881017156200015257600080fd5b82525081516020918201929091019080838360005b838110156200018157818101518382015260200162000167565b50505050905090810190601f168015620001af5780820380516001836020036101000a031916815260200191505b50604090815260208281015191830151606090930151600080546001600160a01b031916331790558751929550929350620001f091600491880190620003f5565b50835162000206906005906020870190620003f5565b50826006819055506000826040516200021f906200048a565b6001600160a01b03909116815260405190819003602001906000f0801580156200024d573d6000803e3d6000fd5b50905080600a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b03166341b3b5696040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b157600080fd5b505afa158015620002c6573d6000803e3d6000fd5b505050506040513d6020811015620002dd57600080fd5b5051600b80546001600160a01b03199081166001600160a01b0393841617918290559082166000908152600e60208181526040808420805460ff199081166001908117909255600380548816988b169890981790975533808652600c84528286208c905593835281852080548816821790556002805490961684179095557fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c805487168617905561dead84527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a805490961690941790945582518881529251909391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a3505050505050620004af565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200042d576000855562000478565b82601f106200044857805160ff191683800117855562000478565b8280016001018555821562000478579182015b82811115620004785782518255916020019190600101906200045b565b506200048692915062000498565b5090565b6108c3806200185c83390190565b5b8082111562000486576000815560010162000499565b61139d80620004bf6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063c647b20e11610097578063df06740e11610071578063df06740e146104cb578063e410dfb3146104f1578063e9228a6e146104f9578063f2fde38b14610501576101c4565b8063c647b20e14610472578063d4ee1d9014610495578063dd62ed3e1461049d576101c4565b80638b0414d5116100d35780638b0414d5146104105780638da5cb5b1461043657806395d89b411461043e578063a9059cbb14610446576101c4565b806370a08231146103da578063715018a61461040057806379ba509714610408576101c4565b80632d3e474a1161016657806341b3b5691161014057806341b3b569146103565780634febf53d1461035e57806355b6ed5c14610386578063578ef9c9146103b4576101c4565b80632d3e474a14610328578063313ce5671461033057806333d4fe701461034e576101c4565b80631729d10b116101a25780631729d10b146102a057806318160ddd146102c457806323b872dd146102cc57806327e235e314610302576101c4565b8063047fc9aa146101c957806306fdde03146101e3578063095ea7b314610260575b600080fd5b6101d1610527565b60408051918252519081900360200190f35b6101eb61052d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022557818101518382015260200161020d565b50505050905090810190601f1680156102525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61028c6004803603604081101561027657600080fd5b506001600160a01b0381351690602001356105bb565b604080519115158252519081900360200190f35b6102a8610651565b604080516001600160a01b039092168252519081900360200190f35b6101d1610660565b61028c600480360360608110156102e257600080fd5b506001600160a01b038135811691602081013590911690604001356106d1565b6101d16004803603602081101561031857600080fd5b50356001600160a01b0316610765565b6102a8610777565b610338610786565b6040805160ff9092168252519081900360200190f35b6101d161078f565b6102a8610795565b6103846004803603602081101561037457600080fd5b50356001600160a01b03166107a4565b005b6101d16004803603604081101561039c57600080fd5b506001600160a01b0381358116916020013516610854565b610384600480360360208110156103ca57600080fd5b50356001600160a01b0316610871565b6101d1600480360360208110156103f057600080fd5b50356001600160a01b031661091f565b61038461096b565b6103846109c6565b6103846004803603602081101561042657600080fd5b50356001600160a01b0316610a41565b6102a8610af0565b6101eb610aff565b61028c6004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610b5a565b6103846004803603604081101561048857600080fd5b5080359060200135610b70565b6102a8610bc2565b6101d1600480360360408110156104b357600080fd5b506001600160a01b0381358116916020013516610bd1565b610384600480360360208110156104e157600080fd5b50356001600160a01b0316610bfc565b6102a8610ca9565b6101d1610cb8565b6103846004803603602081101561051757600080fd5b50356001600160a01b0316610cbe565b60065481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105b35780601f10610588576101008083540402835291602001916105b3565b820191906000526020600020905b81548152906001019060200180831161059657829003601f168201915b505050505081565b336000908152600d602090815260408083206001600160a01b03861684529091528120546105e99083610cf7565b336000818152600d602090815260408083206001600160a01b03891680855290835292819020949094558351868152935191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060015b92915050565b600a546001600160a01b031681565b600c6020527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e85461dead60009081527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c5460065491926106cc9290916106c69190610d58565b90610d58565b905090565b6040805180820182526016815275494e53554646494349454e545f414c4c4f57414e434560501b6020808301919091526001600160a01b0386166000908152600d82528381203382529091529182205461072c918490610d96565b6001600160a01b0385166000908152600d6020908152604080832033845290915290205561075b848484610e2d565b5060019392505050565b600c6020526000908152604090205481565b6003546001600160a01b031681565b60075460ff1681565b60095481565b600b546001600160a01b031681565b6000546001600160a01b03163314806107c757506002546001600160a01b031633145b610808576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b6001600160a01b0381166000818152600e6020526040808220805460ff19166001179055517f687393afd4a22af144243b91668410864a0f0098b8d0ce0d912df1388ed92a3e9190a250565b600d60209081526000928352604080842090915290825290205481565b6000546001600160a01b031633148061089457506002546001600160a01b031633145b6108d5576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fbacc539609b5078545dc8cbbdf77cddd714612283357eb75b9c1cfc419b910b890600090a250565b60006001600160a01b03821661dead148061094157506001600160a01b038216155b610963576001600160a01b0382166000908152600c602052604090205461064b565b600092915050565b6000546001600160a01b0316331461098257600080fd5b600080546001600160a01b031990811682556001805490911690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1565b6001546001600160a01b031633146109dd57600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b0316331480610a6457506003546001600160a01b031633145b610aa6576040805162461bcd60e51b815260206004820152600e60248201526d13585c9ad95d1a5b99ce881ddd5d60921b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040517f70f1e4f570b51e464910762fee3d96ad08b99a90ce9c27a6036b0f4627aeda2d90600090a250565b6000546001600160a01b031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105b35780601f10610588576101008083540402835291602001916105b3565b6000610b67338484610e2d565b50600192915050565b6000546001600160a01b03163314610b8757600080fd5b60088290556009819055604051819083907f5eee0b95930ee59011f34615b0b7dc6cc58c01d1f07d04a01a3a1e70d2554cf090600090a35050565b6001546001600160a01b031681565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6000546001600160a01b0316331480610c1f57506002546001600160a01b031633145b610c60576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b6001600160a01b0381166000818152600e6020526040808220805460ff19169055517fe3905c9a5e875cbf5101cd4705f7c82e177ec7e6adcb54efbc4934560d8c524d9190a250565b6002546001600160a01b031681565b60085481565b6000546001600160a01b03163314610cd557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610d51576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b60008184841115610e255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dea578181015183820152602001610dd2565b50505050905090810190601f168015610e175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600b54600090600160a01b900460ff16610e6657610e616064610e5b6009548561124b90919063ffffffff16565b906112a4565b610e69565b60005b600b54909150600090600160a01b900460ff16610e9f57610e9a6064610e5b6008548661124b90919063ffffffff16565b610ea2565b60005b90506000610eb08383610cf7565b90506000610ebe8583610d58565b6001600160a01b0388166000908152600c6020526040902054909150610ee49086610d58565b6001600160a01b038089166000908152600c602052604080822093909355600a5490911681522054610f169085610cf7565b600a546001600160a01b03166000908152600c6020526040902055600b54600160a01b900460ff1661106657600b805460ff60a01b1916600160a01b179055600a5460408051686c697175696679282960b81b60208083019190915282518083036009018152602983018085528151919092012060048252604d83018452604990920180516001600160e01b03166001600160e01b0319909316929092178252915182516000946001600160a01b0316939282918083835b60208310610fed5780518252601f199092019160209182019101610fce565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461104f576040519150601f19603f3d011682016040523d82523d6000602084013e611054565b606091505b5050600b805460ff60a01b1916905550505b6001600160a01b0386166000908152600c60205260409020546110899082610cf7565b6001600160a01b038088166000908152600c602052604080822093909355600354909116815220546110bb9084610cf7565b6003546001600160a01b039081166000908152600c6020908152604091829020939093558051848152905189831693928b16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3831561116357600a546040805186815290516001600160a01b03928316928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35b82156111b0576003546040805185815290516001600160a01b03928316928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35b6111bd6064610e5b610660565b6001600160a01b0387166000908152600c60205260409020541115806111fb57506001600160a01b0386166000908152600e602052604090205460ff165b611242576040805162461bcd60e51b8152602060048201526013602482015272554e4d4154434845445f414e54495748414c4560681b604482015290519081900360640190fd5b50505050505050565b60008261125a5750600061064b565b8282028284828161126757fe5b0414610d515760405162461bcd60e51b81526004018080602001828103825260218152602001806113476021913960400191505060405180910390fd5b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836113305760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610dea578181015183820152602001610dd2565b50600083858161133c57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204e371d9618b5dbfb86907ba21195acb1b84cb3c874a20def16f7094748804c6c64736f6c63430007060033608060405234801561001057600080fd5b506040516108c33803806108c38339818101604052602081101561003357600080fd5b5051600080546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905183929163c45a0155916004808301926020929190829003018186803b15801561008b57600080fd5b505afa15801561009f573d6000803e3d6000fd5b505050506040513d60208110156100b557600080fd5b5051600180546001600160a01b039283166001600160a01b0319918216179091556002805490911633179055604080516315ab88c960e31b815290519183169163ad5c464891600480820192602092909190829003018186803b15801561011b57600080fd5b505afa15801561012f573d6000803e3d6000fd5b505050506040513d602081101561014557600080fd5b5051600380546001600160a01b039283166001600160a01b031991821617825560028054600480546001818101835560008381527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b92830180548816958a1695909517909455865483548083018555909201805490961691881691909117909455925493549154604080516364e329cb60e11b815293871694840194909452851660248301529151929093169263c9c653969260448083019360209383900390910190829087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b505050506040513d602081101561024357600080fd5b5051600580546001600160a01b0319166001600160a01b039092169190911790555061064d9050806102766000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633fc8cef31461006757806341b3b5691461008b57806364e9cbc514610093578063c45a01551461009b578063cb9598c3146100a3578063f887ea40146100ad575b600080fd5b61006f6100b5565b604080516001600160a01b039092168252519081900360200190f35b61006f6100c4565b61006f6100d3565b61006f6100e2565b6100ab6100f1565b005b61006f610188565b6003546001600160a01b031681565b6005546001600160a01b031681565b6002546001600160a01b031681565b6001546001600160a01b031681565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561013c57600080fd5b505afa158015610150573d6000803e3d6000fd5b505050506040513d602081101561016657600080fd5b5051905061017d610178826002610197565b6101e0565b61018561033f565b50565b6000546001600160a01b031681565b60006101d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610575565b9392505050565b600254600080546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919093169263095ea7b39260448083019360209390929083900390910190829087803b15801561023e57600080fd5b505af1158015610252573d6000803e3d6000fd5b505050506040513d602081101561026857600080fd5b5050600080546040516338ed173960e01b81526004818101858152602483018590523060648401819052426084850181905260a060448601908152845460a487018190526001600160a01b03909716976338ed1739978a97919695929160c401908690801561030057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102e2575b50509650505050505050600060405180830381600087803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b5050505050565b600354600080546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919093169263095ea7b39260448083019360209390929083900390910190829087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050506040513d60208110156103c757600080fd5b5050600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561041457600080fd5b505afa158015610428573d6000803e3d6000fd5b505050506040513d602081101561043e57600080fd5b5051600354604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561049157600080fd5b505afa1580156104a5573d6000803e3d6000fd5b505050506040513d60208110156104bb57600080fd5b5051600080546002546003546040805162e8e33760e81b81526001600160a01b039384166004820152918316602483015260448201889052606482018690526084820185905260a482018590523060c48301524260e48301525194955091169263e8e337009261010480840193606093929083900390910190829087803b15801561054557600080fd5b505af1158015610559573d6000803e3d6000fd5b505050506040513d606081101561056f57600080fd5b50505050565b600081836106015760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105c65781810151838201526020016105ae565b50505050905090810190601f1680156105f35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161060d57fe5b049594505050505056fea26469706673582212204d03ca8218903235c36c34efc803ab5f27d5af5be012435b595baffcb83d627364736f6c6343000706003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000d3c21bcecceda10000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d97e6353e2e0728c3a1fabf350719912807a4b16000000000000000000000000000000000000000000000000000000000000000a4861736862617269756d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044841534800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063c647b20e11610097578063df06740e11610071578063df06740e146104cb578063e410dfb3146104f1578063e9228a6e146104f9578063f2fde38b14610501576101c4565b8063c647b20e14610472578063d4ee1d9014610495578063dd62ed3e1461049d576101c4565b80638b0414d5116100d35780638b0414d5146104105780638da5cb5b1461043657806395d89b411461043e578063a9059cbb14610446576101c4565b806370a08231146103da578063715018a61461040057806379ba509714610408576101c4565b80632d3e474a1161016657806341b3b5691161014057806341b3b569146103565780634febf53d1461035e57806355b6ed5c14610386578063578ef9c9146103b4576101c4565b80632d3e474a14610328578063313ce5671461033057806333d4fe701461034e576101c4565b80631729d10b116101a25780631729d10b146102a057806318160ddd146102c457806323b872dd146102cc57806327e235e314610302576101c4565b8063047fc9aa146101c957806306fdde03146101e3578063095ea7b314610260575b600080fd5b6101d1610527565b60408051918252519081900360200190f35b6101eb61052d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022557818101518382015260200161020d565b50505050905090810190601f1680156102525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61028c6004803603604081101561027657600080fd5b506001600160a01b0381351690602001356105bb565b604080519115158252519081900360200190f35b6102a8610651565b604080516001600160a01b039092168252519081900360200190f35b6101d1610660565b61028c600480360360608110156102e257600080fd5b506001600160a01b038135811691602081013590911690604001356106d1565b6101d16004803603602081101561031857600080fd5b50356001600160a01b0316610765565b6102a8610777565b610338610786565b6040805160ff9092168252519081900360200190f35b6101d161078f565b6102a8610795565b6103846004803603602081101561037457600080fd5b50356001600160a01b03166107a4565b005b6101d16004803603604081101561039c57600080fd5b506001600160a01b0381358116916020013516610854565b610384600480360360208110156103ca57600080fd5b50356001600160a01b0316610871565b6101d1600480360360208110156103f057600080fd5b50356001600160a01b031661091f565b61038461096b565b6103846109c6565b6103846004803603602081101561042657600080fd5b50356001600160a01b0316610a41565b6102a8610af0565b6101eb610aff565b61028c6004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610b5a565b6103846004803603604081101561048857600080fd5b5080359060200135610b70565b6102a8610bc2565b6101d1600480360360408110156104b357600080fd5b506001600160a01b0381358116916020013516610bd1565b610384600480360360208110156104e157600080fd5b50356001600160a01b0316610bfc565b6102a8610ca9565b6101d1610cb8565b6103846004803603602081101561051757600080fd5b50356001600160a01b0316610cbe565b60065481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105b35780601f10610588576101008083540402835291602001916105b3565b820191906000526020600020905b81548152906001019060200180831161059657829003601f168201915b505050505081565b336000908152600d602090815260408083206001600160a01b03861684529091528120546105e99083610cf7565b336000818152600d602090815260408083206001600160a01b03891680855290835292819020949094558351868152935191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060015b92915050565b600a546001600160a01b031681565b600c6020527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e85461dead60009081527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c5460065491926106cc9290916106c69190610d58565b90610d58565b905090565b6040805180820182526016815275494e53554646494349454e545f414c4c4f57414e434560501b6020808301919091526001600160a01b0386166000908152600d82528381203382529091529182205461072c918490610d96565b6001600160a01b0385166000908152600d6020908152604080832033845290915290205561075b848484610e2d565b5060019392505050565b600c6020526000908152604090205481565b6003546001600160a01b031681565b60075460ff1681565b60095481565b600b546001600160a01b031681565b6000546001600160a01b03163314806107c757506002546001600160a01b031633145b610808576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b6001600160a01b0381166000818152600e6020526040808220805460ff19166001179055517f687393afd4a22af144243b91668410864a0f0098b8d0ce0d912df1388ed92a3e9190a250565b600d60209081526000928352604080842090915290825290205481565b6000546001600160a01b031633148061089457506002546001600160a01b031633145b6108d5576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fbacc539609b5078545dc8cbbdf77cddd714612283357eb75b9c1cfc419b910b890600090a250565b60006001600160a01b03821661dead148061094157506001600160a01b038216155b610963576001600160a01b0382166000908152600c602052604090205461064b565b600092915050565b6000546001600160a01b0316331461098257600080fd5b600080546001600160a01b031990811682556001805490911690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1565b6001546001600160a01b031633146109dd57600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b0316331480610a6457506003546001600160a01b031633145b610aa6576040805162461bcd60e51b815260206004820152600e60248201526d13585c9ad95d1a5b99ce881ddd5d60921b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040517f70f1e4f570b51e464910762fee3d96ad08b99a90ce9c27a6036b0f4627aeda2d90600090a250565b6000546001600160a01b031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105b35780601f10610588576101008083540402835291602001916105b3565b6000610b67338484610e2d565b50600192915050565b6000546001600160a01b03163314610b8757600080fd5b60088290556009819055604051819083907f5eee0b95930ee59011f34615b0b7dc6cc58c01d1f07d04a01a3a1e70d2554cf090600090a35050565b6001546001600160a01b031681565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6000546001600160a01b0316331480610c1f57506002546001600160a01b031633145b610c60576040805162461bcd60e51b815260206004820152600d60248201526c115e18db1d59195c8e881ddd5d609a1b604482015290519081900360640190fd5b6001600160a01b0381166000818152600e6020526040808220805460ff19169055517fe3905c9a5e875cbf5101cd4705f7c82e177ec7e6adcb54efbc4934560d8c524d9190a250565b6002546001600160a01b031681565b60085481565b6000546001600160a01b03163314610cd557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610d51576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b60008184841115610e255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dea578181015183820152602001610dd2565b50505050905090810190601f168015610e175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600b54600090600160a01b900460ff16610e6657610e616064610e5b6009548561124b90919063ffffffff16565b906112a4565b610e69565b60005b600b54909150600090600160a01b900460ff16610e9f57610e9a6064610e5b6008548661124b90919063ffffffff16565b610ea2565b60005b90506000610eb08383610cf7565b90506000610ebe8583610d58565b6001600160a01b0388166000908152600c6020526040902054909150610ee49086610d58565b6001600160a01b038089166000908152600c602052604080822093909355600a5490911681522054610f169085610cf7565b600a546001600160a01b03166000908152600c6020526040902055600b54600160a01b900460ff1661106657600b805460ff60a01b1916600160a01b179055600a5460408051686c697175696679282960b81b60208083019190915282518083036009018152602983018085528151919092012060048252604d83018452604990920180516001600160e01b03166001600160e01b0319909316929092178252915182516000946001600160a01b0316939282918083835b60208310610fed5780518252601f199092019160209182019101610fce565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461104f576040519150601f19603f3d011682016040523d82523d6000602084013e611054565b606091505b5050600b805460ff60a01b1916905550505b6001600160a01b0386166000908152600c60205260409020546110899082610cf7565b6001600160a01b038088166000908152600c602052604080822093909355600354909116815220546110bb9084610cf7565b6003546001600160a01b039081166000908152600c6020908152604091829020939093558051848152905189831693928b16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3831561116357600a546040805186815290516001600160a01b03928316928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35b82156111b0576003546040805185815290516001600160a01b03928316928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35b6111bd6064610e5b610660565b6001600160a01b0387166000908152600c60205260409020541115806111fb57506001600160a01b0386166000908152600e602052604090205460ff165b611242576040805162461bcd60e51b8152602060048201526013602482015272554e4d4154434845445f414e54495748414c4560681b604482015290519081900360640190fd5b50505050505050565b60008261125a5750600061064b565b8282028284828161126757fe5b0414610d515760405162461bcd60e51b81526004018080602001828103825260218152602001806113476021913960400191505060405180910390fd5b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836113305760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610dea578181015183820152602001610dd2565b50600083858161133c57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204e371d9618b5dbfb86907ba21195acb1b84cb3c874a20def16f7094748804c6c64736f6c63430007060033

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000d3c21bcecceda10000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d97e6353e2e0728c3a1fabf350719912807a4b16000000000000000000000000000000000000000000000000000000000000000a4861736862617269756d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044841534800000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Hashbarium
Arg [1] : _symbol (string): HASH
Arg [2] : _totalSupply (uint256): 1000000000000000000000000
Arg [3] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [4] : _marketing (address): 0xd97e6353E2e0728C3A1FaBF350719912807A4B16

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 00000000000000000000000000000000000000000000d3c21bcecceda1000000
Arg [3] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [4] : 000000000000000000000000d97e6353e2e0728c3a1fabf350719912807a4b16
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 4861736862617269756d00000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 4841534800000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8905:6108:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9242:21;;;:::i;:::-;;;;;;;;;;;;;;;;9162:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13798:222;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13798:222:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9526:24;;;:::i;:::-;;;;-1:-1:-1;;;;;9526:24:0;;;;;;;;;;;;;;11515:133;;;:::i;13551:241::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13551:241:0;;;;;;;;;;;;;;;;;:::i;9723:44::-;;;;;;;;;;;;;;;;-1:-1:-1;9723:44:0;-1:-1:-1;;;;;9723:44:0;;:::i;9113:24::-;;;:::i;9302:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9428:25;;;:::i;9624:30::-;;;:::i;14549:106::-;;;;;;;;;;;;;;;;-1:-1:-1;14549:106:0;-1:-1:-1;;;;;14549:106:0;;:::i;:::-;;9794:67;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9794:67:0;;;;;;;;;;:::i;14408:135::-;;;;;;;;;;;;;;;;-1:-1:-1;14408:135:0;-1:-1:-1;;;;;14408:135:0;;:::i;11265:244::-;;;;;;;;;;;;;;;;-1:-1:-1;11265:244:0;-1:-1:-1;;;;;11265:244:0;;:::i;8768:130::-;;;:::i;8566:196::-;;;:::i;14803:207::-;;;;;;;;;;;;;;;;-1:-1:-1;14803:207:0;-1:-1:-1;;;;;14803:207:0;;:::i;8011:20::-;;;:::i;9200:21::-;;;:::i;13418:127::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13418:127:0;;;;;;;;:::i;14051:174::-;;;;;;;;;;;;;;;;-1:-1:-1;14051:174:0;;;;;;;:::i;8038:23::-;;;:::i;11654:134::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11654:134:0;;;;;;;;;;:::i;14661:111::-;;;;;;;;;;;;;;;;-1:-1:-1;14661:111:0;-1:-1:-1;;;;;14661:111:0;;:::i;9000:23::-;;;:::i;9366:25::-;;;:::i;8324:102::-;;;;;;;;;;;;;;;;-1:-1:-1;8324:102:0;-1:-1:-1;;;;;8324:102:0;;:::i;9242:21::-;;;;:::o;9162:19::-;;;;;;;;;;;;;;;-1:-1:-1;;9162:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13798:222::-;13920:10;13864:4;13909:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;13909:31:0;;;;;;;;;;:43;;13945:6;13909:35;:43::i;:::-;13886:10;13875:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;13875:31:0;;;;;;;;;;;;:77;;;;13962:37;;;;;;;13875:31;;13962:37;;;;;;;;;;;-1:-1:-1;14011:4:0;13798:222;;;;;:::o;9526:24::-;;;-1:-1:-1;;;;;9526:24:0;;:::o;11515:133::-;11622:8;:20;;;;11608:6;11559:7;11591:25;;;;;11580:6;;11559:7;;11580:63;;11622:20;;11580:37;;:6;:10;:37::i;:::-;:41;;:63::i;:::-;11573:70;;11515:133;:::o;13551:241::-;13673:66;;;;;;;;;;;-1:-1:-1;;;13673:66:0;;;;;;;;-1:-1:-1;;;;;13673:16:0;;13631:4;13673:16;;;:10;:16;;;;;13690:10;13673:28;;;;;;;;;:66;;13706:6;;13673:32;:66::i;:::-;-1:-1:-1;;;;;13642:16:0;;;;;;:10;:16;;;;;;;;13659:10;13642:28;;;;;;;:97;13744:27;13653:4;13760:2;13764:6;13744:9;:27::i;:::-;-1:-1:-1;13783:4:0;13551:241;;;;;:::o;9723:44::-;;;;;;;;;;;;;:::o;9113:24::-;;;-1:-1:-1;;;;;9113:24:0;;:::o;9302:26::-;;;;;;:::o;9428:25::-;;;;:::o;9624:30::-;;;-1:-1:-1;;;;;9624:30:0;;:::o;14549:106::-;14342:5;;-1:-1:-1;;;;;14342:5:0;14328:10;:19;;:45;;-1:-1:-1;14365:8:0;;-1:-1:-1;;;;;14365:8:0;14351:10;:22;14328:45;14320:71;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14605:14:0;::::1;;::::0;;;:8:::1;:14;::::0;;;;;:21;;-1:-1:-1;;14605:21:0::1;14622:4;14605:21;::::0;;14636:14;::::1;::::0;14605;14636::::1;14549:106:::0;:::o;9794:67::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14408:135::-;14342:5;;-1:-1:-1;;;;;14342:5:0;14328:10;:19;;:45;;-1:-1:-1;14365:8:0;;-1:-1:-1;;;;;14365:8:0;14351:10;:22;14328:45;14320:71;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;;;;14478:8:::1;:22:::0;;-1:-1:-1;;;;;;14478:22:0::1;-1:-1:-1::0;;;;;14478:22:0;::::1;::::0;;::::1;::::0;;;14510:28:::1;::::0;::::1;::::0;-1:-1:-1;;14510:28:0::1;14408:135:::0;:::o;11265:244::-;11325:7;-1:-1:-1;;;;;11348:29:0;;11370:6;11348:29;;11347:61;;-1:-1:-1;;;;;;11383:24:0;;;11347:61;11346:90;;-1:-1:-1;;;;;11416:20:0;;;;;;:8;:20;;;;;;11346:90;;;11412:1;11339:97;11265:244;-1:-1:-1;;11265:244:0:o;8768:130::-;8290:5;;-1:-1:-1;;;;;8290:5:0;8276:10;:19;8268:28;;;;;;8835:1:::1;8819:18:::0;;-1:-1:-1;;;;;;8819:18:0;;::::1;::::0;;;8842:21;;;;::::1;::::0;;8873:20:::1;::::0;::::1;::::0;8835:1;8873:20:::1;8768:130::o:0;8566:196::-;8633:8;;-1:-1:-1;;;;;8633:8:0;8619:10;:22;8611:31;;;;;;8686:8;;;8679:5;;8658:37;;-1:-1:-1;;;;;8686:8:0;;;;8679:5;;;;8658:37;;;8714:8;;;;8706:16;;-1:-1:-1;;;;;;8706:16:0;;;-1:-1:-1;;;;;8714:8:0;;8706:16;;;;8733:21;;;8566:196::o;14803:207::-;14880:5;;-1:-1:-1;;;;;14880:5:0;14866:10;:19;;:46;;-1:-1:-1;14903:9:0;;-1:-1:-1;;;;;14903:9:0;14889:10;:23;14866:46;14858:73;;;;;-1:-1:-1;;;14858:73:0;;;;;;;;;;;;-1:-1:-1;;;14858:73:0;;;;;;;;;;;;;;;14936:9;:23;;-1:-1:-1;;;;;;14936:23:0;-1:-1:-1;;;;;14936:23:0;;;;;;;;14969:36;;;;-1:-1:-1;;14969:36:0;14803:207;:::o;8011:20::-;;;-1:-1:-1;;;;;8011:20:0;;:::o;9200:21::-;;;;;;;;;;;;;;;-1:-1:-1;;9200:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13418:127;13480:4;13491:33;13501:10;13513:2;13517:6;13491:9;:33::i;:::-;-1:-1:-1;13536:4:0;13418:127;;;;:::o;14051:174::-;8290:5;;-1:-1:-1;;;;;8290:5:0;8276:10;:19;8268:28;;;;;;14131:6:::1;:19:::0;;;14155:6:::1;:19:::0;;;14184:36:::1;::::0;14164:10;;14140;;14184:36:::1;::::0;-1:-1:-1;;14184:36:0::1;14051:174:::0;;:::o;8038:23::-;;;-1:-1:-1;;;;;8038:23:0;;:::o;11654:134::-;-1:-1:-1;;;;;11752:22:0;;;11731:7;11752:22;;;:10;:22;;;;;;;;:31;;;;;;;;;;;;;11654:134::o;14661:111::-;14342:5;;-1:-1:-1;;;;;14342:5:0;14328:10;:19;;:45;;-1:-1:-1;14365:8:0;;-1:-1:-1;;;;;14365:8:0;14351:10;:22;14328:45;14320:71;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;-1:-1:-1;;;14320:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14719:14:0;::::1;14736:5;14719:14:::0;;;:8:::1;:14;::::0;;;;;:22;;-1:-1:-1;;14719:22:0::1;::::0;;14751:16;::::1;::::0;14736:5;14751:16:::1;14661:111:::0;:::o;9000:23::-;;;-1:-1:-1;;;;;9000:23:0;;:::o;9366:25::-;;;;:::o;8324:102::-;8290:5;;-1:-1:-1;;;;;8290:5:0;8276:10;:19;8268:28;;;;;;8398:8:::1;:20:::0;;-1:-1:-1;;;;;;8398:20:0::1;-1:-1:-1::0;;;;;8398:20:0;;;::::1;::::0;;;::::1;::::0;;8324:102::o;2191:181::-;2249:7;2281:5;;;2305:6;;;;2297:46;;;;;-1:-1:-1;;;2297:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2363:1;2191:181;-1:-1:-1;;;2191:181:0:o;2655:136::-;2713:7;2740:43;2744:1;2747;2740:43;;;;;;;;;;;;;;;;;3094:192;3180:7;3216:12;3208:6;;;;3200:29;;;;-1:-1:-1;;;3200:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3252:5:0;;;3094:192::o;11816:1574::-;11905:12;;11890;;-1:-1:-1;;;11905:12:0;;;;:46;;11924:27;11947:3;11924:18;11935:6;;11924;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;11905:46;;;11920:1;11905:46;11999:12;;11890:61;;-1:-1:-1;11983:13:0;;-1:-1:-1;;;11999:12:0;;;;:46;;12018:27;12041:3;12018:18;12029:6;;12018;:10;;:18;;;;:::i;:27::-;11999:46;;;12014:1;11999:46;11983:62;-1:-1:-1;12084:16:0;12103:15;:4;11983:62;12103:8;:15::i;:::-;12084:34;-1:-1:-1;12123:19:0;12145:20;:6;12084:34;12145:10;:20::i;:::-;-1:-1:-1;;;;;12191:14:0;;;;;;:8;:14;;;;;;12123:42;;-1:-1:-1;12191:26:0;;12210:6;12191:18;:26::i;:::-;-1:-1:-1;;;;;12174:14:0;;;;;;;:8;:14;;;;;;:43;;;;12287:9;;;;;12278:19;;;;:29;;12302:4;12278:23;:29::i;:::-;12265:9;;-1:-1:-1;;;;;12265:9:0;12256:19;;;;:8;:19;;;;;:51;12344:12;;-1:-1:-1;;;12344:12:0;;;;12339:426;;12426:12;:19;;-1:-1:-1;;;;12426:19:0;-1:-1:-1;;;12426:19:0;;;12517:9;;12572:29;;;-1:-1:-1;;;12572:29:0;;;;;;;;;;;;;;;;;;;;;;;12562:40;;;;;;;12532:72;;;;;;;;;;;;;;-1:-1:-1;;;;;12532:72:0;-1:-1:-1;;;;;;12532:72:0;;;;;;;;;12517:88;;;;12426:19;;-1:-1:-1;;;;;12517:9:0;;12572:29;12517:88;;;;12532:72;12517:88;;;;;;;;;;-1:-1:-1;;12517:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12700:12:0;:20;;-1:-1:-1;;;;12700:20:0;;;-1:-1:-1;;12339:426:0;-1:-1:-1;;;;;12836:12:0;;;;;;:8;:12;;;;;;:29;;12853:11;12836:16;:29::i;:::-;-1:-1:-1;;;;;12821:12:0;;;;;;;:8;:12;;;;;;:44;;;;12939:9;;;;;12930:19;;;;:30;;12954:5;12930:23;:30::i;:::-;12917:9;;-1:-1:-1;;;;;12917:9:0;;;12908:19;;;;:8;:19;;;;;;;;;:52;;;;13020:31;;;;;;;;;;;;;;;;;;;;;;;13121:8;;13117:55;;13153:9;;13138:31;;;;;;;;-1:-1:-1;;;;;13153:9:0;;;;13138:31;;;;;;;;;;;;;13117:55;13207:9;;13203:57;;13240:9;;13225:32;;;;;;;;-1:-1:-1;;;;;13240:9:0;;;;13225:32;;;;;;;;;;;;;13203:57;13322:22;13340:3;13322:13;:11;:13::i;:22::-;-1:-1:-1;;;;;13306:12:0;;;;;;:8;:12;;;;;;:38;;;13305:56;;-1:-1:-1;;;;;;13349:12:0;;;;;;:8;:12;;;;;;;;13305:56;13297:88;;;;;-1:-1:-1;;;13297:88:0;;;;;;;;;;;;-1:-1:-1;;;13297:88:0;;;;;;;;;;;;;;;11816:1574;;;;;;;:::o;3545:471::-;3603:7;3848:6;3844:47;;-1:-1:-1;3878:1:0;3871:8;;3844:47;3915:5;;;3919:1;3915;:5;:1;3939:5;;;;;:10;3931:56;;;;-1:-1:-1;;;3931:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4492:132;4550:7;4577:39;4581:1;4584;4577:39;;;;;;;;;;;;;;;;;5206:7;5241:12;5234:5;5226:28;;;;-1:-1:-1;;;5226:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5265:9;5281:1;5277;:5;;;;;;;5120:278;-1:-1:-1;;;;;5120:278:0:o

Swarm Source

ipfs://4d03ca8218903235c36c34efc803ab5f27d5af5be012435b595baffcb83d6273
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.