ETH Price: $3,821.30 (+1.92%)
Gas: 4 Gwei

Token

Hibiki.finance (HIBIKI)
 

Overview

Max Total Supply

10,000,000 HIBIKI

Holders

1,033 (0.00%)

Total Transfers

-

Market

Price

$0.02 @ 0.000005 ETH (-0.03%)

Onchain Market Cap

$183,927.11

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Market

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

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Hibiki

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-30
*/

/**
 * Tooling and development for EVM blockchains.
 *
 * https://hibiki.finance
 * https://t.me/hibikifinance 
 */

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

abstract contract Auth {

    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Detailed is IERC20 {
	function name() external view returns (string memory);
	function symbol() external view returns (string memory);
	function decimals() external view returns (uint8);
}

contract Hibiki is IERC20Detailed, Auth {

	string constant private _name = "Hibiki.finance";
    string constant private _symbol = "HIBIKI";
    uint256 constant private _totalSupply = 10_000_000 ether;

	mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isFeeExempt;
	mapping (address => bool) private _isTaxable;

	uint256 public ammTradeFee = 2_00;
	uint256 constant public maxFee = 5_00;
    uint256 constant public feeDenominator = 100_00;
	address public feeReceiver;
	address constant private DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant private ZERO = 0x0000000000000000000000000000000000000000;

	event AMMFeeUpdate(uint256 fee, address receiver);
	error FeeTooHigh(uint256 attemptedFee, uint256 maxFee);
	error InsufficientAllowance(uint256 attempted, uint256 available);
	error InsufficientBalance(uint256 attempted, uint256 available);
	error ApproveFromZero();
	error ApproveToZero();
	error TransferFromZero();
	error TransferToZero();

	constructor() Auth(msg.sender) {
		_balances[msg.sender] = _totalSupply;
		emit Transfer(address(0), msg.sender, _totalSupply);
	}

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return 18; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }

	function approve(address spender, uint256 amount) external override returns (bool) {
		_approve(msg.sender, spender, amount);
		return true;
	}

	function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
		address owner = msg.sender;
		_approve(owner, spender, allowance(owner, spender) + addedValue);
		return true;
	}

	function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
		address owner = msg.sender;
		uint256 currentAllowance = allowance(owner, spender);
		if (currentAllowance < subtractedValue) {
			revert InsufficientAllowance(subtractedValue, currentAllowance);
		}
		unchecked {
			_approve(owner, spender, currentAllowance - subtractedValue);
		}

		return true;
	}

	function _approve(address owner, address spender, uint256 amount) internal {
		if (owner == ZERO) {
			revert ApproveFromZero();
		}
		if (spender == ZERO) {
			revert ApproveToZero();
		}
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

	function _spendAllowance(address owner, address spender, uint256 amount) internal {
		uint256 currentAllowance = allowance(owner, spender);
		if (currentAllowance != type(uint256).max) {
			if (currentAllowance < amount) {
				revert InsufficientAllowance(amount, currentAllowance);
			}
			unchecked {
				_approve(owner, spender, currentAllowance - amount);
			}
		}
	}

    function transfer(address recipient, uint256 amount) external override returns (bool) {
		_transfer(msg.sender, recipient, amount);
        return true;
    }

	function transferFrom(
		address from,
		address to,
		uint256 amount
	) public virtual override returns (bool) {
		_spendAllowance(from, msg.sender, amount);
		_transfer(from, to, amount);
		return true;
	}

	function _transfer(address from, address to, uint256 amount) internal virtual {
		if (from == ZERO) {
			revert TransferFromZero();
		}
		if (to == ZERO) {
			revert TransferToZero();
		}

		uint256 fromBalance = _balances[from];
		if (fromBalance < amount) {
			revert InsufficientBalance(amount, fromBalance);
		}

		uint256 receivedAmount = amount;
		if (_isTransferTaxable(from, to)) {
			uint256 fee = _calcFee(amount);
			if (fee > 0) {
				address receivesFee = feeReceiver;
				unchecked {
					receivedAmount -= fee;
					_balances[receivesFee] += fee;
				}
				
				emit Transfer(from, receivesFee, fee);
			}
		}

		unchecked {
			_balances[from] = fromBalance - amount;
			_balances[to] += receivedAmount;
		}

		emit Transfer(from, to, receivedAmount);
	}

	function _calcFee(uint256 amount) internal view returns (uint256) {
		uint256 tradeFee = ammTradeFee;
		if (tradeFee == 0) {
			return 0;
		}

		return amount * tradeFee / feeDenominator;
	}

	function _isTransferTaxable(address sender, address recipient) internal view returns (bool) {
		return (_isTaxable[sender] || _isTaxable[recipient])
			&& !_isFeeExempt[sender]
			&& !_isFeeExempt[recipient];
	}

    function setIsFeeExempt(address wallet, bool exempt) external authorized {
        _isFeeExempt[wallet] = exempt;
    }

	function setIsTaxable(address wallet, bool taxable) external authorized {
        _isTaxable[wallet] = taxable;
    }

    function setAMMTradingFee(uint256 newFee, address newReceiver) external authorized {
		uint256 max = maxFee;
		if (newFee > max) {
			revert FeeTooHigh(newFee, max);
		}
		ammTradeFee = newFee;
		feeReceiver = newReceiver;

        emit AMMFeeUpdate(newFee, newReceiver);
    }

	function getCirculatingSupply() external view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApproveFromZero","type":"error"},{"inputs":[],"name":"ApproveToZero","type":"error"},{"inputs":[{"internalType":"uint256","name":"attemptedFee","type":"uint256"},{"internalType":"uint256","name":"maxFee","type":"uint256"}],"name":"FeeTooHigh","type":"error"},{"inputs":[{"internalType":"uint256","name":"attempted","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"attempted","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"TransferFromZero","type":"error"},{"inputs":[],"name":"TransferToZero","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"AMMFeeUpdate","type":"event"},{"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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ammTradeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"},{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setAMMTradingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"taxable","type":"bool"}],"name":"setIsTaxable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260c860065534801561001557600080fd5b50600080546001600160a01b031916339081178255808252600160208181526040808520805460ff1916909317909255600281528184206a084595161401484a0000009081905591519182529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d778061009e6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063b6a5d7de1161007c578063b6a5d7de14610315578063c7d7b10214610328578063dd62ed3e1461033b578063f0b37c041461034e578063f2fde38b14610361578063fe9fbb801461037457600080fd5b806370a082311461027057806395d89b4114610299578063a457c2d7146102bb578063a9059cbb146102ce578063b073d9e5146102e1578063b3f00674146102ea57600080fd5b80632b112e49116101155780632b112e49146101fc5780632f54bf6e14610204578063313ce567146102265780633950935114610235578063415eff6414610248578063658d4b7f1461025d57600080fd5b806301f59d161461015d57806306fdde0314610179578063095ea7b3146101ac578063180b0d7e146101cf57806318160ddd146101d857806323b872dd146101e9575b600080fd5b6101666101f481565b6040519081526020015b60405180910390f35b60408051808201909152600e81526d486962696b692e66696e616e636560901b60208201525b6040516101709190610afe565b6101bf6101ba366004610b64565b6103a0565b6040519015158152602001610170565b61016661271081565b6a084595161401484a000000610166565b6101bf6101f7366004610b90565b6103b7565b6101666103d9565b6101bf610212366004610bd1565b6000546001600160a01b0391821691161490565b60405160128152602001610170565b6101bf610243366004610b64565b610451565b61025b610256366004610bee565b610473565b005b61025b61026b366004610bee565b6104d6565b61016661027e366004610bd1565b6001600160a01b031660009081526002602052604090205490565b604080518082019091526006815265484942494b4960d01b602082015261019f565b6101bf6102c9366004610b64565b610530565b6101bf6102dc366004610b64565b610583565b61016660065481565b6007546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b61025b610323366004610bd1565b610590565b61025b610336366004610c2c565b6105e1565b610166610349366004610c51565b6106a0565b61025b61035c366004610bd1565b6106cb565b61025b61036f366004610bd1565b610716565b6101bf610382366004610bd1565b6001600160a01b031660009081526001602052604090205460ff1690565b60006103ad3384846107ac565b5060015b92915050565b60006103c484338461085b565b6103cf8484846108b0565b5060019392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610442906a084595161401484a000000610c95565b61044c9190610c95565b905090565b6000336103cf81858561046483836106a0565b61046e9190610ca8565b6107ac565b3360009081526001602052604090205460ff166104ab5760405162461bcd60e51b81526004016104a290610cbb565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff166105055760405162461bcd60e51b81526004016104a290610cbb565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000338161053e82866106a0565b90508381101561056b5760405163054365bb60e31b815260048101859052602481018290526044016104a2565b61057882868684036107ac565b506001949350505050565b60006103ad3384846108b0565b6000546001600160a01b031633146105ba5760405162461bcd60e51b81526004016104a290610ce0565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff166106105760405162461bcd60e51b81526004016104a290610cbb565b6101f48083111561063e576040516373ab893560e11b815260048101849052602481018290526044016104a2565b6006839055600780546001600160a01b0319166001600160a01b0384169081179091556040805185815260208101929092527ff7cbd7bf17a6d37d3cc42218959596f03ef154b44cfb7f300645543125b55d8b910160405180910390a1505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106f55760405162461bcd60e51b81526004016104a290610ce0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146107405760405162461bcd60e51b81526004016104a290610ce0565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b0383166107d35760405163dcdef09960e01b815260040160405180910390fd5b6001600160a01b0382166107fa576040516309d65bf960e21b815260040160405180910390fd5b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061086784846106a0565b905060001981146108aa578181101561089d5760405163054365bb60e31b815260048101839052602481018290526044016104a2565b6108aa84848484036107ac565b50505050565b6001600160a01b0383166108d75760405163f38f85c360e01b815260040160405180910390fd5b6001600160a01b0382166108fe5760405163a38ca3d960e01b815260040160405180910390fd5b6001600160a01b038316600090815260026020526040902054818110156109425760405163cf47918160e01b815260048101839052602481018290526044016104a2565b8161094d8585610a41565b156109d257600061095d84610ad1565b905080156109d0576007546001600160a01b039081166000818152600260205260409081902080548501905551938390039390918291908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109c69086815260200190565b60405180910390a3505b505b6001600160a01b0380861660008181526002602052604080822087870390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a329085815260200190565b60405180910390a35050505050565b6001600160a01b03821660009081526005602052604081205460ff1680610a8057506001600160a01b03821660009081526005602052604090205460ff165b8015610aa557506001600160a01b03831660009081526004602052604090205460ff16155b8015610aca57506001600160a01b03821660009081526004602052604090205460ff16155b9392505050565b600654600090808203610ae75750600092915050565b612710610af48285610d00565b610aca9190610d1f565b600060208083528351808285015260005b81811015610b2b57858101830151858201604001528201610b0f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6157600080fd5b50565b60008060408385031215610b7757600080fd5b8235610b8281610b4c565b946020939093013593505050565b600080600060608486031215610ba557600080fd5b8335610bb081610b4c565b92506020840135610bc081610b4c565b929592945050506040919091013590565b600060208284031215610be357600080fd5b8135610aca81610b4c565b60008060408385031215610c0157600080fd5b8235610c0c81610b4c565b915060208301358015158114610c2157600080fd5b809150509250929050565b60008060408385031215610c3f57600080fd5b823591506020830135610c2181610b4c565b60008060408385031215610c6457600080fd5b8235610c6f81610b4c565b91506020830135610c2181610b4c565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b1576103b1610c7f565b808201808211156103b1576103b1610c7f565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000816000190483118215151615610d1a57610d1a610c7f565b500290565b600082610d3c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e07fe4e47ac582067701acd568202c7ff15f78423bf85ee9ad7a3f96350785f964736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063b6a5d7de1161007c578063b6a5d7de14610315578063c7d7b10214610328578063dd62ed3e1461033b578063f0b37c041461034e578063f2fde38b14610361578063fe9fbb801461037457600080fd5b806370a082311461027057806395d89b4114610299578063a457c2d7146102bb578063a9059cbb146102ce578063b073d9e5146102e1578063b3f00674146102ea57600080fd5b80632b112e49116101155780632b112e49146101fc5780632f54bf6e14610204578063313ce567146102265780633950935114610235578063415eff6414610248578063658d4b7f1461025d57600080fd5b806301f59d161461015d57806306fdde0314610179578063095ea7b3146101ac578063180b0d7e146101cf57806318160ddd146101d857806323b872dd146101e9575b600080fd5b6101666101f481565b6040519081526020015b60405180910390f35b60408051808201909152600e81526d486962696b692e66696e616e636560901b60208201525b6040516101709190610afe565b6101bf6101ba366004610b64565b6103a0565b6040519015158152602001610170565b61016661271081565b6a084595161401484a000000610166565b6101bf6101f7366004610b90565b6103b7565b6101666103d9565b6101bf610212366004610bd1565b6000546001600160a01b0391821691161490565b60405160128152602001610170565b6101bf610243366004610b64565b610451565b61025b610256366004610bee565b610473565b005b61025b61026b366004610bee565b6104d6565b61016661027e366004610bd1565b6001600160a01b031660009081526002602052604090205490565b604080518082019091526006815265484942494b4960d01b602082015261019f565b6101bf6102c9366004610b64565b610530565b6101bf6102dc366004610b64565b610583565b61016660065481565b6007546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b61025b610323366004610bd1565b610590565b61025b610336366004610c2c565b6105e1565b610166610349366004610c51565b6106a0565b61025b61035c366004610bd1565b6106cb565b61025b61036f366004610bd1565b610716565b6101bf610382366004610bd1565b6001600160a01b031660009081526001602052604090205460ff1690565b60006103ad3384846107ac565b5060015b92915050565b60006103c484338461085b565b6103cf8484846108b0565b5060019392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610442906a084595161401484a000000610c95565b61044c9190610c95565b905090565b6000336103cf81858561046483836106a0565b61046e9190610ca8565b6107ac565b3360009081526001602052604090205460ff166104ab5760405162461bcd60e51b81526004016104a290610cbb565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff166105055760405162461bcd60e51b81526004016104a290610cbb565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000338161053e82866106a0565b90508381101561056b5760405163054365bb60e31b815260048101859052602481018290526044016104a2565b61057882868684036107ac565b506001949350505050565b60006103ad3384846108b0565b6000546001600160a01b031633146105ba5760405162461bcd60e51b81526004016104a290610ce0565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff166106105760405162461bcd60e51b81526004016104a290610cbb565b6101f48083111561063e576040516373ab893560e11b815260048101849052602481018290526044016104a2565b6006839055600780546001600160a01b0319166001600160a01b0384169081179091556040805185815260208101929092527ff7cbd7bf17a6d37d3cc42218959596f03ef154b44cfb7f300645543125b55d8b910160405180910390a1505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106f55760405162461bcd60e51b81526004016104a290610ce0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146107405760405162461bcd60e51b81526004016104a290610ce0565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b0383166107d35760405163dcdef09960e01b815260040160405180910390fd5b6001600160a01b0382166107fa576040516309d65bf960e21b815260040160405180910390fd5b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061086784846106a0565b905060001981146108aa578181101561089d5760405163054365bb60e31b815260048101839052602481018290526044016104a2565b6108aa84848484036107ac565b50505050565b6001600160a01b0383166108d75760405163f38f85c360e01b815260040160405180910390fd5b6001600160a01b0382166108fe5760405163a38ca3d960e01b815260040160405180910390fd5b6001600160a01b038316600090815260026020526040902054818110156109425760405163cf47918160e01b815260048101839052602481018290526044016104a2565b8161094d8585610a41565b156109d257600061095d84610ad1565b905080156109d0576007546001600160a01b039081166000818152600260205260409081902080548501905551938390039390918291908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109c69086815260200190565b60405180910390a3505b505b6001600160a01b0380861660008181526002602052604080822087870390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a329085815260200190565b60405180910390a35050505050565b6001600160a01b03821660009081526005602052604081205460ff1680610a8057506001600160a01b03821660009081526005602052604090205460ff165b8015610aa557506001600160a01b03831660009081526004602052604090205460ff16155b8015610aca57506001600160a01b03821660009081526004602052604090205460ff16155b9392505050565b600654600090808203610ae75750600092915050565b612710610af48285610d00565b610aca9190610d1f565b600060208083528351808285015260005b81811015610b2b57858101830151858201604001528201610b0f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6157600080fd5b50565b60008060408385031215610b7757600080fd5b8235610b8281610b4c565b946020939093013593505050565b600080600060608486031215610ba557600080fd5b8335610bb081610b4c565b92506020840135610bc081610b4c565b929592945050506040919091013590565b600060208284031215610be357600080fd5b8135610aca81610b4c565b60008060408385031215610c0157600080fd5b8235610c0c81610b4c565b915060208301358015158114610c2157600080fd5b809150509250929050565b60008060408385031215610c3f57600080fd5b823591506020830135610c2181610b4c565b60008060408385031215610c6457600080fd5b8235610c6f81610b4c565b91506020830135610c2181610b4c565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b1576103b1610c7f565b808201808211156103b1576103b1610c7f565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000816000190483118215151615610d1a57610d1a610c7f565b500290565b600082610d3c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e07fe4e47ac582067701acd568202c7ff15f78423bf85ee9ad7a3f96350785f964736f6c63430008100033

Deployed Bytecode Sourcemap

2172:5626:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2650:37;;2683:4;2650:37;;;;;160:25:1;;;148:2;133:18;2650:37:0;;;;;;;;3695:80;3767:5;;;;;;;;;;;;-1:-1:-1;;;3767:5:0;;;;3695:80;;;;;;;:::i;4026:146::-;;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;4026:146:0;1205:187:1;2694:47:0;;2735:6;2694:47;;3432:88;2362:16;3432:88;;5661:215;;;;;;:::i;:::-;;:::i;7657:138::-;;;:::i;809:103::-;;;;;;:::i;:::-;864:4;899:5;-1:-1:-1;;;;;888:16:0;;;899:5;;888:16;;809:103;3526:73;;;3594:2;2252:36:1;;2240:2;2225:18;3526:73:0;2110:184:1;4177:209:0;;;;;;:::i;:::-;;:::i;7239:119::-;;;;;;:::i;:::-;;:::i;:::-;;7113:121;;;;;;:::i;:::-;;:::i;3781:105::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3865:18:0;3847:7;3865:18;;;:9;:18;;;;;;;3781:105;3605:84;3679:7;;;;;;;;;;;;-1:-1:-1;;;3679:7:0;;;;3605:84;;4391:409;;;;;;:::i;:::-;;:::i;5495:161::-;;;;;;:::i;:::-;;:::i;2613:33::-;;;;;;2745:26;;;;;-1:-1:-1;;;;;2745:26:0;;;;;;-1:-1:-1;;;;;2884:32:1;;;2866:51;;2854:2;2839:18;2745:26:0;2720:203:1;602:94:0;;;;;;:::i;:::-;;:::i;7366:286::-;;;;;;:::i;:::-;;:::i;3892:129::-;;;;;;:::i;:::-;;:::i;704:97::-;;;;;;:::i;:::-;;:::i;1035:173::-;;;;;;:::i;:::-;;:::i;920:107::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1000:19:0;976:4;1000:19;;;:14;:19;;;;;;;;;920:107;4026:146;4103:4;4114:37;4123:10;4135:7;4144:6;4114:8;:37::i;:::-;-1:-1:-1;4163:4:0;4026:146;;;;;:::o;5661:215::-;5771:4;5782:41;5798:4;5804:10;5816:6;5782:15;:41::i;:::-;5828:27;5838:4;5844:2;5848:6;5828:9;:27::i;:::-;-1:-1:-1;5867:4:0;5661:215;;;;;:::o;7657:138::-;3865:9;:18;;;;2807:42;7712:7;3865:18;;;;;7712:7;;3865:18;7739:30;;2362:16;7739:30;:::i;:::-;:48;;;;:::i;:::-;7732:55;;7657:138;:::o;4177:209::-;4259:4;4286:10;4301:64;4286:10;4317:7;4354:10;4326:25;4286:10;4317:7;4326:9;:25::i;:::-;:38;;;;:::i;:::-;4301:8;:64::i;7239:119::-;556:10;976:4;1000:19;;;:14;:19;;;;;;;;535:48;;;;-1:-1:-1;;;535:48:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7322:18:0;;;::::1;;::::0;;;:10:::1;:18;::::0;;;;:28;;-1:-1:-1;;7322:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7239:119::o;7113:121::-;556:10;976:4;1000:19;;;:14;:19;;;;;;;;535:48;;;;-1:-1:-1;;;535:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7197:20:0;;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:29;;-1:-1:-1;;7197:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7113:121::o;4391:409::-;4478:4;4505:10;4478:4;4547:25;4505:10;4564:7;4547:9;:25::i;:::-;4520:52;;4600:15;4581:16;:34;4577:115;;;4630:56;;-1:-1:-1;;;4630:56:0;;;;;4810:25:1;;;4851:18;;;4844:34;;;4783:18;;4630:56:0;4636:248:1;4577:115:0;4712:60;4721:5;4728:7;4756:15;4737:16;:34;4712:8;:60::i;:::-;-1:-1:-1;4791:4:0;;4391:409;-1:-1:-1;;;;4391:409:0:o;5495:161::-;5575:4;5586:40;5596:10;5608:9;5619:6;5586:9;:40::i;602:94::-;864:4;899:5;-1:-1:-1;;;;;899:5:0;461:10;888:16;445:38;;;;-1:-1:-1;;;445:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;662:19:0::1;;::::0;;;684:4:::1;662:19;::::0;;;;;;;:26;;-1:-1:-1;;662:26:0::1;::::0;;::::1;::::0;;602:94::o;7366:286::-;556:10;976:4;1000:19;;;:14;:19;;;;;;;;535:48;;;;-1:-1:-1;;;535:48:0;;;;;;;:::i;:::-;2683:4:::1;7483:12:::0;;::::1;7479:60;;;7510:23;::::0;-1:-1:-1;;;7510:23:0;;::::1;::::0;::::1;4810:25:1::0;;;4851:18;;;4844:34;;;4783:18;;7510:23:0::1;4636:248:1::0;7479:60:0::1;7543:11;:20:::0;;;7568:11:::1;:25:::0;;-1:-1:-1;;;;;;7568:25:0::1;-1:-1:-1::0;;;;;7568:25:0;::::1;::::0;;::::1;::::0;;;7611:33:::1;::::0;;5397:25:1;;;5453:2;5438:18;;5431:60;;;;7611:33:0::1;::::0;5370:18:1;7611:33:0::1;;;;;;;7449:203;7366:286:::0;;:::o;3892:129::-;-1:-1:-1;;;;;3991:18:0;;;3973:7;3991:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3892:129::o;704:97::-;864:4;899:5;-1:-1:-1;;;;;899:5:0;461:10;888:16;445:38;;;;-1:-1:-1;;;445:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;766:19:0::1;788:5;766:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;766:27:0::1;::::0;;704:97::o;1035:173::-;864:4;899:5;-1:-1:-1;;;;;899:5:0;461:10;888:16;445:38;;;;-1:-1:-1;;;445:38:0;;;;;;;:::i;:::-;1111:5:::1;:11:::0;;-1:-1:-1;;;;;;1111:11:0::1;-1:-1:-1::0;;;;;1111:11:0;::::1;::::0;;::::1;::::0;;1133:19;;;-1:-1:-1;1133:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;1133:26:0::1;::::0;;::::1;::::0;;;1175:25;;2866:51:1;;;1175:25:0::1;::::0;2839:18:1;1175:25:0::1;;;;;;;1035:173:::0;:::o;4805:296::-;-1:-1:-1;;;;;4889:13:0;;4885:55;;4917:17;;-1:-1:-1;;;4917:17:0;;;;;;;;;;;4885:55;-1:-1:-1;;;;;4948:15:0;;4944:55;;4978:15;;-1:-1:-1;;;4978:15:0;;;;;;;;;;;4944:55;-1:-1:-1;;;;;5009:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5061:32;;160:25:1;;;5061:32:0;;133:18:1;5061:32:0;;;;;;;4805:296;;;:::o;5106:381::-;5193:24;5220:25;5230:5;5237:7;5220:9;:25::i;:::-;5193:52;;-1:-1:-1;;5254:16:0;:37;5250:233;;5322:6;5303:16;:25;5299:99;;;5344:47;;-1:-1:-1;;;5344:47:0;;;;;4810:25:1;;;4851:18;;;4844:34;;;4783:18;;5344:47:0;4636:248:1;5299:99:0;5420:51;5429:5;5436:7;5464:6;5445:16;:25;5420:8;:51::i;:::-;5188:299;5106:381;;;:::o;5881:802::-;-1:-1:-1;;;;;5968:12:0;;5964:55;;5995:18;;-1:-1:-1;;;5995:18:0;;;;;;;;;;;5964:55;-1:-1:-1;;;;;6027:10:0;;6023:51;;6052:16;;-1:-1:-1;;;6052:16:0;;;;;;;;;;;6023:51;-1:-1:-1;;;;;6102:15:0;;6080:19;6102:15;;;:9;:15;;;;;;6126:20;;;6122:85;;;6161:40;;-1:-1:-1;;;6161:40:0;;;;;4810:25:1;;;4851:18;;;4844:34;;;4783:18;;6161:40:0;4636:248:1;6122:85:0;6238:6;6253:28;6272:4;6278:2;6253:18;:28::i;:::-;6249:281;;;6289:11;6303:16;6312:6;6303:8;:16::i;:::-;6289:30;-1:-1:-1;6329:7:0;;6325:200;;6367:11;;-1:-1:-1;;;;;6367:11:0;;;6345:19;6432:22;;;:9;:22;;;;;;;:29;;;;;;6486:32;6403:21;;;;;6367:11;;;;6486:32;;;;;;;;6421:3;160:25:1;;148:2;133:18;;14:177;6486:32:0;;;;;;;;6338:187;6325:200;6283:247;6249:281;-1:-1:-1;;;;;6552:15:0;;;;;;;:9;:15;;;;;;6570:20;;;6552:38;;6596:13;;;;;;;;;;:31;;;;;;6644:34;;;;;;6613:14;160:25:1;;148:2;133:18;;14:177;6644:34:0;;;;;;;;5959:724;;5881:802;;;:::o;6890:215::-;-1:-1:-1;;;;;6995:18:0;;6976:4;6995:18;;;:10;:18;;;;;;;;;:43;;-1:-1:-1;;;;;;7017:21:0;;;;;;:10;:21;;;;;;;;6995:43;6994:74;;;;-1:-1:-1;;;;;;7048:20:0;;;;;;:12;:20;;;;;;;;7047:21;6994:74;:106;;;;-1:-1:-1;;;;;;7077:23:0;;;;;;:12;:23;;;;;;;;7076:24;6994:106;6987:113;6890:215;-1:-1:-1;;;6890:215:0:o;6688:197::-;6778:11;;6745:7;;6798:13;;;6794:39;;-1:-1:-1;6826:1:0;;6688:197;-1:-1:-1;;6688:197:0:o;6794:39::-;2735:6;6846:17;6855:8;6846:6;:17;:::i;:::-;:34;;;;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:416::-;2364:6;2372;2425:2;2413:9;2404:7;2400:23;2396:32;2393:52;;;2441:1;2438;2431:12;2393:52;2480:9;2467:23;2499:31;2524:5;2499:31;:::i;:::-;2549:5;-1:-1:-1;2606:2:1;2591:18;;2578:32;2648:15;;2641:23;2629:36;;2619:64;;2679:1;2676;2669:12;2619:64;2702:7;2692:17;;;2299:416;;;;;:::o;2928:315::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3109:9;3096:23;3086:33;;3169:2;3158:9;3154:18;3141:32;3182:31;3207:5;3182:31;:::i;3248:388::-;3316:6;3324;3377:2;3365:9;3356:7;3352:23;3348:32;3345:52;;;3393:1;3390;3383:12;3345:52;3432:9;3419:23;3451:31;3476:5;3451:31;:::i;:::-;3501:5;-1:-1:-1;3558:2:1;3543:18;;3530:32;3571:33;3530:32;3571:33;:::i;3901:127::-;3962:10;3957:3;3953:20;3950:1;3943:31;3993:4;3990:1;3983:15;4017:4;4014:1;4007:15;4033:128;4100:9;;;4121:11;;;4118:37;;;4135:18;;:::i;4166:125::-;4231:9;;;4252:10;;;4249:36;;;4265:18;;:::i;4296:335::-;4498:2;4480:21;;;4537:2;4517:18;;;4510:30;-1:-1:-1;;;4571:2:1;4556:18;;4549:41;4622:2;4607:18;;4296:335::o;4889:329::-;5091:2;5073:21;;;5130:1;5110:18;;;5103:29;-1:-1:-1;;;5163:2:1;5148:18;;5141:36;5209:2;5194:18;;4889:329::o;5718:168::-;5758:7;5824:1;5820;5816:6;5812:14;5809:1;5806:21;5801:1;5794:9;5787:17;5783:45;5780:71;;;5831:18;;:::i;:::-;-1:-1:-1;5871:9:1;;5718:168::o;5891:217::-;5931:1;5957;5947:132;;6001:10;5996:3;5992:20;5989:1;5982:31;6036:4;6033:1;6026:15;6064:4;6061:1;6054:15;5947:132;-1:-1:-1;6093:9:1;;5891:217::o

Swarm Source

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