ETH Price: $3,243.73 (-1.26%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214223852024-12-17 12:53:5937 days ago1734440039IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003435714.27301022
Approve214223842024-12-17 12:53:4737 days ago1734440027IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003203713.3088775
Approve214223822024-12-17 12:53:2337 days ago1734440003IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003148313.0788923
Approve204198072024-07-30 13:55:59177 days ago1722347759IN
Curve.fi: DUSD3CRV Token
0 ETH0.000343587.44050434
Approve200965962024-06-15 10:28:23222 days ago1718447303IN
Curve.fi: DUSD3CRV Token
0 ETH0.000163043.52986016
Approve195038412024-03-24 10:34:35305 days ago1711276475IN
Curve.fi: DUSD3CRV Token
0 ETH0.0006856114.83596097
Approve185580702023-11-12 19:58:59437 days ago1699819139IN
Curve.fi: DUSD3CRV Token
0 ETH0.0015512133.37606523
Approve185270582023-11-08 11:52:11442 days ago1699444331IN
Curve.fi: DUSD3CRV Token
0 ETH0.0009802321.09071134
Approve185270532023-11-08 11:51:11442 days ago1699444271IN
Curve.fi: DUSD3CRV Token
0 ETH0.0010066921.66007694
Approve184875832023-11-02 23:11:47447 days ago1698966707IN
Curve.fi: DUSD3CRV Token
0 ETH0.0011199924.09787653
Approve184856002023-11-02 16:32:11448 days ago1698942731IN
Curve.fi: DUSD3CRV Token
0 ETH0.0021848947.01034633
Approve184854062023-11-02 15:52:59448 days ago1698940379IN
Curve.fi: DUSD3CRV Token
0 ETH0.0019543842.05059335
Approve181276382023-09-13 13:20:11498 days ago1694611211IN
Curve.fi: DUSD3CRV Token
0 ETH0.0007368530.61040487
Approve181276362023-09-13 13:19:47498 days ago1694611187IN
Curve.fi: DUSD3CRV Token
0 ETH0.0008093933.62412159
Approve177507162023-07-22 19:20:59550 days ago1690053659IN
Curve.fi: DUSD3CRV Token
0 ETH0.0004233917.5888751
Approve177507162023-07-22 19:20:59550 days ago1690053659IN
Curve.fi: DUSD3CRV Token
0 ETH0.0004233917.5888751
Approve168950472023-03-24 4:40:47671 days ago1679632847IN
Curve.fi: DUSD3CRV Token
0 ETH0.000675714.53850511
Approve165024862023-01-28 3:00:23726 days ago1674874823IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003564514.80766464
Approve165024862023-01-28 3:00:23726 days ago1674874823IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003564514.80766464
Approve164539162023-01-21 8:15:35733 days ago1674288935IN
Curve.fi: DUSD3CRV Token
0 ETH0.000784216.87290649
Approve164296792023-01-17 23:02:47736 days ago1673996567IN
Curve.fi: DUSD3CRV Token
0 ETH0.0010469422.52611304
Approve161926842022-12-15 21:09:11769 days ago1671138551IN
Curve.fi: DUSD3CRV Token
0 ETH0.001202125.86448213
Approve161757192022-12-13 12:14:59772 days ago1670933699IN
Curve.fi: DUSD3CRV Token
0 ETH0.0007420315.96557121
Approve160391032022-11-24 10:00:23791 days ago1669284023IN
Curve.fi: DUSD3CRV Token
0 ETH0.0006338413.63774804
Approve159583552022-11-13 3:15:47802 days ago1668309347IN
Curve.fi: DUSD3CRV Token
0 ETH0.0003336213.85957811
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
215977672025-01-11 0:49:4712 days ago1736556587
0x3a664Ab9...0677337B9
0 ETH
215977672025-01-11 0:49:4712 days ago1736556587
0x3a664Ab9...0677337B9
0 ETH
215977672025-01-11 0:49:4712 days ago1736556587
0x3a664Ab9...0677337B9
0 ETH
215977672025-01-11 0:49:4712 days ago1736556587
0x3a664Ab9...0677337B9
0 ETH
213972752024-12-14 0:49:2340 days ago1734137363
0x3a664Ab9...0677337B9
0 ETH
213972752024-12-14 0:49:2340 days ago1734137363
0x3a664Ab9...0677337B9
0 ETH
213972752024-12-14 0:49:2340 days ago1734137363
0x3a664Ab9...0677337B9
0 ETH
213972752024-12-14 0:49:2340 days ago1734137363
0x3a664Ab9...0677337B9
0 ETH
211951372024-11-15 19:19:3568 days ago1731698375
0x3a664Ab9...0677337B9
0 ETH
211951372024-11-15 19:19:3568 days ago1731698375
0x3a664Ab9...0677337B9
0 ETH
211951372024-11-15 19:19:3568 days ago1731698375
0x3a664Ab9...0677337B9
0 ETH
211951372024-11-15 19:19:3568 days ago1731698375
0x3a664Ab9...0677337B9
0 ETH
209944922024-10-18 19:18:5996 days ago1729279139
0x3a664Ab9...0677337B9
0 ETH
209944922024-10-18 19:18:5996 days ago1729279139
0x3a664Ab9...0677337B9
0 ETH
209944922024-10-18 19:18:5996 days ago1729279139
0x3a664Ab9...0677337B9
0 ETH
209944922024-10-18 19:18:5996 days ago1729279139
0x3a664Ab9...0677337B9
0 ETH
207938402024-09-20 19:18:11124 days ago1726859891
0x3a664Ab9...0677337B9
0 ETH
207938402024-09-20 19:18:11124 days ago1726859891
0x3a664Ab9...0677337B9
0 ETH
207938402024-09-20 19:18:11124 days ago1726859891
0x3a664Ab9...0677337B9
0 ETH
207938402024-09-20 19:18:11124 days ago1726859891
0x3a664Ab9...0677337B9
0 ETH
205925312024-08-23 16:35:47153 days ago1724430947
0x3a664Ab9...0677337B9
0 ETH
205925312024-08-23 16:35:47153 days ago1724430947
0x3a664Ab9...0677337B9
0 ETH
205925312024-08-23 16:35:47153 days ago1724430947
0x3a664Ab9...0677337B9
0 ETH
205925312024-08-23 16:35:47153 days ago1724430947
0x3a664Ab9...0677337B9
0 ETH
204198122024-07-30 13:56:59177 days ago1722347819
0x3a664Ab9...0677337B9
0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x64eda51d...e1Dd786Fd
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.7

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version ^0.2.0
"""
@title Curve LP Token
@author Curve.Fi
@notice Base implementation for an LP token provided for
        supplying liquidity to `StableSwap`
@dev Follows the ERC-20 token standard as defined at
     https://eips.ethereum.org/EIPS/eip-20
"""

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: public(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
        _allowance: uint256 = self.allowances[_from][msg.sender]
        if _allowance != MAX_UINT256:
            # NOTE: vyper does not allow underflows
            # so the following subtraction would revert on insufficient allowance
            self.allowances[_from][msg.sender] = _allowance - _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":36218},{"name":"set_name","outputs":[],"inputs":[{"type":"string","name":"_name"},{"type":"string","name":"_symbol"}],"stateMutability":"nonpayable","type":"function","gas":177979},{"name":"totalSupply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1121},{"name":"allowance","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_owner"},{"type":"address","name":"_spender"}],"stateMutability":"view","type":"function","gas":1581},{"name":"transfer","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":74803},{"name":"transferFrom","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_from"},{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":112299},{"name":"approve","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_spender"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":39049},{"name":"mint","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":75779},{"name":"burnFrom","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":75797},{"name":"name","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":7733},{"name":"symbol","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":6786},{"name":"decimals","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1391},{"name":"balanceOf","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1636},{"name":"minter","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1451}]

Deployed Bytecode

0x341561000a57600080fd5b600436101561001857610821565b600035601c52631652e9fc60005114156100525760043560a01c1561003c57600080fd5b600654331461004a57600080fd5b600435600655005b63e1430e06600051141561019657606060043560040161014037604060043560040135111561008057600080fd5b60406024356004016101c03760206024356004013511156100a057600080fd5b3360206102806004638da5cb5b6102205261023c6006545afa6100c257600080fd5b601f3d116100cf57600080fd5b60005061028051146100e057600080fd5b61014080600060c052602060c020602082510161012060006003818352015b8261012051602002111561011257610134565b61012051602002850151610120518501555b81516001018083528114156100ff575b5050505050506101c080600160c052602060c020602082510161012060006002818352015b8261012051602002111561016c5761018e565b61012051602002850151610120518501555b8151600101808352811415610159575b505050505050005b6318160ddd60005114156101b25760055460005260206000f350005b63dd62ed3e600051141561020a5760043560a01c156101d057600080fd5b60243560a01c156101e057600080fd5b600460043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b63a9059cbb60005114156102bf5760043560a01c1561022857600080fd5b60033360e05260c052604060c02080546024358082101561024857600080fd5b80820390509050815550600360043560e05260c052604060c020805460243581818301101561027657600080fd5b8082019050905081555060243561014052600435337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6323b872dd60005114156104185760043560a01c156102dd57600080fd5b60243560a01c156102ed57600080fd5b600360043560e05260c052604060c02080546044358082101561030f57600080fd5b80820390509050815550600360243560e05260c052604060c020805460443581818301101561033d57600080fd5b808201905090508155506006543318156103d757600460043560e05260c052604060c0203360e05260c052604060c02054610140527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101405118156103d65761014051604435808210156103b157600080fd5b80820390509050600460043560e05260c052604060c0203360e05260c052604060c020555b5b604435610140526024356004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b63095ea7b360005114156104ce5760043560a01c1561043657600080fd5b6024351515610446576001610465565b60043360e05260c052604060c02060043560e05260c052604060c02054155b5b61046f57600080fd5b60243560043360e05260c052604060c02060043560e05260c052604060c0205560243561014052600435337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610140a3600160005260206000f350005b6340c10f1960005114156105975760043560a01c156104ec57600080fd5b60065433146104fa57600080fd5b60006004351861050957600080fd5b6005805460243581818301101561051f57600080fd5b80820190509050815550600360043560e05260c052604060c020805460243581818301101561054d57600080fd5b808201905090508155506024356101405260043560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6379cc6790600051141561065c5760043560a01c156105b557600080fd5b60065433146105c357600080fd5b6000600435186105d257600080fd5b60058054602435808210156105e657600080fd5b80820390509050815550600360043560e05260c052604060c02080546024358082101561061257600080fd5b808203905090508155506024356101405260006004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6306fdde0360005114156107055760008060c052602060c020610180602082540161012060006003818352015b8261012051602002111561069c576106be565b61012051850154610120516020028501525b8151600101808352811415610689575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f350005b6395d89b4160005114156107ae5760018060c052602060c020610180602082540161012060006002818352015b8261012051602002111561074557610767565b61012051850154610120516020028501525b8151600101808352811415610732575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f350005b63313ce56760005114156107ca5760025460005260206000f350005b6370a0823160005114156108045760043560a01c156107e857600080fd5b600360043560e05260c052604060c0205460005260206000f350005b630754617260005114156108205760065460005260206000f350005b5b60006000fd

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
[ 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.