Address Contract Partially Verified
Address
0xc52FaFDc900cB92Ae01E6E4F8979aF7f436e2EB2
Balance
0 ETH
Nonce
1
Code Size
3058 bytes
Creator
0xC72C8a25...9a73 at tx 0x41640d56...4abaf8
Last Active
Indexed Transactions
9 (24,178,454 → 24,318,515)
Gas Used (indexed)
385,990
Contract Bytecode
3058 bytes
0x6003361161000c57610b72565b5f3560e01c34610be15763313ce567811861002c57601260405260206040f35b6318160ddd8118610042575f5460405260206040f35b6370a08231811861007b5760243610610be1576004358060a01c610be15760405260016040516020525f5260405f205460605260206060f35b63dd62ed3e81186100d15760443610610be1576004358060a01c610be1576040526024358060a01c610be15760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b630754617281186100e85760035460405260206040f35b6306fdde0381186101675760208060805260136040527f536574746c656420455448585920546f6b656e0000000000000000000000000060605260408160800181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6395d89b4181186101e65760208060805260046040527f534558590000000000000000000000000000000000000000000000000000000060605260408160800181516020830160208301815181525050808252508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b631652e9fc81186102185760243610610be1576004358060a01c610be1576040526003543318610be157604051600355005b63095ea7b381186102935760443610610be1576004358060a01c610be1576040526024356002336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b633950935181186103395760443610610be1576004358060a01c610be1576040526002336020525f5260405f20806040516020525f5260405f2090508054602435808201828110610be15790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a457c2d781186103df5760443610610be1576004358060a01c610be1576040526002336020525f5260405f20806040516020525f5260405f2090508054602435808203828111610be15790509050815550604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256002336020525f5260405f20806040516020525f5260405f2090505460605260206060a3600160605260206060f35b63a9059cbb81186104815760443610610be1576004358060a01c610be1576040526001336020525f5260405f208054602435808203828111610be1579050905081555060016040516020525f5260405f208054602435808201828110610be15790509050815550604051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b6323b872dd81186105665760643610610be1576004358060a01c610be1576040526024358060a01c610be15760605260026040516020525f5260405f2080336020525f5260405f2090508054604435808203828111610be1579050905081555060016040516020525f5260405f208054604435808203828111610be1579050905081555060016060516020525f5260405f208054604435808201828110610be157905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60443560805260206080a3600160805260206080f35b6340c10f1981186105fb5760443610610be1576004358060a01c610be1576040526003543318610be15760016040516020525f5260405f208054602435808201828110610be157905090508155505f54602435808201828110610be157905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3005b6342966c68811861067f5760243610610be1576001336020525f5260405f208054600435808203828111610be157905090508155505f54600435808203828111610be157905090505f555f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60043560405260206040a360043560405260206040f35b637ecebe0081186106b85760243610610be1576004358060a01c610be15760405260046040516020525f5260405f205460605260206060f35b63d505accf81186109395760e43610610be1576004358060a01c610be1576040526024358060a01c610be1576060526084358060081c610be1576080524260643510610be15760046040516020525f5260405f205460a05260a05160018101818110610be157905060046040516020525f5260405f20557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610100527f2d103f9b36ad244a9c78fc4f870bcfd43e49f6e627c691581d0b02215281761a610120527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3610140524661016052306101805260a060e05260e080516020820120905060c0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101205260405161014052606051610160526044356101805260a0516101a0526064356101c05260c06101005261010080516020820120905060e0525f6002610120527f19010000000000000000000000000000000000000000000000000000000000006101405261012080516020820183610180018151815250508083019250505060c05181610180015260208101905060e0518161018001526020810190508061016052610160905080516020820120905061010052610100516101205260805161014052604060a46101603760205f608061012060015afa505f5160405118610be15760046040516020525f5260405f20805460018101818110610be157905081555060443560026040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610120526020610120a3005b6399d0555081186109725760243610610be1576004358060a01c610be15760405260056040516020525f5260405f205460605260206060f35b63a79b092f8118610b705760a43610610be1576004358060a01c610be15760a0526044358060081c610be15760c0527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610120527f2d103f9b36ad244a9c78fc4f870bcfd43e49f6e627c691581d0b02215281761a610140527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3610160524661018052306101a05260a06101005261010080516020820120905060e0527fc68376ee809bc84a1619f411f9dd76615e4a60ad57444bc108028d84b0e75e906101405260a0516101605260243561018052600560a0516020525f5260405f20546101a052608061012052610120805160208201209050610100525f6002610140527f190100000000000000000000000000000000000000000000000000000000000061016052610140805160208201836101a0018151815250508083019250505060e051816101a0015260208101905061010051816101a001526020810190508061018052610180905080516020820120905061012052610120516101405260c05161016052604060646101803760205f608061014060015afa505f5160035418610be157600560a0516020525f5260405f208054602435808201828110610be1579050905081555060a051604052602435606052610b6e610b76565b005b505b5f5ffd5b60016040516020525f5260405f208054606051808201828110610be157905090508155505f54606051808201828110610be157905090505f556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60605160805260206080a3565b5f80fda165767970657283000309000b
Verified Source Code Partial Match
Compiler: v0.3.9+commit.66b96705
SettledEthXYToken.vy 162 lines
# @version ^0.3.9
# @title Settled 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: constant(String[24]) = "Settled ETHXY Token"
_symbol: constant(String[5]) = "SEXY"
decimals: public(constant(uint256)) = 18
totalSupply: public(uint256)
balanceOf: public(HashMap[address, uint256])
allowance: public(HashMap[address, HashMap[address, uint256]])
minter: public(address)
@view
@external
def name() -> String[24]:
return _name
@view
@external
def symbol() -> String[5]:
return _symbol
@external
def __init__():
self.minter = msg.sender
@external
def set_minter(minter: address):
assert msg.sender == self.minter
self.minter = minter
@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) -> uint256:
self.balanceOf[msg.sender] -= _value
self.totalSupply -= _value
log Transfer(msg.sender, ZERO_ADDRESS, _value)
return _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)")
_MINT_TYPE_HASH: constant(bytes32) = keccak256("Mint(address to,uint256 value,uint256 amountMinted)")
@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, keccak256(_name), keccak256("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)
amount_minted: public(HashMap[address, uint256])
@external
def mint_by_sig(to: address, amount: uint256, v: uint8, r: bytes32, s: bytes32):
domain_separator: bytes32 = keccak256(
_abi_encode(_DOMAIN_TYPEHASH, keccak256(_name), keccak256("1.0"), chain.id, self)
)
struct_hash: bytes32 = keccak256(_abi_encode(_MINT_TYPE_HASH, to, amount, self.amount_minted[to]))
hash: bytes32 = keccak256(
concat(
b"\x19\x01",
domain_separator,
struct_hash
)
)
assert self.minter == ecrecover(hash, v, r, s)
self.amount_minted[to] += amount
self._mint(to, 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)
Read Contract
allowance 0xdd62ed3e → uint256
amount_minted 0x99d05550 → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint256
minter 0x07546172 → address
name 0x06fdde03 → string
nonces 0x7ecebe00 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 10 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 _value
returns: uint256
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
mint 0x40c10f19
address _to
uint256 _value
mint_by_sig 0xa79b092f
address to
uint256 amount
uint8 v
bytes32 r
bytes32 s
permit 0xd505accf
address owner
address spender
uint256 amount
uint256 deadline
uint8 v
bytes32 r
bytes32 s
set_minter 0x1652e9fc
address minter
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0x9642b23E...5D4E | 3 | 3 | |
| 0x7DB0ecE6...496c | 1 | 1 | |
| 0xD9F0834E...7e82 | 1 | 1 | |
| 0x0347B84b...68dE | 1 | 1 | |
| 0xB2943FF4...c66a | 1 | 1 | |
| 0x23F9D580...391A | 1 | 1 | |
| 0xD6d65Ae6...2614 | 1 | 1 |
Token Balances (1)
View Transfers →Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0xe47fd0ca...3d4d5a | 24,318,515 | IN | 0xD9F0834E...7e82 | 0 ETH | |
| 0xe46cd44a...fb4ccf | 24,316,921 | IN | 0x9642b23E...5D4E | 0 ETH | |
| 0x794f5ba2...9a90db | 24,290,566 | IN | 0x7DB0ecE6...496c | 0 ETH | |
| 0x8237f59b...bde440 | 24,281,756 | IN | 0x0347B84b...68dE | 0 ETH | |
| 0x50ff96c5...d4f584 | 24,245,917 | IN | 0x9642b23E...5D4E | 0 ETH | |
| 0x5de3854f...d62746 | 24,242,441 | IN | 0xB2943FF4...c66a | 0 ETH | |
| 0x9ac4e945...4b834a | 24,218,934 | IN | 0xD6d65Ae6...2614 | 0 ETH | |
| 0x9ce69f3a...7a6733 | 24,179,706 | IN | 0x9642b23E...5D4E | 0 ETH | |
| 0xef310ba3...a97753 | 24,178,454 | IN | 0x23F9D580...391A | 0 ETH |