ETH Price: $3,502.86 (+3.91%)
Gas: 3 Gwei

Contract

0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve202083222024-07-01 1:15:2329 mins ago1719796523IN
Curve.fi: crvUSD Token
0 ETH0.000193544.203297
Approve202080692024-07-01 0:24:111 hr ago1719793451IN
Curve.fi: crvUSD Token
0 ETH0.000093542.03526168
Approve202078672024-06-30 23:43:472 hrs ago1719791027IN
Curve.fi: crvUSD Token
0 ETH0.000100352.16991906
Approve202076682024-06-30 23:03:472 hrs ago1719788627IN
Curve.fi: crvUSD Token
0 ETH0.00022924.98693205
Approve202076022024-06-30 22:50:352 hrs ago1719787835IN
Curve.fi: crvUSD Token
0 ETH0.00030516.59710759
Approve202073502024-06-30 21:59:593 hrs ago1719784799IN
Curve.fi: crvUSD Token
0 ETH0.000124912.70084867
Approve202071752024-06-30 21:24:594 hrs ago1719782699IN
Curve.fi: crvUSD Token
0 ETH0.000180563.92977077
Approve202067312024-06-30 19:56:115 hrs ago1719777371IN
Curve.fi: crvUSD Token
0 ETH0.000184994
Transfer202067242024-06-30 19:54:475 hrs ago1719777287IN
Curve.fi: crvUSD Token
0 ETH0.000115063.38487809
Approve202066242024-06-30 19:34:476 hrs ago1719776087IN
Curve.fi: crvUSD Token
0 ETH0.00017363.75362439
Approve202059362024-06-30 17:16:238 hrs ago1719767783IN
Curve.fi: crvUSD Token
0 ETH0.000168563.64478151
Approve202058322024-06-30 16:55:358 hrs ago1719766535IN
Curve.fi: crvUSD Token
0 ETH0.00018584.04168751
Approve202058042024-06-30 16:49:598 hrs ago1719766199IN
Curve.fi: crvUSD Token
0 ETH0.00022914.98337081
Approve202056532024-06-30 16:19:479 hrs ago1719764387IN
Curve.fi: crvUSD Token
0 ETH0.000314446.83790937
Approve202056222024-06-30 16:13:359 hrs ago1719764015IN
Curve.fi: crvUSD Token
0 ETH0.000241585.25346616
Approve202054122024-06-30 15:31:2310 hrs ago1719761483IN
Curve.fi: crvUSD Token
0 ETH0.000237435.13389196
Approve202054032024-06-30 15:29:3510 hrs ago1719761375IN
Curve.fi: crvUSD Token
0 ETH0.000130994.971428
Approve202054022024-06-30 15:29:2310 hrs ago1719761363IN
Curve.fi: crvUSD Token
0 ETH0.000223074.82334637
Approve202053282024-06-30 15:14:2310 hrs ago1719760463IN
Curve.fi: crvUSD Token
0 ETH0.000143313.11731041
Approve202052102024-06-30 14:50:4710 hrs ago1719759047IN
Curve.fi: crvUSD Token
0 ETH0.00018974.12646883
Transfer202049692024-06-30 14:02:2311 hrs ago1719756143IN
Curve.fi: crvUSD Token
0 ETH0.000228374.93066059
Approve202049432024-06-30 13:56:5911 hrs ago1719755819IN
Curve.fi: crvUSD Token
0 ETH0.000171223.70710136
Approve202047332024-06-30 13:14:4712 hrs ago1719753287IN
Curve.fi: crvUSD Token
0 ETH0.000140223.05087141
Approve202047152024-06-30 13:11:1112 hrs ago1719753071IN
Curve.fi: crvUSD Token
0 ETH0.000143023.0933744
Approve202047132024-06-30 13:10:4712 hrs ago1719753047IN
Curve.fi: crvUSD Token
0 ETH0.000128322.79209217
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:
crvUSD Stablecoin

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
None license

Contract Source Code (Vyper language format)

# @version 0.3.7
"""
@title crvUSD Stablecoin
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2020-2023 - all rights reserved
"""
from vyper.interfaces import ERC20

implements: ERC20


interface ERC1271:
    def isValidSignature(_hash: bytes32, _signature: Bytes[65]) -> bytes4: view


event Approval:
    owner: indexed(address)
    spender: indexed(address)
    value: uint256

event Transfer:
    sender: indexed(address)
    receiver: indexed(address)
    value: uint256

event SetMinter:
    minter: indexed(address)


decimals: public(constant(uint8)) = 18
version: public(constant(String[8])) = "v1.0.0"

ERC1271_MAGIC_VAL: constant(bytes4) = 0x1626ba7e
EIP712_TYPEHASH: constant(bytes32) = keccak256(
    "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)"
)
EIP2612_TYPEHASH: constant(bytes32) = keccak256(
    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
)
VERSION_HASH: constant(bytes32) = keccak256(version)


name: public(immutable(String[64]))
symbol: public(immutable(String[32]))
salt: public(immutable(bytes32))

NAME_HASH: immutable(bytes32)
CACHED_CHAIN_ID: immutable(uint256)
CACHED_DOMAIN_SEPARATOR: immutable(bytes32)


allowance: public(HashMap[address, HashMap[address, uint256]])
balanceOf: public(HashMap[address, uint256])
totalSupply: public(uint256)

nonces: public(HashMap[address, uint256])
minter: public(address)


@external
def __init__(_name: String[64], _symbol: String[32]):
    name = _name
    symbol = _symbol

    NAME_HASH = keccak256(_name)
    CACHED_CHAIN_ID = chain.id
    salt = block.prevhash
    CACHED_DOMAIN_SEPARATOR = keccak256(
        _abi_encode(
            EIP712_TYPEHASH,
            keccak256(_name),
            VERSION_HASH,
            chain.id,
            self,
            block.prevhash,
        )
    )

    self.minter = msg.sender
    log SetMinter(msg.sender)


@internal
def _approve(_owner: address, _spender: address, _value: uint256):
    self.allowance[_owner][_spender] = _value

    log Approval(_owner, _spender, _value)


@internal
def _burn(_from: address, _value: uint256):
    self.balanceOf[_from] -= _value
    self.totalSupply -= _value

    log Transfer(_from, empty(address), _value)


@internal
def _transfer(_from: address, _to: address, _value: uint256):
    assert _to not in [self, empty(address)]

    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value

    log Transfer(_from, _to, _value)


@view
@internal
def _domain_separator() -> bytes32:
    if chain.id != CACHED_CHAIN_ID:
        return keccak256(
            _abi_encode(
                EIP712_TYPEHASH,
                NAME_HASH,
                VERSION_HASH,
                chain.id,
                self,
                salt,
            )
        )
    return CACHED_DOMAIN_SEPARATOR


@external
def transferFrom(_from: address, _to: address, _value: uint256) -> bool:
    """
    @notice Transfer tokens from one account to another.
    @dev The caller needs to have an allowance from account `_from` greater than or
        equal to the value being transferred. An allowance equal to the uint256 type's
        maximum, is considered infinite and does not decrease.
    @param _from The account which tokens will be spent from.
    @param _to The account which tokens will be sent to.
    @param _value The amount of tokens to be transferred.
    """
    allowance: uint256 = self.allowance[_from][msg.sender]
    if allowance != max_value(uint256):
        self._approve(_from, msg.sender, allowance - _value)

    self._transfer(_from, _to, _value)
    return True


@external
def transfer(_to: address, _value: uint256) -> bool:
    """
    @notice Transfer tokens to `_to`.
    @param _to The account to transfer tokens to.
    @param _value The amount of tokens to transfer.
    """
    self._transfer(msg.sender, _to, _value)
    return True


@external
def approve(_spender: address, _value: uint256) -> bool:
    """
    @notice Allow `_spender` to transfer up to `_value` amount of tokens from the caller's account.
    @dev Non-zero to non-zero approvals are allowed, but should be used cautiously. The methods
        increaseAllowance + decreaseAllowance are available to prevent any front-running that
        may occur.
    @param _spender The account permitted to spend up to `_value` amount of caller's funds.
    @param _value The amount of tokens `_spender` is allowed to spend.
    """
    self._approve(msg.sender, _spender, _value)
    return True


@external
def permit(
    _owner: address,
    _spender: address,
    _value: uint256,
    _deadline: uint256,
    _v: uint8,
    _r: bytes32,
    _s: bytes32,
) -> bool:
    """
    @notice Permit `_spender` to spend up to `_value` amount of `_owner`'s tokens via a signature.
    @dev In the event of a chain fork, replay attacks are prevented as domain separator is recalculated.
        However, this is only if the resulting chains update their chainId.
    @param _owner The account which generated the signature and is granting an allowance.
    @param _spender The account which will be granted an allowance.
    @param _value The approval amount.
    @param _deadline The deadline by which the signature must be submitted.
    @param _v The last byte of the ECDSA signature.
    @param _r The first 32 bytes of the ECDSA signature.
    @param _s The second 32 bytes of the ECDSA signature.
    """
    assert _owner != empty(address) and block.timestamp <= _deadline

    nonce: uint256 = self.nonces[_owner]
    digest: bytes32 = keccak256(
        concat(
            b"\x19\x01",
            self._domain_separator(),
            keccak256(_abi_encode(EIP2612_TYPEHASH, _owner, _spender, _value, nonce, _deadline)),
        )
    )

    if _owner.is_contract:
        sig: Bytes[65] = concat(_abi_encode(_r, _s), slice(convert(_v, bytes32), 31, 1))
        assert ERC1271(_owner).isValidSignature(digest, sig) == ERC1271_MAGIC_VAL
    else:
        assert ecrecover(digest, _v, _r, _s) == _owner

    self.nonces[_owner] = nonce + 1
    self._approve(_owner, _spender, _value)
    return True


@external
def increaseAllowance(_spender: address, _add_value: uint256) -> bool:
    """
    @notice Increase the allowance granted to `_spender`.
    @dev This function will never overflow, and instead will bound
        allowance to MAX_UINT256. This has the potential to grant an
        infinite approval.
    @param _spender The account to increase the allowance of.
    @param _add_value The amount to increase the allowance by.
    """
    cached_allowance: uint256 = self.allowance[msg.sender][_spender]
    allowance: uint256 = unsafe_add(cached_allowance, _add_value)

    # check for an overflow
    if allowance < cached_allowance:
        allowance = max_value(uint256)

    if allowance != cached_allowance:
        self._approve(msg.sender, _spender, allowance)

    return True


@external
def decreaseAllowance(_spender: address, _sub_value: uint256) -> bool:
    """
    @notice Decrease the allowance granted to `_spender`.
    @dev This function will never underflow, and instead will bound
        allowance to 0.
    @param _spender The account to decrease the allowance of.
    @param _sub_value The amount to decrease the allowance by.
    """
    cached_allowance: uint256 = self.allowance[msg.sender][_spender]
    allowance: uint256 = unsafe_sub(cached_allowance, _sub_value)

    # check for an underflow
    if cached_allowance < allowance:
        allowance = 0

    if allowance != cached_allowance:
        self._approve(msg.sender, _spender, allowance)

    return True


@external
def burnFrom(_from: address, _value: uint256) -> bool:
    """
    @notice Burn `_value` amount of tokens from `_from`.
    @dev The caller must have previously been given an allowance by `_from`.
    @param _from The account to burn the tokens from.
    @param _value The amount of tokens to burn.
    """
    allowance: uint256 = self.allowance[_from][msg.sender]
    if allowance != max_value(uint256):
        self._approve(_from, msg.sender, allowance - _value)

    self._burn(_from, _value)
    return True


@external
def burn(_value: uint256) -> bool:
    """
    @notice Burn `_value` amount of tokens.
    @param _value The amount of tokens to burn.
    """
    self._burn(msg.sender, _value)
    return True


@external
def mint(_to: address, _value: uint256) -> bool:
    """
    @notice Mint `_value` amount of tokens to `_to`.
    @dev Only callable by an account with minter privileges.
    @param _to The account newly minted tokens are credited to.
    @param _value The amount of tokens to mint.
    """
    assert msg.sender == self.minter
    assert _to not in [self, empty(address)]

    self.balanceOf[_to] += _value
    self.totalSupply += _value

    log Transfer(empty(address), _to, _value)
    return True


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

    self.minter = _minter
    log SetMinter(_minter)


@view
@external
def DOMAIN_SEPARATOR() -> bytes32:
    """
    @notice EIP712 domain separator.
    """
    return self._domain_separator()

Contract Security Audit

Contract ABI

[{"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"},{"name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"receiver","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetMinter","inputs":[{"name":"minter","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"outputs":[]},{"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":"transfer","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"permit","inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_deadline","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_add_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_sub_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burnFrom","inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_minter","inputs":[{"name":"_minter","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]},{"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":"salt","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"nonces","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minter","inputs":[],"outputs":[{"name":"","type":"address"}]}]

6020610e886000396000516040602082610e880160003960005111610e8357602081610e880160003960005180604052602082018181610e88016060395050506020610ea86000396000516020602082610e880160003960005111610e8357602081610e88016000396000518060a05260208201602081610e880160003960005160c05250505034610e835760405180610cd452600081601f0160051c60028111610e835780156100cb57905b8060051b606001518160051b602001610cd401526001018181186100ac575b50505060a05180610d345260c051610d545250604051606020610d945246610db4526001430340610d74527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647261010052604051606020610120527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc610140524661016052306101805260014303406101a05260c060e05260e0805160208201209050610dd45233600455337fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c600060e0a2610cd46101ae61000039610df4610000f36003361161000c57610ab0565b60003560e01c34610cc2576323b872dd81186100e55760643610610cc2576004358060a01c610cc25760c0526024358060a01c610cc25760e052600060c051602052600052604060002080336020526000526040600020905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146100be5760c0516040523360605261010051604435808203828111610cc257905090506080526100be610ab6565b60c05160405260e0516060526044356080526100d8610b7f565b6001610120526020610120f35b63a9059cbb81186101295760443610610cc2576004358060a01c610cc25760c0523360405260c05160605260243560805261011e610b7f565b600160e052602060e0f35b63095ea7b3811861016d5760443610610cc2576004358060a01c610cc25760c0523360405260c051606052602435608052610162610ab6565b600160e052602060e0f35b63d505accf811861049b5760e43610610cc2576004358060a01c610cc257610120526024358060a01c610cc257610140526084358060081c610cc2576101605261012051156101c1576064354211156101c4565b60005b15610cc25760036101205160205260005260406000205461018052600060026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610232610200610c1b565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561041c576000604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090508051806101c05260208201816101e0838360045afa505050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a05161026052806102805280610260016101c051808252602082018181836101e060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081015050602061024060c461025c845afa6103f4573d600060003e3d6000fd5b60203d10610cc257610240518060201b610cc2576103205261032090505118610cc25761044f565b610120516101a0516101c052610160516101e052604060a4610200376020600060806101c060015afa5060005118610cc2575b6101805160018101818110610cc2579050600361012051602052600052604060002055610120516040526101405160605260443560805261048e610ab6565b60016101c05260206101c0f35b6339509351811861054f5760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e051016101005260e05161010051101561051d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e0516101005114610542573360405260c05160605261010051608052610542610ab6565b6001610120526020610120f35b63a457c2d781186105e45760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e05103610100526101005160e05110156105b2576000610100525b60e05161010051146105d7573360405260c051606052610100516080526105d7610ab6565b6001610120526020610120f35b6379cc6790811861069b5760443610610cc2576004358060a01c610cc25760c052600060c05160205260005260406000208033602052600052604060002090505460e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60e0511461067a5760c0516040523360605260e051602435808203828111610cc2579050905060805261067a610ab6565b60c05160405260243560605261068e610b0f565b6001610100526020610100f35b6342966c6881186106cb5760243610610cc257336040526004356060526106c0610b0f565b600160a052602060a0f35b6340c10f19811861078a5760443610610cc2576004358060a01c610cc2576040526004543318610cc2576040513081146107075780151561070a565b60005b905015610cc257600160405160205260005260406000208054602435808201828110610cc25790509050815550600254602435808201828110610cc2579050905060025560405160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b631652e9fc81186107e55760243610610cc2576004358060a01c610cc2576040526004543318610cc2576040516004556040517fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c60006060a2005b633644e515811861080a5760043610610cc2576020610805610120610c1b565b610120f35b63313ce56781186108285760043610610cc257601260405260206040f35b6354fd4d5081186108b05760043610610cc25760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6306fdde0381186109115760043610610cc257602080604052806040016020610cd46000396000518082526020820181610cf4823950508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186109795760043610610cc257602080604052806040016020610d34600039600051808252602082016020610d54600039600051815250508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63bfa0b13381186109a05760043610610cc2576020610d7460003960005160405260206040f35b63dd62ed3e81186109fa5760443610610cc2576004358060a01c610cc2576040526024358060a01c610cc2576060526000604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6370a082318118610a355760243610610cc2576004358060a01c610cc257604052600160405160205260005260406000205460605260206060f35b6318160ddd8118610a545760043610610cc25760025460405260206040f35b637ecebe008118610a8f5760243610610cc2576004358060a01c610cc257604052600360405160205260005260406000205460605260206060f35b63075461728118610aae5760043610610cc25760045460405260206040f35b505b60006000fd5b608051600060405160205260005260406000208060605160205260005260406000209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b600160405160205260005260406000208054606051808203828111610cc25790509050815550600254606051808203828111610cc2579050905060025560006040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60605160805260206080a3565b606051308114610b9157801515610b94565b60005b905015610cc257600160405160205260005260406000208054608051808203828111610cc25790509050815550600160605160205260005260406000208054608051808201828110610cc257905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610db46000396000514614610cb1577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610d946000396000516080527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610d746000396000516101005260c06040526040805160208201209050815250610cc0565b6020610dd46000396000518152505b565b600080fda165767970657283000307000b005b600080fd00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001743757276652e46692055534420537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000066372765553440000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6003361161000c57610ab0565b60003560e01c34610cc2576323b872dd81186100e55760643610610cc2576004358060a01c610cc25760c0526024358060a01c610cc25760e052600060c051602052600052604060002080336020526000526040600020905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146100be5760c0516040523360605261010051604435808203828111610cc257905090506080526100be610ab6565b60c05160405260e0516060526044356080526100d8610b7f565b6001610120526020610120f35b63a9059cbb81186101295760443610610cc2576004358060a01c610cc25760c0523360405260c05160605260243560805261011e610b7f565b600160e052602060e0f35b63095ea7b3811861016d5760443610610cc2576004358060a01c610cc25760c0523360405260c051606052602435608052610162610ab6565b600160e052602060e0f35b63d505accf811861049b5760e43610610cc2576004358060a01c610cc257610120526024358060a01c610cc257610140526084358060081c610cc2576101605261012051156101c1576064354211156101c4565b60005b15610cc25760036101205160205260005260406000205461018052600060026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610232610200610c1b565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561041c576000604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090508051806101c05260208201816101e0838360045afa505050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a05161026052806102805280610260016101c051808252602082018181836101e060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081015050602061024060c461025c845afa6103f4573d600060003e3d6000fd5b60203d10610cc257610240518060201b610cc2576103205261032090505118610cc25761044f565b610120516101a0516101c052610160516101e052604060a4610200376020600060806101c060015afa5060005118610cc2575b6101805160018101818110610cc2579050600361012051602052600052604060002055610120516040526101405160605260443560805261048e610ab6565b60016101c05260206101c0f35b6339509351811861054f5760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e051016101005260e05161010051101561051d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e0516101005114610542573360405260c05160605261010051608052610542610ab6565b6001610120526020610120f35b63a457c2d781186105e45760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e05103610100526101005160e05110156105b2576000610100525b60e05161010051146105d7573360405260c051606052610100516080526105d7610ab6565b6001610120526020610120f35b6379cc6790811861069b5760443610610cc2576004358060a01c610cc25760c052600060c05160205260005260406000208033602052600052604060002090505460e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60e0511461067a5760c0516040523360605260e051602435808203828111610cc2579050905060805261067a610ab6565b60c05160405260243560605261068e610b0f565b6001610100526020610100f35b6342966c6881186106cb5760243610610cc257336040526004356060526106c0610b0f565b600160a052602060a0f35b6340c10f19811861078a5760443610610cc2576004358060a01c610cc2576040526004543318610cc2576040513081146107075780151561070a565b60005b905015610cc257600160405160205260005260406000208054602435808201828110610cc25790509050815550600254602435808201828110610cc2579050905060025560405160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b631652e9fc81186107e55760243610610cc2576004358060a01c610cc2576040526004543318610cc2576040516004556040517fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c60006060a2005b633644e515811861080a5760043610610cc2576020610805610120610c1b565b610120f35b63313ce56781186108285760043610610cc257601260405260206040f35b6354fd4d5081186108b05760043610610cc25760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6306fdde0381186109115760043610610cc257602080604052806040016020610cd46000396000518082526020820181610cf4823950508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186109795760043610610cc257602080604052806040016020610d34600039600051808252602082016020610d54600039600051815250508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63bfa0b13381186109a05760043610610cc2576020610d7460003960005160405260206040f35b63dd62ed3e81186109fa5760443610610cc2576004358060a01c610cc2576040526024358060a01c610cc2576060526000604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6370a082318118610a355760243610610cc2576004358060a01c610cc257604052600160405160205260005260406000205460605260206060f35b6318160ddd8118610a545760043610610cc25760025460405260206040f35b637ecebe008118610a8f5760243610610cc2576004358060a01c610cc257604052600360405160205260005260406000205460605260206060f35b63075461728118610aae5760043610610cc25760045460405260206040f35b505b60006000fd5b608051600060405160205260005260406000208060605160205260005260406000209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b600160405160205260005260406000208054606051808203828111610cc25790509050815550600254606051808203828111610cc2579050905060025560006040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60605160805260206080a3565b606051308114610b9157801515610b94565b60005b905015610cc257600160405160205260005260406000208054608051808203828111610cc25790509050815550600160605160205260005260406000208054608051808201828110610cc257905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610db46000396000514614610cb1577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610d946000396000516080527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610d746000396000516101005260c06040526040805160208201209050815250610cc0565b6020610dd46000396000518152505b565b600080fda165767970657283000307000b000000000000000000000000000000000000000000000000000000000000001743757276652e46692055534420537461626c65636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066372765553440000000000000000000000000000000000000000000000000000b99ba1c24ff7f96081ccd1ad26ffc380e2cc4c73b87f99e7a0165fa980b3b9776b6d6c86c326770f6c25b6ef3f5528c1ce6dc99246faa6c29790347076961bba00000000000000000000000000000000000000000000000000000000000000017906987b5141f4b3a52bd45bf8cd1495b428ff72f3caefd1d670d9726103a7f0

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001743757276652e46692055534420537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000066372765553440000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Curve.Fi USD Stablecoin
Arg [1] : _symbol (string): crvUSD

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000017
Arg [3] : 43757276652e46692055534420537461626c65636f696e000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 6372765553440000000000000000000000000000000000000000000000000000


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.