账户
0x23...6adb
0x23...6Adb

0x23...6Adb

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.8.11+commit.d7f03943
语言
Solidity
合同源代码
文件 1 的 1:Dispenser.sol
// SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.11;

contract AstraDispenser {
    function dispense(address payable[] memory recipients) external payable {
        assembly {
            let len := mload(recipients)
            let amount_per := div(callvalue(), len)
            
            let data := add(recipients, 0x20)
            for
                { let end := add(data, mul(len, 0x20)) }
                lt(data, end)
                { data := add(data, 0x20) }
            {
                pop(call(
                    21000,
                    mload(data),
                    amount_per,
                    0,
                    0,
                    0,
                    0
                ))
            }

            // Check if there is any leftover funds
            let leftover := selfbalance()
            if eq(leftover, 0) {
                return(0, 0)
            }

            pop(call(
                21000,
                caller(),
                leftover,
                0,
                0,
                0,
                0
            ))
        }
    }
}
设置
{
  "compilationTarget": {
    "contracts/Dispenser.sol": "AstraDispenser"
  },
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 1337
  },
  "remappings": []
}
ABI
[{"inputs":[{"internalType":"address payable[]","name":"recipients","type":"address[]"}],"name":"dispense","outputs":[],"stateMutability":"payable","type":"function"}]