ERC-20
Overview
Max Total Supply
298,596.610405632093294214 EXY
Holders
622
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
EthXYToken
Compiler Version
vyper:0.3.9
Contract Source Code (Vyper language format)
# @version ^0.3.9 # @title EthXYToken from vyper.interfaces import ERC20 implements: ERC20 event Transfer: _from: indexed(address) _to: indexed(address) _value: uint256 event Approval: _owner: indexed(address) _spender: indexed(address) _value: uint256 name: public(immutable(String[10])) symbol: public(immutable(String[3])) decimals: public(constant(uint256)) = 18 totalSupply: public(uint256) balanceOf: public(HashMap[address, uint256]) allowance: public(HashMap[address, HashMap[address, uint256]]) minter: public(address) burner: public(address) @external def __init__(): name = "EthXYToken" symbol = "EXY" self.minter = msg.sender self.burner = msg.sender @external def set_minter(minter: address): assert msg.sender == self.minter self.minter = minter @external def set_burner(burner: address): assert msg.sender == self.burner self.burner = burner @external def approve(spender: address, amount: uint256) -> bool: self.allowance[msg.sender][spender] = amount log Approval(msg.sender, spender, amount) return True @external def increaseAllowance(spender: address, addedValue: uint256) -> bool: self.allowance[msg.sender][spender] += addedValue log Approval(msg.sender, spender, self.allowance[msg.sender][spender]) return True @external def decreaseAllowance(spender: address, subtractedValue: uint256) -> bool: self.allowance[msg.sender][spender] -= subtractedValue log Approval(msg.sender, spender, self.allowance[msg.sender][spender]) return True @external def transfer(_to: address, _value: uint256) -> bool: self.balanceOf[msg.sender] -= _value self.balanceOf[_to] += _value log Transfer(msg.sender, _to, _value) return True @external def transferFrom(_from: address, _to: address, _value: uint256) -> bool: self.allowance[_from][msg.sender] -= _value self.balanceOf[_from] -= _value self.balanceOf[_to] += _value log Transfer(_from, _to, _value) return True @external def mint(_to: address, _value: uint256): assert msg.sender == self.minter self.balanceOf[_to] += _value self.totalSupply += _value log Transfer(ZERO_ADDRESS, _to, _value) @external def burn(_value: uint256): assert msg.sender == self.burner self.balanceOf[msg.sender] -= _value self.totalSupply -= _value log Transfer(msg.sender, ZERO_ADDRESS, _value) ################################################################ # EIP-2612 # ################################################################ nonces: public(HashMap[address, uint256]) _DOMAIN_TYPEHASH: constant(bytes32) = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") _PERMIT_TYPE_HASH: constant(bytes32) = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)") @external def permit(owner: address, spender: address, amount: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32): assert deadline >= block.timestamp nonce: uint256 = self.nonces[owner] self.nonces[owner] = nonce + 1 domain_separator: bytes32 = keccak256( _abi_encode(_DOMAIN_TYPEHASH, name, "1.0", chain.id, self) ) struct_hash: bytes32 = keccak256(_abi_encode(_PERMIT_TYPE_HASH, owner, spender, amount, nonce, deadline)) hash: bytes32 = keccak256( concat( b"\x19\x01", domain_separator, struct_hash ) ) assert owner == ecrecover(hash, v, r, s) self.nonces[owner] += 1 self.allowance[owner][spender] = amount log Approval(owner, spender, amount) @internal def _mint(_to: address, _value: uint256): self.balanceOf[_to] += _value self.totalSupply += _value log Transfer(ZERO_ADDRESS, _to, _value) @internal def _burn(_from: address, _value: uint256): assert self.balanceOf[_from] >= _value self.balanceOf[_from] -= _value self.totalSupply -= _value log Transfer(_from, ZERO_ADDRESS, _value)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true},{"name":"_spender","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_minter","inputs":[{"name":"minter","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_burner","inputs":[{"name":"burner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transfer","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"permit","inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"amount","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minter","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"nonces","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]}]
Contract Creation Code
610a25515034610a6757600a6040527f4574685859546f6b656e00000000000000000000000000000000000000000000606052604080516020820180516109e55250806109c552505060036040527f455859000000000000000000000000000000000000000000000000000000000060605260408051602082018051610a25525080610a0552505033600355336004556109c56100a161000039610a45610000f36003361161000c576109b0565b5f3560e01c346109b4576306fdde038118610071576020806040528060400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186100cc57602080604052806040016020610a055f395f51602082016020610a255f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63313ce56781186100e257601260405260206040f35b6318160ddd81186100f8575f5460405260206040f35b6370a08231811861013157602436106109b4576004358060a01c6109b45760405260016040516020525f5260405f205460605260206060f35b63dd62ed3e811861018757604436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6307546172811861019e5760035460405260206040f35b6327810b6e81186101b55760045460405260206040f35b631652e9fc81186101e757602436106109b4576004358060a01c6109b45760405260035433186109b457604051600355005b63e0774862811861021957602436106109b4576004358060a01c6109b45760405260045433186109b457604051600455005b63095ea7b3811861029457604436106109b4576004358060a01c6109b4576040526024356002336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b6339509351811861033a57604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082018281106109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a457c2d781186103e057604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082038281116109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a9059cbb811861048257604436106109b4576004358060a01c6109b4576040526001336020525f5260405f2080546024358082038281116109b4579050905081555060016040516020525f5260405f2080546024358082018281106109b45790509050815550604051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b6323b872dd811861056757606436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f2080336020525f5260405f20905080546044358082038281116109b4579050905081555060016040516020525f5260405f2080546044358082038281116109b4579050905081555060016060516020525f5260405f2080546044358082018281106109b457905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60443560805260206080a3600160805260206080f35b6340c10f1981186105fc57604436106109b4576004358060a01c6109b45760405260035433186109b45760016040516020525f5260405f2080546024358082018281106109b457905090508155505f546024358082018281106109b457905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3005b6342966c68811861067f57602436106109b45760045433186109b4576001336020525f5260405f2080546004358082038281116109b457905090508155505f546004358082038281116109b457905090505f555f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60043560405260206040a3005b637ecebe0081186106b857602436106109b4576004358060a01c6109b45760405260056040516020525f5260405f205460605260206060f35b63d505accf81186109ae5760e436106109b4576004358060a01c6109b4576040526024358060a01c6109b4576060526084358060081c6109b45760805242606435106109b45760056040516020525f5260405f205460a05260a051600181018181106109b457905060056040516020525f5260405f205560a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610140528061016052806101400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061018052600360e0527f312e3000000000000000000000000000000000000000000000000000000000006101005260e0816101400181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050466101a052306101c0526101205261012080516020820120905060c0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101205260405161014052606051610160526044356101805260a0516101a0526064356101c05260c06101005261010080516020820120905060e0525f6002610120527f19010000000000000000000000000000000000000000000000000000000000006101405261012080516020820183610180018151815250508083019250505060c05181610180015260208101905060e0518161018001526020810190508061016052610160905080516020820120905061010052610100516101205260805161014052604060a46101603760205f608061012060015afa505f51604051186109b45760056040516020525f5260405f208054600181018181106109b457905081555060443560026040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610120526020610120a3005b505b5f5ffd5b5f80fda165767970657283000309000b005b5f80fd
Deployed Bytecode
0x6003361161000c576109b0565b5f3560e01c346109b4576306fdde038118610071576020806040528060400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186100cc57602080604052806040016020610a055f395f51602082016020610a255f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63313ce56781186100e257601260405260206040f35b6318160ddd81186100f8575f5460405260206040f35b6370a08231811861013157602436106109b4576004358060a01c6109b45760405260016040516020525f5260405f205460605260206060f35b63dd62ed3e811861018757604436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6307546172811861019e5760035460405260206040f35b6327810b6e81186101b55760045460405260206040f35b631652e9fc81186101e757602436106109b4576004358060a01c6109b45760405260035433186109b457604051600355005b63e0774862811861021957602436106109b4576004358060a01c6109b45760405260045433186109b457604051600455005b63095ea7b3811861029457604436106109b4576004358060a01c6109b4576040526024356002336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b6339509351811861033a57604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082018281106109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a457c2d781186103e057604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082038281116109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a9059cbb811861048257604436106109b4576004358060a01c6109b4576040526001336020525f5260405f2080546024358082038281116109b4579050905081555060016040516020525f5260405f2080546024358082018281106109b45790509050815550604051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b6323b872dd811861056757606436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f2080336020525f5260405f20905080546044358082038281116109b4579050905081555060016040516020525f5260405f2080546044358082038281116109b4579050905081555060016060516020525f5260405f2080546044358082018281106109b457905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60443560805260206080a3600160805260206080f35b6340c10f1981186105fc57604436106109b4576004358060a01c6109b45760405260035433186109b45760016040516020525f5260405f2080546024358082018281106109b457905090508155505f546024358082018281106109b457905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3005b6342966c68811861067f57602436106109b45760045433186109b4576001336020525f5260405f2080546004358082038281116109b457905090508155505f546004358082038281116109b457905090505f555f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60043560405260206040a3005b637ecebe0081186106b857602436106109b4576004358060a01c6109b45760405260056040516020525f5260405f205460605260206060f35b63d505accf81186109ae5760e436106109b4576004358060a01c6109b4576040526024358060a01c6109b4576060526084358060081c6109b45760805242606435106109b45760056040516020525f5260405f205460a05260a051600181018181106109b457905060056040516020525f5260405f205560a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610140528061016052806101400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061018052600360e0527f312e3000000000000000000000000000000000000000000000000000000000006101005260e0816101400181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050466101a052306101c0526101205261012080516020820120905060c0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101205260405161014052606051610160526044356101805260a0516101a0526064356101c05260c06101005261010080516020820120905060e0525f6002610120527f19010000000000000000000000000000000000000000000000000000000000006101405261012080516020820183610180018151815250508083019250505060c05181610180015260208101905060e0518161018001526020810190508061016052610160905080516020820120905061010052610100516101205260805161014052604060a46101603760205f608061012060015afa505f51604051186109b45760056040516020525f5260405f208054600181018181106109b457905081555060443560026040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610120526020610120a3005b505b5f5ffd5b5f80fda165767970657283000309000b000000000000000000000000000000000000000000000000000000000000000a4574685859546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034558590000000000000000000000000000000000000000000000000000000000
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.