ERC-20
Overview
Max Total Supply
420,000,000,000 BUDDY
Holders
29
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,758,366,218.173240434295556852 BUDDYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED /* ββββ ββββββββββββββββ βββββββββββββββββββ βββ ββββββββββ βββββββ βββ βββ βββββ ββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββ ββββ βββββββββββββββββ βββββββββββββββββ βββββββββββ ββββββ ββββββ βββ βββββββ βββββββββββββββββ βββββββββββββββββ βββββββββββ ββββββ ββββββ βββ βββββ βββ βββ ββββββββββββββ βββ ββββββββββββββββββββββββββββββββββββββββββββ βββ βββ ββββββββββββββ ββββββββββββββββββ βββββββ βββββββ βββββββ βββ */ pragma solidity ^0.8.13; import "solmate/tokens/ERC20.sol"; import "solmate/auth/Owned.sol"; import {IWETH, IUniswapV2Router} from "./Uniswap.sol"; contract Token is ERC20, Owned { uint256 public buyTaxRate; uint256 public sellTaxRate; address public rewardsPool; mapping(address => bool) public isExcludedFromTax; mapping(address => bool) public taxableAddresses; event RewardsWithdrawn(uint256 amount); event SetRewardsPool(address rewardsPool); event SetExcludedFromTax(address account, bool isExcluded); event SetTaxable(address account, bool isTaxable); event SetUniswap(address weth, address uniswapV2Router); event Withdrawn(uint256 amount); // Address of the WETH token. This is needed because Uniswap V3 does not directly support ETH, // but it does support WETH, which is a tokenized version of ETH. IWETH weth; // Uniswap V2 router IUniswapV2Router uniswapV2Router; /** * @dev Contract constructor that sets initial supply, buy and sell tax rates. * @param _name The name of the token. * @param _symbol The symbol of the token. * @param _initialSupply The initial supply of the token. * @param _buyTaxRate The tax rate for buying the token. * @param _sellTaxRate The tax rate for selling the token. */ constructor( string memory _name, string memory _symbol, uint256 _initialSupply, uint256 _buyTaxRate, uint256 _sellTaxRate ) ERC20(_name, _symbol, 18) Owned(msg.sender) { _mint(msg.sender, _initialSupply); buyTaxRate = _buyTaxRate; sellTaxRate = _sellTaxRate; isExcludedFromTax[address(this)] = true; } /** * @dev Overrides the transfer function of the ERC20 standard. * @param to The address to transfer to. * @param amount The amount to be transferred. * @return A boolean that indicates if the operation was successful. */ function transfer(address to, uint256 amount) public override returns (bool) { uint256 transferAmount = calcTax(msg.sender, to, amount); balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += transferAmount; } emit Transfer(msg.sender, to, transferAmount); return true; } /** * @dev Overrides the transferFrom function of the ERC20 standard. * @param from The address to transfer from. * @param to The address to transfer to. * @param amount The amount to be transferred. * @return A boolean that indicates if the operation was successful. */ function transferFrom(address from, address to, uint256 amount) public override returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; uint256 transferAmount = calcTax(from, to, amount); balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += transferAmount; } emit Transfer(from, to, transferAmount); return true; } /** * @dev Calculates the tax for a given transaction. * @param sender The address sending the tokens. * @param recipient The address receiving the tokens. * @param amount The amount of tokens to be transferred. * @return The amount of tokens to be transferred after tax. */ function calcTax(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 taxRate = 0; if (taxableAddresses[sender] && !isExcludedFromTax[recipient]) { // Buy operation taxRate = buyTaxRate; } else if (taxableAddresses[recipient] && !isExcludedFromTax[sender]) { // Sell operation taxRate = sellTaxRate; } uint256 tax = 0; if (taxRate > 0) { tax = amount * taxRate / 100; balanceOf[address(this)] += tax; emit Transfer(sender, address(this), tax); } return amount - tax; } /** * @dev Withdraws the balance of the contract, swaps to ETH and deposits in the rewards pool. */ function withdraw() external onlyOwner { uint256 tokenBalance = balanceOf[address(this)]; // Generate the uniswap pair path of token -> WETH address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); // Make the swap uniswapV2Router.swapExactTokensForETH( tokenBalance, 0, // Accept any amount of ETH path, address(this), block.timestamp ); // Now that you have WETH, you can unwrap it to get ETH weth.withdraw(weth.balanceOf(address(this))); // Transfer the ETH to the rewards pool uint256 ethAmount = address(this).balance; payable(rewardsPool).transfer(ethAmount); emit Withdrawn(ethAmount); } /** * @dev Sets the rewards pool address. * @param _rewardsPool The address of the rewards pool. */ function setRewardsPool(address _rewardsPool) external onlyOwner { rewardsPool = _rewardsPool; isExcludedFromTax[_rewardsPool] = true; emit SetRewardsPool(_rewardsPool); } /** * @dev Sets the Uniswap router and WETH addresses. * @param _weth The address of the WETH token. * @param _uniswapRouter The address of the Uniswap router. */ function setUniswap(address _weth, address _uniswapRouter) external onlyOwner { weth = IWETH(_weth); uniswapV2Router = IUniswapV2Router(_uniswapRouter); allowance[address(this)][_uniswapRouter] = type(uint256).max; emit SetUniswap(_weth, _uniswapRouter); } /** * @dev Sets an address as taxable destination or not. Basically for uniswap addresses. * @param _address The address to be set. * @param isTaxable A boolean that indicates if the address should trigger a tax when transferred to or from. */ function setTaxable(address _address, bool isTaxable) external onlyOwner { taxableAddresses[_address] = isTaxable; emit SetTaxable(_address, isTaxable); } /** * @dev Excludes an account from tax. * @param _account The account to be excluded from tax. * @param isExcluded A boolean that indicates if the account should be excluded from being taxed */ function setExcludedFromTax(address _account, bool isExcluded) external onlyOwner { isExcludedFromTax[_account] = isExcluded; emit SetExcludedFromTax(_account, isExcluded); } receive() external payable {} }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol) /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol) /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it. abstract contract ERC20 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); /*////////////////////////////////////////////////////////////// METADATA STORAGE //////////////////////////////////////////////////////////////*/ string public name; string public symbol; uint8 public immutable decimals; /*////////////////////////////////////////////////////////////// ERC20 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; /*////////////////////////////////////////////////////////////// EIP-2612 STORAGE //////////////////////////////////////////////////////////////*/ uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor( string memory _name, string memory _symbol, uint8 _decimals ) { name = _name; symbol = _symbol; decimals = _decimals; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } /*////////////////////////////////////////////////////////////// ERC20 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(from, to, amount); return true; } /*////////////////////////////////////////////////////////////// EIP-2612 LOGIC //////////////////////////////////////////////////////////////*/ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ), owner, spender, value, nonces[owner]++, deadline ) ) ) ), v, r, s ); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); allowance[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 amount) internal virtual { totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { balanceOf[from] -= amount; // Cannot underflow because a user's balance // will never be larger than the total supply. unchecked { totalSupply -= amount; } emit Transfer(from, address(0), amount); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Simple single owner authorization mixin. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol) abstract contract Owned { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event OwnershipTransferred(address indexed user, address indexed newOwner); /*////////////////////////////////////////////////////////////// OWNERSHIP STORAGE //////////////////////////////////////////////////////////////*/ address public owner; modifier onlyOwner() virtual { require(msg.sender == owner, "UNAUTHORIZED"); _; } /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner) { owner = _owner; emit OwnershipTransferred(address(0), _owner); } /*////////////////////////////////////////////////////////////// OWNERSHIP LOGIC //////////////////////////////////////////////////////////////*/ function transferOwnership(address newOwner) public virtual onlyOwner { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity >=0.7.5; pragma abicoder v2; interface IWETH { function withdraw(uint256 wad) external; function balanceOf(address owner) external view returns (uint256); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); }
{ "remappings": [ "openzeppelin/=lib/openzeppelin-contracts/contracts/", "solmate/=lib/solmate/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"uint256","name":"_buyTaxRate","type":"uint256"},{"internalType":"uint256","name":"_sellTaxRate","type":"uint256"}],"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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"SetExcludedFromTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardsPool","type":"address"}],"name":"SetRewardsPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isTaxable","type":"bool"}],"name":"SetTaxable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"weth","type":"address"},{"indexed":false,"internalType":"address","name":"uniswapV2Router","type":"address"}],"name":"SetUniswap","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsPool","type":"address"}],"name":"setRewardsPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"isTaxable","type":"bool"}],"name":"setTaxable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_uniswapRouter","type":"address"}],"name":"setUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxableAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e06040523480156200001157600080fd5b5060405162001c1c38038062001c1c8339810160408190526200003491620002c4565b33858560126000620000478482620003d8565b506001620000568382620003d8565b5060ff81166080524660a0526200006c620000f6565b60c0525050600680546001600160a01b0319166001600160a01b0384169081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000ca338462000192565b6007919091556008555050306000908152600a60205260409020805460ff19166001179055506200054a565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516200012a9190620004a4565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060026000828254620001a6919062000522565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022757600080fd5b81516001600160401b0380821115620002445762000244620001ff565b604051601f8301601f19908116603f011681019082821181831017156200026f576200026f620001ff565b816040528381526020925086838588010111156200028c57600080fd5b600091505b83821015620002b0578582018301518183018401529082019062000291565b600093810190920192909252949350505050565b600080600080600060a08688031215620002dd57600080fd5b85516001600160401b0380821115620002f557600080fd5b6200030389838a0162000215565b965060208801519150808211156200031a57600080fd5b50620003298882890162000215565b60408801516060890151608090990151979a919950979695509350505050565b600181811c908216806200035e57607f821691505b6020821081036200037f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d357600081815260208120601f850160051c81016020861015620003ae5750805b601f850160051c820191505b81811015620003cf57828155600101620003ba565b5050505b505050565b81516001600160401b03811115620003f457620003f4620001ff565b6200040c8162000405845462000349565b8462000385565b602080601f8311600181146200044457600084156200042b5750858301515b600019600386901b1c1916600185901b178555620003cf565b600085815260208120601f198616915b82811015620004755788860151825594840194600190910190840162000454565b5085821015620004945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620004b48162000349565b60018281168015620004cf5760018114620004e55762000516565b60ff198416875282151583028701945062000516565b8760005260208060002060005b858110156200050d5781548a820152908401908201620004f2565b50505082870194505b50929695505050505050565b808201808211156200054457634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c0516116a26200057a600039600061070c015260006106d70152600061028601526116a26000f3fe60806040526004361061014f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb146103eb578063c2ed286b1461040b578063cb4ca6311461042b578063d505accf1461045b578063dd62ed3e1461047b578063f2fde38b146104b357600080fd5b806370a082311461031c5780637c000293146103495780637ecebe00146103695780638da5cb5b1461039657806395d89b41146103b6578063997235ac146103cb57600080fd5b806324024efd1161010857806324024efd1461025e578063313ce567146102745780633644e515146102ba5780633ccfd60b146102cf578063691f224f146102e65780636c8df549146102fc57600080fd5b80630359fea91461015b57806306fdde0314610198578063095ea7b3146101ba578063144b3dc2146101ea57806318160ddd1461021a57806323b872dd1461023e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060095461017b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a457600080fd5b506101ad6104d3565b60405161018f919061118d565b3480156101c657600080fd5b506101da6101d53660046111f3565b610561565b604051901515815260200161018f565b3480156101f657600080fd5b506101da61020536600461121f565b600b6020526000908152604090205460ff1681565b34801561022657600080fd5b5061023060025481565b60405190815260200161018f565b34801561024a57600080fd5b506101da610259366004611243565b6105ce565b34801561026a57600080fd5b5061023060085481565b34801561028057600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161018f565b3480156102c657600080fd5b506102306106d3565b3480156102db57600080fd5b506102e461072e565b005b3480156102f257600080fd5b5061023060075481565b34801561030857600080fd5b506102e4610317366004611284565b610a00565b34801561032857600080fd5b5061023061033736600461121f565b60036020526000908152604090205481565b34801561035557600080fd5b506102e461036436600461121f565b610a8e565b34801561037557600080fd5b5061023061038436600461121f565b60056020526000908152604090205481565b3480156103a257600080fd5b5060065461017b906001600160a01b031681565b3480156103c257600080fd5b506101ad610b26565b3480156103d757600080fd5b506102e46103e63660046112c2565b610b33565b3480156103f757600080fd5b506101da6104063660046111f3565b610be0565b34801561041757600080fd5b506102e4610426366004611284565b610c7b565b34801561043757600080fd5b506101da61044636600461121f565b600a6020526000908152604090205460ff1681565b34801561046757600080fd5b506102e46104763660046112f0565b610d01565b34801561048757600080fd5b506102306104963660046112c2565b600460209081526000928352604080842090915290825290205481565b3480156104bf57600080fd5b506102e46104ce36600461121f565b610f45565b600080546104e090611367565b80601f016020809104026020016040519081016040528092919081815260200182805461050c90611367565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105bc9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019811461062a5761060583826113b7565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6000610637868686610fbb565b6001600160a01b0387166000908152600360205260408120805492935086929091906106649084906113b7565b90915550506001600160a01b03808616600081815260036020526040908190208054850190555190918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106bf9085815260200190565b60405180910390a350600195945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614610709576107046110f3565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6006546001600160a01b031633146107615760405162461bcd60e51b8152600401610758906113ca565b60405180910390fd5b3060009081526003602052604080822054815160028082526060820190935290929181602001602082028036833701905050905030816000815181106107a9576107a9611406565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610826919061141c565b8160018151811061083957610839611406565b6001600160a01b039283166020918202929092010152600d546040516318cbafe560e01b81529116906318cbafe59061087f908590600090869030904290600401611439565b6000604051808303816000875af115801561089e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108c691908101906114aa565b50600c546040516370a0823160e01b81523060048201526001600160a01b0390911690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015610917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093b9190611568565b6040518263ffffffff1660e01b815260040161095991815260200190565b600060405180830381600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b50506009546040514793506001600160a01b03909116915082156108fc029083906000818181858888f193505050501580156109c7573d6000803e3d6000fd5b506040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b569060200160405180910390a1505050565b6006546001600160a01b03163314610a2a5760405162461bcd60e51b8152600401610758906113ca565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527fbd5f0d776bb1433b701c5eaf77907ff3ec40d1d56d15211a9e3d9b5842b37afc91015b60405180910390a15050565b6006546001600160a01b03163314610ab85760405162461bcd60e51b8152600401610758906113ca565b600980546001600160a01b0319166001600160a01b0383169081179091556000818152600a6020908152604091829020805460ff1916600117905590519182527ff47e9ea29284b384207447370145cddc8f4dc372c2efdf8a8532e8422f558e84910160405180910390a150565b600180546104e090611367565b6006546001600160a01b03163314610b5d5760405162461bcd60e51b8152600401610758906113ca565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d8054918516919092168117909155306000908152600460209081526040808320848452825291829020600019905581519384528301919091527f064e161331b4e860a0826bc4e795edce5dc47d517edabf8bbb009353cc7b27499101610a82565b600080610bee338585610fbb565b33600090815260036020526040812080549293508592909190610c129084906113b7565b90915550506001600160a01b038416600081815260036020526040908190208054840190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c699085815260200190565b60405180910390a35060019392505050565b6006546001600160a01b03163314610ca55760405162461bcd60e51b8152600401610758906113ca565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527ffc371117f289de738f4998c2314ece1a0d8d00e9213221152fa05fdea950d3139101610a82565b42841015610d515760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610758565b60006001610d5d6106d3565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e69573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610e9f5750876001600160a01b0316816001600160a01b0316145b610edc5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610758565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6006546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610758906113ca565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6001600160a01b0383166000908152600b6020526040812054819060ff168015610ffe57506001600160a01b0384166000908152600a602052604090205460ff16155b1561100c5750600754611057565b6001600160a01b0384166000908152600b602052604090205460ff16801561104d57506001600160a01b0385166000908152600a602052604090205460ff16155b1561105757506008545b600081156110df57606461106b8386611581565b6110759190611598565b306000908152600360205260408120805492935083929091906110999084906115ba565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6110e981856113b7565b9695505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161112591906115cd565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060208083528351808285015260005b818110156111ba5785810183015185820160400152820161119e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111f057600080fd5b50565b6000806040838503121561120657600080fd5b8235611211816111db565b946020939093013593505050565b60006020828403121561123157600080fd5b813561123c816111db565b9392505050565b60008060006060848603121561125857600080fd5b8335611263816111db565b92506020840135611273816111db565b929592945050506040919091013590565b6000806040838503121561129757600080fd5b82356112a2816111db565b9150602083013580151581146112b757600080fd5b809150509250929050565b600080604083850312156112d557600080fd5b82356112e0816111db565b915060208301356112b7816111db565b600080600080600080600060e0888a03121561130b57600080fd5b8735611316816111db565b96506020880135611326816111db565b95506040880135945060608801359350608088013560ff8116811461134a57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061137b57607f821691505b60208210810361139b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c8576105c86113a1565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561142e57600080fd5b815161123c816111db565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114895784516001600160a01b031683529383019391830191600101611464565b50506001600160a01b03969096166060850152505050608001529392505050565b600060208083850312156114bd57600080fd5b825167ffffffffffffffff808211156114d557600080fd5b818501915085601f8301126114e957600080fd5b8151818111156114fb576114fb6113f0565b8060051b604051601f19603f83011681018181108582111715611520576115206113f0565b60405291825284820192508381018501918883111561153e57600080fd5b938501935b8285101561155c57845184529385019392850192611543565b98975050505050505050565b60006020828403121561157a57600080fd5b5051919050565b80820281158282048414176105c8576105c86113a1565b6000826115b557634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105c8576105c86113a1565b600080835481600182811c9150808316806115e957607f831692505b6020808410820361160857634e487b7160e01b86526022600452602486fd5b81801561161c57600181146116315761165e565b60ff198616895284151585028901965061165e565b60008a81526020902060005b868110156116565781548b82015290850190830161163d565b505084890196505b50949897505050505050505056fea26469706673582212206de33a83eb902674a5fcbefc94cb150f1494da6fb6fd440980cebd767af9747e64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000054d17db76321263eca000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a4d656d652042756464790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054255444459000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061014f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb146103eb578063c2ed286b1461040b578063cb4ca6311461042b578063d505accf1461045b578063dd62ed3e1461047b578063f2fde38b146104b357600080fd5b806370a082311461031c5780637c000293146103495780637ecebe00146103695780638da5cb5b1461039657806395d89b41146103b6578063997235ac146103cb57600080fd5b806324024efd1161010857806324024efd1461025e578063313ce567146102745780633644e515146102ba5780633ccfd60b146102cf578063691f224f146102e65780636c8df549146102fc57600080fd5b80630359fea91461015b57806306fdde0314610198578063095ea7b3146101ba578063144b3dc2146101ea57806318160ddd1461021a57806323b872dd1461023e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060095461017b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a457600080fd5b506101ad6104d3565b60405161018f919061118d565b3480156101c657600080fd5b506101da6101d53660046111f3565b610561565b604051901515815260200161018f565b3480156101f657600080fd5b506101da61020536600461121f565b600b6020526000908152604090205460ff1681565b34801561022657600080fd5b5061023060025481565b60405190815260200161018f565b34801561024a57600080fd5b506101da610259366004611243565b6105ce565b34801561026a57600080fd5b5061023060085481565b34801561028057600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161018f565b3480156102c657600080fd5b506102306106d3565b3480156102db57600080fd5b506102e461072e565b005b3480156102f257600080fd5b5061023060075481565b34801561030857600080fd5b506102e4610317366004611284565b610a00565b34801561032857600080fd5b5061023061033736600461121f565b60036020526000908152604090205481565b34801561035557600080fd5b506102e461036436600461121f565b610a8e565b34801561037557600080fd5b5061023061038436600461121f565b60056020526000908152604090205481565b3480156103a257600080fd5b5060065461017b906001600160a01b031681565b3480156103c257600080fd5b506101ad610b26565b3480156103d757600080fd5b506102e46103e63660046112c2565b610b33565b3480156103f757600080fd5b506101da6104063660046111f3565b610be0565b34801561041757600080fd5b506102e4610426366004611284565b610c7b565b34801561043757600080fd5b506101da61044636600461121f565b600a6020526000908152604090205460ff1681565b34801561046757600080fd5b506102e46104763660046112f0565b610d01565b34801561048757600080fd5b506102306104963660046112c2565b600460209081526000928352604080842090915290825290205481565b3480156104bf57600080fd5b506102e46104ce36600461121f565b610f45565b600080546104e090611367565b80601f016020809104026020016040519081016040528092919081815260200182805461050c90611367565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105bc9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019811461062a5761060583826113b7565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6000610637868686610fbb565b6001600160a01b0387166000908152600360205260408120805492935086929091906106649084906113b7565b90915550506001600160a01b03808616600081815260036020526040908190208054850190555190918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106bf9085815260200190565b60405180910390a350600195945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000014614610709576107046110f3565b905090565b507f026d71c15daaf3d8a69551502570c739995559d15ca41e8b9aabdcce9f85030290565b6006546001600160a01b031633146107615760405162461bcd60e51b8152600401610758906113ca565b60405180910390fd5b3060009081526003602052604080822054815160028082526060820190935290929181602001602082028036833701905050905030816000815181106107a9576107a9611406565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610826919061141c565b8160018151811061083957610839611406565b6001600160a01b039283166020918202929092010152600d546040516318cbafe560e01b81529116906318cbafe59061087f908590600090869030904290600401611439565b6000604051808303816000875af115801561089e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108c691908101906114aa565b50600c546040516370a0823160e01b81523060048201526001600160a01b0390911690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015610917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093b9190611568565b6040518263ffffffff1660e01b815260040161095991815260200190565b600060405180830381600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b50506009546040514793506001600160a01b03909116915082156108fc029083906000818181858888f193505050501580156109c7573d6000803e3d6000fd5b506040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b569060200160405180910390a1505050565b6006546001600160a01b03163314610a2a5760405162461bcd60e51b8152600401610758906113ca565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527fbd5f0d776bb1433b701c5eaf77907ff3ec40d1d56d15211a9e3d9b5842b37afc91015b60405180910390a15050565b6006546001600160a01b03163314610ab85760405162461bcd60e51b8152600401610758906113ca565b600980546001600160a01b0319166001600160a01b0383169081179091556000818152600a6020908152604091829020805460ff1916600117905590519182527ff47e9ea29284b384207447370145cddc8f4dc372c2efdf8a8532e8422f558e84910160405180910390a150565b600180546104e090611367565b6006546001600160a01b03163314610b5d5760405162461bcd60e51b8152600401610758906113ca565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d8054918516919092168117909155306000908152600460209081526040808320848452825291829020600019905581519384528301919091527f064e161331b4e860a0826bc4e795edce5dc47d517edabf8bbb009353cc7b27499101610a82565b600080610bee338585610fbb565b33600090815260036020526040812080549293508592909190610c129084906113b7565b90915550506001600160a01b038416600081815260036020526040908190208054840190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c699085815260200190565b60405180910390a35060019392505050565b6006546001600160a01b03163314610ca55760405162461bcd60e51b8152600401610758906113ca565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527ffc371117f289de738f4998c2314ece1a0d8d00e9213221152fa05fdea950d3139101610a82565b42841015610d515760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610758565b60006001610d5d6106d3565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e69573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610e9f5750876001600160a01b0316816001600160a01b0316145b610edc5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610758565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6006546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610758906113ca565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6001600160a01b0383166000908152600b6020526040812054819060ff168015610ffe57506001600160a01b0384166000908152600a602052604090205460ff16155b1561100c5750600754611057565b6001600160a01b0384166000908152600b602052604090205460ff16801561104d57506001600160a01b0385166000908152600a602052604090205460ff16155b1561105757506008545b600081156110df57606461106b8386611581565b6110759190611598565b306000908152600360205260408120805492935083929091906110999084906115ba565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6110e981856113b7565b9695505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161112591906115cd565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060208083528351808285015260005b818110156111ba5785810183015185820160400152820161119e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111f057600080fd5b50565b6000806040838503121561120657600080fd5b8235611211816111db565b946020939093013593505050565b60006020828403121561123157600080fd5b813561123c816111db565b9392505050565b60008060006060848603121561125857600080fd5b8335611263816111db565b92506020840135611273816111db565b929592945050506040919091013590565b6000806040838503121561129757600080fd5b82356112a2816111db565b9150602083013580151581146112b757600080fd5b809150509250929050565b600080604083850312156112d557600080fd5b82356112e0816111db565b915060208301356112b7816111db565b600080600080600080600060e0888a03121561130b57600080fd5b8735611316816111db565b96506020880135611326816111db565b95506040880135945060608801359350608088013560ff8116811461134a57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061137b57607f821691505b60208210810361139b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c8576105c86113a1565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561142e57600080fd5b815161123c816111db565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114895784516001600160a01b031683529383019391830191600101611464565b50506001600160a01b03969096166060850152505050608001529392505050565b600060208083850312156114bd57600080fd5b825167ffffffffffffffff808211156114d557600080fd5b818501915085601f8301126114e957600080fd5b8151818111156114fb576114fb6113f0565b8060051b604051601f19603f83011681018181108582111715611520576115206113f0565b60405291825284820192508381018501918883111561153e57600080fd5b938501935b8285101561155c57845184529385019392850192611543565b98975050505050505050565b60006020828403121561157a57600080fd5b5051919050565b80820281158282048414176105c8576105c86113a1565b6000826115b557634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105c8576105c86113a1565b600080835481600182811c9150808316806115e957607f831692505b6020808410820361160857634e487b7160e01b86526022600452602486fd5b81801561161c57600181146116315761165e565b60ff198616895284151585028901965061165e565b60008a81526020902060005b868110156116565781548b82015290850190830161163d565b505084890196505b50949897505050505050505056fea26469706673582212206de33a83eb902674a5fcbefc94cb150f1494da6fb6fd440980cebd767af9747e64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000054d17db76321263eca000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a4d656d652042756464790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054255444459000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Meme Buddy
Arg [1] : _symbol (string): BUDDY
Arg [2] : _initialSupply (uint256): 420000000000000000000000000000
Arg [3] : _buyTaxRate (uint256): 2
Arg [4] : _sellTaxRate (uint256): 8
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 00000000000000000000000000000000000000054d17db76321263eca0000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 4d656d6520427564647900000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 4255444459000000000000000000000000000000000000000000000000000000
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.