ETH Price: $3,879.43 (+1.16%)

Contract

0x7102DC82EF61bfB0410B1b1bF8EA74575bf0A105
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve211932742024-11-15 13:04:3527 days ago1731675875IN
X7 Finance: X7102 Token
0 ETH0.0007726616.67103405
Approve211462112024-11-08 23:28:3533 days ago1731108515IN
X7 Finance: X7102 Token
0 ETH0.0004774210.2503609
Approve207494662024-09-14 14:32:3589 days ago1726324355IN
X7 Finance: X7102 Token
0 ETH0.000116862.52025592
Approve207030892024-09-08 3:04:5995 days ago1725764699IN
X7 Finance: X7102 Token
0 ETH0.000054751.86972219
Approve207023502024-09-08 0:36:1195 days ago1725755771IN
X7 Finance: X7102 Token
0 ETH0.000040551.3853618
Approve206736522024-09-04 0:31:1199 days ago1725409871IN
X7 Finance: X7102 Token
0 ETH0.000073171.57805558
Approve206734772024-09-03 23:55:5999 days ago1725407759IN
X7 Finance: X7102 Token
0 ETH0.000034380.74136728
Approve206734532024-09-03 23:51:1199 days ago1725407471IN
X7 Finance: X7102 Token
0 ETH0.000025880.55828187
Approve206734322024-09-03 23:46:4799 days ago1725407207IN
X7 Finance: X7102 Token
0 ETH0.000048481.04520823
Approve206733552024-09-03 23:31:2399 days ago1725406283IN
X7 Finance: X7102 Token
0 ETH0.000036740.79226682
Approve206675932024-09-03 4:14:35100 days ago1725336875IN
X7 Finance: X7102 Token
0 ETH0.000055631.19973091
Approve206670292024-09-03 2:20:59100 days ago1725330059IN
X7 Finance: X7102 Token
0 ETH0.000082221.77461913
Approve206670202024-09-03 2:19:11100 days ago1725329951IN
X7 Finance: X7102 Token
0 ETH0.000085361.84231956
Approve206670132024-09-03 2:17:47100 days ago1725329867IN
X7 Finance: X7102 Token
0 ETH0.0000821.76973399
Approve206669842024-09-03 2:11:59100 days ago1725329519IN
X7 Finance: X7102 Token
0 ETH0.000072691.56896456
Approve206244012024-08-28 3:27:47106 days ago1724815667IN
X7 Finance: X7102 Token
0 ETH0.000056641.22154064
Approve204017712024-07-28 1:30:11137 days ago1722130211IN
X7 Finance: X7102 Token
0 ETH0.000085741.84102552
Approve203886382024-07-26 5:29:35139 days ago1721971775IN
X7 Finance: X7102 Token
0 ETH0.00009362.0077515
Approve202947182024-07-13 2:51:35152 days ago1720839095IN
X7 Finance: X7102 Token
0 ETH0.000073861.58377019
Approve201634212024-06-24 18:46:23171 days ago1719254783IN
X7 Finance: X7102 Token
0 ETH0.000368147.93887437
Transfer Ownersh...198956472024-05-18 8:29:59208 days ago1716020999IN
X7 Finance: X7102 Token
0 ETH0.000121264.22681927
Transfer198389892024-05-10 10:18:35216 days ago1715336315IN
X7 Finance: X7102 Token
0 ETH0.000283434.89119694
Set Liquidity Hu...197828432024-05-02 13:49:59224 days ago1714657799IN
X7 Finance: X7102 Token
0 ETH0.0003510810.8550338
Transfer196590162024-04-15 6:05:23241 days ago1713161123IN
X7 Finance: X7102 Token
0 ETH0.000293368.55834635
Transfer195128652024-03-25 17:08:23262 days ago1711386503IN
X7 Finance: X7102 Token
0 ETH0.0028740249.59668544
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:
X7102

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-24
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

/*

 /$$   /$$ /$$$$$$$$       /$$$$$$$$ /$$
| $$  / $$|_____ $$/      | $$_____/|__/
|  $$/ $$/     /$$/       | $$       /$$ /$$$$$$$   /$$$$$$  /$$$$$$$   /$$$$$$$  /$$$$$$
 \  $$$$/     /$$/        | $$$$$   | $$| $$__  $$ |____  $$| $$__  $$ /$$_____/ /$$__  $$
  >$$  $$    /$$/         | $$__/   | $$| $$  \ $$  /$$$$$$$| $$  \ $$| $$      | $$$$$$$$
 /$$/\  $$  /$$/          | $$      | $$| $$  | $$ /$$__  $$| $$  | $$| $$      | $$_____/
| $$  \ $$ /$$/           | $$      | $$| $$  | $$|  $$$$$$$| $$  | $$|  $$$$$$$|  $$$$$$$
|__/  |__/|__/            |__/      |__/|__/  |__/ \_______/|__/  |__/ \_______/ \_______/

Contract: ERC-20 Token X7102

This contract will NOT be renounced.

The following are the only functions that can be called on the contract that affect the contract:

    function setLiquidityHub(address liquidityHub_) external onlyOwner {
        require(!liquidityHubFrozen);
        liquidityHub = ILiquidityHub(liquidityHub_);
    }

    function setDiscountAuthority(address discountAuthority_) external onlyOwner {
        require(!discountAuthorityFrozen);
        discountAuthority = IDiscountAuthority(discountAuthority_);
    }

    function setFeeNumerator(uint256 feeNumerator_) external onlyOwner {
        require(feeNumerator_ <= maxFeeNumerator);
        feeNumerator = feeNumerator_;
    }

    function setAMM(address ammAddress, bool isAMM) external {
        require(msg.sender == address(liquidityHub) || msg.sender == owner(), "Only the owner or the liquidity hub may add a new pair");
        ammPair[ammAddress] = isAMM;
    }

    function setOffRampPair(address ammAddress) external {
        require(msg.sender == address(liquidityHub) || msg.sender == owner(), "Only the owner or the liquidity hub may add a new pair");
        offRampPair = ammAddress;
    }

    function freezeLiquidityHub() external onlyOwner {
        require(!liquidityHubFrozen);
        liquidityHubFrozen = true;
    }

    function freezeDiscountAuthority() external onlyOwner {
        require(!discountAuthorityFrozen);
        discountAuthorityFrozen = true;
    }

These functions will be passed to DAO governance once the ecosystem stabilizes.

*/

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = msg.sender;
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }

        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
}

interface ILiquidityHub {
    function processFees(address) external;
}

interface IDiscountAuthority {
    function discountRatio(address) external view returns (uint256, uint256);
}

contract X7102 is ERC20, Ownable {

    IDiscountAuthority public discountAuthority;
    ILiquidityHub public liquidityHub;

    mapping(address => bool) public ammPair;
    address public offRampPair;

    // max 6% fee
    uint256 public maxFeeNumerator = 600;

    // 2 % fee
    uint256 public feeNumerator = 200;
    uint256 public feeDenominator = 10000;

    bool discountAuthorityFrozen;
    bool liquidityHubFrozen;

    bool transfersEnabled;

    event LiquidityHubSet(address indexed liquidityHub);
    event DiscountAuthoritySet(address indexed discountAuthority);
    event FeeNumeratorSet(uint256 feeNumerator);
    event AMMSet(address indexed pairAddress, bool isAMM);
    event OffRampPairSet(address indexed offRampPair);
    event LiquidityHubFrozen();
    event DiscountAuthorityFrozen();

    constructor(
        address discountAuthority_,
        address liquidityHub_
    ) ERC20("X7102", "X7102") Ownable(address(0x7000a09c425ABf5173FF458dF1370C25d1C58105)) {
        discountAuthority = IDiscountAuthority(discountAuthority_);
        liquidityHub = ILiquidityHub(liquidityHub_);

        _mint(address(0x7000a09c425ABf5173FF458dF1370C25d1C58105), 100000000 * 10**18);
    }

    function setLiquidityHub(address liquidityHub_) external onlyOwner {
        require(!liquidityHubFrozen);
        liquidityHub = ILiquidityHub(liquidityHub_);
        emit LiquidityHubSet(liquidityHub_);
    }

    function setDiscountAuthority(address discountAuthority_) external onlyOwner {
        require(!discountAuthorityFrozen);
        discountAuthority = IDiscountAuthority(discountAuthority_);
        emit DiscountAuthoritySet(discountAuthority_);
    }

    function setFeeNumerator(uint256 feeNumerator_) external onlyOwner {
        require(feeNumerator_ <= maxFeeNumerator);
        feeNumerator = feeNumerator_;
        emit FeeNumeratorSet(feeNumerator_);
    }

    function setAMM(address ammAddress, bool isAMM) external {
        require(msg.sender == address(liquidityHub) || msg.sender == owner(), "Only the owner or the liquidity hub may add a new pair");
        ammPair[ammAddress] = isAMM;
        emit AMMSet(ammAddress, isAMM);
    }

    function setOffRampPair(address ammAddress) external {
        require(msg.sender == address(liquidityHub) || msg.sender == owner(), "Only the owner or the liquidity hub may add a new pair");
        offRampPair = ammAddress;
        emit OffRampPairSet(ammAddress);
    }

    function freezeLiquidityHub() external onlyOwner {
        require(!liquidityHubFrozen);
        liquidityHubFrozen = true;
        emit LiquidityHubFrozen();
    }

    function freezeDiscountAuthority() external onlyOwner {
        require(!discountAuthorityFrozen);
        discountAuthorityFrozen = true;
        emit DiscountAuthorityFrozen();
    }

    function circulatingSupply() external view returns (uint256) {
        return totalSupply() - balanceOf(address(0)) - balanceOf(address(0x000000000000000000000000000000000000dEaD));
    }

    function enableTrading() external onlyOwner {
        require(!transfersEnabled);
        transfersEnabled = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(transfersEnabled || from == owner());

        uint256 transferAmount = amount;

        if (
            from == address(liquidityHub)
            || to == address(liquidityHub)
        ) {
            super._transfer(from, to, amount);
            return;
        }

        if (
            ammPair[to] || ammPair[from]
        ) {
            address effectivePrincipal;
            if (ammPair[to]) {
                effectivePrincipal = from;
            } else {
                effectivePrincipal = to;
            }

            (uint256 feeModifierNumerator, uint256 feeModifierDenominator) = discountAuthority.discountRatio(effectivePrincipal);
            if (feeModifierNumerator > feeModifierDenominator || feeModifierDenominator == 0) {
                feeModifierNumerator = 1;
                feeModifierDenominator = 1;
            }

            uint256 feeAmount = amount * feeNumerator * feeModifierNumerator / feeDenominator / feeModifierDenominator;

            super._transfer(from, address(liquidityHub), feeAmount);
            transferAmount = amount - feeAmount;
        }

        if (
            to == offRampPair
        ) {
            liquidityHub.processFees(address(this));
        }

        super._transfer(from, to, transferAmount);
    }

    function rescueETH() external {
        (bool success,) = payable(address(liquidityHub)).call{value: address(this).balance}("");
        require(success);
    }

    function rescueTokens(address tokenAddress) external {
        IERC20(tokenAddress).transfer(address(liquidityHub), IERC20(tokenAddress).balanceOf(address(this)));
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"discountAuthority_","type":"address"},{"internalType":"address","name":"liquidityHub_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pairAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isAMM","type":"bool"}],"name":"AMMSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"DiscountAuthorityFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"discountAuthority","type":"address"}],"name":"DiscountAuthoritySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeNumerator","type":"uint256"}],"name":"FeeNumeratorSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LiquidityHubFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"liquidityHub","type":"address"}],"name":"LiquidityHubSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"offRampPair","type":"address"}],"name":"OffRampPairSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"discountAuthority","outputs":[{"internalType":"contract IDiscountAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freezeDiscountAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeLiquidityHub","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityHub","outputs":[{"internalType":"contract ILiquidityHub","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offRampPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"discountAuthority_","type":"address"}],"name":"setDiscountAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeNumerator_","type":"uint256"}],"name":"setFeeNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityHub_","type":"address"}],"name":"setLiquidityHub","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"}],"name":"setOffRampPair","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052610258600a5560c8600b55612710600c553480156200002257600080fd5b506040516200194338038062001943833981016040819052620000459162000275565b6040805180820182526005808252642c1b98981960d91b6020808401829052845180860190955291845290830152737000a09c425abf5173ff458df1370c25d1c5810591600362000097838262000352565b506004620000a6828262000352565b505050620000ba816200011e60201b60201c565b50600680546001600160a01b038085166001600160a01b031992831617909255600780549284169290911691909117905562000116737000a09c425abf5173ff458df1370c25d1c581056a52b7d2dcc80cd2e400000062000170565b505062000445565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001df91906200041e565b90915550506001600160a01b038216600090815260208190526040812080548392906200020e9084906200041e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200027057600080fd5b919050565b600080604083850312156200028957600080fd5b620002948362000258565b9150620002a46020840162000258565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002d857607f821691505b602082108103620002f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034d57600081815260208120601f850160051c81016020861015620003285750805b601f850160051c820191505b81811015620003495782815560010162000334565b5050505b505050565b81516001600160401b038111156200036e576200036e620002ad565b62000386816200037f8454620002c3565b84620002ff565b602080601f831160018114620003be5760008415620003a55750858301515b600019600386901b1c1916600185901b17855562000349565b600085815260208120601f198616915b82811015620003ef57888601518255948401946001909101908401620003ce565b50858210156200040e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082198211156200044057634e487b7160e01b600052601160045260246000fd5b500190565b6114ee80620004556000396000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c80638a8c523c1161010f578063a9d3cd8a116100a2578063dd62ed3e11610071578063dd62ed3e14610409578063e86dea4a1461041c578063f2fde38b14610425578063fbabba221461043857600080fd5b8063a9d3cd8a146103bd578063ab04a6bb146103d0578063abd6aa41146103e3578063be1c7142146103f657600080fd5b806398e2ebbf116100de57806398e2ebbf14610361578063a457c2d714610384578063a45db91114610397578063a9059cbb146103aa57600080fd5b80638a8c523c146103385780638da5cb5b146103405780639358928b1461035157806395d89b411461035957600080fd5b80632559882d116101875780634639139d116101565780634639139d146102e157806370a08231146102f4578063715018a61461031d5780637b31bd781461032557600080fd5b80632559882d1461028c578063313ce5671461029457806334091a43146102a357806339509351146102ce57600080fd5b806318160ddd116101c357806318160ddd1461026157806320331cfc1461026957806320800a001461027157806323b872dd1461027957600080fd5b8062ae3bf8146101f457806306fdde0314610209578063095ea7b314610227578063180b0d7e1461024a575b600080fd5b6102076102023660046111da565b610441565b005b61021161052b565b60405161021e91906111fc565b60405180910390f35b61023a610235366004611251565b6105bd565b604051901515815260200161021e565b610253600c5481565b60405190815260200161021e565b600254610253565b6102076105d5565b61020761062c565b61023a61028736600461127b565b61068f565b6102076106b3565b6040516012815260200161021e565b6006546102b6906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b61023a6102dc366004611251565b610703565b6007546102b6906001600160a01b031681565b6102536103023660046111da565b6001600160a01b031660009081526020819052604090205490565b610207610725565b6009546102b6906001600160a01b031681565b610207610739565b6005546001600160a01b03166102b6565b61025361076a565b6102116107d4565b61023a61036f3660046111da565b60086020526000908152604090205460ff1681565b61023a610392366004611251565b6107e3565b6102076103a53660046112b7565b610863565b61023a6103b8366004611251565b6108b5565b6102076103cb3660046112de565b6108c3565b6102076103de3660046111da565b610961565b6102076103f13660046111da565b6109c8565b6102076104043660046111da565b610a2a565b610253610417366004611315565b610ab3565b610253600b5481565b6102076104333660046111da565b610ade565b610253600a5481565b6007546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b89190611348565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611361565b5050565b60606003805461053a9061137e565b80601f01602080910402602001604051908101604052809291908181526020018280546105669061137e565b80156105b35780601f10610588576101008083540402835291602001916105b3565b820191906000526020600020905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6000336105cb818585610b54565b5060019392505050565b6105dd610c78565b600d54610100900460ff16156105f257600080fd5b600d805461ff0019166101001790556040517f4d344c8b0016d5807caec92f09a154f1cfc026110a8106ccbe2dceff0317355d90600090a1565b6007546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610679576040519150601f19603f3d011682016040523d82523d6000602084013e61067e565b606091505b505090508061068c57600080fd5b50565b60003361069d858285610ce1565b6106a8858585610d5b565b506001949350505050565b6106bb610c78565b600d5460ff16156106cb57600080fd5b600d805460ff191660011790556040517f527064e85a8453752e55610dd634b6ee8cd80307b0ea3f0eed8c1f7ca2696f8e90600090a1565b6000336105cb8185856107168383610ab3565b61072091906113ce565b610b54565b61072d610c78565b6107376000610f9d565b565b610741610c78565b600d5462010000900460ff161561075757600080fd5b600d805462ff0000191662010000179055565b600060208190527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83548180527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546002546107c591906113e6565b6107cf91906113e6565b905090565b60606004805461053a9061137e565b600033816107f18286610ab3565b9050838110156108565760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6106a88286868403610b54565b61086b610c78565b600a5481111561087a57600080fd5b600b8190556040518181527fc1bcceddd77fdc95a8da9bec5802d2e0bb564dd02c0730222d8e12030bd910439060200160405180910390a150565b6000336105cb818585610d5b565b6007546001600160a01b03163314806108e657506005546001600160a01b031633145b6109025760405162461bcd60e51b815260040161084d906113fd565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87910160405180910390a25050565b610969610c78565b600d54610100900460ff161561097e57600080fd5b600780546001600160a01b0319166001600160a01b0383169081179091556040517fd3c93458b0ffb1a51466cc4b7fcda74d245ef1c6bdfe9e111609eea5afcae4c990600090a250565b6109d0610c78565b600d5460ff16156109e057600080fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f03694a956320a0c277498a931248855f5ef47143cabe91ec33fc0a4393bb774e90600090a250565b6007546001600160a01b0316331480610a4d57506005546001600160a01b031633145b610a695760405162461bcd60e51b815260040161084d906113fd565b600980546001600160a01b0319166001600160a01b0383169081179091556040517f205890426c74334fba9f3d65990e94e55dac01584e054394ab50173c4a01da2d90600090a250565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ae6610c78565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084d565b61068c81610f9d565b6001600160a01b038316610bb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161084d565b6001600160a01b038216610c175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161084d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b33610c8b6005546001600160a01b031690565b6001600160a01b0316146107375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161084d565b6000610ced8484610ab3565b90506000198114610d555781811015610d485760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161084d565b610d558484848403610b54565b50505050565b600d5462010000900460ff1680610d7f57506005546001600160a01b038481169116145b610d8857600080fd5b60075481906001600160a01b0385811691161480610db357506007546001600160a01b038481169116145b15610dc357610d55848484610fef565b6001600160a01b03831660009081526008602052604090205460ff1680610e0257506001600160a01b03841660009081526008602052604090205460ff165b15610f1e576001600160a01b03831660009081526008602052604081205460ff1615610e2f575083610e32565b50825b6006546040516305666bad60e11b81526001600160a01b0383811660048301526000928392911690630accd75a906024016040805180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190611453565b9150915080821180610eb3575080155b15610ebf575060019050805b600081600c5484600b5489610ed49190611477565b610ede9190611477565b610ee89190611496565b610ef29190611496565b600754909150610f0d9089906001600160a01b031683610fef565b610f1781876113e6565b9450505050505b6009546001600160a01b0390811690841603610f92576007546040516330ac175560e11b81523060048201526001600160a01b03909116906361582eaa90602401600060405180830381600087803b158015610f7957600080fd5b505af1158015610f8d573d6000803e3d6000fd5b505050505b610d55848483610fef565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166110535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161084d565b6001600160a01b0382166110b55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161084d565b6001600160a01b0383166000908152602081905260409020548181101561112d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161084d565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906111649084906113ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b091815260200190565b60405180910390a350505050565b80356001600160a01b03811681146111d557600080fd5b919050565b6000602082840312156111ec57600080fd5b6111f5826111be565b9392505050565b600060208083528351808285015260005b818110156112295785810183015185820160400152820161120d565b8181111561123b576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561126457600080fd5b61126d836111be565b946020939093013593505050565b60008060006060848603121561129057600080fd5b611299846111be565b92506112a7602085016111be565b9150604084013590509250925092565b6000602082840312156112c957600080fd5b5035919050565b801515811461068c57600080fd5b600080604083850312156112f157600080fd5b6112fa836111be565b9150602083013561130a816112d0565b809150509250929050565b6000806040838503121561132857600080fd5b611331836111be565b915061133f602084016111be565b90509250929050565b60006020828403121561135a57600080fd5b5051919050565b60006020828403121561137357600080fd5b81516111f5816112d0565b600181811c9082168061139257607f821691505b6020821081036113b257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156113e1576113e16113b8565b500190565b6000828210156113f8576113f86113b8565b500390565b60208082526036908201527f4f6e6c7920746865206f776e6572206f7220746865206c697175696469747920604082015275343ab11036b0bc9030b2321030903732bb903830b4b960511b606082015260800190565b6000806040838503121561146657600080fd5b505080516020909101519092909150565b6000816000190483118215151615611491576114916113b8565b500290565b6000826114b357634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e724fda02a14389d881290f45e17b029a5532648874c010089cd2d20bbdaaf2c64736f6c634300080f00330000000000000000000000007100aacc6047281b105201cb9e0decf9ae5431da0000000000000000000000007102407afa5d6581aab694feb03feb0e7cf69ebb

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101ef5760003560e01c80638a8c523c1161010f578063a9d3cd8a116100a2578063dd62ed3e11610071578063dd62ed3e14610409578063e86dea4a1461041c578063f2fde38b14610425578063fbabba221461043857600080fd5b8063a9d3cd8a146103bd578063ab04a6bb146103d0578063abd6aa41146103e3578063be1c7142146103f657600080fd5b806398e2ebbf116100de57806398e2ebbf14610361578063a457c2d714610384578063a45db91114610397578063a9059cbb146103aa57600080fd5b80638a8c523c146103385780638da5cb5b146103405780639358928b1461035157806395d89b411461035957600080fd5b80632559882d116101875780634639139d116101565780634639139d146102e157806370a08231146102f4578063715018a61461031d5780637b31bd781461032557600080fd5b80632559882d1461028c578063313ce5671461029457806334091a43146102a357806339509351146102ce57600080fd5b806318160ddd116101c357806318160ddd1461026157806320331cfc1461026957806320800a001461027157806323b872dd1461027957600080fd5b8062ae3bf8146101f457806306fdde0314610209578063095ea7b314610227578063180b0d7e1461024a575b600080fd5b6102076102023660046111da565b610441565b005b61021161052b565b60405161021e91906111fc565b60405180910390f35b61023a610235366004611251565b6105bd565b604051901515815260200161021e565b610253600c5481565b60405190815260200161021e565b600254610253565b6102076105d5565b61020761062c565b61023a61028736600461127b565b61068f565b6102076106b3565b6040516012815260200161021e565b6006546102b6906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b61023a6102dc366004611251565b610703565b6007546102b6906001600160a01b031681565b6102536103023660046111da565b6001600160a01b031660009081526020819052604090205490565b610207610725565b6009546102b6906001600160a01b031681565b610207610739565b6005546001600160a01b03166102b6565b61025361076a565b6102116107d4565b61023a61036f3660046111da565b60086020526000908152604090205460ff1681565b61023a610392366004611251565b6107e3565b6102076103a53660046112b7565b610863565b61023a6103b8366004611251565b6108b5565b6102076103cb3660046112de565b6108c3565b6102076103de3660046111da565b610961565b6102076103f13660046111da565b6109c8565b6102076104043660046111da565b610a2a565b610253610417366004611315565b610ab3565b610253600b5481565b6102076104333660046111da565b610ade565b610253600a5481565b6007546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b89190611348565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611361565b5050565b60606003805461053a9061137e565b80601f01602080910402602001604051908101604052809291908181526020018280546105669061137e565b80156105b35780601f10610588576101008083540402835291602001916105b3565b820191906000526020600020905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6000336105cb818585610b54565b5060019392505050565b6105dd610c78565b600d54610100900460ff16156105f257600080fd5b600d805461ff0019166101001790556040517f4d344c8b0016d5807caec92f09a154f1cfc026110a8106ccbe2dceff0317355d90600090a1565b6007546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610679576040519150601f19603f3d011682016040523d82523d6000602084013e61067e565b606091505b505090508061068c57600080fd5b50565b60003361069d858285610ce1565b6106a8858585610d5b565b506001949350505050565b6106bb610c78565b600d5460ff16156106cb57600080fd5b600d805460ff191660011790556040517f527064e85a8453752e55610dd634b6ee8cd80307b0ea3f0eed8c1f7ca2696f8e90600090a1565b6000336105cb8185856107168383610ab3565b61072091906113ce565b610b54565b61072d610c78565b6107376000610f9d565b565b610741610c78565b600d5462010000900460ff161561075757600080fd5b600d805462ff0000191662010000179055565b600060208190527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83548180527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546002546107c591906113e6565b6107cf91906113e6565b905090565b60606004805461053a9061137e565b600033816107f18286610ab3565b9050838110156108565760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6106a88286868403610b54565b61086b610c78565b600a5481111561087a57600080fd5b600b8190556040518181527fc1bcceddd77fdc95a8da9bec5802d2e0bb564dd02c0730222d8e12030bd910439060200160405180910390a150565b6000336105cb818585610d5b565b6007546001600160a01b03163314806108e657506005546001600160a01b031633145b6109025760405162461bcd60e51b815260040161084d906113fd565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87910160405180910390a25050565b610969610c78565b600d54610100900460ff161561097e57600080fd5b600780546001600160a01b0319166001600160a01b0383169081179091556040517fd3c93458b0ffb1a51466cc4b7fcda74d245ef1c6bdfe9e111609eea5afcae4c990600090a250565b6109d0610c78565b600d5460ff16156109e057600080fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f03694a956320a0c277498a931248855f5ef47143cabe91ec33fc0a4393bb774e90600090a250565b6007546001600160a01b0316331480610a4d57506005546001600160a01b031633145b610a695760405162461bcd60e51b815260040161084d906113fd565b600980546001600160a01b0319166001600160a01b0383169081179091556040517f205890426c74334fba9f3d65990e94e55dac01584e054394ab50173c4a01da2d90600090a250565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ae6610c78565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084d565b61068c81610f9d565b6001600160a01b038316610bb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161084d565b6001600160a01b038216610c175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161084d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b33610c8b6005546001600160a01b031690565b6001600160a01b0316146107375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161084d565b6000610ced8484610ab3565b90506000198114610d555781811015610d485760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161084d565b610d558484848403610b54565b50505050565b600d5462010000900460ff1680610d7f57506005546001600160a01b038481169116145b610d8857600080fd5b60075481906001600160a01b0385811691161480610db357506007546001600160a01b038481169116145b15610dc357610d55848484610fef565b6001600160a01b03831660009081526008602052604090205460ff1680610e0257506001600160a01b03841660009081526008602052604090205460ff165b15610f1e576001600160a01b03831660009081526008602052604081205460ff1615610e2f575083610e32565b50825b6006546040516305666bad60e11b81526001600160a01b0383811660048301526000928392911690630accd75a906024016040805180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190611453565b9150915080821180610eb3575080155b15610ebf575060019050805b600081600c5484600b5489610ed49190611477565b610ede9190611477565b610ee89190611496565b610ef29190611496565b600754909150610f0d9089906001600160a01b031683610fef565b610f1781876113e6565b9450505050505b6009546001600160a01b0390811690841603610f92576007546040516330ac175560e11b81523060048201526001600160a01b03909116906361582eaa90602401600060405180830381600087803b158015610f7957600080fd5b505af1158015610f8d573d6000803e3d6000fd5b505050505b610d55848483610fef565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166110535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161084d565b6001600160a01b0382166110b55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161084d565b6001600160a01b0383166000908152602081905260409020548181101561112d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161084d565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906111649084906113ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b091815260200190565b60405180910390a350505050565b80356001600160a01b03811681146111d557600080fd5b919050565b6000602082840312156111ec57600080fd5b6111f5826111be565b9392505050565b600060208083528351808285015260005b818110156112295785810183015185820160400152820161120d565b8181111561123b576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561126457600080fd5b61126d836111be565b946020939093013593505050565b60008060006060848603121561129057600080fd5b611299846111be565b92506112a7602085016111be565b9150604084013590509250925092565b6000602082840312156112c957600080fd5b5035919050565b801515811461068c57600080fd5b600080604083850312156112f157600080fd5b6112fa836111be565b9150602083013561130a816112d0565b809150509250929050565b6000806040838503121561132857600080fd5b611331836111be565b915061133f602084016111be565b90509250929050565b60006020828403121561135a57600080fd5b5051919050565b60006020828403121561137357600080fd5b81516111f5816112d0565b600181811c9082168061139257607f821691505b6020821081036113b257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156113e1576113e16113b8565b500190565b6000828210156113f8576113f86113b8565b500390565b60208082526036908201527f4f6e6c7920746865206f776e6572206f7220746865206c697175696469747920604082015275343ab11036b0bc9030b2321030903732bb903830b4b960511b606082015260800190565b6000806040838503121561146657600080fd5b505080516020909101519092909150565b6000816000190483118215151615611491576114916113b8565b500290565b6000826114b357634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e724fda02a14389d881290f45e17b029a5532648874c010089cd2d20bbdaaf2c64736f6c634300080f0033

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

0000000000000000000000007100aacc6047281b105201cb9e0decf9ae5431da0000000000000000000000007102407afa5d6581aab694feb03feb0e7cf69ebb

-----Decoded View---------------
Arg [0] : discountAuthority_ (address): 0x7100AAcC6047281b105201cb9e0DEcF9Ae5431DA
Arg [1] : liquidityHub_ (address): 0x7102407afa5d6581AAb694FEB03fEB0e7Cf69ebb

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007100aacc6047281b105201cb9e0decf9ae5431da
Arg [1] : 0000000000000000000000007102407afa5d6581aab694feb03feb0e7cf69ebb


Deployed Bytecode Sourcemap

8733:5030:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13587:171;;;;;;:::i;:::-;;:::i;:::-;;4704:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5634:199;;;;;;:::i;:::-;;:::i;:::-;;;1409:14:1;;1402:22;1384:41;;1372:2;1357:18;5634:199:0;1244:187:1;9068:37:0;;;;;;;;;1582:25:1;;;1570:2;1555:18;9068:37:0;1436:177:1;5025:108:0;5113:12;;5025:108;;11257:168;;;:::i;13416:163::-;;;:::i;5841:293::-;;;;;;:::i;:::-;;:::i;11433:188::-;;;:::i;4924:93::-;;;5007:2;2093:36:1;;2081:2;2066:18;4924:93:0;1951:184:1;8775:43:0;;;;;-1:-1:-1;;;;;8775:43:0;;;;;;-1:-1:-1;;;;;2330:32:1;;;2312:51;;2300:2;2285:18;8775:43:0;2140:229:1;6142:236:0;;;;;;:::i;:::-;;:::i;8825:33::-;;;;;-1:-1:-1;;;;;8825:33:0;;;5141:127;;;;;;:::i;:::-;-1:-1:-1;;;;;5242:18:0;5215:7;5242:18;;;;;;;;;;;;5141:127;2851:103;;;:::i;8913:26::-;;;;;-1:-1:-1;;;;;8913:26:0;;;11826:123;;;:::i;2618:87::-;2691:6;;-1:-1:-1;;;;;2691:6:0;2618:87;;11629:189;;;:::i;4812:104::-;;;:::i;8867:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6386:434;;;;;;:::i;:::-;;:::i;10463:212::-;;;;;;:::i;:::-;;:::i;5276:191::-;;;;;;:::i;:::-;;:::i;10683:282::-;;;;;;:::i;:::-;;:::i;9979:214::-;;;;;;:::i;:::-;;:::i;10201:254::-;;;;;;:::i;:::-;;:::i;10973:276::-;;;;;;:::i;:::-;;:::i;5475:151::-;;;;;;:::i;:::-;;:::i;9028:33::-;;;;;;2962:201;;;;;;:::i;:::-;;:::i;8967:36::-;;;;;;13587:171;13689:12;;13704:45;;-1:-1:-1;;;13704:45:0;;13743:4;13704:45;;;2312:51:1;-1:-1:-1;;;;;13651:29:0;;;;;;13689:12;;;13651:29;;13704:30;;2285:18:1;;13704:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13651:99;;-1:-1:-1;;;;;;13651:99:0;;;;;;;-1:-1:-1;;;;;4085:32:1;;;13651:99:0;;;4067:51:1;4134:18;;;4127:34;4040:18;;13651:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13587:171;:::o;4704:100::-;4758:13;4791:5;4784:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4704:100;:::o;5634:199::-;5717:4;5750:10;5771:32;5750:10;5787:7;5796:6;5771:8;:32::i;:::-;-1:-1:-1;5821:4:0;;5634:199;-1:-1:-1;;;5634:199:0:o;11257:168::-;2577:13;:11;:13::i;:::-;11326:18:::1;::::0;::::1;::::0;::::1;;;11325:19;11317:28;;;::::0;::::1;;11356:18;:25:::0;;-1:-1:-1;;11356:25:0::1;;;::::0;;11397:20:::1;::::0;::::1;::::0;11356:25;;11397:20:::1;11257:168::o:0;13416:163::-;13491:12;;13475:69;;13458:12;;-1:-1:-1;;;;;13491:12:0;;13518:21;;13458:12;13475:69;13458:12;13475:69;13518:21;13491:12;13475:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13457:87;;;13563:7;13555:16;;;;;;13446:133;13416:163::o;5841:293::-;5972:4;6007:10;6028:38;6044:4;6007:10;6059:6;6028:15;:38::i;:::-;6077:27;6087:4;6093:2;6097:6;6077:9;:27::i;:::-;-1:-1:-1;6122:4:0;;5841:293;-1:-1:-1;;;;5841:293:0:o;11433:188::-;2577:13;:11;:13::i;:::-;11507:23:::1;::::0;::::1;;11506:24;11498:33;;;::::0;::::1;;11542:23;:30:::0;;-1:-1:-1;;11542:30:0::1;11568:4;11542:30;::::0;;11588:25:::1;::::0;::::1;::::0;11542:23:::1;::::0;11588:25:::1;11433:188::o:0;6142:236::-;6230:4;6263:10;6284:64;6263:10;6300:7;6337:10;6309:25;6263:10;6300:7;6309:9;:25::i;:::-;:38;;;;:::i;:::-;6284:8;:64::i;2851:103::-;2577:13;:11;:13::i;:::-;2916:30:::1;2943:1;2916:18;:30::i;:::-;2851:103::o:0;11826:123::-;2577:13;:11;:13::i;:::-;11890:16:::1;::::0;;;::::1;;;11889:17;11881:26;;;::::0;::::1;;11918:16;:23:::0;;-1:-1:-1;;11918:23:0::1;::::0;::::1;::::0;;11826:123::o;11629:189::-;11681:7;5242:18;;;;;;;;;;;5113:12;;11708:37;;5242:18;11708:37;:::i;:::-;:102;;;;:::i;:::-;11701:109;;11629:189;:::o;4812:104::-;4868:13;4901:7;4894:14;;;;;:::i;6386:434::-;6479:4;6512:10;6479:4;6560:25;6512:10;6577:7;6560:9;:25::i;:::-;6533:52;;6624:15;6604:16;:35;;6596:85;;;;-1:-1:-1;;;6596:85:0;;5614:2:1;6596:85:0;;;5596:21:1;5653:2;5633:18;;;5626:30;5692:34;5672:18;;;5665:62;-1:-1:-1;;;5743:18:1;;;5736:35;5788:19;;6596:85:0;;;;;;;;;6717:60;6726:5;6733:7;6761:15;6742:16;:34;6717:8;:60::i;10463:212::-;2577:13;:11;:13::i;:::-;10566:15:::1;;10549:13;:32;;10541:41;;;::::0;::::1;;10593:12;:28:::0;;;10637:30:::1;::::0;1582:25:1;;;10637:30:0::1;::::0;1570:2:1;1555:18;10637:30:0::1;;;;;;;10463:212:::0;:::o;5276:191::-;5355:4;5388:10;5409:28;5388:10;5426:2;5430:6;5409:9;:28::i;10683:282::-;10781:12;;-1:-1:-1;;;;;10781:12:0;10759:10;:35;;:60;;-1:-1:-1;2691:6:0;;-1:-1:-1;;;;;2691:6:0;10798:10;:21;10759:60;10751:127;;;;-1:-1:-1;;;10751:127:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10889:19:0;;;;;;:7;:19;;;;;;;;;:27;;-1:-1:-1;;10889:27:0;;;;;;;;;;10932:25;;1384:41:1;;;10932:25:0;;1357:18:1;10932:25:0;;;;;;;10683:282;;:::o;9979:214::-;2577:13;:11;:13::i;:::-;10066:18:::1;::::0;::::1;::::0;::::1;;;10065:19;10057:28;;;::::0;::::1;;10096:12;:43:::0;;-1:-1:-1;;;;;;10096:43:0::1;-1:-1:-1::0;;;;;10096:43:0;::::1;::::0;;::::1;::::0;;;10155:30:::1;::::0;::::1;::::0;-1:-1:-1;;10155:30:0::1;9979:214:::0;:::o;10201:254::-;2577:13;:11;:13::i;:::-;10298:23:::1;::::0;::::1;;10297:24;10289:33;;;::::0;::::1;;10333:17;:58:::0;;-1:-1:-1;;;;;;10333:58:0::1;-1:-1:-1::0;;;;;10333:58:0;::::1;::::0;;::::1;::::0;;;10407:40:::1;::::0;::::1;::::0;-1:-1:-1;;10407:40:0::1;10201:254:::0;:::o;10973:276::-;11067:12;;-1:-1:-1;;;;;11067:12:0;11045:10;:35;;:60;;-1:-1:-1;2691:6:0;;-1:-1:-1;;;;;2691:6:0;11084:10;:21;11045:60;11037:127;;;;-1:-1:-1;;;11037:127:0;;;;;;;:::i;:::-;11175:11;:24;;-1:-1:-1;;;;;;11175:24:0;-1:-1:-1;;;;;11175:24:0;;;;;;;;11215:26;;;;-1:-1:-1;;11215:26:0;10973:276;:::o;5475:151::-;-1:-1:-1;;;;;5591:18:0;;;5564:7;5591:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5475:151::o;2962:201::-;2577:13;:11;:13::i;:::-;-1:-1:-1;;;;;3051:22:0;::::1;3043:73;;;::::0;-1:-1:-1;;;3043:73:0;;6443:2:1;3043:73:0::1;::::0;::::1;6425:21:1::0;6482:2;6462:18;;;6455:30;6521:34;6501:18;;;6494:62;-1:-1:-1;;;6572:18:1;;;6565:36;6618:19;;3043:73:0::1;6241:402:1::0;3043:73:0::1;3127:28;3146:8;3127:18;:28::i;7692:380::-:0;-1:-1:-1;;;;;7828:19:0;;7820:68;;;;-1:-1:-1;;;7820:68:0;;6850:2:1;7820:68:0;;;6832:21:1;6889:2;6869:18;;;6862:30;6928:34;6908:18;;;6901:62;-1:-1:-1;;;6979:18:1;;;6972:34;7023:19;;7820:68:0;6648:400:1;7820:68:0;-1:-1:-1;;;;;7907:21:0;;7899:68;;;;-1:-1:-1;;;7899:68:0;;7255:2:1;7899:68:0;;;7237:21:1;7294:2;7274:18;;;7267:30;7333:34;7313:18;;;7306:62;-1:-1:-1;;;7384:18:1;;;7377:32;7426:19;;7899:68:0;7053:398:1;7899:68:0;-1:-1:-1;;;;;7980:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8032:32;;1582:25:1;;;8032:32:0;;1555:18:1;8032:32:0;;;;;;;7692:380;;;:::o;2713:130::-;2788:10;2777:7;2691:6;;-1:-1:-1;;;;;2691:6:0;;2618:87;2777:7;-1:-1:-1;;;;;2777:21:0;;2769:66;;;;-1:-1:-1;;;2769:66:0;;7658:2:1;2769:66:0;;;7640:21:1;;;7677:18;;;7670:30;7736:34;7716:18;;;7709:62;7788:18;;2769:66:0;7456:356:1;8080:453:0;8215:24;8242:25;8252:5;8259:7;8242:9;:25::i;:::-;8215:52;;-1:-1:-1;;8282:16:0;:37;8278:248;;8364:6;8344:16;:26;;8336:68;;;;-1:-1:-1;;;8336:68:0;;8019:2:1;8336:68:0;;;8001:21:1;8058:2;8038:18;;;8031:30;8097:31;8077:18;;;8070:59;8146:18;;8336:68:0;7817:353:1;8336:68:0;8448:51;8457:5;8464:7;8492:6;8473:16;:25;8448:8;:51::i;:::-;8204:329;8080:453;;;:::o;11957:1451::-;12089:16;;;;;;;;:35;;-1:-1:-1;2691:6:0;;-1:-1:-1;;;;;12109:15:0;;;2691:6;;12109:15;12089:35;12081:44;;;;;;12216:12;;12163:6;;-1:-1:-1;;;;;12200:29:0;;;12216:12;;12200:29;;:73;;-1:-1:-1;12260:12:0;;-1:-1:-1;;;;;12246:27:0;;;12260:12;;12246:27;12200:73;12182:184;;;12300:33;12316:4;12322:2;12326:6;12300:15;:33::i;12182:184::-;-1:-1:-1;;;;;12396:11:0;;;;;;:7;:11;;;;;;;;;:28;;-1:-1:-1;;;;;;12411:13:0;;;;;;:7;:13;;;;;;;;12396:28;12378:844;;;-1:-1:-1;;;;;12496:11:0;;12451:26;12496:11;;;:7;:11;;;;;;;;12492:141;;;-1:-1:-1;12549:4:0;12492:141;;;-1:-1:-1;12615:2:0;12492:141;12714:17;;:51;;-1:-1:-1;;;12714:51:0;;-1:-1:-1;;;;;2330:32:1;;;12714:51:0;;;2312::1;12650:28:0;;;;12714:17;;;:31;;2285:18:1;;12714:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12649:116;;;;12807:22;12784:20;:45;:76;;;-1:-1:-1;12833:27:0;;12784:76;12780:186;;;-1:-1:-1;12904:1:0;;-1:-1:-1;12904:1:0;12780:186;12982:17;13066:22;13049:14;;13026:20;13011:12;;13002:6;:21;;;;:::i;:::-;:44;;;;:::i;:::-;:61;;;;:::i;:::-;:86;;;;:::i;:::-;13135:12;;12982:106;;-1:-1:-1;13105:55:0;;13121:4;;-1:-1:-1;;;;;13135:12:0;12982:106;13105:15;:55::i;:::-;13192:18;13201:9;13192:6;:18;:::i;:::-;13175:35;;12436:786;;;;12378:844;13258:11;;-1:-1:-1;;;;;13258:11:0;;;13252:17;;;;13234:113;;13296:12;;:39;;-1:-1:-1;;;13296:39:0;;13329:4;13296:39;;;2312:51:1;-1:-1:-1;;;;;13296:12:0;;;;:24;;2285:18:1;;13296:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13234:113;13359:41;13375:4;13381:2;13385:14;13359:15;:41::i;3171:191::-;3264:6;;;-1:-1:-1;;;;;3281:17:0;;;-1:-1:-1;;;;;;3281:17:0;;;;;;;3314:40;;3264:6;;;3281:17;3264:6;;3314:40;;3245:16;;3314:40;3234:128;3171:191;:::o;6828:572::-;-1:-1:-1;;;;;6959:18:0;;6951:68;;;;-1:-1:-1;;;6951:68:0;;9022:2:1;6951:68:0;;;9004:21:1;9061:2;9041:18;;;9034:30;9100:34;9080:18;;;9073:62;-1:-1:-1;;;9151:18:1;;;9144:35;9196:19;;6951:68:0;8820:401:1;6951:68:0;-1:-1:-1;;;;;7038:16:0;;7030:64;;;;-1:-1:-1;;;7030:64:0;;9428:2:1;7030:64:0;;;9410:21:1;9467:2;9447:18;;;9440:30;9506:34;9486:18;;;9479:62;-1:-1:-1;;;9557:18:1;;;9550:33;9600:19;;7030:64:0;9226:399:1;7030:64:0;-1:-1:-1;;;;;7129:15:0;;7107:19;7129:15;;;;;;;;;;;7163:21;;;;7155:72;;;;-1:-1:-1;;;7155:72:0;;9832:2:1;7155:72:0;;;9814:21:1;9871:2;9851:18;;;9844:30;9910:34;9890:18;;;9883:62;-1:-1:-1;;;9961:18:1;;;9954:36;10007:19;;7155:72:0;9630:402:1;7155:72:0;-1:-1:-1;;;;;7263:15:0;;;:9;:15;;;;;;;;;;;7281:20;;;7263:38;;7325:13;;;;;;;;:23;;7295:6;;7263:9;7325:23;;7295:6;;7325:23;:::i;:::-;;;;;;;;7381:2;-1:-1:-1;;;;;7366:26:0;7375:4;-1:-1:-1;;;;;7366:26:0;;7385:6;7366:26;;;;1582:25:1;;1570:2;1555:18;;1436:177;7366:26:0;;;;;;;;6940:460;6828:572;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:597::-;495:4;524:2;553;542:9;535:21;585:6;579:13;628:6;623:2;612:9;608:18;601:34;653:1;663:140;677:6;674:1;671:13;663:140;;;772:14;;;768:23;;762:30;738:17;;;757:2;734:26;727:66;692:10;;663:140;;;821:6;818:1;815:13;812:91;;;891:1;886:2;877:6;866:9;862:22;858:31;851:42;812:91;-1:-1:-1;964:2:1;943:15;-1:-1:-1;;939:29:1;924:45;;;;971:2;920:54;;383:597;-1:-1:-1;;;383:597:1:o;985:254::-;1053:6;1061;1114:2;1102:9;1093:7;1089:23;1085:32;1082:52;;;1130:1;1127;1120:12;1082:52;1153:29;1172:9;1153:29;:::i;:::-;1143:39;1229:2;1214:18;;;;1201:32;;-1:-1:-1;;;985:254:1:o;1618:328::-;1695:6;1703;1711;1764:2;1752:9;1743:7;1739:23;1735:32;1732:52;;;1780:1;1777;1770:12;1732:52;1803:29;1822:9;1803:29;:::i;:::-;1793:39;;1851:38;1885:2;1874:9;1870:18;1851:38;:::i;:::-;1841:48;;1936:2;1925:9;1921:18;1908:32;1898:42;;1618:328;;;;;:::o;2811:180::-;2870:6;2923:2;2911:9;2902:7;2898:23;2894:32;2891:52;;;2939:1;2936;2929:12;2891:52;-1:-1:-1;2962:23:1;;2811:180;-1:-1:-1;2811:180:1:o;2996:118::-;3082:5;3075:13;3068:21;3061:5;3058:32;3048:60;;3104:1;3101;3094:12;3119:315;3184:6;3192;3245:2;3233:9;3224:7;3220:23;3216:32;3213:52;;;3261:1;3258;3251:12;3213:52;3284:29;3303:9;3284:29;:::i;:::-;3274:39;;3363:2;3352:9;3348:18;3335:32;3376:28;3398:5;3376:28;:::i;:::-;3423:5;3413:15;;;3119:315;;;;;:::o;3439:260::-;3507:6;3515;3568:2;3556:9;3547:7;3543:23;3539:32;3536:52;;;3584:1;3581;3574:12;3536:52;3607:29;3626:9;3607:29;:::i;:::-;3597:39;;3655:38;3689:2;3678:9;3674:18;3655:38;:::i;:::-;3645:48;;3439:260;;;;;:::o;3704:184::-;3774:6;3827:2;3815:9;3806:7;3802:23;3798:32;3795:52;;;3843:1;3840;3833:12;3795:52;-1:-1:-1;3866:16:1;;3704:184;-1:-1:-1;3704:184:1:o;4172:245::-;4239:6;4292:2;4280:9;4271:7;4267:23;4263:32;4260:52;;;4308:1;4305;4298:12;4260:52;4340:9;4334:16;4359:28;4381:5;4359:28;:::i;4422:380::-;4501:1;4497:12;;;;4544;;;4565:61;;4619:4;4611:6;4607:17;4597:27;;4565:61;4672:2;4664:6;4661:14;4641:18;4638:38;4635:161;;4718:10;4713:3;4709:20;4706:1;4699:31;4753:4;4750:1;4743:15;4781:4;4778:1;4771:15;4635:161;;4422:380;;;:::o;5017:127::-;5078:10;5073:3;5069:20;5066:1;5059:31;5109:4;5106:1;5099:15;5133:4;5130:1;5123:15;5149:128;5189:3;5220:1;5216:6;5213:1;5210:13;5207:39;;;5226:18;;:::i;:::-;-1:-1:-1;5262:9:1;;5149:128::o;5282:125::-;5322:4;5350:1;5347;5344:8;5341:34;;;5355:18;;:::i;:::-;-1:-1:-1;5392:9:1;;5282:125::o;5818:418::-;6020:2;6002:21;;;6059:2;6039:18;;;6032:30;6098:34;6093:2;6078:18;;6071:62;-1:-1:-1;;;6164:2:1;6149:18;;6142:52;6226:3;6211:19;;5818:418::o;8175:245::-;8254:6;8262;8315:2;8303:9;8294:7;8290:23;8286:32;8283:52;;;8331:1;8328;8321:12;8283:52;-1:-1:-1;;8354:16:1;;8410:2;8395:18;;;8389:25;8354:16;;8389:25;;-1:-1:-1;8175:245:1:o;8425:168::-;8465:7;8531:1;8527;8523:6;8519:14;8516:1;8513:21;8508:1;8501:9;8494:17;8490:45;8487:71;;;8538:18;;:::i;:::-;-1:-1:-1;8578:9:1;;8425:168::o;8598:217::-;8638:1;8664;8654:132;;8708:10;8703:3;8699:20;8696:1;8689:31;8743:4;8740:1;8733:15;8771:4;8768:1;8761:15;8654:132;-1:-1:-1;8800:9:1;;8598:217::o

Swarm Source

ipfs://e724fda02a14389d881290f45e17b029a5532648874c010089cd2d20bbdaaf2c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

X7 is designed to address the needs of four major quadrants within decentralized finance. The symbiotic nature of each segment in the X7 Finance ecosystem provides fluid insurance for lenders and mutual funding for all other market participants.

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.