ETH Price: $1,624.74 (-1.40%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve221383462025-03-27 12:47:1119 days ago1743079631IN
0xCe96cc49...F188fd035
0 ETH0.000033031.37341822
Approve221284472025-03-26 3:39:5920 days ago1742960399IN
0xCe96cc49...F188fd035
0 ETH0.000020240.84147942
Approve220371212025-03-13 9:42:1133 days ago1741858931IN
0xCe96cc49...F188fd035
0 ETH0.000026371.09658276
Approve219731502025-03-04 11:12:4742 days ago1741086767IN
0xCe96cc49...F188fd035
0 ETH0.000055121.19079368
Approve219541832025-03-01 19:43:2344 days ago1740858203IN
0xCe96cc49...F188fd035
0 ETH0.000060971.32406645
Approve219331042025-02-26 21:10:1147 days ago1740604211IN
0xCe96cc49...F188fd035
0 ETH0.000056532.35005569
Approve218882282025-02-20 14:41:2354 days ago1740062483IN
0xCe96cc49...F188fd035
0 ETH0.000110782.39313277
Approve218881942025-02-20 14:34:3554 days ago1740062075IN
0xCe96cc49...F188fd035
0 ETH0.000082561.78347378
Approve218779732025-02-19 4:16:5955 days ago1739938619IN
0xCe96cc49...F188fd035
0 ETH0.000063872.65545886
Approve218625642025-02-17 0:34:3557 days ago1739752475IN
0xCe96cc49...F188fd035
0 ETH0.000126852.74041173
Approve218236452025-02-11 13:41:2363 days ago1739281283IN
0xCe96cc49...F188fd035
0 ETH0.000046541.93481245
Approve217998492025-02-08 5:56:4766 days ago1738994207IN
0xCe96cc49...F188fd035
0 ETH0.000031791.32096949
Approve217938172025-02-07 9:44:2367 days ago1738921463IN
0xCe96cc49...F188fd035
0 ETH0.000072721.57109286
Approve217907822025-02-06 23:35:1167 days ago1738884911IN
0xCe96cc49...F188fd035
0 ETH0.000135152.91961357
Approve217889522025-02-06 17:27:2367 days ago1738862843IN
0xCe96cc49...F188fd035
0 ETH0.000198214.28174735
Approve217888932025-02-06 17:15:3567 days ago1738862135IN
0xCe96cc49...F188fd035
0 ETH0.000093073.87893263
Approve217888802025-02-06 17:12:5967 days ago1738861979IN
0xCe96cc49...F188fd035
0 ETH0.000164153.57012137
Approve217871652025-02-06 11:28:3568 days ago1738841315IN
0xCe96cc49...F188fd035
0 ETH0.000095162.05307056
Approve217156262025-01-27 11:41:1178 days ago1737978071IN
0xCe96cc49...F188fd035
0 ETH0.000163146.78197143
Approve214543742024-12-22 0:11:59114 days ago1734826319IN
0xCe96cc49...F188fd035
0 ETH0.000455329.90002751
Approve213974452024-12-14 1:23:23122 days ago1734139403IN
0xCe96cc49...F188fd035
0 ETH0.0005892512.72914845
Approve213974382024-12-14 1:21:59122 days ago1734139319IN
0xCe96cc49...F188fd035
0 ETH0.0005796212.52104506
Increase Allowan...213422762024-12-06 8:31:11130 days ago1733473871IN
0xCe96cc49...F188fd035
0 ETH0.0007076315.2584245
Approve213261942024-12-04 2:36:23132 days ago1733279783IN
0xCe96cc49...F188fd035
0 ETH0.0009478620.44934449
Approve212849912024-11-28 8:25:35138 days ago1732782335IN
0xCe96cc49...F188fd035
0 ETH0.000212938.04980145
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthXYToken

Compiler Version
vyper:0.3.9

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT license

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

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"}]}]

610a25515034610a6757600a6040527f4574685859546f6b656e00000000000000000000000000000000000000000000606052604080516020820180516109e55250806109c552505060036040527f455859000000000000000000000000000000000000000000000000000000000060605260408051602082018051610a25525080610a0552505033600355336004556109c56100a161000039610a45610000f36003361161000c576109b0565b5f3560e01c346109b4576306fdde038118610071576020806040528060400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186100cc57602080604052806040016020610a055f395f51602082016020610a255f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63313ce56781186100e257601260405260206040f35b6318160ddd81186100f8575f5460405260206040f35b6370a08231811861013157602436106109b4576004358060a01c6109b45760405260016040516020525f5260405f205460605260206060f35b63dd62ed3e811861018757604436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6307546172811861019e5760035460405260206040f35b6327810b6e81186101b55760045460405260206040f35b631652e9fc81186101e757602436106109b4576004358060a01c6109b45760405260035433186109b457604051600355005b63e0774862811861021957602436106109b4576004358060a01c6109b45760405260045433186109b457604051600455005b63095ea7b3811861029457604436106109b4576004358060a01c6109b4576040526024356002336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b6339509351811861033a57604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082018281106109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a457c2d781186103e057604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082038281116109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a9059cbb811861048257604436106109b4576004358060a01c6109b4576040526001336020525f5260405f2080546024358082038281116109b4579050905081555060016040516020525f5260405f2080546024358082018281106109b45790509050815550604051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b6323b872dd811861056757606436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f2080336020525f5260405f20905080546044358082038281116109b4579050905081555060016040516020525f5260405f2080546044358082038281116109b4579050905081555060016060516020525f5260405f2080546044358082018281106109b457905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60443560805260206080a3600160805260206080f35b6340c10f1981186105fc57604436106109b4576004358060a01c6109b45760405260035433186109b45760016040516020525f5260405f2080546024358082018281106109b457905090508155505f546024358082018281106109b457905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3005b6342966c68811861067f57602436106109b45760045433186109b4576001336020525f5260405f2080546004358082038281116109b457905090508155505f546004358082038281116109b457905090505f555f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60043560405260206040a3005b637ecebe0081186106b857602436106109b4576004358060a01c6109b45760405260056040516020525f5260405f205460605260206060f35b63d505accf81186109ae5760e436106109b4576004358060a01c6109b4576040526024358060a01c6109b4576060526084358060081c6109b45760805242606435106109b45760056040516020525f5260405f205460a05260a051600181018181106109b457905060056040516020525f5260405f205560a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610140528061016052806101400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061018052600360e0527f312e3000000000000000000000000000000000000000000000000000000000006101005260e0816101400181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050466101a052306101c0526101205261012080516020820120905060c0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101205260405161014052606051610160526044356101805260a0516101a0526064356101c05260c06101005261010080516020820120905060e0525f6002610120527f19010000000000000000000000000000000000000000000000000000000000006101405261012080516020820183610180018151815250508083019250505060c05181610180015260208101905060e0518161018001526020810190508061016052610160905080516020820120905061010052610100516101205260805161014052604060a46101603760205f608061012060015afa505f51604051186109b45760056040516020525f5260405f208054600181018181106109b457905081555060443560026040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610120526020610120a3005b505b5f5ffd5b5f80fda165767970657283000309000b005b5f80fd

Deployed Bytecode

0x6003361161000c576109b0565b5f3560e01c346109b4576306fdde038118610071576020806040528060400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186100cc57602080604052806040016020610a055f395f51602082016020610a255f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63313ce56781186100e257601260405260206040f35b6318160ddd81186100f8575f5460405260206040f35b6370a08231811861013157602436106109b4576004358060a01c6109b45760405260016040516020525f5260405f205460605260206060f35b63dd62ed3e811861018757604436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6307546172811861019e5760035460405260206040f35b6327810b6e81186101b55760045460405260206040f35b631652e9fc81186101e757602436106109b4576004358060a01c6109b45760405260035433186109b457604051600355005b63e0774862811861021957602436106109b4576004358060a01c6109b45760405260045433186109b457604051600455005b63095ea7b3811861029457604436106109b4576004358060a01c6109b4576040526024356002336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b6339509351811861033a57604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082018281106109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a457c2d781186103e057604436106109b4576004358060a01c6109b4576040526002336020525f5260405f20806040516020525f5260405f20905080546024358082038281116109b45790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a9059cbb811861048257604436106109b4576004358060a01c6109b4576040526001336020525f5260405f2080546024358082038281116109b4579050905081555060016040516020525f5260405f2080546024358082018281106109b45790509050815550604051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b6323b872dd811861056757606436106109b4576004358060a01c6109b4576040526024358060a01c6109b45760605260026040516020525f5260405f2080336020525f5260405f20905080546044358082038281116109b4579050905081555060016040516020525f5260405f2080546044358082038281116109b4579050905081555060016060516020525f5260405f2080546044358082018281106109b457905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60443560805260206080a3600160805260206080f35b6340c10f1981186105fc57604436106109b4576004358060a01c6109b45760405260035433186109b45760016040516020525f5260405f2080546024358082018281106109b457905090508155505f546024358082018281106109b457905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3005b6342966c68811861067f57602436106109b45760045433186109b4576001336020525f5260405f2080546004358082038281116109b457905090508155505f546004358082038281116109b457905090505f555f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60043560405260206040a3005b637ecebe0081186106b857602436106109b4576004358060a01c6109b45760405260056040516020525f5260405f205460605260206060f35b63d505accf81186109ae5760e436106109b4576004358060a01c6109b4576040526024358060a01c6109b4576060526084358060081c6109b45760805242606435106109b45760056040516020525f5260405f205460a05260a051600181018181106109b457905060056040516020525f5260405f205560a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610140528061016052806101400160206109c55f395f516020820160206109e55f395f51815250808252508051806020830101601f825f03163682375050601f19601f825160200101169050810190508061018052600360e0527f312e3000000000000000000000000000000000000000000000000000000000006101005260e0816101400181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050466101a052306101c0526101205261012080516020820120905060c0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101205260405161014052606051610160526044356101805260a0516101a0526064356101c05260c06101005261010080516020820120905060e0525f6002610120527f19010000000000000000000000000000000000000000000000000000000000006101405261012080516020820183610180018151815250508083019250505060c05181610180015260208101905060e0518161018001526020810190508061016052610160905080516020820120905061010052610100516101205260805161014052604060a46101603760205f608061012060015afa505f51604051186109b45760056040516020525f5260405f208054600181018181106109b457905081555060443560026040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610120526020610120a3005b505b5f5ffd5b5f80fda165767970657283000309000b000000000000000000000000000000000000000000000000000000000000000a4574685859546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034558590000000000000000000000000000000000000000000000000000000000

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.