ETH Price: $1,598.85 (+0.66%)
Gas: 14 Gwei
 
Transaction Hash
Method
Block
From
To
Value
Approve182272552023-09-27 13:00:473 hrs 21 mins ago1695819647IN
Curve.fi: 3CRV Token
0 ETH0.0006572214.12575384
Approve182265862023-09-27 10:45:595 hrs 36 mins ago1695811559IN
Curve.fi: 3CRV Token
0 ETH0.000408768.78551246
Transfer182255242023-09-27 7:10:479 hrs 11 mins ago1695798647IN
Curve.fi: 3CRV Token
0 ETH0.0002127.25395043
Approve182251832023-09-27 6:01:5910 hrs 20 mins ago1695794519IN
Curve.fi: 3CRV Token
0 ETH0.000327387.08029112
Approve182251802023-09-27 6:01:2310 hrs 21 mins ago1695794483IN
Curve.fi: 3CRV Token
0 ETH0.000423579.1038911
Approve182247942023-09-27 4:43:3511 hrs 38 mins ago1695789815IN
Curve.fi: 3CRV Token
0 ETH0.000350537.53394241
Approve182246012023-09-27 4:04:3512 hrs 17 mins ago1695787475IN
Curve.fi: 3CRV Token
0 ETH0.000366017.86675728
Approve182235062023-09-27 0:24:3515 hrs 57 mins ago1695774275IN
Curve.fi: 3CRV Token
0 ETH0.000372218
Approve182225622023-09-26 21:15:1119 hrs 7 mins ago1695762911IN
Curve.fi: 3CRV Token
0 ETH0.0006407613.87210154
Approve182224412023-09-26 20:50:4719 hrs 31 mins ago1695761447IN
Curve.fi: 3CRV Token
0 ETH0.0006139313.19527817
Transfer182221032023-09-26 19:42:3520 hrs 39 mins ago1695757355IN
Curve.fi: 3CRV Token
0 ETH0.0006336613.67844456
Transfer182220412023-09-26 19:30:1120 hrs 52 mins ago1695756611IN
Curve.fi: 3CRV Token
0 ETH0.000476116.28381576
Approve182196442023-09-26 11:26:111 day 4 hrs ago1695727571IN
Curve.fi: 3CRV Token
0 ETH0.000569812.24665468
Approve182194752023-09-26 10:52:111 day 5 hrs ago1695725531IN
Curve.fi: 3CRV Token
0 ETH0.0005985612.94844364
Approve182191862023-09-26 9:53:591 day 6 hrs ago1695722039IN
Curve.fi: 3CRV Token
0 ETH0.0011308924.45765605
Approve182187342023-09-26 8:22:351 day 7 hrs ago1695716555IN
Curve.fi: 3CRV Token
0 ETH0.0004853310.49352782
Approve182179022023-09-26 5:34:231 day 10 hrs ago1695706463IN
Curve.fi: 3CRV Token
0 ETH0.000337747.26846298
Approve182176352023-09-26 4:40:471 day 11 hrs ago1695703247IN
Curve.fi: 3CRV Token
0 ETH0.000302576.5419607
Approve182175862023-09-26 4:30:591 day 11 hrs ago1695702659IN
Curve.fi: 3CRV Token
0 ETH0.000374118.04080378
Transfer182171742023-09-26 3:08:231 day 13 hrs ago1695697703IN
Curve.fi: 3CRV Token
0 ETH0.000411898.88896416
Approve182161012023-09-25 23:32:231 day 16 hrs ago1695684743IN
Curve.fi: 3CRV Token
0 ETH0.000186957.75049295
Approve182160982023-09-25 23:31:471 day 16 hrs ago1695684707IN
Curve.fi: 3CRV Token
0 ETH0.000346257.48635326
Transfer182131062023-09-25 13:29:592 days 2 hrs ago1695648599IN
Curve.fi: 3CRV Token
0 ETH0.0004869818.42004599
Approve182122622023-09-25 10:39:472 days 5 hrs ago1695638387IN
Curve.fi: 3CRV Token
0 ETH0.000436139.37379607
Approve182119692023-09-25 9:40:592 days 6 hrs ago1695634859IN
Curve.fi: 3CRV Token
0 ETH0.00041829
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb19059...58E572Fd
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.4

Optimization Enabled:
N/A

Other Settings:
None license

Contract Source Code (Vyper language format)

# @version 0.2.4
# https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

from vyper.interfaces import ERC20

implements: ERC20

interface Curve:
    def owner() -> address: view


event Transfer:
    _from: indexed(address)
    _to: indexed(address)
    _value: uint256

event Approval:
    _owner: indexed(address)
    _spender: indexed(address)
    _value: uint256


name: public(String[64])
symbol: public(String[32])
decimals: public(uint256)

# NOTE: By declaring `balanceOf` as public, vyper automatically generates a 'balanceOf()' getter
#       method to allow access to account balances.
#       The _KeyType will become a required parameter for the getter and it will return _ValueType.
#       See: https://vyper.readthedocs.io/en/v0.1.0-beta.8/types.html?highlight=getter#mappings
balanceOf: public(HashMap[address, uint256])
allowances: HashMap[address, HashMap[address, uint256]]
total_supply: uint256
minter: address


@external
def __init__(_name: String[64], _symbol: String[32], _decimals: uint256, _supply: uint256):
    init_supply: uint256 = _supply * 10 ** _decimals
    self.name = _name
    self.symbol = _symbol
    self.decimals = _decimals
    self.balanceOf[msg.sender] = init_supply
    self.total_supply = init_supply
    self.minter = msg.sender
    log Transfer(ZERO_ADDRESS, msg.sender, init_supply)


@external
def set_minter(_minter: address):
    assert msg.sender == self.minter
    self.minter = _minter


@external
def set_name(_name: String[64], _symbol: String[32]):
    assert Curve(self.minter).owner() == msg.sender
    self.name = _name
    self.symbol = _symbol


@view
@external
def totalSupply() -> uint256:
    """
    @dev Total number of tokens in existence.
    """
    return self.total_supply


@view
@external
def allowance(_owner : address, _spender : address) -> uint256:
    """
    @dev Function to check the amount of tokens that an owner allowed to a spender.
    @param _owner The address which owns the funds.
    @param _spender The address which will spend the funds.
    @return An uint256 specifying the amount of tokens still available for the spender.
    """
    return self.allowances[_owner][_spender]


@external
def transfer(_to : address, _value : uint256) -> bool:
    """
    @dev Transfer token for a specified address
    @param _to The address to transfer to.
    @param _value The amount to be transferred.
    """
    # NOTE: vyper does not allow underflows
    #       so the following subtraction would revert on insufficient balance
    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:
    """
     @dev Transfer tokens from one address to another.
     @param _from address The address which you want to send tokens from
     @param _to address The address which you want to transfer to
     @param _value uint256 the amount of tokens to be transferred
    """
    # NOTE: vyper does not allow underflows
    #       so the following subtraction would revert on insufficient balance
    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value
    if msg.sender != self.minter:  # minter is allowed to transfer anything
        # NOTE: vyper does not allow underflows
        # so the following subtraction would revert on insufficient allowance
        self.allowances[_from][msg.sender] -= _value
    log Transfer(_from, _to, _value)
    return True


@external
def approve(_spender : address, _value : uint256) -> bool:
    """
    @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
         Beware that changing an allowance with this method brings the risk that someone may use both the old
         and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
         race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
         https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    @param _spender The address which will spend the funds.
    @param _value The amount of tokens to be spent.
    """
    assert _value == 0 or self.allowances[msg.sender][_spender] == 0
    self.allowances[msg.sender][_spender] = _value
    log Approval(msg.sender, _spender, _value)
    return True


@external
def mint(_to: address, _value: uint256) -> bool:
    """
    @dev Mint an amount of the token and assigns it to an account.
         This encapsulates the modification of balances such that the
         proper events are emitted.
    @param _to The account that will receive the created tokens.
    @param _value The amount that will be created.
    """
    assert msg.sender == self.minter
    assert _to != ZERO_ADDRESS
    self.total_supply += _value
    self.balanceOf[_to] += _value
    log Transfer(ZERO_ADDRESS, _to, _value)
    return True


@external
def burnFrom(_to: address, _value: uint256) -> bool:
    """
    @dev Burn an amount of the token from a given account.
    @param _to The account whose tokens will be burned.
    @param _value The amount that will be burned.
    """
    assert msg.sender == self.minter
    assert _to != ZERO_ADDRESS

    self.total_supply -= _value
    self.balanceOf[_to] -= _value
    log Transfer(_to, ZERO_ADDRESS, _value)

    return True

Contract Security Audit

Contract ABI

[{"name":"Transfer","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"type":"address","name":"_owner","indexed":true},{"type":"address","name":"_spender","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"string","name":"_name"},{"type":"string","name":"_symbol"},{"type":"uint256","name":"_decimals"},{"type":"uint256","name":"_supply"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"set_minter","outputs":[],"inputs":[{"type":"address","name":"_minter"}],"stateMutability":"nonpayable","type":"function","gas":36247},{"name":"set_name","outputs":[],"inputs":[{"type":"string","name":"_name"},{"type":"string","name":"_symbol"}],"stateMutability":"nonpayable","type":"function","gas":178069},{"name":"totalSupply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1211},{"name":"allowance","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_owner"},{"type":"address","name":"_spender"}],"stateMutability":"view","type":"function","gas":1549},{"name":"transfer","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":74832},{"name":"transferFrom","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_from"},{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":111983},{"name":"approve","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_spender"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":39078},{"name":"mint","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":75808},{"name":"burnFrom","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":75826},{"name":"name","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":7823},{"name":"symbol","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":6876},{"name":"decimals","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1481},{"name":"balanceOf","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1665}]

Deployed Bytecode

0x600436101561000d576108de565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052631652e9fc60005114156100e25734156100ba57600080fd5b60043560205181106100cb57600080fd5b5060065433146100da57600080fd5b600435600655005b63e1430e0660005114156102315734156100fb57600080fd5b606060043560040161014037604060043560040135111561011b57600080fd5b60406024356004016101c037602060243560040135111561013b57600080fd5b3360206102806004638da5cb5b6102205261023c6006545afa61015d57600080fd5b601f3d1161016a57600080fd5b600050610280511461017b57600080fd5b61014080600060c052602060c020602082510161012060006003818352015b826101205160200211156101ad576101cf565b61012051602002850151610120518501555b815160010180835281141561019a575b5050505050506101c080600160c052602060c020602082510161012060006002818352015b8261012051602002111561020757610229565b61012051602002850151610120518501555b81516001018083528114156101f4575b505050505050005b6318160ddd600051141561025857341561024a57600080fd5b60055460005260206000f350005b63dd62ed3e60005114156102bf57341561027157600080fd5b600435602051811061028257600080fd5b50602435602051811061029457600080fd5b50600460043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b63a9059cbb60005114156103815734156102d857600080fd5b60043560205181106102e957600080fd5b5060033360e05260c052604060c02080546024358082101561030a57600080fd5b80820390509050815550600360043560e05260c052604060c020805460243581818301101561033857600080fd5b8082019050905081555060243561014052600435337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6323b872dd600051141561049c57341561039a57600080fd5b60043560205181106103ab57600080fd5b5060243560205181106103bd57600080fd5b50600360043560e05260c052604060c0208054604435808210156103e057600080fd5b80820390509050815550600360243560e05260c052604060c020805460443581818301101561040e57600080fd5b8082019050905081555060065433181561045b57600460043560e05260c052604060c0203360e05260c052604060c02080546044358082101561045057600080fd5b808203905090508155505b604435610140526024356004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b63095ea7b3600051141561055f5734156104b557600080fd5b60043560205181106104c657600080fd5b5060243515156104d75760016104f6565b60043360e05260c052604060c02060043560e05260c052604060c02054155b5b61050057600080fd5b60243560043360e05260c052604060c02060043560e05260c052604060c0205560243561014052600435337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610140a3600160005260206000f350005b6340c10f19600051141561063557341561057857600080fd5b600435602051811061058957600080fd5b50600654331461059857600080fd5b6000600435186105a757600080fd5b600580546024358181830110156105bd57600080fd5b80820190509050815550600360043560e05260c052604060c02080546024358181830110156105eb57600080fd5b808201905090508155506024356101405260043560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6379cc6790600051141561070757341561064e57600080fd5b600435602051811061065f57600080fd5b50600654331461066e57600080fd5b60006004351861067d57600080fd5b600580546024358082101561069157600080fd5b80820390509050815550600360043560e05260c052604060c0208054602435808210156106bd57600080fd5b808203905090508155506024356101405260006004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6306fdde0360005114156107bb57341561072057600080fd5b60008060c052602060c020610180602082540161012060006003818352015b8261012051602002111561075257610774565b61012051850154610120516020028501525b815160010180835281141561073f575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f350005b6395d89b41600051141561086f5734156107d457600080fd5b60018060c052602060c020610180602082540161012060006002818352015b8261012051602002111561080657610828565b61012051850154610120516020028501525b81516001018083528114156107f3575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f350005b63313ce567600051141561089657341561088857600080fd5b60025460005260206000f350005b6370a0823160005114156108dd5734156108af57600080fd5b60043560205181106108c057600080fd5b50600360043560e05260c052604060c0205460005260206000f350005b5b60006000fd

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Self-traded meta-stablecoin which earns trading fees and lending interest.

Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.