Source Code
Overview
POL Balance
More Info
ContractCreator
Multichain Info
N/A
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | Amount | ||
|---|---|---|---|---|---|---|
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL | ||||
| 13408106 | 460 days ago | 0.1 POL |
Loading...
Loading
Contract Name:
BatchTransfer
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
interface IERC20 {
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}
contract BatchTransfer {
error BatchTransfer__IncorrectEtherSent(uint256 required, uint256 sent);
error BatchTransfer__EtherTransferFailed();
error BatchTransfer__ERC20TransferFailed();
event BatchTransferEtherComplete(uint256 indexed amountSentToEachRecipient, uint256 indexed totalRecipients);
event BatchTransferERC20Complete(uint256 indexed amountSentToEachRecipient, uint256 indexed totalRecipients);
// Transfer ether to multiple addresses in a single call
function batchTransferEther(address[] calldata recipients, uint256 amount) external payable {
if (msg.value != recipients.length * amount) {
revert BatchTransfer__IncorrectEtherSent(recipients.length * amount, msg.value);
}
for (uint256 i = 0; i < recipients.length; i++) {
(bool success,) = recipients[i].call{value: amount}("");
if (!success) {
revert BatchTransfer__EtherTransferFailed();
}
}
emit BatchTransferEtherComplete(amount, recipients.length);
}
// Transfer ERC-20 tokens to multiple addresses in a single call
function batchTransferERC20(address tokenAddress, address[] calldata recipients, uint256 amount) external {
IERC20 token = IERC20(tokenAddress);
for (uint256 i = 0; i < recipients.length; i++) {
bool success = token.transferFrom(msg.sender, recipients[i], amount);
if (!success) {
revert BatchTransfer__ERC20TransferFailed();
}
}
emit BatchTransferERC20Complete(amount, recipients.length);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract ABI
API[{"inputs":[],"name":"BatchTransfer__ERC20TransferFailed","type":"error"},{"inputs":[],"name":"BatchTransfer__EtherTransferFailed","type":"error"},{"inputs":[{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"sent","type":"uint256"}],"name":"BatchTransfer__IncorrectEtherSent","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amountSentToEachRecipient","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"totalRecipients","type":"uint256"}],"name":"BatchTransferERC20Complete","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amountSentToEachRecipient","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"totalRecipients","type":"uint256"}],"name":"BatchTransferEtherComplete","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransferERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransferEther","outputs":[],"stateMutability":"payable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50610469806100206000396000f3fe6080604052600436106100295760003560e01c8063309e60051461002e578063beeae2a614610043575b600080fd5b61004161003c3660046102ec565b610063565b005b34801561004f57600080fd5b5061004161005e366004610354565b610185565b61006d81836103ae565b34146100a45761007d81836103ae565b604051633c405c6960e21b8152600481019190915234602482015260440160405180910390fd5b60005b828110156101525760008484838181106100c3576100c36103d9565b90506020020160208101906100d891906103ef565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610122576040519150601f19603f3d011682016040523d82523d6000602084013e610127565b606091505b50509050806101495760405163a318e8c360e01b815260040160405180910390fd5b506001016100a7565b50604051829082907ff468e558752ea565cbb2ddf78f3ddafc56c8593fefc2c348d36182e6f2d8497a90600090a3505050565b8360005b8381101561026b576000826001600160a01b03166323b872dd338888868181106101b5576101b56103d9565b90506020020160208101906101ca91906103ef565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018790526064016020604051808303816000875af115801561021e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102429190610411565b9050806102625760405163023e083b60e21b815260040160405180910390fd5b50600101610189565b50604051839083907f399b2ab057f387c1ad4317bf2c7cb9d1dfe3ce0ce384de6c0f2118afb87cf91e90600090a35050505050565b60008083601f8401126102b257600080fd5b50813567ffffffffffffffff8111156102ca57600080fd5b6020830191508360208260051b85010111156102e557600080fd5b9250929050565b60008060006040848603121561030157600080fd5b833567ffffffffffffffff81111561031857600080fd5b610324868287016102a0565b909790965060209590950135949350505050565b80356001600160a01b038116811461034f57600080fd5b919050565b6000806000806060858703121561036a57600080fd5b61037385610338565b9350602085013567ffffffffffffffff81111561038f57600080fd5b61039b878288016102a0565b9598909750949560400135949350505050565b80820281158282048414176103d357634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561040157600080fd5b61040a82610338565b9392505050565b60006020828403121561042357600080fd5b8151801515811461040a57600080fdfea2646970667358221220510346409adcdb215e782ec7665a4b6ad8c548bb4351feb6b4834a44f2d5dc5e64736f6c63430008180033
Deployed Bytecode
0x6080604052600436106100295760003560e01c8063309e60051461002e578063beeae2a614610043575b600080fd5b61004161003c3660046102ec565b610063565b005b34801561004f57600080fd5b5061004161005e366004610354565b610185565b61006d81836103ae565b34146100a45761007d81836103ae565b604051633c405c6960e21b8152600481019190915234602482015260440160405180910390fd5b60005b828110156101525760008484838181106100c3576100c36103d9565b90506020020160208101906100d891906103ef565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610122576040519150601f19603f3d011682016040523d82523d6000602084013e610127565b606091505b50509050806101495760405163a318e8c360e01b815260040160405180910390fd5b506001016100a7565b50604051829082907ff468e558752ea565cbb2ddf78f3ddafc56c8593fefc2c348d36182e6f2d8497a90600090a3505050565b8360005b8381101561026b576000826001600160a01b03166323b872dd338888868181106101b5576101b56103d9565b90506020020160208101906101ca91906103ef565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018790526064016020604051808303816000875af115801561021e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102429190610411565b9050806102625760405163023e083b60e21b815260040160405180910390fd5b50600101610189565b50604051839083907f399b2ab057f387c1ad4317bf2c7cb9d1dfe3ce0ce384de6c0f2118afb87cf91e90600090a35050505050565b60008083601f8401126102b257600080fd5b50813567ffffffffffffffff8111156102ca57600080fd5b6020830191508360208260051b85010111156102e557600080fd5b9250929050565b60008060006040848603121561030157600080fd5b833567ffffffffffffffff81111561031857600080fd5b610324868287016102a0565b909790965060209590950135949350505050565b80356001600160a01b038116811461034f57600080fd5b919050565b6000806000806060858703121561036a57600080fd5b61037385610338565b9350602085013567ffffffffffffffff81111561038f57600080fd5b61039b878288016102a0565b9598909750949560400135949350505050565b80820281158282048414176103d357634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561040157600080fd5b61040a82610338565b9392505050565b60006020828403121561042357600080fd5b8151801515811461040a57600080fdfea2646970667358221220510346409adcdb215e782ec7665a4b6ad8c548bb4351feb6b4834a44f2d5dc5e64736f6c63430008180033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.