ETH Price: $2,347.61 (-5.67%)

Contract

0x33D8e7737dF050F9673966f3CDc306A440045a1f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Redeem Nft125130862021-05-27 0:13:001372 days ago1622074380IN
0x33D8e773...440045a1f
0 ETH0.0030344833
Redeem Nft123864322021-05-07 9:44:231391 days ago1620380663IN
0x33D8e773...440045a1f
0 ETH0.0041373945
Redeem Nft123834532021-05-06 22:28:541392 days ago1620340134IN
0x33D8e773...440045a1f
0 ETH0.004781652
Redeem Nft123801922021-05-06 10:25:271392 days ago1620296727IN
0x33D8e773...440045a1f
0 ETH0.0032175535
Redeem Nft123776942021-05-06 1:14:341393 days ago1620263674IN
0x33D8e773...440045a1f
0 ETH0.0042477246.20000076
Redeem Nft123772092021-05-05 23:19:331393 days ago1620256773IN
0x33D8e773...440045a1f
0 ETH0.0049655154
Redeem Nft123739762021-05-05 11:33:491393 days ago1620214429IN
0x33D8e773...440045a1f
0 ETH0.0024827527
Redeem Nft123722112021-05-05 4:55:231394 days ago1620190523IN
0x33D8e773...440045a1f
0 ETH0.0027586230
Redeem Nft123721032021-05-05 4:31:311394 days ago1620189091IN
0x33D8e773...440045a1f
0 ETH0.003586239

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xde03b1B0...626d82638
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
NftDrop

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-05-05
*/

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

interface IERC1155 {
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;
}

contract NftDrop {
    address public owner;
    address public nftAddress;
    uint256 public nftTokenId;
    mapping(address => bool) redemptions;
    bytes4 immutable onErc1155SuccessfulResult =
        bytes4(
            keccak256(
                "onERC1155Received(address,address,uint256,uint256,bytes)"
            )
        );
    event WithdrawArt(address withdrawnTo);

    modifier onlyOwner() {
        require(msg.sender == owner, "must be owner");
        _;
    }

    constructor(address _nftAddress, uint256 _nftTokenId) public {
        owner = msg.sender;
        nftAddress = _nftAddress;
        nftTokenId = _nftTokenId;
    }

    function redeemNft(
        address address1,
        bytes32 r,
        bytes32 s,
        uint8 v
    ) public {
        require(
            (getSigner(address1, r, s, v) == owner),
            "must be signed by owner"
        );
        require(!hasReedeemed(address1), "already redeemed");

        redemptions[address1] = true;
        IERC1155(nftAddress).safeTransferFrom(
            address(this),
            address1,
            nftTokenId,
            1,
            ""
        );
        emit WithdrawArt(address1);
    }

    function getSigner(
        address aCustomAddress,
        bytes32 r,
        bytes32 s,
        uint8 v
    ) public pure returns (address) {
        bytes memory prefix = "\x19Ethereum Signed Message:\n32";
        bytes32 hash = keccak256(abi.encodePacked(aCustomAddress));
        bytes32 prefixedHash = keccak256(abi.encodePacked(prefix, hash));
        return ecrecover(prefixedHash, v, r, s);
    }

    function hasReedeemed(address address1) public view returns (bool) {
        return redemptions[address1];
    }

    function emergencyExecute(
        address targetAddress,
        bytes memory targetCallData
    ) public onlyOwner returns (bool) {
        (bool success, ) = targetAddress.call(targetCallData);
        return success;
    }

    function supportsInterface(bytes4 interfaceID)
        external
        pure
        returns (bool)
    {
        return interfaceID == 0x01ffc9a7 || interfaceID == 0x4e2312e0;
    }

    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4) {
        return onErc1155SuccessfulResult;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_nftAddress","type":"address"},{"internalType":"uint256","name":"_nftTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"withdrawnTo","type":"address"}],"name":"WithdrawArt","type":"event"},{"inputs":[{"internalType":"address","name":"targetAddress","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}],"name":"emergencyExecute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"aCustomAddress","type":"address"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}],"name":"getSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"address1","type":"address"}],"name":"hasReedeemed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address1","type":"address"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}],"name":"redeemNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063a0321a5311610066578063a0321a5314610181578063c7ce46c814610272578063ee34b90d14610301578063f23a6e6114610366578063f84cce101461046657610093565b806301ffc9a7146100985780635bf8633a146100fb5780637e8305741461012f5780638da5cb5b1461014d575b600080fd5b6100e3600480360360208110156100ae57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506104c0565b60405180821515815260200191505060405180910390f35b610103610522565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610137610548565b6040518082815260200191505060405180910390f35b61015561054e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025a6004803603604081101561019757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156101d457600080fd5b8201836020820111156101e657600080fd5b8035906020019184600183028401116401000000008311171561020857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610572565b60405180821515815260200191505060405180910390f35b6102d56004803603608081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291905050506106f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103646004803603608081101561031757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050610867565b005b610431600480360360a081101561037c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103ed57600080fd5b8201836020820111156103ff57600080fd5b8035906020019184600183028401116401000000008311171561042157600080fd5b9091929391929390505050610b42565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104a86004803603602081101561047c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b71565b60405180821515815260200191505060405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051b5750634e2312e060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6d757374206265206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106106835780518252602082019150602081019050602083039250610660565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106e5576040519150601f19603f3d011682016040523d82523d6000602084013e6106ea565b606091505b505090508091505092915050565b600060606040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600086604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001209050600082826040516020018083805190602001908083835b602083106107b2578051825260208201915060208101905060208303925061078f565b6001836020036101000a0380198251168184511680821785525050505050509050018281526020019250505060405160208183030381529060405280519060200120905060018186898960405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610850573d6000803e3d6000fd5b505050602060405103519350505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108aa858585856106f8565b73ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6d757374206265207369676e6564206279206f776e657200000000000000000081525060200191505060405180910390fd5b61093c84610b71565b156109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616c72656164792072656465656d65640000000000000000000000000000000081525060200191505060405180910390fd5b6001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a308660025460016040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020018060200182810382526000815260200160200195505050505050600060405180830381600087803b158015610ad757600080fd5b505af1158015610aeb573d6000803e3d6000fd5b505050507f0a56db6b906214ad231ce1e77df1372e174617347cf66d946c52d7809a1e3c4a84604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b60007ff23a6e610000000000000000000000000000000000000000000000000000000090509695505050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905091905056fea2646970667358221220d88ddc04d98a5ad5af41c53ac51c302f1963c43922b826046b4b970edb3b9c6d64736f6c634300060c0033

Deployed Bytecode Sourcemap

255:2467:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2287:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;306:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;338;;;:::i;:::-;;;;;;;;;;;;;;;;;;;279:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2047:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1501:416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;935:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2483:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1925:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2287:188;2384:4;2428:10;2413:25;;:11;:25;;;;:54;;;;2457:10;2442:25;;:11;:25;;;;2413:54;2406:61;;2287:188;;;:::o;306:25::-;;;;;;;;;;;;;:::o;338:::-;;;;:::o;279:20::-;;;;;;;;;;;;:::o;2047:232::-;2176:4;708:5;;;;;;;;;;;694:19;;:10;:19;;;686:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:12:::1;2212:13;:18;;2231:14;2212:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2193:53;;;2264:7;2257:14;;;2047:232:::0;;;;:::o;1501:416::-;1639:7;1659:19;:56;;;;;;;;;;;;;;;;;;;1726:12;1768:14;1751:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1741:43;;;;;;1726:58;;1795:20;1845:6;1853:4;1828:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1818:41;;;;;;1795:64;;1877:32;1887:12;1901:1;1904;1907;1877:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1870:39;;;;;1501:416;;;;;;:::o;935:558::-;1119:5;;;;;;;;;;1087:37;;:28;1097:8;1107:1;1110;1113;1087:9;:28::i;:::-;:37;;;1064:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1196:22;1209:8;1196:12;:22::i;:::-;1195:23;1187:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1276:4;1252:11;:21;1264:8;1252:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1300:10;;;;;;;;;;;1291:37;;;1351:4;1371:8;1394:10;;1419:1;1291:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:21;1476:8;1464:21;;;;;;;;;;;;;;;;;;;;935:558;;;;:::o;2483:236::-;2660:6;2686:25;2679:32;;2483:236;;;;;;;;:::o;1925:114::-;1986:4;2010:11;:21;2022:8;2010:21;;;;;;;;;;;;;;;;;;;;;;;;;2003:28;;1925:114;;;:::o

Swarm Source

ipfs://d88ddc04d98a5ad5af41c53ac51c302f1963c43922b826046b4b970edb3b9c6d

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.