ERC-20
Overview
Max Total Supply
999,949,164,548,694 GUCCI
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000169596347736234 GUCCIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Gucci
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract ERC20 { error TotalSupplyOverflow(); error AllowanceOverflow(); error AllowanceUnderflow(); error InsufficientBalance(); error InsufficientAllowance(); error InvalidPermit(); error PermitExpired(); event Transfer(address indexed from, address indexed to, uint256 amount); event Approval( address indexed owner, address indexed spender, uint256 amount ); uint256 private constant _TRANSFER_EVENT_SIGNATURE = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef; uint256 private constant _APPROVAL_EVENT_SIGNATURE = 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925; uint256 private constant _TOTAL_SUPPLY_SLOT = 0x05345cdf77eb68f44c; uint256 private constant _BALANCE_SLOT_SEED = 0x87a211a2; uint256 private constant _ALLOWANCE_SLOT_SEED = 0x7f5e9f20; uint256 private constant _NONCES_SLOT_SEED = 0x38377508; function name() public view virtual returns (string memory); function symbol() public view virtual returns (string memory); function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual returns (uint256 result) { assembly { result := sload(_TOTAL_SUPPLY_SLOT) } } function balanceOf( address owner ) public view virtual returns (uint256 result) { assembly { mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, owner) result := sload(keccak256(0x0c, 0x20)) } } function allowance( address owner, address spender ) public view virtual returns (uint256 result) { assembly { mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) result := sload(keccak256(0x0c, 0x34)) } } function approve( address spender, uint256 amount ) public virtual returns (bool) { assembly { mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, caller()) sstore(keccak256(0x0c, 0x34), amount) mstore(0x00, amount) log3( 0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)) ) } return true; } function increaseAllowance( address spender, uint256 difference ) public virtual returns (bool) { assembly { mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, caller()) let allowanceSlot := keccak256(0x0c, 0x34) let allowanceBefore := sload(allowanceSlot) let allowanceAfter := add(allowanceBefore, difference) if lt(allowanceAfter, allowanceBefore) { mstore(0x00, 0xf9067066) revert(0x1c, 0x04) } sstore(allowanceSlot, allowanceAfter) mstore(0x00, allowanceAfter) log3( 0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)) ) } return true; } function decreaseAllowance( address spender, uint256 difference ) public virtual returns (bool) { assembly { mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, caller()) let allowanceSlot := keccak256(0x0c, 0x34) let allowanceBefore := sload(allowanceSlot) if lt(allowanceBefore, difference) { mstore(0x00, 0x8301ab38) revert(0x1c, 0x04) } let allowanceAfter := sub(allowanceBefore, difference) sstore(allowanceSlot, allowanceAfter) mstore(0x00, allowanceAfter) log3( 0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)) ) } return true; } function transfer( address to, uint256 amount ) public virtual returns (bool) { _beforeTokenTransfer(msg.sender, to, amount); assembly { mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, caller()) let fromBalanceSlot := keccak256(0x0c, 0x20) let fromBalance := sload(fromBalanceSlot) if gt(amount, fromBalance) { mstore(0x00, 0xf4d678b8) revert(0x1c, 0x04) } sstore(fromBalanceSlot, sub(fromBalance, amount)) mstore(0x00, to) let toBalanceSlot := keccak256(0x0c, 0x20) sstore(toBalanceSlot, add(sload(toBalanceSlot), amount)) mstore(0x20, amount) log3( 0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, caller(), shr(96, mload(0x0c)) ) } _afterTokenTransfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { _beforeTokenTransfer(from, to, amount); assembly { let from_ := shl(96, from) mstore(0x20, caller()) mstore(0x0c, or(from_, _ALLOWANCE_SLOT_SEED)) let allowanceSlot := keccak256(0x0c, 0x34) let allowance_ := sload(allowanceSlot) if iszero(eq(allowance_, not(0))) { if gt(amount, allowance_) { mstore(0x00, 0x13be252b) revert(0x1c, 0x04) } sstore(allowanceSlot, sub(allowance_, amount)) } mstore(0x0c, or(from_, _BALANCE_SLOT_SEED)) let fromBalanceSlot := keccak256(0x0c, 0x20) let fromBalance := sload(fromBalanceSlot) if gt(amount, fromBalance) { mstore(0x00, 0xf4d678b8) revert(0x1c, 0x04) } sstore(fromBalanceSlot, sub(fromBalance, amount)) mstore(0x00, to) let toBalanceSlot := keccak256(0x0c, 0x20) sstore(toBalanceSlot, add(sload(toBalanceSlot), amount)) mstore(0x20, amount) log3( 0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)) ) } _afterTokenTransfer(from, to, amount); return true; } function nonces( address owner ) public view virtual returns (uint256 result) { assembly { mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) result := sload(keccak256(0x0c, 0x20)) } } function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { bytes32 domainSeparator = DOMAIN_SEPARATOR(); assembly { let m := mload(0x40) if gt(timestamp(), deadline) { mstore(0x00, 0x1a15a3cc) revert(0x1c, 0x04) } owner := shr(96, shl(96, owner)) spender := shr(96, shl(96, spender)) mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) let nonceSlot := keccak256(0x0c, 0x20) let nonceValue := sload(nonceSlot) sstore(nonceSlot, add(nonceValue, 1)) mstore( m, 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 ) mstore(add(m, 0x20), owner) mstore(add(m, 0x40), spender) mstore(add(m, 0x60), value) mstore(add(m, 0x80), nonceValue) mstore(add(m, 0xa0), deadline) mstore(0, 0x1901) mstore(0x20, domainSeparator) mstore(0x40, keccak256(m, 0xc0)) mstore(0, keccak256(0x1e, 0x42)) mstore(0x20, and(0xff, v)) mstore(0x40, r) mstore(0x60, s) pop(staticcall(gas(), 1, 0, 0x80, 0x20, 0x20)) if iszero(eq(mload(returndatasize()), owner)) { mstore(0x00, 0xddafbaef) revert(0x1c, 0x04) } mstore(0x40, or(shl(160, _ALLOWANCE_SLOT_SEED), spender)) sstore(keccak256(0x2c, 0x34), value) log3(add(m, 0x60), 0x20, _APPROVAL_EVENT_SIGNATURE, owner, spender) mstore(0x40, m) mstore(0x60, 0) } } function DOMAIN_SEPARATOR() public view virtual returns (bytes32 result) { assembly { result := mload(0x40) } bytes32 nameHash = keccak256(bytes(name())); assembly { let m := result mstore( m, 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f ) mstore(add(m, 0x20), nameHash) mstore( add(m, 0x40), 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 ) mstore(add(m, 0x60), chainid()) mstore(add(m, 0x80), address()) result := keccak256(m, 0xa0) } } function _mint(address to, uint256 amount) internal virtual { _beforeTokenTransfer(address(0), to, amount); assembly { let totalSupplyBefore := sload(_TOTAL_SUPPLY_SLOT) let totalSupplyAfter := add(totalSupplyBefore, amount) if lt(totalSupplyAfter, totalSupplyBefore) { mstore(0x00, 0xe5cfe957) revert(0x1c, 0x04) } sstore(_TOTAL_SUPPLY_SLOT, totalSupplyAfter) mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, to) let toBalanceSlot := keccak256(0x0c, 0x20) sstore(toBalanceSlot, add(sload(toBalanceSlot), amount)) mstore(0x20, amount) log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, mload(0x0c))) } _afterTokenTransfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { _beforeTokenTransfer(from, address(0), amount); assembly { mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, from) let fromBalanceSlot := keccak256(0x0c, 0x20) let fromBalance := sload(fromBalanceSlot) if gt(amount, fromBalance) { mstore(0x00, 0xf4d678b8) revert(0x1c, 0x04) } sstore(fromBalanceSlot, sub(fromBalance, amount)) sstore(_TOTAL_SUPPLY_SLOT, sub(sload(_TOTAL_SUPPLY_SLOT), amount)) mstore(0x00, amount) log3( 0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, shl(96, from)), 0 ) } _afterTokenTransfer(from, address(0), amount); } function _transfer( address from, address to, uint256 amount ) internal virtual { _beforeTokenTransfer(from, to, amount); assembly { let from_ := shl(96, from) mstore(0x0c, or(from_, _BALANCE_SLOT_SEED)) let fromBalanceSlot := keccak256(0x0c, 0x20) let fromBalance := sload(fromBalanceSlot) if gt(amount, fromBalance) { mstore(0x00, 0xf4d678b8) revert(0x1c, 0x04) } sstore(fromBalanceSlot, sub(fromBalance, amount)) mstore(0x00, to) let toBalanceSlot := keccak256(0x0c, 0x20) sstore(toBalanceSlot, add(sload(toBalanceSlot), amount)) mstore(0x20, amount) log3( 0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)) ) } _afterTokenTransfer(from, to, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { assembly { mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) let allowanceSlot := keccak256(0x0c, 0x34) let allowance_ := sload(allowanceSlot) if iszero(eq(allowance_, not(0))) { if gt(amount, allowance_) { mstore(0x00, 0x13be252b) revert(0x1c, 0x04) } sstore(allowanceSlot, sub(allowance_, amount)) } } } function _approve( address owner, address spender, uint256 amount ) internal virtual { assembly { let owner_ := shl(96, owner) mstore(0x20, spender) mstore(0x0c, or(owner_, _ALLOWANCE_SLOT_SEED)) sstore(keccak256(0x0c, 0x34), amount) mstore(0x00, amount) log3( 0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, shr(96, owner_), shr(96, mload(0x2c)) ) } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } abstract contract Ownable { error Unauthorized(); error NewOwnerIsZeroAddress(); error NoHandoverRequest(); event OwnershipTransferred( address indexed oldOwner, address indexed newOwner ); event OwnershipHandoverRequested(address indexed pendingOwner); event OwnershipHandoverCanceled(address indexed pendingOwner); uint256 private constant _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE = 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0; uint256 private constant _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE = 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d; uint256 private constant _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE = 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92; uint256 private constant _OWNER_SLOT_NOT = 0x8b78c6d8; uint256 private constant _HANDOVER_SLOT_SEED = 0x389a75e1; function _initializeOwner(address newOwner) internal virtual { assembly { newOwner := shr(96, shl(96, newOwner)) sstore(not(_OWNER_SLOT_NOT), newOwner) log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner) } } function _setOwner(address newOwner) internal virtual { assembly { let ownerSlot := not(_OWNER_SLOT_NOT) newOwner := shr(96, shl(96, newOwner)) log3( 0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner ) sstore(ownerSlot, newOwner) } } function _checkOwner() internal view virtual { assembly { if iszero(eq(caller(), sload(not(_OWNER_SLOT_NOT)))) { mstore(0x00, 0x82b42900) revert(0x1c, 0x04) } } } function transferOwnership( address newOwner ) public payable virtual onlyOwner { assembly { if iszero(shl(96, newOwner)) { mstore(0x00, 0x7448fbae) revert(0x1c, 0x04) } } _setOwner(newOwner); } function renounceOwnership() public payable virtual onlyOwner { _setOwner(address(0)); } function requestOwnershipHandover() public payable virtual { unchecked { uint256 expires = block.timestamp + ownershipHandoverValidFor(); assembly { mstore(0x0c, _HANDOVER_SLOT_SEED) mstore(0x00, caller()) sstore(keccak256(0x0c, 0x20), expires) log2( 0, 0, _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE, caller() ) } } } function cancelOwnershipHandover() public payable virtual { assembly { mstore(0x0c, _HANDOVER_SLOT_SEED) mstore(0x00, caller()) sstore(keccak256(0x0c, 0x20), 0) log2(0, 0, _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE, caller()) } } function completeOwnershipHandover( address pendingOwner ) public payable virtual onlyOwner { assembly { mstore(0x0c, _HANDOVER_SLOT_SEED) mstore(0x00, pendingOwner) let handoverSlot := keccak256(0x0c, 0x20) if gt(timestamp(), sload(handoverSlot)) { mstore(0x00, 0x6f5e8818) revert(0x1c, 0x04) } sstore(handoverSlot, 0) } _setOwner(pendingOwner); } function owner() public view virtual returns (address result) { assembly { result := sload(not(_OWNER_SLOT_NOT)) } } function ownershipHandoverExpiresAt( address pendingOwner ) public view virtual returns (uint256 result) { assembly { mstore(0x0c, _HANDOVER_SLOT_SEED) mstore(0x00, pendingOwner) result := sload(keccak256(0x0c, 0x20)) } } function ownershipHandoverValidFor() public view virtual returns (uint64) { return 48 * 3600; } modifier onlyOwner() virtual { _checkOwner(); _; } } contract Gucci is ERC20, Ownable { uint private constant _numTokens = 1_000_000_000_000_000; constructor() { _initializeOwner(msg.sender); _mint(msg.sender, _numTokens * (10 ** 18)); } function name() public view virtual override returns (string memory) { return "WEGUCCI (t.me/weguccieth)"; } function symbol() public view virtual override returns (string memory) { return "GUCCI"; } function burn(uint256 amount) public { _burn(msg.sender, amount); } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", "solady/=lib/solady/src/", "solmate/=lib/solady/lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "none", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"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":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipHandoverValidFor","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"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":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","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":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001a33610041565b61003c3361003766038d7ea4c68000670de0b6b3a76400006100fc565b61007d565b610127565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6805345cdf77eb68f44c54818101818110156100a15763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b808202811582820484141761012157634e487b7160e01b600052601160045260246000fd5b92915050565b610dc1806101366000396000f3fe6080604052600436106101805760003560e01c8063715018a6116100d6578063d505accf1161007f578063f04e283e11610059578063f04e283e14610518578063f2fde38b1461052b578063fee81cf41461053e57600080fd5b8063d505accf146104a4578063d7533f02146104c4578063dd62ed3e146104e257600080fd5b806395d89b41116100b057806395d89b411461041e578063a457c2d714610464578063a9059cbb1461048457600080fd5b8063715018a61461038f5780637ecebe00146103975780638da5cb5b146103ca57600080fd5b8063313ce5671161013857806342966c681161011257806342966c681461033457806354d1f13d1461035457806370a082311461035c57600080fd5b8063313ce5671461025e5780633644e5151461027a578063395093511461031457600080fd5b806318160ddd1161016957806318160ddd1461020d57806323b872dd14610234578063256929621461025457600080fd5b806306fdde0314610185578063095ea7b3146101dd575b600080fd5b34801561019157600080fd5b5060408051808201909152601981527f574547554343492028742e6d652f77656775636369657468290000000000000060208201525b6040516101d49190610bd8565b60405180910390f35b3480156101e957600080fd5b506101fd6101f8366004610c6d565b610571565b60405190151581526020016101d4565b34801561021957600080fd5b506805345cdf77eb68f44c545b6040519081526020016101d4565b34801561024057600080fd5b506101fd61024f366004610c97565b6105c4565b61025c610682565b005b34801561026a57600080fd5b50604051601281526020016101d4565b34801561028657600080fd5b5060408051808201918290527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f42bc06f1d5a3a31640fea3a968069e26dc4a2cf0608dace69e5cca48a690384e60208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc690915246606082015230608082015260a09020610226565b34801561032057600080fd5b506101fd61032f366004610c6d565b6106d2565b34801561034057600080fd5b5061025c61034f366004610cd3565b610744565b61025c610751565b34801561036857600080fd5b50610226610377366004610cec565b6387a211a2600c908152600091909152602090205490565b61025c61078d565b3480156103a357600080fd5b506102266103b2366004610cec565b6338377508600c908152600091909152602090205490565b3480156103d657600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d4565b34801561042a57600080fd5b5060408051808201909152600581527f475543434900000000000000000000000000000000000000000000000000000060208201526101c7565b34801561047057600080fd5b506101fd61047f366004610c6d565b6107a1565b34801561049057600080fd5b506101fd61049f366004610c6d565b610814565b3480156104b057600080fd5b5061025c6104bf366004610d0e565b61088f565b3480156104d057600080fd5b506040516202a30081526020016101d4565b3480156104ee57600080fd5b506102266104fd366004610d81565b602052637f5e9f20600c908152600091909152603490205490565b61025c610526366004610cec565b610a54565b61025c610539366004610cec565b610a91565b34801561054a57600080fd5b50610226610559366004610cec565b63389a75e1600c908152600091909152602090205490565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60008360601b33602052637f5e9f208117600c526034600c208054600019811461060457808511156105fe576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561062d5763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107045763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b61074e3382610ab8565b50565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b610795610b3c565b61079f6000610b72565b565b600082602052637f5e9f20600c52336000526034600c208054838110156107d057638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c2080548084111561083f5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b600061091f60408051808201918290527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f42bc06f1d5a3a31640fea3a968069e26dc4a2cf0608dace69e5cca48a690384e60208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc690915246606082015230608082015260a0902090565b90506040518542111561093a57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146109f25763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b610a5c610b3c565b63389a75e1600c52806000526020600c208054421115610a8457636f5e88186000526004601cfd5b6000905561074e81610b72565b610a99610b3c565b8060601b610aaf57637448fbae6000526004601cfd5b61074e81610b72565b6387a211a2600c52816000526020600c20805480831115610ae15763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461079f576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b600060208083528351808285015260005b81811015610c0557858101830151858201604001528201610be9565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c6857600080fd5b919050565b60008060408385031215610c8057600080fd5b610c8983610c44565b946020939093013593505050565b600080600060608486031215610cac57600080fd5b610cb584610c44565b9250610cc360208501610c44565b9150604084013590509250925092565b600060208284031215610ce557600080fd5b5035919050565b600060208284031215610cfe57600080fd5b610d0782610c44565b9392505050565b600080600080600080600060e0888a031215610d2957600080fd5b610d3288610c44565b9650610d4060208901610c44565b95506040880135945060608801359350608088013560ff81168114610d6457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610d9457600080fd5b610d9d83610c44565b9150610dab60208401610c44565b9050925092905056fea164736f6c6343000813000a
Deployed Bytecode
0x6080604052600436106101805760003560e01c8063715018a6116100d6578063d505accf1161007f578063f04e283e11610059578063f04e283e14610518578063f2fde38b1461052b578063fee81cf41461053e57600080fd5b8063d505accf146104a4578063d7533f02146104c4578063dd62ed3e146104e257600080fd5b806395d89b41116100b057806395d89b411461041e578063a457c2d714610464578063a9059cbb1461048457600080fd5b8063715018a61461038f5780637ecebe00146103975780638da5cb5b146103ca57600080fd5b8063313ce5671161013857806342966c681161011257806342966c681461033457806354d1f13d1461035457806370a082311461035c57600080fd5b8063313ce5671461025e5780633644e5151461027a578063395093511461031457600080fd5b806318160ddd1161016957806318160ddd1461020d57806323b872dd14610234578063256929621461025457600080fd5b806306fdde0314610185578063095ea7b3146101dd575b600080fd5b34801561019157600080fd5b5060408051808201909152601981527f574547554343492028742e6d652f77656775636369657468290000000000000060208201525b6040516101d49190610bd8565b60405180910390f35b3480156101e957600080fd5b506101fd6101f8366004610c6d565b610571565b60405190151581526020016101d4565b34801561021957600080fd5b506805345cdf77eb68f44c545b6040519081526020016101d4565b34801561024057600080fd5b506101fd61024f366004610c97565b6105c4565b61025c610682565b005b34801561026a57600080fd5b50604051601281526020016101d4565b34801561028657600080fd5b5060408051808201918290527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f42bc06f1d5a3a31640fea3a968069e26dc4a2cf0608dace69e5cca48a690384e60208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc690915246606082015230608082015260a09020610226565b34801561032057600080fd5b506101fd61032f366004610c6d565b6106d2565b34801561034057600080fd5b5061025c61034f366004610cd3565b610744565b61025c610751565b34801561036857600080fd5b50610226610377366004610cec565b6387a211a2600c908152600091909152602090205490565b61025c61078d565b3480156103a357600080fd5b506102266103b2366004610cec565b6338377508600c908152600091909152602090205490565b3480156103d657600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d4565b34801561042a57600080fd5b5060408051808201909152600581527f475543434900000000000000000000000000000000000000000000000000000060208201526101c7565b34801561047057600080fd5b506101fd61047f366004610c6d565b6107a1565b34801561049057600080fd5b506101fd61049f366004610c6d565b610814565b3480156104b057600080fd5b5061025c6104bf366004610d0e565b61088f565b3480156104d057600080fd5b506040516202a30081526020016101d4565b3480156104ee57600080fd5b506102266104fd366004610d81565b602052637f5e9f20600c908152600091909152603490205490565b61025c610526366004610cec565b610a54565b61025c610539366004610cec565b610a91565b34801561054a57600080fd5b50610226610559366004610cec565b63389a75e1600c908152600091909152602090205490565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60008360601b33602052637f5e9f208117600c526034600c208054600019811461060457808511156105fe576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c2080548085111561062d5763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107045763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b61074e3382610ab8565b50565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b610795610b3c565b61079f6000610b72565b565b600082602052637f5e9f20600c52336000526034600c208054838110156107d057638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c2080548084111561083f5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b600061091f60408051808201918290527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f42bc06f1d5a3a31640fea3a968069e26dc4a2cf0608dace69e5cca48a690384e60208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc690915246606082015230608082015260a0902090565b90506040518542111561093a57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146109f25763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b610a5c610b3c565b63389a75e1600c52806000526020600c208054421115610a8457636f5e88186000526004601cfd5b6000905561074e81610b72565b610a99610b3c565b8060601b610aaf57637448fbae6000526004601cfd5b61074e81610b72565b6387a211a2600c52816000526020600c20805480831115610ae15763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461079f576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b600060208083528351808285015260005b81811015610c0557858101830151858201604001528201610be9565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c6857600080fd5b919050565b60008060408385031215610c8057600080fd5b610c8983610c44565b946020939093013593505050565b600080600060608486031215610cac57600080fd5b610cb584610c44565b9250610cc360208501610c44565b9150604084013590509250925092565b600060208284031215610ce557600080fd5b5035919050565b600060208284031215610cfe57600080fd5b610d0782610c44565b9392505050565b600080600080600080600060e0888a031215610d2957600080fd5b610d3288610c44565b9650610d4060208901610c44565b95506040880135945060608801359350608088013560ff81168114610d6457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610d9457600080fd5b610d9d83610c44565b9150610dab60208401610c44565b9050925092905056fea164736f6c6343000813000a
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.