Contract 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 5

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9f3aea735c4981687b4fbfde579f803bbabebc399b55e1ae068470cac10c458fMulti Transfer179288822022-07-18 15:13:28132 days 19 hrs ago0xfa489b0c62ca2301004d26ca2de520cae38fa6f6 IN  0xcd1a2d9fb8c29a3856cc9b388bea838f340d04790.0001 ETH0.000166692236 ETH
0xbf9f252008ecae86e72bd440f07c82ac0d9f4b052ffbc3a0d6a4fa31f67b8283Multi Transfer179287012022-07-18 15:11:49132 days 19 hrs ago0xab98eb854981409bd395c2bda216fb5da619655b IN  0xcd1a2d9fb8c29a3856cc9b388bea838f340d04790.0001 ETH0.000166700092 ETH
0xb4e11d6c19048c9952e1bbaf4ade61f24d17f166feb2b47f80360ef5764224ebMulti Transfer150385652022-06-19 0:02:51162 days 10 hrs ago0x23cf8ab359e16929944f1aa8de0d3c5dcd3a520e IN  0xcd1a2d9fb8c29a3856cc9b388bea838f340d04790.0001 ETH0.000394092216 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894Multi Transfer149413722022-06-17 22:46:42163 days 12 hrs ago0xe264886feb92e9c6a92fa196dfdc09d330b66c17 IN  0xcd1a2d9fb8c29a3856cc9b388bea838f340d04790.0005 ETH0.000625756016 ETH
0x84d216d891b53b9a0b23f42768a01e29b6baa2073656ed00d40d855fe8396a23Set Owner123439822022-05-17 20:42:38194 days 14 hrs ago0x00dead00241aecb0c08cfd7caff36ad257a4bec6 IN  0xcd1a2d9fb8c29a3856cc9b388bea838f340d04790 ETH0.000132344531 ETH
0x1241a3c0146938a910e43c46264bf4f50b4126aec797322cc38300c5a434289a0x60a06040123436302022-05-17 20:35:52194 days 14 hrs ago0x00dead00241aecb0c08cfd7caff36ad257a4bec6 IN  Create: NftMultiTransfer0 ETH0.002021386226 ETH
[ Download CSV Export 
Latest 8 internal transactions
Parent Txn Hash Block From To Value
0x9f3aea735c4981687b4fbfde579f803bbabebc399b55e1ae068470cac10c458f179288822022-07-18 15:13:28132 days 19 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0xc9b45da95b0545f3c675950a7d422b33f9d44a2d0 ETH
0xbf9f252008ecae86e72bd440f07c82ac0d9f4b052ffbc3a0d6a4fa31f67b8283179287012022-07-18 15:11:49132 days 19 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0xc9b45da95b0545f3c675950a7d422b33f9d44a2d0 ETH
0xb4e11d6c19048c9952e1bbaf4ade61f24d17f166feb2b47f80360ef5764224eb150385652022-06-19 0:02:51162 days 10 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0x9d761d7681392e00e23e3934f037e11acceea8ed0 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894149413722022-06-17 22:46:42163 days 12 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0xc1fcf330b4b4c773fa7e6835f681e8f798e9ebff0 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894149413722022-06-17 22:46:42163 days 12 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0x71f5c328241fc3e03a8c79edcd510037802d369c0 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894149413722022-06-17 22:46:42163 days 12 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0x1aaec0fa487a979a3f6b46dccf0ac2648167a61e0 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894149413722022-06-17 22:46:42163 days 12 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0x160016f0785829080ab51e844b7e8eeab2c270ee0 ETH
0xef6814e1852ceecc8afbaf570f183a80b4f720bdc8b223902cdb6ea74d53d894149413722022-06-17 22:46:42163 days 12 hrs ago 0xcd1a2d9fb8c29a3856cc9b388bea838f340d0479 0x0f50105a89a74029f412ab43c0ffe109ebd1d0870 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NftMultiTransfer

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : NftMultiTransfer.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

interface IERC721 {
  function transferFrom(address from, address to, uint256 tokenId) external;
}

interface IERC20 {
  function transfer(address to, uint256 amount) external;
  function balanceOf(address owner) external view returns (uint256);
}

contract NftMultiTransfer {

  struct TransferRequest {
    address project;
    address to;
    uint256 tokenId;
  }

  uint256 public immutable MAX_TRANSFER_FEE = 5e14; // 0.0005, approx 5% tx fee

  address public owner;
  uint256 public transferFee;

  constructor() {
    transferFee = 1e14; // 0.0001, approx 0.1% tx fee
    owner = msg.sender;
  } 

  function setOwner(address _owner) external {
    require(msg.sender == owner, "PERMISSION_DENIED");
    owner = _owner;
  }

  function setTransferFee(uint256 _transferFee) external {
    require(msg.sender == owner, "PERMISSION_DENIED");
    require(_transferFee <= MAX_TRANSFER_FEE, "INVALID_FEE");
    transferFee = _transferFee;
  }

  function multiTransfer(TransferRequest[] calldata _transferRequests) external payable {
    require(msg.value == _transferRequests.length * transferFee, "INVALID_FEE");
    for (uint256 i = 0; i < _transferRequests.length; i++) {
      TransferRequest memory request = _transferRequests[i];
      IERC721(request.project).transferFrom(msg.sender, request.to, request.tokenId);
    }
  }  
  
  function withdraw() external payable {
    require(msg.sender == owner, "PERMISSION_DENIED");
    require(payable(owner).send(address(this).balance), "NO_TRANSFER");
  }

  function extract(address _token) external {
    require(msg.sender == owner, "PERMISSION_DENIED");
    IERC20 token = IERC20(_token);
    token.transfer(owner, token.balanceOf(address(this)));
  }

  function getTransferFee(TransferRequest[] calldata _transferRequests) external view returns (uint256) {
    return _transferRequests.length * transferFee;
  } 
}

Settings
{
  "remappings": [
    "ds-test/=lib/ds-test/src/",
    "src/=src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london"
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MAX_TRANSFER_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"extract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"project","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct NftMultiTransfer.TransferRequest[]","name":"_transferRequests","type":"tuple[]"}],"name":"getTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"project","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct NftMultiTransfer.TransferRequest[]","name":"_transferRequests","type":"tuple[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

60a06040526601c6bf5263400060805234801561001b57600080fd5b50655af3107a4000600155600080546001600160a01b0319163317905560805161077361005a6000396000818161017b01526103f201526107736000f3fe6080604052600436106100865760003560e01c80638edfa01e116100595780638edfa01e146101055780638f02bb5b14610133578063acb2ad6f14610153578063b2b6bef514610169578063c7a5d2851461019d57600080fd5b806313af40351461008b5780633ccfd60b146100ad578063458f92ad146100b55780638da5cb5b146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004610576565b6101bd565b005b6100ab610212565b6100ab6100c3366004610591565b6102a1565b3480156100d457600080fd5b506000546100e8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011157600080fd5b50610125610120366004610591565b6103af565b6040519081526020016100fc565b34801561013f57600080fd5b506100ab61014e366004610606565b6103c6565b34801561015f57600080fd5b5061012560015481565b34801561017557600080fd5b506101257f000000000000000000000000000000000000000000000000000000000000000081565b3480156101a957600080fd5b506100ab6101b8366004610576565b610453565b6000546001600160a01b031633146101f05760405162461bcd60e51b81526004016101e79061061f565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461023c5760405162461bcd60e51b81526004016101e79061061f565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505061029f5760405162461bcd60e51b815260206004820152600b60248201526a2727afaa2920a729a322a960a91b60448201526064016101e7565b565b6001546102ae9082610660565b34146102ea5760405162461bcd60e51b815260206004820152600b60248201526a494e56414c49445f46454560a81b60448201526064016101e7565b60005b818110156103aa5760008383838181106103095761030961067f565b90506060020180360381019061031f9190610695565b8051602082015160408084015190516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481019190915292935016906323b872dd90606401600060405180830381600087803b15801561037e57600080fd5b505af1158015610392573d6000803e3d6000fd5b505050505080806103a29061070b565b9150506102ed565b505050565b6001546000906103bf9083610660565b9392505050565b6000546001600160a01b031633146103f05760405162461bcd60e51b81526004016101e79061061f565b7f000000000000000000000000000000000000000000000000000000000000000081111561044e5760405162461bcd60e51b815260206004820152600b60248201526a494e56414c49445f46454560a81b60448201526064016101e7565b600155565b6000546001600160a01b0316331461047d5760405162461bcd60e51b81526004016101e79061061f565b6000546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f89190610724565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561053e57600080fd5b505af1158015610552573d6000803e3d6000fd5b505050505050565b80356001600160a01b038116811461057157600080fd5b919050565b60006020828403121561058857600080fd5b6103bf8261055a565b600080602083850312156105a457600080fd5b823567ffffffffffffffff808211156105bc57600080fd5b818501915085601f8301126105d057600080fd5b8135818111156105df57600080fd5b8660206060830285010111156105f457600080fd5b60209290920196919550909350505050565b60006020828403121561061857600080fd5b5035919050565b602080825260119082015270141154935254d4d253d397d11153925151607a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561067a5761067a61064a565b500290565b634e487b7160e01b600052603260045260246000fd5b6000606082840312156106a757600080fd5b6040516060810181811067ffffffffffffffff821117156106d857634e487b7160e01b600052604160045260246000fd5b6040526106e48361055a565b81526106f26020840161055a565b6020820152604083013560408201528091505092915050565b60006001820161071d5761071d61064a565b5060010190565b60006020828403121561073657600080fd5b505191905056fea26469706673582212204202befdbe9e47aae36279c732b5bfca33c2c6f84ebbaa92abb02a497c429f9964736f6c634300080d0033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.