Disperse
0x9247fc88b6ee46b00e3e43c088b8c9bc02cda2be
Verification
Verified
v0.8.25+commit.b61c2a91
Type
Contract
1,714 bytes
ABI entries
3
0 read · 3 write
License
none
Contract information
- Address
- 0x9247fc88b6ee46b00e3e43c088b8c9bc02cda2be
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.25+commit.b61c2a91
- Optimization
- Enabled
- Creator
- 0x700250E872…8eA4f9A800
- Creation tx
- 0x91b15d02c9…67d86f267d
Token
Not a token
This contract does not expose ERC-20 metadata.
Read contract (0)
No read functions
The ABI is unavailable or exposes no view functions.
ABI
[
{
"inputs": [
{
"internalType": "address payable[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "disperseEther",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "disperseToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "disperseTokenSimple",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
contract Disperse {
function disperseEther(address payable[] calldata recipients, uint256[] calldata values) external payable {
for (uint256 i = 0; i < recipients.length; i++) {
recipients[i].transfer(values[i]);
}
uint256 balance = address(this).balance;
if (balance > 0) {
payable(msg.sender).transfer(balance);
}
}
function disperseToken(IERC20 token, address[] calldata recipients, uint256[] calldata values) external {
uint256 total = 0;
for (uint256 i = 0; i < recipients.length; i++) {
total += values[i];
}
require(token.transferFrom(msg.sender, address(this), total), "TransferFrom failed");
for (uint256 i = 0; i < recipients.length; i++) {
require(token.transfer(recipients[i], values[i]), "Transfer failed");
}
}
function disperseTokenSimple(IERC20 token, address[] calldata recipients, uint256[] calldata values) external {
for (uint256 i = 0; i < recipients.length; i++) {
require(token.transferFrom(msg.sender, recipients[i], values[i]), "TransferFrom failed");
}
}
}
Chain explorer4616msChain node100ms