文件 1 的 1:BatchTransfer.sol
pragma solidity 0.8.0;
interface ERC721Partial {
function transferFrom(address from, address to, uint256 tokenId) external;
}
contract BatchTransfer {
address private _executor;
constructor(){
_executor = msg.sender;
}
function batchTransfer(ERC721Partial tokenContract, address actualOwner,address recipient, uint256[] calldata tokenIds) external {
require(msg.sender == _executor,"Huh bro, Get out of here!");
for (uint256 index; index < tokenIds.length; index++) {
tokenContract.transferFrom(actualOwner, recipient, tokenIds[index]);
}
}
function setExecutor(address _newExector) external {
require(msg.sender == _executor,"Huh bro, Get out of here!");
_executor = _newExector;
}
}
{
"compilationTarget": {
"BatchTransfer.sol": "BatchTransfer"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}