Sprinkler

0xa449056c606598bd6f7bb0592d5ebaf6b0478e7f

Verification
Verified
v0.8.35+commit.47b9dedd
Type
Contract
798 bytes
ABI entries
1
0 read · 1 write
License
mit

Contract information

Address
0xa449056c606598bd6f7bb0592d5ebaf6b0478e7f
Chain
Robinhood Chain (4663)
Compiler
v0.8.35+commit.47b9dedd
Optimization
Enabled
Creation tx
0x41513df28b…8ea126fc9d

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",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address[]",
        "name": "to",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "amounts",
        "type": "uint256[]"
      }
    ],
    "name": "sprinkle",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

Source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IERC20 {
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

/// @title  Sprinkler — the leak comes to you
/// @notice Batch-sends $BUGS from the drip wallet to every bug holder, daily, for 14 days.
///         No owner. No admin. Anyone can call it — it can only move funds the
///         drip wallet has approved, and only to whoever the caller pays gas for.
contract Sprinkler {
    function sprinkle(address token, address from, address[] calldata to, uint256[] calldata amounts) external {
        require(to.length == amounts.length, "len");
        require(msg.sender == from, "only from");
        for (uint256 i = 0; i < to.length; i++) {
            IERC20(token).transferFrom(from, to[i], amounts[i]);
        }
    }
}
Chain explorer2036msChain node88ms