ETH Price: $3,365.80 (+0.10%)

Contract

0x2cF567689f24E9926fa847E8C3F6DcAB62844d1C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Hodlr V2Ac...199062072024-05-19 19:56:11242 days ago1716148571IN
0x2cF56768...B62844d1C
0.01 ETH0.000623592.87336009
Claim Hodlr V2Ac...167817402023-03-08 6:24:47680 days ago1678256687IN
0x2cF56768...B62844d1C
0.01 ETH0.0044154922.08553527
Claim Hodlr V2Ac...165416722023-02-02 14:20:35714 days ago1675347635IN
0x2cF56768...B62844d1C
0.01 ETH0.007362431.44044441
Claim Hodlr V2Ac...160852082022-11-30 20:32:59778 days ago1669840379IN
0x2cF56768...B62844d1C
0.01 ETH0.0023597112.90326923
Claim Hodlr V2Ac...157456272022-10-14 10:03:35825 days ago1665741815IN
0x2cF56768...B62844d1C
0.01 ETH0.0036849916.97608825
Claim Hodlr V2Ac...155642662022-09-19 1:23:11851 days ago1663550591IN
0x2cF56768...B62844d1C
0.01 ETH0.001299115.98478156
Claim Hodlr V2Ac...154838922022-09-06 11:52:12863 days ago1662465132IN
0x2cF56768...B62844d1C
0.01 ETH0.001885458.68765528
Claim Hodlr V2Ac...153801932022-08-20 22:15:33880 days ago1661033733IN
0x2cF56768...B62844d1C
0.01 ETH0.0021333310.67056201
Claim Hodlr V2Ac...153680692022-08-19 0:01:32882 days ago1660867292IN
0x2cF56768...B62844d1C
0.01 ETH0.0049424321.10620064
Claim Hodlr V2Ac...153667472022-08-18 19:11:49882 days ago1660849909IN
0x2cF56768...B62844d1C
0.01 ETH0.005568421.48553698
Claim Hodlr V2Ac...153163782022-08-10 20:07:45890 days ago1660162065IN
0x2cF56768...B62844d1C
0.01 ETH0.0064044727.64483863
Claim Hodlr V2Ac...152912992022-08-06 21:56:58894 days ago1659823018IN
0x2cF56768...B62844d1C
0.01 ETH0.0031089713.41985844
Claim Hodlr V2Ac...152413252022-07-30 3:07:27902 days ago1659150447IN
0x2cF56768...B62844d1C
0.01 ETH0.001949098.41325319
Claim Hodlr V2Ac...152410342022-07-30 2:03:23902 days ago1659146603IN
0x2cF56768...B62844d1C
0.01 ETH0.0029103213.56353369
Claim Hodlr V2Ac...152227462022-07-27 6:02:59904 days ago1658901779IN
0x2cF56768...B62844d1C
0.01 ETH0.002068959.64428374
Claim Hodlr V2Ac...152081872022-07-24 23:09:11907 days ago1658704151IN
0x2cF56768...B62844d1C
0.01 ETH0.0031448314.46764261
Claim Hodlr V2Ac...152030872022-07-24 4:09:38907 days ago1658635778IN
0x2cF56768...B62844d1C
0.01 ETH0.0031366114.61815953
Claim Hodlr V2Ac...151770622022-07-20 3:11:55912 days ago1658286715IN
0x2cF56768...B62844d1C
0.01 ETH0.0028406713.23893622
Claim Hodlr V2Ac...151684762022-07-18 19:21:44913 days ago1658172104IN
0x2cF56768...B62844d1C
0.01 ETH0.0119850751.73337425
Claim Hodlr V2Ac...151385422022-07-14 4:24:52917 days ago1657772692IN
0x2cF56768...B62844d1C
0.01 ETH0.0032443815.12041548
Claim Hodlr V2Ac...151177762022-07-10 23:16:58921 days ago1657495018IN
0x2cF56768...B62844d1C
0.01 ETH0.0029999413.98118944
Claim Hodlr V2Ac...151160852022-07-10 16:53:59921 days ago1657472039IN
0x2cF56768...B62844d1C
0.01 ETH0.0040411117.23512513
Claim Hodlr V2Ac...150987552022-07-08 0:45:04924 days ago1657241104IN
0x2cF56768...B62844d1C
0.01 ETH0.0056517724.39580491
Claim Hodlr V2Ac...150955352022-07-07 12:46:19924 days ago1657197979IN
0x2cF56768...B62844d1C
0.01 ETH0.0030093314.02774761
Claim Hodlr V2Ac...150896882022-07-06 15:12:39925 days ago1657120359IN
0x2cF56768...B62844d1C
0.01 ETH0.0062261726.554238
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
199062072024-05-19 19:56:11242 days ago1716148571
0x2cF56768...B62844d1C
0.01 ETH
167817402023-03-08 6:24:47680 days ago1678256687
0x2cF56768...B62844d1C
0.01 ETH
165416722023-02-02 14:20:35714 days ago1675347635
0x2cF56768...B62844d1C
0.01 ETH
160852082022-11-30 20:32:59778 days ago1669840379
0x2cF56768...B62844d1C
0.01 ETH
157456272022-10-14 10:03:35825 days ago1665741815
0x2cF56768...B62844d1C
0.01 ETH
155642662022-09-19 1:23:11851 days ago1663550591
0x2cF56768...B62844d1C
0.01 ETH
154838922022-09-06 11:52:12863 days ago1662465132
0x2cF56768...B62844d1C
0.01 ETH
153801932022-08-20 22:15:33880 days ago1661033733
0x2cF56768...B62844d1C
0.01 ETH
153680692022-08-19 0:01:32882 days ago1660867292
0x2cF56768...B62844d1C
0.01 ETH
153667472022-08-18 19:11:49882 days ago1660849909
0x2cF56768...B62844d1C
0.01 ETH
153163782022-08-10 20:07:45890 days ago1660162065
0x2cF56768...B62844d1C
0.01 ETH
152912992022-08-06 21:56:58894 days ago1659823018
0x2cF56768...B62844d1C
0.01 ETH
152413252022-07-30 3:07:27902 days ago1659150447
0x2cF56768...B62844d1C
0.01 ETH
152410342022-07-30 2:03:23902 days ago1659146603
0x2cF56768...B62844d1C
0.01 ETH
152227462022-07-27 6:02:59904 days ago1658901779
0x2cF56768...B62844d1C
0.01 ETH
152081872022-07-24 23:09:11907 days ago1658704151
0x2cF56768...B62844d1C
0.01 ETH
152030872022-07-24 4:09:38907 days ago1658635778
0x2cF56768...B62844d1C
0.01 ETH
151770622022-07-20 3:11:55912 days ago1658286715
0x2cF56768...B62844d1C
0.01 ETH
151684762022-07-18 19:21:44913 days ago1658172104
0x2cF56768...B62844d1C
0.01 ETH
151385422022-07-14 4:24:52917 days ago1657772692
0x2cF56768...B62844d1C
0.01 ETH
151177762022-07-10 23:16:58921 days ago1657495018
0x2cF56768...B62844d1C
0.01 ETH
151160852022-07-10 16:53:59921 days ago1657472039
0x2cF56768...B62844d1C
0.01 ETH
150987552022-07-08 0:45:04924 days ago1657241104
0x2cF56768...B62844d1C
0.01 ETH
150955352022-07-07 12:46:19924 days ago1657197979
0x2cF56768...B62844d1C
0.01 ETH
150896882022-07-06 15:12:39925 days ago1657120359
0x2cF56768...B62844d1C
0.01 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HodlrV2Achievement

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-07-05
*/

// Copyright (c) 2022 EverRise Pte Ltd. All rights reserved.
// EverRise licenses this file to you under the MIT license.

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

// Copyright (c) 2022 EverRise Pte Ltd. All rights reserved.
// EverRise licenses this file to you under the MIT license.

error NotZeroAddress();    // 0x66385fa3
error CallerNotApproved(); // 0x4014f1a5
error InvalidAddress();    // 0xe6c4247b

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
}

interface IOwnable {
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function owner() external view returns (address);
    function transferOwnership(address newOwner) external;
}

error CallerNotOwner();
error UseEverOwn();

contract Ownable is IOwnable, Context {
    address public owner;

    function _onlyOwner() private view {
        if (owner != _msgSender()) revert CallerNotOwner();
    }

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

    constructor() {
        address msgSender = _msgSender();
        owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    // Allow contract ownership and access to contract onlyOwner functions
    // to be locked using EverOwn with control gated by community vote.
    //
    // EverRise ($RISE) stakers become voting members of the
    // decentralized autonomous organization (DAO) that controls access
    // to the token contract via the EverRise Ecosystem dApp EverOwn
    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner == address(0)) revert NotZeroAddress();

        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}
// Copyright (c) 2022 EverRise Pte Ltd. All rights reserved.
// EverRise licenses this file to you under the MIT license.

error FailedEthSend();

contract NativeCoinSender {
    function sendEthViaCall(address payable to, uint256 amount) internal {
        (bool sent, ) = to.call{value: amount}("");
        if (!sent) revert FailedEthSend();
    }
}
// Copyright (c) 2022 EverRise Pte Ltd. All rights reserved.
// EverRise licenses this file to you under the MIT license.

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 recipient, 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 sender, address recipient, uint256 amount) external returns (bool);
    function transferFromWithPermit(address sender, address recipient, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) 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);
}

struct ApprovalChecks {
    // Prevent permits being reused (IERC2612)
    uint64 nonce;
    // Allow revoke all spenders/operators approvals in single txn
    uint32 nftCheck;
    uint32 tokenCheck;
    // Allow auto timeout on approvals
    uint16 autoRevokeNftHours;
    uint16 autoRevokeTokenHours;
    // Allow full wallet locking of all transfers
    uint48 unlockTimestamp;
}

struct Allowance {
    uint128 tokenAmount;
    uint32 nftCheck;
    uint32 tokenCheck;
    uint48 timestamp;
    uint8 nftApproval;
    uint8 tokenApproval;
}

interface IEverRise is IERC20Metadata {
    function totalBuyVolume() external view returns (uint256);
    function totalSellVolume() external view returns (uint256);
    function holders() external view returns (uint256);
    function uniswapV2Pair() external view returns (address);
    function transferStake(address fromAddress, address toAddress, uint96 amountToTransfer) external;
    function isWalletLocked(address fromAddress) external view returns (bool);
    function setApprovalForAll(address fromAddress, address operator, bool approved) external;
    function isApprovedForAll(address account, address operator) external view returns (bool);
    function isExcludedFromFee(address account) external view returns (bool);

    function approvals(address operator) external view returns (ApprovalChecks memory);
}
// Copyright (c) 2022 EverRise Pte Ltd. All rights reserved.
// EverRise licenses this file to you under the MIT license.

interface IMementoRise is IOwnable {
    function royaltyAddress() external view returns(address payable);
    function mint(address to, uint256 tokenId, uint256 amount) external;
    function mintFee(uint16 typeId) external returns (uint256);
    function setBaseUriForType(uint16 nftType, string calldata baseUri) external;
    function setAllowedCreateFrom(uint16 nftType, address contractAddress) external;
    function setAllowedCreateTo(uint16 nftType, address contractAddress) external;
    function setAllowedTransumtateSingleTo(uint16 nftType, address contractAddress) external;
    function setAllowedTransumtateMultipleTo(uint16 nftType, address contractAddress) external;
}

abstract contract MementoRecipe is NativeCoinSender, Ownable {
    IMementoRise public mementoRise = IMementoRise(0x1C57a5eE9C5A90C9a5e31B5265175e0642b943b1);
    IEverRise public everRiseToken = IEverRise(0xC17c30e98541188614dF99239cABD40280810cA3);

    event EverRiseTokenSet(address indexed tokenAddress);
    event MementoRiseSet(address indexed nftAddress);
    
    modifier onlyMementoRise() {
        require(_msgSender() == address(mementoRise), "Invalid requestor");
        _;
    }

    function setEverRiseToken(address tokenAddress) external onlyOwner {
        if (tokenAddress == address(0)) revert NotZeroAddress();
        
        everRiseToken = IEverRise(tokenAddress);

        emit EverRiseTokenSet(tokenAddress);
    }

    function setMementoRise(address nftAddress) public onlyOwner {
        if (nftAddress == address(0)) revert NotZeroAddress();

        mementoRise = IMementoRise(nftAddress);

        emit MementoRiseSet(nftAddress);
    }

    function krakenMintFee(uint256 baseFee, uint256 quantity) internal {
        distributeMintFee(payable(address(everRiseToken)), baseFee, quantity);
    }

    function handleMintFee(uint256 baseFee, uint256 quantity) internal {
        distributeMintFee(mementoRise.royaltyAddress(), baseFee, quantity);
    }

    function distributeMintFee(address payable receiver, uint256 baseFee, uint256 quantity) private {
        uint256 _mintFee = baseFee * quantity;
        require(_mintFee == 0 || msg.value >= _mintFee, "Mint fee not covered");

        uint256 _balance = address(this).balance;
        if (_balance > 0) {
            // Transfer everything, easier than transferring extras later
            sendEthViaCall(receiver, _balance);
        }
    }
}

address constant EverRiseV3Address = 0xC17c30e98541188614dF99239cABD40280810cA3;
address constant EverRiseV2Address = 0x0cD022ddE27169b20895e0e2B2B8A33B25e63579;
address constant EverRiseV2Address_AVAX = 0xC3A8d300333BFfE3ddF6166F2Bc84E6d38351BED;
address constant riseFeeAddress = 0x0BFc8f6374028f1a61Ae3019E5C845F461575381;

contract HodlrV2Achievement is MementoRecipe {
    IERC20 immutable public everRiseV2;
    IEverRise immutable public everRiseV3 = IEverRise(EverRiseV3Address);
    mapping (address => bool) public processedClaim;
    uint256 tokenId;
    uint256 riseFee = 1000 * 10**18;
    event RiseFeeUpdated(uint256 riseFee);

    constructor() {
        everRiseV2 = block.chainid == 43114 ? 
            IERC20(EverRiseV2Address_AVAX) :
            IERC20(EverRiseV2Address);
        tokenId = 3 + (getChain() << 16);
        
        transferOwnership(mementoRise.owner());
    }

    function claimHodlrV2Achievement()
        external payable
    {
        address account = _msgSender();

        require(everRiseV2.balanceOf(account) > 0, "Not holding RISE v2");
        require(!processedClaim[account], "Already claimed");

        processedClaim[account] = true;
        everRiseV3.transferFrom(account, riseFeeAddress, riseFee);
        handleMintFee(mementoRise.mintFee(uint16(tokenId & 0xffff)), 1);
        mementoRise.mint(account, tokenId, 1);
    }

    function setRiseFee(uint256 riseAmount) external onlyOwner {
        riseFee = riseAmount;
        emit RiseFeeUpdated(riseFee);
    }

    function getRiseFee() external view returns (uint256 _riseFee){
        return riseFee;
    }

    function hasClaimed(address _account) public view returns (bool canClaim, bool claimed){
        claimed = processedClaim[_account];
        uint256 balance = everRiseV2.balanceOf(_account);
        return (balance > 0, claimed);
    }

    function getChain() private view returns (uint256) {
        uint256 chainId = block.chainid;
        if (chainId == 1 || chainId == 3 || chainId == 4 || chainId == 5 || chainId == 42) // Ethereum 
            return 4;
        if (chainId == 56 || chainId == 97) // BNB
            return 2;
        if (chainId == 137 || chainId == 80001) // Polygon
            return 3;
        if (chainId == 250 || chainId == 4002) // Fantom 
            return 1;
        if (chainId == 43114 || chainId == 43113) // Avalanche
            return 0;

      require(false, "Unknown chain");
      return 0;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallerNotOwner","type":"error"},{"inputs":[],"name":"FailedEthSend","type":"error"},{"inputs":[],"name":"NotZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"}],"name":"EverRiseTokenSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftAddress","type":"address"}],"name":"MementoRiseSet","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":false,"internalType":"uint256","name":"riseFee","type":"uint256"}],"name":"RiseFeeUpdated","type":"event"},{"inputs":[],"name":"claimHodlrV2Achievement","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"everRiseToken","outputs":[{"internalType":"contract IEverRise","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"everRiseV2","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"everRiseV3","outputs":[{"internalType":"contract IEverRise","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiseFee","outputs":[{"internalType":"uint256","name":"_riseFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"hasClaimed","outputs":[{"internalType":"bool","name":"canClaim","type":"bool"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mementoRise","outputs":[{"internalType":"contract IMementoRise","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"processedClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"setEverRiseToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"}],"name":"setMementoRise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riseAmount","type":"uint256"}],"name":"setRiseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260018054731c57a5ee9c5a90c9a5e31b5265175e0642b943b16001600160a01b0319918216179091556002805473c17c30e98541188614df99239cabd40280810ca392168217905560a052683635c9adc5dea000006005553480156200006957600080fd5b50600080546001600160a01b0319163390811782556040519091829160008051602062000e8e833981519152908290a3504661a86a14620000bf57730cd022dde27169b20895e0e2b2b8a33b25e63579620000d5565b73c3a8d300333bffe3ddf6166f2bc84e6d38351bed5b6001600160a01b03166080526010620000ed6200017f565b620000fb911b600362000327565b600490815560015460408051638da5cb5b60e01b8152905162000179936001600160a01b0390931692638da5cb5b928082019260209290918290030181865afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017391906200034e565b6200027d565b62000380565b6000466001811480620001925750806003145b806200019e5750806004145b80620001aa5750806005145b80620001b6575080602a145b15620001c457600491505090565b8060381480620001d45750806061145b15620001e257600291505090565b8060891480620001f457508062013881145b156200020257600391505090565b8060fa148062000213575080610fa2145b156200022157600191505090565b8061a86a14806200023357508061a869145b156200024157600091505090565b60405162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb71031b430b4b760991b604482015260640160405180910390fd5b62000287620002f9565b6001600160a01b038116620002af576040516366385fa360e01b815260040160405180910390fd5b600080546040516001600160a01b038085169392169160008051602062000e8e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146200032557604051632e6c18c960e11b815260040160405180910390fd5b565b600082198211156200034957634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200036157600080fd5b81516001600160a01b03811681146200037957600080fd5b9392505050565b60805160a051610ad3620003bb6000396000818161019601526106460152600081816102490152818161043b01526104da0152610ad36000f3fe6080604052600436106100c25760003560e01c806373b2e80e1161007f57806396da7ed81161005957806396da7ed81461022f578063ccc87d4914610237578063f2fde38b1461026b578063f7c106ba1461028b57600080fd5b806373b2e80e146101b85780638116ed72146101ef5780638da5cb5b1461020f57600080fd5b806301e089dd146100c757806333a19e2f146101045780633d8c13471461012657806355e6a2c5146101445780635718f41a14610164578063634288c814610184575b600080fd5b3480156100d357600080fd5b506001546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011057600080fd5b5061012461011f3660046109db565b6102cb565b005b34801561013257600080fd5b506005546040519081526020016100fb565b34801561015057600080fd5b5061012461015f3660046109ff565b610344565b34801561017057600080fd5b5061012461017f3660046109db565b610387565b34801561019057600080fd5b506100e77f000000000000000000000000000000000000000000000000000000000000000081565b3480156101c457600080fd5b506101d86101d33660046109db565b610400565b6040805192151583529015156020830152016100fb565b3480156101fb57600080fd5b506002546100e7906001600160a01b031681565b34801561021b57600080fd5b506000546100e7906001600160a01b031681565b6101246104b2565b34801561024357600080fd5b506100e77f000000000000000000000000000000000000000000000000000000000000000081565b34801561027757600080fd5b506101246102863660046109db565b6107af565b34801561029757600080fd5b506102bb6102a63660046109db565b60036020526000908152604090205460ff1681565b60405190151581526020016100fb565b6102d3610839565b6001600160a01b0381166102fa576040516366385fa360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f047bb057cb56af8c7f8b85dbf04218832f6163ba1d8f03b944083b01f977a88290600090a250565b61034c610839565b60058190556040518181527fcc3b4df03121fd7d03f137487c7b393a4b9f2eb81534750e0028211bd3d5d1119060200160405180910390a150565b61038f610839565b6001600160a01b0381166103b6576040516366385fa360e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f151b7e66bd44c3b053284cb5cc54c216555683d266fbd4518b9dc513064be66d90600090a250565b6001600160a01b038181166000818152600360205260408082205490516370a0823160e01b81526004810193909352909260ff9091169183917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a69190610a18565b15159491935090915050565b6000336040516370a0823160e01b81526001600160a01b0380831660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190610a18565b1161058d5760405162461bcd60e51b81526020600482015260136024820152722737ba103437b63234b733902924a9a2903b1960691b60448201526064015b60405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff16156105e85760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b6044820152606401610584565b6001600160a01b0381811660008181526003602052604090819020805460ff1916600117905560055490516323b872dd60e01b81526004810192909252730bfc8f6374028f1a61ae3019e5c845f461575381602483015260448201527f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303816000875af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190610a31565b5060015460048054604051632a24bf8560e11b815261ffff90911691810191909152610738916001600160a01b0316906354497f0a906024016020604051808303816000875af115801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190610a18565b6001610866565b6001805460048054604051630ab714fb60e11b81526001600160a01b038681169382019390935260248101919091526044810193909352169063156e29f690606401600060405180830381600087803b15801561079457600080fd5b505af11580156107a8573d6000803e3d6000fd5b5050505050565b6107b7610839565b6001600160a01b0381166107de576040516366385fa360e01b815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461086457604051632e6c18c960e11b815260040160405180910390fd5b565b60015460408051635697c29560e11b815290516108dc926001600160a01b03169163ad2f852a9160048083019260209291908290030181865afa1580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d59190610a53565b83836108e0565b5050565b60006108ec8284610a70565b90508015806108fb5750803410155b61093e5760405162461bcd60e51b8152602060048201526014602482015273135a5b9d08199959481b9bdd0818dbdd995c995960621b6044820152606401610584565b4780156107a8576107a885826000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610997576040519150601f19603f3d011682016040523d82523d6000602084013e61099c565b606091505b50509050806109be5760405163b5747cc760e01b815260040160405180910390fd5b505050565b6001600160a01b03811681146109d857600080fd5b50565b6000602082840312156109ed57600080fd5b81356109f8816109c3565b9392505050565b600060208284031215610a1157600080fd5b5035919050565b600060208284031215610a2a57600080fd5b5051919050565b600060208284031215610a4357600080fd5b815180151581146109f857600080fd5b600060208284031215610a6557600080fd5b81516109f8816109c3565b6000816000190483118215151615610a9857634e487b7160e01b600052601160045260246000fd5b50029056fea26469706673582212202320c0a0cf235915f2f2eadaff4f443e512d9cc687efe1e07423b649e1e0e7fe64736f6c634300080f00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106100c25760003560e01c806373b2e80e1161007f57806396da7ed81161005957806396da7ed81461022f578063ccc87d4914610237578063f2fde38b1461026b578063f7c106ba1461028b57600080fd5b806373b2e80e146101b85780638116ed72146101ef5780638da5cb5b1461020f57600080fd5b806301e089dd146100c757806333a19e2f146101045780633d8c13471461012657806355e6a2c5146101445780635718f41a14610164578063634288c814610184575b600080fd5b3480156100d357600080fd5b506001546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011057600080fd5b5061012461011f3660046109db565b6102cb565b005b34801561013257600080fd5b506005546040519081526020016100fb565b34801561015057600080fd5b5061012461015f3660046109ff565b610344565b34801561017057600080fd5b5061012461017f3660046109db565b610387565b34801561019057600080fd5b506100e77f000000000000000000000000c17c30e98541188614df99239cabd40280810ca381565b3480156101c457600080fd5b506101d86101d33660046109db565b610400565b6040805192151583529015156020830152016100fb565b3480156101fb57600080fd5b506002546100e7906001600160a01b031681565b34801561021b57600080fd5b506000546100e7906001600160a01b031681565b6101246104b2565b34801561024357600080fd5b506100e77f0000000000000000000000000cd022dde27169b20895e0e2b2b8a33b25e6357981565b34801561027757600080fd5b506101246102863660046109db565b6107af565b34801561029757600080fd5b506102bb6102a63660046109db565b60036020526000908152604090205460ff1681565b60405190151581526020016100fb565b6102d3610839565b6001600160a01b0381166102fa576040516366385fa360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f047bb057cb56af8c7f8b85dbf04218832f6163ba1d8f03b944083b01f977a88290600090a250565b61034c610839565b60058190556040518181527fcc3b4df03121fd7d03f137487c7b393a4b9f2eb81534750e0028211bd3d5d1119060200160405180910390a150565b61038f610839565b6001600160a01b0381166103b6576040516366385fa360e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f151b7e66bd44c3b053284cb5cc54c216555683d266fbd4518b9dc513064be66d90600090a250565b6001600160a01b038181166000818152600360205260408082205490516370a0823160e01b81526004810193909352909260ff9091169183917f0000000000000000000000000cd022dde27169b20895e0e2b2b8a33b25e6357916906370a0823190602401602060405180830381865afa158015610482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a69190610a18565b15159491935090915050565b6000336040516370a0823160e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000cd022dde27169b20895e0e2b2b8a33b25e6357916906370a0823190602401602060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190610a18565b1161058d5760405162461bcd60e51b81526020600482015260136024820152722737ba103437b63234b733902924a9a2903b1960691b60448201526064015b60405180910390fd5b6001600160a01b03811660009081526003602052604090205460ff16156105e85760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b6044820152606401610584565b6001600160a01b0381811660008181526003602052604090819020805460ff1916600117905560055490516323b872dd60e01b81526004810192909252730bfc8f6374028f1a61ae3019e5c845f461575381602483015260448201527f000000000000000000000000c17c30e98541188614df99239cabd40280810ca3909116906323b872dd906064016020604051808303816000875af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190610a31565b5060015460048054604051632a24bf8560e11b815261ffff90911691810191909152610738916001600160a01b0316906354497f0a906024016020604051808303816000875af115801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190610a18565b6001610866565b6001805460048054604051630ab714fb60e11b81526001600160a01b038681169382019390935260248101919091526044810193909352169063156e29f690606401600060405180830381600087803b15801561079457600080fd5b505af11580156107a8573d6000803e3d6000fd5b5050505050565b6107b7610839565b6001600160a01b0381166107de576040516366385fa360e01b815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461086457604051632e6c18c960e11b815260040160405180910390fd5b565b60015460408051635697c29560e11b815290516108dc926001600160a01b03169163ad2f852a9160048083019260209291908290030181865afa1580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d59190610a53565b83836108e0565b5050565b60006108ec8284610a70565b90508015806108fb5750803410155b61093e5760405162461bcd60e51b8152602060048201526014602482015273135a5b9d08199959481b9bdd0818dbdd995c995960621b6044820152606401610584565b4780156107a8576107a885826000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610997576040519150601f19603f3d011682016040523d82523d6000602084013e61099c565b606091505b50509050806109be5760405163b5747cc760e01b815260040160405180910390fd5b505050565b6001600160a01b03811681146109d857600080fd5b50565b6000602082840312156109ed57600080fd5b81356109f8816109c3565b9392505050565b600060208284031215610a1157600080fd5b5035919050565b600060208284031215610a2a57600080fd5b5051919050565b600060208284031215610a4357600080fd5b815180151581146109f857600080fd5b600060208284031215610a6557600080fd5b81516109f8816109c3565b6000816000190483118215151615610a9857634e487b7160e01b600052601160045260246000fd5b50029056fea26469706673582212202320c0a0cf235915f2f2eadaff4f443e512d9cc687efe1e07423b649e1e0e7fe64736f6c634300080f0033

Deployed Bytecode Sourcemap

7773:2204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5723:90;;;;;;;;;;-1:-1:-1;5723:90:0;;;;-1:-1:-1;;;;;5723:90:0;;;;;;-1:-1:-1;;;;;198:32:1;;;180:51;;168:2;153:18;5723:90:0;;;;;;;;6424:228;;;;;;;;;;-1:-1:-1;6424:228:0;;;;;:::i;:::-;;:::i;:::-;;9009:95;;;;;;;;;;-1:-1:-1;9089:7:0;;9009:95;;776:25:1;;;764:2;749:18;9009:95:0;630:177:1;8864:137:0;;;;;;;;;;-1:-1:-1;8864:137:0;;;;;:::i;:::-;;:::i;6167:249::-;;;;;;;;;;-1:-1:-1;6167:249:0;;;;;:::i;:::-;;:::i;7866:68::-;;;;;;;;;;;;;;;9112:239;;;;;;;;;;-1:-1:-1;9112:239:0;;;;;:::i;:::-;;:::i;:::-;;;;1409:14:1;;1402:22;1384:41;;1468:14;;1461:22;1456:2;1441:18;;1434:50;1357:18;9112:239:0;1222:268:1;5820:86:0;;;;;;;;;;-1:-1:-1;5820:86:0;;;;-1:-1:-1;;;;;5820:86:0;;;922:20;;;;;;;;;;-1:-1:-1;922:20:0;;;;-1:-1:-1;;;;;922:20:0;;;8367:489;;;:::i;7825:34::-;;;;;;;;;;;;;;;1657:214;;;;;;;;;;-1:-1:-1;1657:214:0;;;;;:::i;:::-;;:::i;7941:47::-;;;;;;;;;;-1:-1:-1;7941:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2090:14:1;;2083:22;2065:41;;2053:2;2038:18;7941:47:0;1925:187:1;6424:228:0;1095:12;:10;:12::i;:::-;-1:-1:-1;;;;;6500:24:0;::::1;6496:53;;6533:16;;-1:-1:-1::0;;;6533:16:0::1;;;;;;;;;;;6496:53;6562:11;:38:::0;;-1:-1:-1;;;;;;6562:38:0::1;-1:-1:-1::0;;;;;6562:38:0;::::1;::::0;;::::1;::::0;;;6618:26:::1;::::0;::::1;::::0;-1:-1:-1;;6618:26:0::1;6424:228:::0;:::o;8864:137::-;1095:12;:10;:12::i;:::-;8934:7:::1;:20:::0;;;8970:23:::1;::::0;776:25:1;;;8970:23:0::1;::::0;764:2:1;749:18;8970:23:0::1;;;;;;;8864:137:::0;:::o;6167:249::-;1095:12;:10;:12::i;:::-;-1:-1:-1;;;;;6249:26:0;::::1;6245:55;;6284:16;;-1:-1:-1::0;;;6284:16:0::1;;;;;;;;;;;6245:55;6321:13;:39:::0;;-1:-1:-1;;;;;;6321:39:0::1;-1:-1:-1::0;;;;;6321:39:0;::::1;::::0;;::::1;::::0;;;6378:30:::1;::::0;::::1;::::0;-1:-1:-1;;6378:30:0::1;6167:249:::0;:::o;9112:239::-;-1:-1:-1;;;;;9220:24:0;;;9171:13;9220:24;;;:14;:24;;;;;;;9273:30;;-1:-1:-1;;;9273:30:0;;;;;180:51:1;;;;9171:13:0;;9220:24;;;;;9171:13;;9273:10;:20;;;;153:18:1;;9273:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9322:11;;;9112:239;;-1:-1:-1;9112:239:0;;-1:-1:-1;;9112:239:0:o;8367:489::-;8444:15;571:10;8495:29;;-1:-1:-1;;;8495:29:0;;-1:-1:-1;;;;;198:32:1;;;8495:29:0;;;180:51:1;8444:30:0;;-1:-1:-1;8527:1:0;;8495:10;:20;;;;153:18:1;;8495:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;8487:65;;;;-1:-1:-1;;;8487:65:0;;2508:2:1;8487:65:0;;;2490:21:1;2547:2;2527:18;;;2520:30;-1:-1:-1;;;2566:18:1;;;2559:49;2625:18;;8487:65:0;;;;;;;;;-1:-1:-1;;;;;8572:23:0;;;;;;:14;:23;;;;;;;;8571:24;8563:52;;;;-1:-1:-1;;;8563:52:0;;2856:2:1;8563:52:0;;;2838:21:1;2895:2;2875:18;;;2868:30;-1:-1:-1;;;2914:18:1;;;2907:45;2969:18;;8563:52:0;2654:339:1;8563:52:0;-1:-1:-1;;;;;8628:23:0;;;;;;;:14;:23;;;;;;;:30;;-1:-1:-1;;8628:30:0;8654:4;8628:30;;;8718:7;;8669:57;;-1:-1:-1;;;8669:57:0;;;;;3238:34:1;;;;7726:42:0;3288:18:1;;;3281:43;3340:18;;;3333:34;8669:10:0;:23;;;;;;3173:18:1;;8669:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8751:11:0;;8778:7;;;8751:45;;-1:-1:-1;;;8751:45:0;;8788:6;8778:16;;;8751:45;;;3804:38:1;;;;8737:63:0;;-1:-1:-1;;;;;8751:11:0;;:19;;3777:18:1;;8751:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8798:1;8737:13;:63::i;:::-;8811:11;;;8837:7;;;8811:37;;-1:-1:-1;;;8811:37:0;;-1:-1:-1;;;;;4081:32:1;;;8811:37:0;;;4063:51:1;;;;4130:18;;;4123:34;;;;4173:18;;;4166:34;;;;8811:11:0;;:16;;4036:18:1;;8811:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8433:423;8367:489::o;1657:214::-;1095:12;:10;:12::i;:::-;-1:-1:-1;;;;;1734:22:0;::::1;1730:51;;1765:16;;-1:-1:-1::0;;;1765:16:0::1;;;;;;;;;;;1730:51;1820:5;::::0;;1799:37:::1;::::0;-1:-1:-1;;;;;1799:37:0;;::::1;::::0;1820:5;::::1;::::0;1799:37:::1;::::0;::::1;1847:5;:16:::0;;-1:-1:-1;;;;;;1847:16:0::1;-1:-1:-1::0;;;;;1847:16:0;;;::::1;::::0;;;::::1;::::0;;1657:214::o;951:104::-;1001:5;;-1:-1:-1;;;;;1001:5:0;571:10;1001:21;997:50;;1031:16;;-1:-1:-1;;;1031:16:0;;;;;;;;;;;997:50;951:104::o;6823:152::-;6919:11;;:28;;;-1:-1:-1;;;6919:28:0;;;;6901:66;;-1:-1:-1;;;;;6919:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6949:7;6958:8;6901:17;:66::i;:::-;6823:152;;:::o;6983:451::-;7090:16;7109:18;7119:8;7109:7;:18;:::i;:::-;7090:37;-1:-1:-1;7146:13:0;;;:38;;;7176:8;7163:9;:21;;7146:38;7138:71;;;;-1:-1:-1;;;7138:71:0;;4947:2:1;7138:71:0;;;4929:21:1;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:1;;;4998:50;5065:18;;7138:71:0;4745:344:1;7138:71:0;7241:21;7277:12;;7273:154;;7381:34;7396:8;7406;2142:9;2157:2;-1:-1:-1;;;;;2157:7:0;2172:6;2157:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2141:42;;;2199:4;2194:33;;2212:15;;-1:-1:-1;;;2212:15:0;;;;;;;;;;;2194:33;2130:105;2061:174;;:::o;242:131:1:-;-1:-1:-1;;;;;317:31:1;;307:42;;297:70;;363:1;360;353:12;297:70;242:131;:::o;378:247::-;437:6;490:2;478:9;469:7;465:23;461:32;458:52;;;506:1;503;496:12;458:52;545:9;532:23;564:31;589:5;564:31;:::i;:::-;614:5;378:247;-1:-1:-1;;;378:247:1:o;812:180::-;871:6;924:2;912:9;903:7;899:23;895:32;892:52;;;940:1;937;930:12;892:52;-1:-1:-1;963:23:1;;812:180;-1:-1:-1;812:180:1:o;2117:184::-;2187:6;2240:2;2228:9;2219:7;2215:23;2211:32;2208:52;;;2256:1;2253;2246:12;2208:52;-1:-1:-1;2279:16:1;;2117:184;-1:-1:-1;2117:184:1:o;3378:277::-;3445:6;3498:2;3486:9;3477:7;3473:23;3469:32;3466:52;;;3514:1;3511;3504:12;3466:52;3546:9;3540:16;3599:5;3592:13;3585:21;3578:5;3575:32;3565:60;;3621:1;3618;3611:12;4211:259;4289:6;4342:2;4330:9;4321:7;4317:23;4313:32;4310:52;;;4358:1;4355;4348:12;4310:52;4390:9;4384:16;4409:31;4434:5;4409:31;:::i;4475:265::-;4515:7;4581:1;4577;4573:6;4569:14;4566:1;4563:21;4558:1;4551:9;4544:17;4540:45;4537:168;;;4627:10;4622:3;4618:20;4615:1;4608:31;4662:4;4659:1;4652:15;4690:4;4687:1;4680:15;4537:168;-1:-1:-1;4725:9:1;;4475:265::o

Swarm Source

ipfs://2320c0a0cf235915f2f2eadaff4f443e512d9cc687efe1e07423b649e1e0e7fe

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.