Address Contract Partially Verified
Address
0x528a7d60dAf08A98e39220B1De6557be6afe9Bbb
Balance
0 ETH
Nonce
1
Code Size
1180 bytes
Creator
0x68d332EC...8Eea at tx 0x296b8007...976b1c
Indexed Transactions
0
Contract Bytecode
1180 bytes
0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635755916d1461002d575b5f80fd5b6100476004803603810190610042919061025e565b61005d565b60405161005491906102c3565b60405180910390f35b5f808383905090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111156100ec57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517fbb1cb70b0000000000000000000000000000000000000000000000000000000081526004016100e39291906102f4565b60405180910390fd5b5f5b848490508110156101e9577f0000000000000000000000002c0687215aca7f5e2792d956e170325e92a02aca73ffffffffffffffffffffffffffffffffffffffff166323b872dd338787858181106101495761014861031b565b5b9050604002015f01602081019061016091906103a2565b8888868181106101735761017261031b565b5b905060400201602001356040518463ffffffff1660e01b815260040161019b939291906103dc565b6020604051808303815f875af11580156101b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101db919061043b565b5080806001019150506100ee565b50600191505092915050565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261021e5761021d6101fd565b5b8235905067ffffffffffffffff81111561023b5761023a610201565b5b60208301915083604082028301111561025757610256610205565b5b9250929050565b5f8060208385031215610274576102736101f5565b5b5f83013567ffffffffffffffff811115610291576102906101f9565b5b61029d85828601610209565b92509250509250929050565b5f8115159050919050565b6102bd816102a9565b82525050565b5f6020820190506102d65f8301846102b4565b92915050565b5f819050919050565b6102ee816102dc565b82525050565b5f6040820190506103075f8301856102e5565b61031460208301846102e5565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61037182610348565b9050919050565b61038181610367565b811461038b575f80fd5b50565b5f8135905061039c81610378565b92915050565b5f602082840312156103b7576103b66101f5565b5b5f6103c48482850161038e565b91505092915050565b6103d681610367565b82525050565b5f6060820190506103ef5f8301866103cd565b6103fc60208301856103cd565b61040960408301846102e5565b949350505050565b61041a816102a9565b8114610424575f80fd5b50565b5f8151905061043581610411565b92915050565b5f602082840312156104505761044f6101f5565b5b5f61045d84828501610427565b9150509291505056fea264697066735822122054a60da40ee8b89a2a729c49e8779281966de548402d1111bbb8ee11f399a0b864736f6c63430008190033
Verified Source Code Partial Match
Compiler: v0.8.25+commit.b61c2a91
EVM: cancun
Optimization: No
E2TransferBatching.sol 299 lines
// Sources flattened with hardhat v2.22.4 https://hardhat.org // SPDX-License-Identifier: MIT // File @openzeppelin/contracts/interfaces/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol) pragma solidity ^0.8.20; /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } // File @openzeppelin/contracts/token/ERC20/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } // File E2TransferBatching.sol // Original license: SPDX_License_Identifier: MIT pragma solidity ^0.8.20; contract E2TransferBatching is IERC20Errors { struct Transfer { address account; uint256 value; } /** * @dev Indicates that the requested batch has too many items. * @param length Actual size of the batch sent. * @param maxLength Maximum size of the batch allowed. */ error BatchTooLarge(uint length, uint maxLength); IERC20 private immutable _erc20; /** * @dev Sets {_erc20} reference */ constructor(address tokenContract) { _erc20 = IERC20(tokenContract); } /** * @dev Sends all transfers from a batch */ function transferBatch(Transfer[] calldata batch) public virtual returns (bool) { uint batchLength = batch.length; if (batchLength > type(uint).max) { revert BatchTooLarge(batchLength, type(uint).max); } unchecked { for (uint i = 0; i < batch.length; i++) { _erc20.transferFrom(msg.sender, batch[i].account, batch[i].value); } } return true; } }
Write Contract 1 functions
These functions modify contract state and require a wallet transaction to execute.
transferBatch 0x474c8178
tuple[] batch
returns: bool
Recent Transactions
No transactions found for this address