ETH Price: $3,224.61 (-0.93%)
Gas: 15 Gwei

Contract

0xd100Be9Db3a52F08932F7eADC05Da7c844644499
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040157432372022-10-14 2:02:35652 days ago1665712955IN
 Create: ownerOfSnapshot
0 ETH0.0040980614.84662628

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ownerOfSnapshot

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-10-14
*/

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

// Easy Snapshotting of ERC721 Owners 

// Author: 0xInuarashi
// https://twitter.com/0xInuarashi || 0xInuarashi#1234

// Product of CypherLabz
// https://twitter.com/CypherLabz

interface IERC721 {
    function ownerOf(uint256 tokenId_) external view returns (address);
}

contract ownerOfSnapshot {
    /** @dev Explanation: 
     *  _tryOwnerOf is a try-catch method of ownerOf that returns address(0) on failure
     */
    function _tryOwnerOf(address contract_, uint256 tokenId_) internal view
    returns (address) {
        address _owner;
        try IERC721(contract_).ownerOf(tokenId_) returns (address owner_) {
            _owner = owner_;
        }
        catch {
            _owner = address(0);
        }
        return _owner;
    }

    /** @dev Explanation:
     *  snapshotOwnerOf will return an array of all the addresses of owners of the 
     *  tokens queried
     */
    function snapshotOwnerOf(address contract_, uint256[] calldata tokenIds_)
    external view returns (address[] memory) {
        uint256 l = tokenIds_.length;
        address[] memory _addresses = new address[] (l);
        uint256 i; unchecked { do {
            _addresses[i] = _tryOwnerOf(contract_, tokenIds_[i]);
        } while (++i < l); }
        return _addresses;
    }

    /** @dev Explanation:
     *  snapshotTokensAreMinted will return a bool array of the minted state of
     *  all tokens queried
     */
    function snapshotTokensAreMinted(address contract_, uint256[] calldata tokenIds_)
    external view returns (bool[] memory) {
        uint256 l = tokenIds_.length;
        bool[] memory _tokensAreMinted = new bool[] (l);
        uint256 i; unchecked { do {
            _tokensAreMinted[i] = _tryOwnerOf(contract_, tokenIds_[i]) != address(0);
        } while (++i < l); }
        return _tokensAreMinted;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"contract_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"snapshotOwnerOf","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contract_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"snapshotTokensAreMinted","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610408806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806324d3b07a1461003b57806355d4b2db14610064575b600080fd5b61004e61004936600461027f565b610084565b60405161005b9190610307565b60405180910390f35b61007761007236600461027f565b610131565b60405161005b9190610354565b60608160008167ffffffffffffffff8111156100a2576100a26103a4565b6040519080825280602002602001820160405280156100cb578160200160208202803683370190505b50905060005b6100f3878787848181106100e7576100e761038e565b905060200201356101d7565b8282815181106101055761010561038e565b6001600160a01b03909216602092830291909101909101526001018281106100d1575095945050505050565b60608160008167ffffffffffffffff81111561014f5761014f6103a4565b604051908082528060200260200182016040528015610178578160200160208202803683370190505b50905060005b6000610196888888858181106100e7576100e761038e565b6001600160a01b031614158282815181106101b3576101b361038e565b9115156020928302919091019091015260010182811061017e575095945050505050565b6040516331a9108f60e11b81526004810182905260009081906001600160a01b03851690636352211e9060240160206040518083038186803b15801561021c57600080fd5b505afa92505050801561024c575060408051601f3d908101601f1916820190925261024991810190610262565b60015b6102585750600061025b565b90505b9392505050565b60006020828403121561027457600080fd5b815161025b816103ba565b60008060006040848603121561029457600080fd5b833561029f816103ba565b9250602084013567ffffffffffffffff808211156102bc57600080fd5b818601915086601f8301126102d057600080fd5b8135818111156102df57600080fd5b8760208260051b85010111156102f457600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b818110156103485783516001600160a01b031683529284019291840191600101610323565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610348578351151583529284019291840191600101610370565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146103cf57600080fd5b5056fea26469706673582212201f4f4fe2ad621411ce398b5bfa2b6b9127d46c74608a2454146169cce41cff5964736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c806324d3b07a1461003b57806355d4b2db14610064575b600080fd5b61004e61004936600461027f565b610084565b60405161005b9190610307565b60405180910390f35b61007761007236600461027f565b610131565b60405161005b9190610354565b60608160008167ffffffffffffffff8111156100a2576100a26103a4565b6040519080825280602002602001820160405280156100cb578160200160208202803683370190505b50905060005b6100f3878787848181106100e7576100e761038e565b905060200201356101d7565b8282815181106101055761010561038e565b6001600160a01b03909216602092830291909101909101526001018281106100d1575095945050505050565b60608160008167ffffffffffffffff81111561014f5761014f6103a4565b604051908082528060200260200182016040528015610178578160200160208202803683370190505b50905060005b6000610196888888858181106100e7576100e761038e565b6001600160a01b031614158282815181106101b3576101b361038e565b9115156020928302919091019091015260010182811061017e575095945050505050565b6040516331a9108f60e11b81526004810182905260009081906001600160a01b03851690636352211e9060240160206040518083038186803b15801561021c57600080fd5b505afa92505050801561024c575060408051601f3d908101601f1916820190925261024991810190610262565b60015b6102585750600061025b565b90505b9392505050565b60006020828403121561027457600080fd5b815161025b816103ba565b60008060006040848603121561029457600080fd5b833561029f816103ba565b9250602084013567ffffffffffffffff808211156102bc57600080fd5b818601915086601f8301126102d057600080fd5b8135818111156102df57600080fd5b8760208260051b85010111156102f457600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b818110156103485783516001600160a01b031683529284019291840191600101610323565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610348578351151583529284019291840191600101610370565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146103cf57600080fd5b5056fea26469706673582212201f4f4fe2ad621411ce398b5bfa2b6b9127d46c74608a2454146169cce41cff5964736f6c63430008070033

Deployed Bytecode Sourcemap

346:1604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:387;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1529:418;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;989:387::-;1091:16;1132:9;1120;1132;1189:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1189:17:0;;1159:47;;1217:9;1240:99;1274:36;1286:9;1297;;1307:1;1297:12;;;;;;;:::i;:::-;;;;;;;1274:11;:36::i;:::-;1258:10;1269:1;1258:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1258:52:0;;;:13;;;;;;;;;;;:52;1330:3;;:7;;;1240:99;;-1:-1:-1;1358:10:0;989:387;-1:-1:-1;;;;;989:387:0:o;1529:418::-;1639:13;1677:9;1665;1677;1737:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1737:14:0;;1704:47;;1762:9;1785:119;1873:1;1825:36;1837:9;1848;;1858:1;1848:12;;;;;;;:::i;1825:36::-;-1:-1:-1;;;;;1825:50:0;;;1803:16;1820:1;1803:19;;;;;;;;:::i;:::-;:72;;;:19;;;;;;;;;;;:72;1895:3;;:7;;;1785:119;;-1:-1:-1;1923:16:0;1529:418;-1:-1:-1;;;;;1529:418:0:o;504:332::-;639:36;;-1:-1:-1;;;639:36:0;;;;;2481:25:1;;;590:7:0;;;;-1:-1:-1;;;;;639:26:0;;;;;2454:18:1;;639:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;639:36:0;;;;;;;;-1:-1:-1;;639:36:0;;;;;;;;;;;;:::i;:::-;;;635:170;;-1:-1:-1;791:1:0;635:170;;;725:6;-1:-1:-1;635:170:0;822:6;504:332;-1:-1:-1;;;504:332:0:o;14:251:1:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;185:9;179:16;204:31;229:5;204:31;:::i;270:750::-;365:6;373;381;434:2;422:9;413:7;409:23;405:32;402:52;;;450:1;447;440:12;402:52;489:9;476:23;508:31;533:5;508:31;:::i;:::-;558:5;-1:-1:-1;614:2:1;599:18;;586:32;637:18;667:14;;;664:34;;;694:1;691;684:12;664:34;732:6;721:9;717:22;707:32;;777:7;770:4;766:2;762:13;758:27;748:55;;799:1;796;789:12;748:55;839:2;826:16;865:2;857:6;854:14;851:34;;;881:1;878;871:12;851:34;934:7;929:2;919:6;916:1;912:14;908:2;904:23;900:32;897:45;894:65;;;955:1;952;945:12;894:65;986:2;982;978:11;968:21;;1008:6;998:16;;;;;270:750;;;;;:::o;1025:658::-;1196:2;1248:21;;;1318:13;;1221:18;;;1340:22;;;1167:4;;1196:2;1419:15;;;;1393:2;1378:18;;;1167:4;1462:195;1476:6;1473:1;1470:13;1462:195;;;1541:13;;-1:-1:-1;;;;;1537:39:1;1525:52;;1632:15;;;;1597:12;;;;1573:1;1491:9;1462:195;;;-1:-1:-1;1674:3:1;;1025:658;-1:-1:-1;;;;;;1025:658:1:o;1688:642::-;1853:2;1905:21;;;1975:13;;1878:18;;;1997:22;;;1824:4;;1853:2;2076:15;;;;2050:2;2035:18;;;1824:4;2119:185;2133:6;2130:1;2127:13;2119:185;;;2208:13;;2201:21;2194:29;2182:42;;2279:15;;;;2244:12;;;;2155:1;2148:9;2119:185;;2517:127;2578:10;2573:3;2569:20;2566:1;2559:31;2609:4;2606:1;2599:15;2633:4;2630:1;2623:15;2649:127;2710:10;2705:3;2701:20;2698:1;2691:31;2741:4;2738:1;2731:15;2765:4;2762:1;2755:15;2781:131;-1:-1:-1;;;;;2856:31:1;;2846:42;;2836:70;;2902:1;2899;2892:12;2836:70;2781:131;:::o

Swarm Source

ipfs://1f4f4fe2ad621411ce398b5bfa2b6b9127d46c74608a2454146169cce41cff59

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.