Overview
Max Total Supply
953,422.015828796695779602 CRV
Holders
295 (0.00%)
Market
Price
$1.20 @ 0.000300 frxETH (-6.51%)
Onchain Market Cap
$1,144,106.42
Circulating Supply Market Cap
$1,496,194,230.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10 """ @title ERC20 @notice Bridged token implementation """ 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 Mint: account: indexed(address) amount: uint256 event Burn: account: indexed(address) amount: uint256 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) SUPPORTED_INTERFACES: constant(bytes4[3]) = [ # ERC165: bytes4(keccak256('supportsInterface(bytes4)')) 0x01ffc9a7, # Interface corresponding to the legacy L2StandardERC20: # bytes4(keccak256('l1Token()')) == 0xc01e1bd6 # bytes4(keccak256('mint(address,uint256)')) == 0x40c10f19 # bytes4(keccak256('burn(address,uint256)')) == 0x9dc29fac 0x1d1d8b63, # Interface corresponding to the updated OptimismMintableERC20. # bytes4(keccak256('remoteToken()')) == 0xd6c0b2c4 # bytes4(keccak256('bridge()')) == 0xe78cea92 # bytes4(keccak256('mint(address,uint256)')) == 0x40c10f19 # bytes4(keccak256('burn(address,uint256)')) == 0x9dc29fac 0xec4fc8e3, ] allowance: public(HashMap[address, HashMap[address, uint256]]) balanceOf: public(HashMap[address, uint256]) totalSupply: public(uint256) nonces: public(HashMap[address, uint256]) BRIDGE: public(immutable(address)) REMOTE_TOKEN: public(immutable(address)) @external def __init__(_name: String[64], _symbol: String[32], _bridge: address, _remote_token: address): 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, ) ) BRIDGE = _bridge REMOTE_TOKEN = _remote_token @internal def _approve(_owner: address, _spender: address, _value: uint256): self.allowance[_owner][_spender] = _value log Approval(_owner, _spender, _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 @view @external def DOMAIN_SEPARATOR() -> bytes32: """ @notice EIP712 domain separator. """ return self._domain_separator() @pure @external def supportsInterface(_interface_id: bytes4) -> bool: """ @dev Interface identification is specified in ERC-165. @param interface_id Id of the interface """ return _interface_id in SUPPORTED_INTERFACES @pure @external def bridge() -> address: """ @notice Address of bridge contract. @dev Legacy, use `BRIDGE` """ return BRIDGE @pure @external def l1Token() -> address: """ @notice Address of token on L1. @dev Legacy, use `REMOTE_TOKEN` """ return REMOTE_TOKEN @pure @external def remoteToken() -> address: """ @notice Address of token on L1. @dev Legacy, use `REMOTE_TOKEN` """ return REMOTE_TOKEN @external def mint(_to: address, _value: uint256): """ @notice Mint `_value` amount of tokens to `_to`. @dev Only callable by an bridge. @param _to The account newly minted tokens are credited to. @param _value Amount of token to mint """ assert msg.sender == BRIDGE assert _to not in [self, empty(address)] self.balanceOf[_to] += _value self.totalSupply += _value log Transfer(empty(address), _to, _value) log Mint(_to, _value) @external def burn(_from: address, _value: uint256): """ @notice Burn `_value` amount of tokens from `_from`. @dev Only callable by bridge. @param _from The account to burn the tokens from. @param _value The amount of tokens to burn. """ assert msg.sender == BRIDGE self.balanceOf[_from] -= _value self.totalSupply -= _value log Transfer(_from, empty(address), _value) log Burn(_from, _value)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"Mint","inputs":[{"name":"account","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Burn","inputs":[{"name":"account","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_bridge","type":"address"},{"name":"_remote_token","type":"address"}],"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":"view","type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"pure","type":"function","name":"supportsInterface","inputs":[{"name":"_interface_id","type":"bytes4"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"pure","type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"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":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
610e805150346101cd576020610f285f395f516040602082610f28015f395f51116101cd576020602082610f28015f395f51018082610f280160403950506020610f485f395f516020602082610f28015f395f51116101cd576020602082610f28015f395f51018082610f280160a03950506020610f685f395f518060a01c6101cd5760e0526020610f885f395f518060a01c6101cd57610100526020604051015f81601f0160051c600381116101cd5780156100d457905b8060051b604001518160051b610d4001526001018181186100b8575b505050602060a051015f81601f0160051c600281116101cd57801561011457905b8060051b60a001518160051b606001610d4001526001018181186100f5575b505050604051606020610e005246610e20526001430340610de0527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647261014052604051606020610160527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc61018052466101a052306101c05260014303406101e05260c061012052610120805160208201209050610e405260e051610e605261010051610e8052610d406101d161000039610ea0610000f35b5f80fd5f3560e01c60026019820660011b610d0e01601e395f51565b63313ce5678118610b885734610d0a57601260405260206040f3610b88565b6354fd4d5081186100b55734610d0a5760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a78118610b8857602436103417610d0a576004358060201b610d0a576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861010957600161015c565b7f1d1d8b6300000000000000000000000000000000000000000000000000000000811861013757600161015c565b7fec4fc8e3000000000000000000000000000000000000000000000000000000008118155b905060805260206080f3610b88565b6306fdde0381186101c15734610d0a576020806040528060400160206020610d405f395f510180610d408339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6323b872dd8118610b8857606436103417610d0a576004358060a01c610d0a5760c0526024358060a01c610d0a5760e0525f60c0516020525f5260405f2080336020525f5260405f20905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146102655760c0516040523360605261010051604435808203828111610d0a5790509050608052610265610b8c565b60c05160405260e05160605260443560805261027f610be0565b6001610120526020610120f3610b88565b6395d89b4181186102e65734610d0a576020806040528060400160206020610da05f395f510180610da08339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63395093518118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e051016101005260e051610100511015610365577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e051610100511461038a573360405260c0516060526101005160805261038a610b8c565b6001610120526020610120f3610b88565b63bfa0b1338118610b885734610d0a576020610de060403960206040f3610b88565b63dd62ed3e8118610b8857604436103417610d0a576004358060a01c610d0a576040526024358060a01c610d0a576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610b88565b6370a082318118610b8857602436103417610d0a576004358060a01c610d0a5760405260016040516020525f5260405f205460605260206060f3610b88565b6318160ddd81186104735734610d0a5760025460405260206040f35b63d6c0b2c48118610b885734610d0a576020610e8060403960206040f3610b88565b637ecebe0081146003361116156104d657602436103417610d0a576004358060a01c610d0a5760405260036040516020525f5260405f205460605260206060f35b639dc29fac8118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a5760016040516020525f5260405f208054602435808203828111610d0a5790509050815550600254602435808203828111610d0a57905090506002555f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560243560605260206060a200610b88565b63ee9a31a28118610b885734610d0a576020610e6060403960206040f3610b88565b63033964be8118610b885734610d0a576020610e8060403960206040f3610b88565b63a9059cbb811861063257604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610627610be0565b600160e052602060e0f35b633644e5158118610b885734610d0a57602061064f610120610c77565b610120f3610b88565b63095ea7b38118610b8857604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610693610b8c565b600160e052602060e0f3610b88565b63d505accf8118610b885760e436103417610d0a576004358060a01c610d0a57610120526024358060a01c610d0a57610140526084358060081c610d0a576101605261012051156106f8576064354211156106fa565b5f5b15610d0a576003610120516020525f5260405f2054610180525f60026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610765610200610c77565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561093e575f604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090506020815101806101c0828460045afa5050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a051610260528061028052806102600160206101c051018082826101c060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050602061024060c461025c845afa610916573d5f5f3e3d5ffd5b60203d10610d0a57610240518060201b610d0a576103205261032090505118610d0a57610978565b610120515f610240526101a0516101c052610160516101e052604060a461020037602061024060806101c060015afa506102405118610d0a575b6101805160018101818110610d0a5790506003610120516020525f5260405f205561012051604052610140516060526044356080526109b5610b8c565b60016101c05260206101c0f3610b88565b63a457c2d78118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e05103610100526101005160e0511015610a25575f610100525b60e0516101005114610a4a573360405260c05160605261010051608052610a4a610b8c565b6001610120526020610120f3610b88565b63e78cea928118610b885734610d0a576020610e6060403960206040f3610b88565b63c01e1bd68118610b885734610d0a576020610e8060403960206040f3610b88565b6340c10f198118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a57604051308114610ae357801515610ae5565b5f5b905015610d0a5760016040516020525f5260405f208054602435808201828110610d0a5790509050815550600254602435808201828110610d0a57905090506002556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560243560605260206060a2005b5f5ffd5b6080515f6040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b606051308114610bf257801515610bf4565b5f5b905015610d0a5760016040516020525f5260405f208054608051808203828111610d0a579050905081555060016060516020525f5260405f208054608051808201828110610d0a57905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610e205f395f514614610cff577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610e006080397f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610de06101003960c06040526040805160208201209050815250610d08565b6020610e408239505b565b5f80fd04570b8806a20a7d039b0290041805ec05a8065809c60a5b0a9f0b88016b05ca0b880b880b8800370b880018049503bd0b8884190d40811832190160a16576797065728300030a0017000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x5f3560e01c60026019820660011b610d0e01601e395f51565b63313ce5678118610b885734610d0a57601260405260206040f3610b88565b6354fd4d5081186100b55734610d0a5760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a78118610b8857602436103417610d0a576004358060201b610d0a576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861010957600161015c565b7f1d1d8b6300000000000000000000000000000000000000000000000000000000811861013757600161015c565b7fec4fc8e3000000000000000000000000000000000000000000000000000000008118155b905060805260206080f3610b88565b6306fdde0381186101c15734610d0a576020806040528060400160206020610d405f395f510180610d408339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6323b872dd8118610b8857606436103417610d0a576004358060a01c610d0a5760c0526024358060a01c610d0a5760e0525f60c0516020525f5260405f2080336020525f5260405f20905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146102655760c0516040523360605261010051604435808203828111610d0a5790509050608052610265610b8c565b60c05160405260e05160605260443560805261027f610be0565b6001610120526020610120f3610b88565b6395d89b4181186102e65734610d0a576020806040528060400160206020610da05f395f510180610da08339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63395093518118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e051016101005260e051610100511015610365577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e051610100511461038a573360405260c0516060526101005160805261038a610b8c565b6001610120526020610120f3610b88565b63bfa0b1338118610b885734610d0a576020610de060403960206040f3610b88565b63dd62ed3e8118610b8857604436103417610d0a576004358060a01c610d0a576040526024358060a01c610d0a576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610b88565b6370a082318118610b8857602436103417610d0a576004358060a01c610d0a5760405260016040516020525f5260405f205460605260206060f3610b88565b6318160ddd81186104735734610d0a5760025460405260206040f35b63d6c0b2c48118610b885734610d0a576020610e8060403960206040f3610b88565b637ecebe0081146003361116156104d657602436103417610d0a576004358060a01c610d0a5760405260036040516020525f5260405f205460605260206060f35b639dc29fac8118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a5760016040516020525f5260405f208054602435808203828111610d0a5790509050815550600254602435808203828111610d0a57905090506002555f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560243560605260206060a200610b88565b63ee9a31a28118610b885734610d0a576020610e6060403960206040f3610b88565b63033964be8118610b885734610d0a576020610e8060403960206040f3610b88565b63a9059cbb811861063257604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610627610be0565b600160e052602060e0f35b633644e5158118610b885734610d0a57602061064f610120610c77565b610120f3610b88565b63095ea7b38118610b8857604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610693610b8c565b600160e052602060e0f3610b88565b63d505accf8118610b885760e436103417610d0a576004358060a01c610d0a57610120526024358060a01c610d0a57610140526084358060081c610d0a576101605261012051156106f8576064354211156106fa565b5f5b15610d0a576003610120516020525f5260405f2054610180525f60026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610765610200610c77565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561093e575f604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090506020815101806101c0828460045afa5050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a051610260528061028052806102600160206101c051018082826101c060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050602061024060c461025c845afa610916573d5f5f3e3d5ffd5b60203d10610d0a57610240518060201b610d0a576103205261032090505118610d0a57610978565b610120515f610240526101a0516101c052610160516101e052604060a461020037602061024060806101c060015afa506102405118610d0a575b6101805160018101818110610d0a5790506003610120516020525f5260405f205561012051604052610140516060526044356080526109b5610b8c565b60016101c05260206101c0f3610b88565b63a457c2d78118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e05103610100526101005160e0511015610a25575f610100525b60e0516101005114610a4a573360405260c05160605261010051608052610a4a610b8c565b6001610120526020610120f3610b88565b63e78cea928118610b885734610d0a576020610e6060403960206040f3610b88565b63c01e1bd68118610b885734610d0a576020610e8060403960206040f3610b88565b6340c10f198118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a57604051308114610ae357801515610ae5565b5f5b905015610d0a5760016040516020525f5260405f208054602435808201828110610d0a5790509050815550600254602435808201828110610d0a57905090506002556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560243560605260206060a2005b5f5ffd5b6080515f6040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b606051308114610bf257801515610bf4565b5f5b905015610d0a5760016040516020525f5260405f208054608051808203828111610d0a579050905081555060016060516020525f5260405f208054608051808201828110610d0a57905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610e205f395f514614610cff577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610e006080397f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610de06101003960c06040526040805160208201209050815250610d08565b6020610e408239505b565b5f80fd04570b8806a20a7d039b0290041805ec05a8065809c60a5b0a9f0b88016b05ca0b880b880b8800370b880018049503bd0b88000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000cbdc3d6d0fd2e2db8fb14cf12fe81ac0ea85b312874b82cbdbabebf36ea4b8fa9f8677a1fd4b02d0a7b641e866cb02a22994bd45292cfd173416a660877ce3f200000000000000000000000000000000000000000000000000000000000000fc501ce0b5faf81d62d4f864c642ae87b58f3626bb8c23f2a0b8dbb272cd8914240000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Curve DAO Token
Arg [1] : _symbol (string): CRV
Arg [2] : _bridge (address): 0x4200000000000000000000000000000000000010
Arg [3] : _remote_token (address): 0xD533a949740bb3306d119CC777fa900bA034cd52
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [3] : 000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 43757276652044414f20546f6b656e0000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4352560000000000000000000000000000000000000000000000000000000000
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.