POL Price: $0.71965 (+2.90%)
Gas: 37.3 GWei
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Unwrap651610362024-12-06 17:07:152 hrs ago1733504835IN
0x3A3BD7bb...A765002E2
0 POL0.0027389348.16805325
Unwrap651372942024-12-06 2:57:3817 hrs ago1733453858IN
0x3A3BD7bb...A765002E2
0 POL0.001622228.53488408
Unwrap651346672024-12-06 1:22:4618 hrs ago1733448166IN
0x3A3BD7bb...A765002E2
0 POL0.003054849.5314501
Unwrap651346532024-12-06 1:22:1618 hrs ago1733448136IN
0x3A3BD7bb...A765002E2
0 POL0.0031518151.10443323
Unwrap651340572024-12-06 1:01:0218 hrs ago1733446862IN
0x3A3BD7bb...A765002E2
0 POL0.0054729688.72304481
Unwrap651340492024-12-06 1:00:4618 hrs ago1733446846IN
0x3A3BD7bb...A765002E2
0 POL0.0050577582.00788093
Unwrap651340432024-12-06 1:00:3218 hrs ago1733446832IN
0x3A3BD7bb...A765002E2
0 POL0.0052312984.82173104
Unwrap651024052024-12-05 6:08:0237 hrs ago1733378882IN
0x3A3BD7bb...A765002E2
0 POL0.0028037545.46086164
Unwrap651023982024-12-05 6:07:4637 hrs ago1733378866IN
0x3A3BD7bb...A765002E2
0 POL0.0027432444.48843226
Unwrap650977062024-12-05 3:21:2640 hrs ago1733368886IN
0x3A3BD7bb...A765002E2
0 POL0.01799398291.75972391
Unwrap650976962024-12-05 3:21:0640 hrs ago1733368866IN
0x3A3BD7bb...A765002E2
0 POL0.0189462307.1992339
Unwrap650976892024-12-05 3:20:5040 hrs ago1733368850IN
0x3A3BD7bb...A765002E2
0 POL0.01929071312.78514659
Unwrap650976702024-12-05 3:20:1040 hrs ago1733368810IN
0x3A3BD7bb...A765002E2
0 POL0.02244956364.00378549
Unwrap650976632024-12-05 3:19:5440 hrs ago1733368794IN
0x3A3BD7bb...A765002E2
0 POL0.02411137391.10094903
Unwrap650976442024-12-05 3:19:1440 hrs ago1733368754IN
0x3A3BD7bb...A765002E2
0 POL0.02506087406.26525895
Unwrap650976372024-12-05 3:19:0040 hrs ago1733368740IN
0x3A3BD7bb...A765002E2
0 POL0.02604501422.21914844
Unwrap650974092024-12-05 3:10:5640 hrs ago1733368256IN
0x3A3BD7bb...A765002E2
0 POL0.05109272898.53907607
Unwrap650973902024-12-05 3:10:1440 hrs ago1733368214IN
0x3A3BD7bb...A765002E2
0 POL0.05340342938.97788818
Unwrap650813772024-12-04 17:36:412 days ago1733333801IN
0x3A3BD7bb...A765002E2
0 POL0.0033865554.92120999
Unwrap650813322024-12-04 17:35:052 days ago1733333705IN
0x3A3BD7bb...A765002E2
0 POL0.0038157261.88131387
Unwrap650812882024-12-04 17:33:312 days ago1733333611IN
0x3A3BD7bb...A765002E2
0 POL0.0040906366.33959377
Unwrap650790022024-12-04 16:12:282 days ago1733328748IN
0x3A3BD7bb...A765002E2
0 POL0.01039172182.71480075
Unwrap650781752024-12-04 15:43:102 days ago1733326990IN
0x3A3BD7bb...A765002E2
0 POL0.01436583232.97714769
Unwrap650780142024-12-04 15:37:282 days ago1733326648IN
0x3A3BD7bb...A765002E2
0 POL0.01745871283.08061834
Unwrap650780012024-12-04 15:37:022 days ago1733326622IN
0x3A3BD7bb...A765002E2
0 POL0.01740465282.20413041
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
505054032023-11-28 20:27:46373 days ago1701203266  Contract Creation0 POL
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WrappedCollateral

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
paris EvmVersion
File 1 of 3 : WrappedCollateral.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import {ERC20} from "lib/solmate/src/tokens/ERC20.sol";
import {SafeTransferLib} from "lib/solmate/src/utils/SafeTransferLib.sol";

/// @title IWrappedCollateralEE
/// @notice WrappedCollateral Errors and Events
interface IWrappedCollateralEE {
    error OnlyOwner();
}

string constant NAME = "Wrapped Collateral";
string constant SYMBOL = "WCOL";

/// @title WrappedCollateral
/// @author Mike Shrieve ([email protected])
/// @notice Wraps an ERC20 token to be used as collateral in the CTF
contract WrappedCollateral is IWrappedCollateralEE, ERC20 {
    using SafeTransferLib for ERC20;

    /*//////////////////////////////////////////////////////////////
                                 STATE
    //////////////////////////////////////////////////////////////*/

    address public immutable owner;
    address public immutable underlying;

    /*//////////////////////////////////////////////////////////////
                               MODIFIERS
    //////////////////////////////////////////////////////////////*/

    modifier onlyOwner() {
        if (msg.sender != owner) revert OnlyOwner();
        _;
    }

    /*//////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    /// @param _underlying The address of the underlying ERC20 token
    /// @param _decimals The number of decimals of the underlying ERC20 token
    constructor(address _underlying, uint8 _decimals) ERC20(NAME, SYMBOL, _decimals) {
        owner = msg.sender;
        underlying = _underlying;
    }

    /*//////////////////////////////////////////////////////////////
                                 UNWRAP
    //////////////////////////////////////////////////////////////*/

    /// @notice Unwraps the specified amount of tokens
    /// @param _to The address to send the unwrapped tokens to
    /// @param _amount The amount of tokens to unwrap
    function unwrap(address _to, uint256 _amount) external {
        _burn(msg.sender, _amount);
        ERC20(underlying).safeTransfer(_to, _amount);
    }

    /*//////////////////////////////////////////////////////////////
                                 ADMIN
    //////////////////////////////////////////////////////////////*/

    /// @notice Wraps the specified amount of tokens
    /// @notice Can only be called by the owner
    /// @param _to     - the address to send the wrapped tokens to
    /// @param _amount - the amount of tokens to wrap
    function wrap(address _to, uint256 _amount) external onlyOwner {
        ERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        _mint(_to, _amount);
    }

    /// @notice Burns the specified amount of tokens
    /// @notice Can only be called by the owner
    /// @param _amount - the amount of tokens to burn
    function burn(uint256 _amount) external onlyOwner {
        _burn(msg.sender, _amount);
    }

    /// @notice Mints the specified amount of tokens
    /// @notice Can only be called by the owner
    /// @param _amount - the amount of tokens to mint
    function mint(uint256 _amount) external onlyOwner {
        _mint(msg.sender, _amount);
    }

    /// @notice Releases the specified amount of the underlying token
    /// @notice Can only be called by the owner
    /// @param _to     - the address to send the released tokens to
    /// @param _amount - the amount of tokens to release
    function release(address _to, uint256 _amount) external onlyOwner {
        ERC20(underlying).safeTransfer(_to, _amount);
    }
}

File 2 of 3 : ERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                            METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}

File 3 of 3 : SafeTransferLib.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

import {ERC20} from "../tokens/ERC20.sol";

/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.
/// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.
library SafeTransferLib {
    /*//////////////////////////////////////////////////////////////
                             ETH OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferETH(address to, uint256 amount) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Transfer the ETH and store if it succeeded or not.
            success := call(gas(), to, amount, 0, 0, 0, 0)
        }

        require(success, "ETH_TRANSFER_FAILED");
    }

    /*//////////////////////////////////////////////////////////////
                            ERC20 OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "from" argument.
            mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 68), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 100 because the length of our calldata totals up like so: 4 + 32 * 3.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 100, 0, 32)
            )
        }

        require(success, "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
            )
        }

        require(success, "TRANSFER_FAILED");
    }

    function safeApprove(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
            )
        }

        require(success, "APPROVE_FAILED");
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "solmate/=lib/solmate/src/",
    "forge-gas-snapshot/=lib/forge-gas-snapshot/src/",
    "openzeppelin-contracts/=lib/ctf-exchange/lib/openzeppelin-contracts/contracts/",
    "common/=lib/ctf-exchange/src/common/",
    "creator/=lib/ctf-exchange/src/creator/",
    "ctf-exchange/=lib/ctf-exchange/src/",
    "dev/=lib/ctf-exchange/src/dev/",
    "exchange-fee-module/=lib/exchange-fee-module/src/",
    "exchange/=lib/ctf-exchange/src/exchange/",
    "openzeppelin/=lib/ctf-exchange/lib/openzeppelin-contracts/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unwrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"wrap","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101206040523480156200001257600080fd5b506040516200174d3803806200174d83398101604081905262000035916200016e565b6040518060400160405280601281526020017115dc985c1c19590810dbdb1b185d195c985b60721b8152506040518060400160405280600481526020016315d0d3d360e21b8152508282600090816200008f919062000262565b5060016200009e838262000262565b5060ff81166080524660a052620000b4620000d2565b60c05250503360e05250506001600160a01b031661010052620003ac565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516200010691906200032e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080604083850312156200018257600080fd5b82516001600160a01b03811681146200019a57600080fd5b602084015190925060ff81168114620001b257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001e857607f821691505b6020821081036200020957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025d57600081815260208120601f850160051c81016020861015620002385750805b601f850160051c820191505b81811015620002595782815560010162000244565b5050505b505050565b81516001600160401b038111156200027e576200027e620001bd565b62000296816200028f8454620001d3565b846200020f565b602080601f831160018114620002ce5760008415620002b55750858301515b600019600386901b1c1916600185901b17855562000259565b600085815260208120601f198616915b82811015620002ff57888601518255948401946001909101908401620002de565b50858210156200031e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200033e81620001d3565b600182811680156200035957600181146200036f57620003a0565b60ff1984168752821515830287019450620003a0565b8760005260208060002060005b85811015620003975781548a8201529084019082016200037c565b50505082870194505b50929695505050505050565b60805160a05160c05160e051610100516113326200041b60003960008181610242015281816103f801526108e40152600081816102ce01528181610387015281816106ec015281816107750152610873015260006106a801526000610673015260006101db01526113326000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80636f307dc3116100cd578063a0712d6811610081578063bf376c7a11610066578063bf376c7a1461031e578063d505accf14610331578063dd62ed3e1461034457600080fd5b8063a0712d68146102f8578063a9059cbb1461030b57600080fd5b80637ecebe00116100b25780637ecebe00146102a95780638da5cb5b146102c957806395d89b41146102f057600080fd5b80636f307dc31461023d57806370a082311461028957600080fd5b806323b872dd116101245780633644e515116101095780633644e5151461020f57806339f476931461021757806342966c681461022a57600080fd5b806323b872dd146101c3578063313ce567146101d657600080fd5b80630357371d1461015657806306fdde031461016b578063095ea7b31461018957806318160ddd146101ac575b600080fd5b610169610164366004610fcb565b61036f565b005b610173610423565b6040516101809190610ff5565b60405180910390f35b61019c610197366004610fcb565b6104b1565b6040519015158152602001610180565b6101b560025481565b604051908152602001610180565b61019c6101d1366004611061565b61052b565b6101fd7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610180565b6101b561066f565b610169610225366004610fcb565b6106ca565b61016961023836600461109d565b6106d4565b6102647f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610180565b6101b56102973660046110b6565b60036020526000908152604090205481565b6101b56102b73660046110b6565b60056020526000908152604090205481565b6102647f000000000000000000000000000000000000000000000000000000000000000081565b610173610750565b61016961030636600461109d565b61075d565b61019c610319366004610fcb565b6107d6565b61016961032c366004610fcb565b61085b565b61016961033f3660046110d8565b610916565b6101b561035236600461114b565b600460209081526000928352604080842090915290825290205481565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103de576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61041f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383610c3a565b5050565b600080546104309061117e565b80601f016020809104026020016040519081016040528092919081815260200182805461045c9061117e565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105199086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf5761058d8382611200565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040812080548592906105f4908490611200565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061065c9087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146106a5576106a0610d0f565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6103de3382610da9565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610743576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61074d3382610da9565b50565b600180546104309061117e565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107cc576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61074d3382610e3f565b336000908152600360205260408120805483919083906107f7908490611200565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105199086815260200190565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108ca576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090c73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610eb0565b61041f8282610e3f565b42841015610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161099161066f565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610ae3573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610b5e57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161097c565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60006040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610d09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015260640161097c565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610d419190611213565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054839290610dde908490611200565b909155505060028054829003905560405181815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b8060026000828254610e5191906112e9565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610e33565b60006040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff841660248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080610f9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015260640161097c565b5050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fc657600080fd5b919050565b60008060408385031215610fde57600080fd5b610fe783610fa2565b946020939093013593505050565b600060208083528351808285015260005b8181101561102257858101830151858201604001528201611006565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60008060006060848603121561107657600080fd5b61107f84610fa2565b925061108d60208501610fa2565b9150604084013590509250925092565b6000602082840312156110af57600080fd5b5035919050565b6000602082840312156110c857600080fd5b6110d182610fa2565b9392505050565b600080600080600080600060e0888a0312156110f357600080fd5b6110fc88610fa2565b965061110a60208901610fa2565b95506040880135945060608801359350608088013560ff8116811461112e57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561115e57600080fd5b61116783610fa2565b915061117560208401610fa2565b90509250929050565b600181811c9082168061119257607f821691505b6020821081036111cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610525576105256111d1565b600080835481600182811c91508083168061122f57607f831692505b60208084108203611267577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b81801561127b57600181146112ae576112db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528415158502890196506112db565b60008a81526020902060005b868110156112d35781548b8201529085019083016112ba565b505084890196505b509498975050505050505050565b80820180821115610525576105256111d156fea2646970667358221220ad3d29a4463d14a148a3849050be8e5252fd8bc37be24d48ae47ffef67fa5b4664736f6c634300081300330000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000000000000000000000000000000000006

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101515760003560e01c80636f307dc3116100cd578063a0712d6811610081578063bf376c7a11610066578063bf376c7a1461031e578063d505accf14610331578063dd62ed3e1461034457600080fd5b8063a0712d68146102f8578063a9059cbb1461030b57600080fd5b80637ecebe00116100b25780637ecebe00146102a95780638da5cb5b146102c957806395d89b41146102f057600080fd5b80636f307dc31461023d57806370a082311461028957600080fd5b806323b872dd116101245780633644e515116101095780633644e5151461020f57806339f476931461021757806342966c681461022a57600080fd5b806323b872dd146101c3578063313ce567146101d657600080fd5b80630357371d1461015657806306fdde031461016b578063095ea7b31461018957806318160ddd146101ac575b600080fd5b610169610164366004610fcb565b61036f565b005b610173610423565b6040516101809190610ff5565b60405180910390f35b61019c610197366004610fcb565b6104b1565b6040519015158152602001610180565b6101b560025481565b604051908152602001610180565b61019c6101d1366004611061565b61052b565b6101fd7f000000000000000000000000000000000000000000000000000000000000000681565b60405160ff9091168152602001610180565b6101b561066f565b610169610225366004610fcb565b6106ca565b61016961023836600461109d565b6106d4565b6102647f0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417481565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610180565b6101b56102973660046110b6565b60036020526000908152604090205481565b6101b56102b73660046110b6565b60056020526000908152604090205481565b6102647f000000000000000000000000d91e80cf2e7be2e162c6513ced06f1dd0da3529681565b610173610750565b61016961030636600461109d565b61075d565b61019c610319366004610fcb565b6107d6565b61016961032c366004610fcb565b61085b565b61016961033f3660046110d8565b610916565b6101b561035236600461114b565b600460209081526000928352604080842090915290825290205481565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d91e80cf2e7be2e162c6513ced06f1dd0da3529616146103de576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61041f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174168383610c3a565b5050565b600080546104309061117e565b80601f016020809104026020016040519081016040528092919081815260200182805461045c9061117e565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105199086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf5761058d8382611200565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040812080548592906105f4908490611200565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061065c9087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000008946146106a5576106a0610d0f565b905090565b507fb0f9944913bd21a9b0a91a0e2c121c78dc1ce6a11e46a84736a1c67cdb29f0b990565b6103de3382610da9565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d91e80cf2e7be2e162c6513ced06f1dd0da352961614610743576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61074d3382610da9565b50565b600180546104309061117e565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d91e80cf2e7be2e162c6513ced06f1dd0da3529616146107cc576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61074d3382610e3f565b336000908152600360205260408120805483919083906107f7908490611200565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105199086815260200190565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d91e80cf2e7be2e162c6513ced06f1dd0da3529616146108ca576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090c73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417416333084610eb0565b61041f8282610e3f565b42841015610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b6000600161099161066f565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610ae3573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610b5e57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161097c565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60006040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610d09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015260640161097c565b50505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610d419190611213565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054839290610dde908490611200565b909155505060028054829003905560405181815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b8060026000828254610e5191906112e9565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610e33565b60006040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff841660248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080610f9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015260640161097c565b5050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fc657600080fd5b919050565b60008060408385031215610fde57600080fd5b610fe783610fa2565b946020939093013593505050565b600060208083528351808285015260005b8181101561102257858101830151858201604001528201611006565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60008060006060848603121561107657600080fd5b61107f84610fa2565b925061108d60208501610fa2565b9150604084013590509250925092565b6000602082840312156110af57600080fd5b5035919050565b6000602082840312156110c857600080fd5b6110d182610fa2565b9392505050565b600080600080600080600060e0888a0312156110f357600080fd5b6110fc88610fa2565b965061110a60208901610fa2565b95506040880135945060608801359350608088013560ff8116811461112e57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561115e57600080fd5b61116783610fa2565b915061117560208401610fa2565b90509250929050565b600181811c9082168061119257607f821691505b6020821081036111cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610525576105256111d1565b600080835481600182811c91508083168061122f57607f831692505b60208084108203611267577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b81801561127b57600181146112ae576112db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528415158502890196506112db565b60008a81526020902060005b868110156112d35781548b8201529085019083016112ba565b505084890196505b509498975050505050505050565b80820180821115610525576105256111d156fea2646970667358221220ad3d29a4463d14a148a3849050be8e5252fd8bc37be24d48ae47ffef67fa5b4664736f6c63430008130033

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

0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : _underlying (address): 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
Arg [1] : _decimals (uint8): 6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000006


Block Transaction 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
[ Download: CSV Export  ]
[ 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.