ETH Price: $2,140.58 (-2.46%)
Gas: 0.05 Gwei

Contract Diff Checker

Contract Name:
SweepNFTs

Contract Source Code:

<i class='far fa-question-circle text-muted ms-2' data-bs-trigger='hover' data-bs-toggle='tooltip' data-bs-html='true' data-bs-title='Click on the check box to select individual contract to compare. Only 1 contract can be selected from each side.'></i>

pragma solidity ^0.8.0;

interface IERC721 {
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external;
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

interface IERC1155 {
    function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;
    function setApprovalForAll(address _operator, bool _approved) external;
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

// Create a contract for the receiver to simplify approval process
contract SweepNFTs {

    address public sweepTo;

    constructor(address _to) {
        sweepTo = _to;
    }

    function sweep721(address _nft, address _from, uint256[] calldata _ids) public {
        IERC721 nft = IERC721(_nft);
        require(nft.isApprovedForAll(_from, address(this)), "not approved");
        for (uint i=0; i < _ids.length; i++) {
            nft.safeTransferFrom(_from, sweepTo, _ids[i]);
        }
    }

    function sweep1155(address _nft, address _from, uint256[] calldata _ids, uint256[] calldata _values) public {
        IERC1155 nft = IERC1155(_nft);
        require(nft.isApprovedForAll(_from, address(this)), "not approved");
        nft.safeBatchTransferFrom(_from, sweepTo, _ids, _values, "");
    }

}

Please enter a contract address above to load the contract details and source code.

Context size (optional):