ERC-20
Source Code
Overview
Max Total Supply
270,761.474829185543022342 EXY
Holders
562
Transfers
-
0
Market
Onchain Market Cap
-
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
Contract ABI
API[{"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.
Add Token to MetaMask (Web3)