// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;
interface ERC721Partial {
function transferFrom(address from, address to, uint256 tokenId) external;
}
contract BatchTransfer {
/// @notice Tokens on the given ERC-721 contract are transferred from you to a recipient.
/// Don't forget to execute setApprovalForAll first to authorize this contract.
/// @param tokenContract An ERC-721 contract
/// @param from Who sends the tokens?
/// @param recipient Who gets the tokens?
/// @param tokenIds Which token IDs are transferred?
function batchTransfer(ERC721Partial tokenContract, address from, address recipient, uint256[] calldata tokenIds) external {
for (uint256 index; index < tokenIds.length; index++) {
tokenContract.transferFrom(from, recipient, tokenIds[index]);
}
}
}
{
"compilationTarget": {
"contracts/BatchTransfer.sol": "BatchTransfer"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"contract ERC721Partial","name":"tokenContract","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"batchTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"}]