More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 50 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mass Send | 13090783 | 36 mins ago | IN | 0 S | 0.00335347 | ||||
Mass Send | 13082632 | 1 hr ago | IN | 0 S | 0.00369755 | ||||
Mass Send | 13078752 | 1 hr ago | IN | 0 S | 0.0032863 | ||||
Mass Send | 13078545 | 1 hr ago | IN | 0 S | 0.0032845 | ||||
Mass Send | 13076616 | 2 hrs ago | IN | 0 S | 0.0032857 | ||||
Mass Send | 13075069 | 2 hrs ago | IN | 0 S | 0.0032857 | ||||
Mass Send | 13046217 | 5 hrs ago | IN | 0 S | 0.0039237 | ||||
Mass Send | 13044525 | 5 hrs ago | IN | 0 S | 0.00414985 | ||||
Mass Send | 13040546 | 6 hrs ago | IN | 0 S | 0.0039237 | ||||
Mass Send | 13039431 | 6 hrs ago | IN | 0 S | 0.0032863 | ||||
Mass Send | 13038809 | 6 hrs ago | IN | 0 S | 0.0032851 | ||||
Mass Send | 13037790 | 6 hrs ago | IN | 0 S | 0.0049887 | ||||
Mass Send | 13036523 | 6 hrs ago | IN | 0 S | 0.0032863 | ||||
Mass Send | 13028584 | 7 hrs ago | IN | 0 S | 0.0069127 | ||||
Mass Send | 13025398 | 7 hrs ago | IN | 0 S | 0.00414925 | ||||
Mass Send | 13024901 | 7 hrs ago | IN | 0 S | 0.00414805 | ||||
Mass Send | 13024417 | 7 hrs ago | IN | 0 S | 0.00414985 | ||||
Mass Send | 13022416 | 8 hrs ago | IN | 0 S | 0.0069127 | ||||
Mass Send | 13017850 | 8 hrs ago | IN | 0 S | 0.0087649 | ||||
Mass Send | 12905545 | 22 hrs ago | IN | 0 S | 0.00336159 | ||||
Mass Send | 12904229 | 22 hrs ago | IN | 0 S | 0.0032857 | ||||
Mass Send | 12903902 | 22 hrs ago | IN | 0 S | 0.0032845 | ||||
Mass Send | 12903472 | 22 hrs ago | IN | 0 S | 0.0043507 | ||||
Mass Send | 12899888 | 23 hrs ago | IN | 0 S | 0.0032857 | ||||
Mass Send | 12892528 | 24 hrs ago | IN | 0 S | 0.00414985 |
Loading...
Loading
Contract Name:
Disperser
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.19; contract Disperser { error WrongArraysLength(); error OnlyOwner(); error TokenSend(address problem); error NativeSend(address problem); address public owner; struct Token { address token; address[] receivers; uint256[] amounts; } modifier onlyOwner() { if (msg.sender != owner) revert OnlyOwner(); _; } constructor() { owner = msg.sender; } receive() external payable {} function massSend(Token[] calldata input) external onlyOwner { uint length = input.length; for (uint i; i < length; ) { if (input[i].token == address(0)) { sendNative(input[i]); } else { sendToken(input[i]); } unchecked { ++i; } } } function sendToken(Token memory token) internal { if (token.receivers.length != token.amounts.length) revert WrongArraysLength(); uint length = token.receivers.length; for (uint i; i < length; ) { (bool success, bytes memory response) = (token.token).call( abi.encodeWithSignature( "transfer(address,uint256)", token.receivers[i], token.amounts[i] ) ); if (!success || (response.length != 0 && !(abi.decode(response, (bool))))) revert TokenSend(token.receivers[i]); unchecked { ++i; } } } function sendNative(Token memory token) internal { if (token.receivers.length != token.amounts.length) revert WrongArraysLength(); uint length = token.receivers.length; for (uint i; i < length; ) { (bool success, ) = token.receivers[i].call{ value: token.amounts[i] }(""); if (!success) revert NativeSend(token.receivers[i]); unchecked { ++i; } } } function withdraw(address _token) external onlyOwner { if (_token == address(0)) { uint256 amount = address(this).balance; (bool success, ) = msg.sender.call{ value: amount }(""); if (!success) revert(); } else { (bool success, bytes memory resp) = address(_token).staticcall( abi.encodeWithSignature("balanceOf(address)", address(this)) ); if (!success) revert(); uint amount = abi.decode(resp, (uint)); transferERC20(_token, msg.sender, amount); } } function setOwner(address _owner) external onlyOwner { owner = _owner; } function transferERC20(address _token, address _to, uint _amount) private { (bool success, bytes memory response) = address(_token).call( abi.encodeWithSignature("transfer(address,uint256)", _to, _amount) ); require( success && (response.length == 0 || abi.decode(response, (bool))), "Failed send funds" ); } }
{ "viaIR": true, "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"problem","type":"address"}],"name":"NativeSend","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[{"internalType":"address","name":"problem","type":"address"}],"name":"TokenSend","type":"error"},{"inputs":[],"name":"WrongArraysLength","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"internalType":"struct Disperser.Token[]","name":"input","type":"tuple[]"}],"name":"massSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080806040523461002857600080546001600160a01b0319163317905561073a908161002e8239f35b600080fdfe60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816313af40351461049c5750806351cff8d9146103125780638da5cb5b146102e657638ec45b760361001157346102e2576020806003193601126102de5781359167ffffffffffffffff938484116102da57366023850112156102da57838201359485116102da57602494858501948636918360051b0101116102d65786546001600160a01b039190821633036102c757875b8181106100c8578880f35b6100d3818389610523565b358381168091036102c35761018c576100f56100f082848a610523565b6105ab565b868101858151519201918251510361017c57805151918b5b83811061012257505050506001905b016100bd565b8c8080808a6101328689516106c1565b511661013f8688516106c1565b51905af161014b6106d5565b50156101595760010161010d565b8888886101688f9487516106c1565b5116905191633c7e14fb60e21b8352820152fd5b855163a3b5229960e01b81528790fd5b61019a6100f082848a610523565b86810180515186830190815151036102b357815151928c5b8d8d8c8b8b8986106101d0575050505050505050505060019061011c565b8761023c8a9461022e8897956101fb8b876101f28f8d9a849151169c516106c1565b511696516106c1565b51905163a9059cbb60e01b9381019384526001600160a01b03909516968501968752602087015290948391604090910190565b03601f19810183528261055b565b51925af16102486106d5565b9015908115610282575b5061025f576001016101b2565b8c8a8a8a61026e8589516106c1565b5116905191633e68c41760e01b8352820152fd5b805180151592508d908361029a575b50505038610252565b6102aa9350820181019101610715565b15388c81610291565b865163a3b5229960e01b81528890fd5b8980fd5b505051635fc483c560e01b8152fd5b8680fd5b8580fd5b8380fd5b8280fd5b50503461030e578160031936011261030e57905490516001600160a01b039091168152602090f35b5080fd5b5090346102e257602090816003193601126102de5761032f6104f4565b84546001600160a01b03908116330361048c57811661036857505050508080808047335af161035c6106d5565b50156103655780f35b80fd5b8151838101906370a0823160e01b8252306024820152602481526060810181811067ffffffffffffffff8211176104795784525186929183918291845afa906103af6106d5565b91156102e25784828051810103126102e25790840151835163a9059cbb60e01b81870190815233602483015260448201929092528392919083906103f6816064810161022e565b51925af16104026106d5565b81610449575b50156104145750505080f35b5162461bcd60e51b81529182015260116024820152704661696c65642073656e642066756e647360781b604482015260649150fd5b80518015925084908315610461575b50505038610408565b6104719350820181019101610715565b388381610458565b634e487b7160e01b885260418752602488fd5b8251635fc483c560e01b81528590fd5b828591346102e25760203660031901126102e2576104b86104f4565b8354926001600160a01b039283851633036104e857505016906bffffffffffffffffffffffff60a01b1617815580f35b635fc483c560e01b8152fd5b600435906001600160a01b038216820361050a57565b600080fd5b35906001600160a01b038216820361050a57565b91908110156105455760051b81013590605e198136030182121561050a570190565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761057d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161057d5760051b60200190565b60608136031261050a5760408051919067ffffffffffffffff606084018181118582101761057d5782526105de8361050f565b84526020928381013582811161050a57810136601f8201121561050a5780359061060782610593565b916106148651938461055b565b808352868084019160051b8301019136831161050a5787809101915b8383106106a957509150508601528281013591821161050a57019136601f8401121561050a5782359261066284610593565b9361066f8451958661055b565b808552828086019160051b8301019136831161050a578301905b82821061069a575050505082015290565b81358152908301908301610689565b81906106b48461050f565b8152019101908790610630565b80518210156105455760209160051b010190565b3d15610710573d9067ffffffffffffffff821161057d5760405191610704601f8201601f19166020018461055b565b82523d6000602084013e565b606090565b9081602091031261050a5751801515810361050a579056fea164736f6c6343000813000a
Deployed Bytecode
0x60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816313af40351461049c5750806351cff8d9146103125780638da5cb5b146102e657638ec45b760361001157346102e2576020806003193601126102de5781359167ffffffffffffffff938484116102da57366023850112156102da57838201359485116102da57602494858501948636918360051b0101116102d65786546001600160a01b039190821633036102c757875b8181106100c8578880f35b6100d3818389610523565b358381168091036102c35761018c576100f56100f082848a610523565b6105ab565b868101858151519201918251510361017c57805151918b5b83811061012257505050506001905b016100bd565b8c8080808a6101328689516106c1565b511661013f8688516106c1565b51905af161014b6106d5565b50156101595760010161010d565b8888886101688f9487516106c1565b5116905191633c7e14fb60e21b8352820152fd5b855163a3b5229960e01b81528790fd5b61019a6100f082848a610523565b86810180515186830190815151036102b357815151928c5b8d8d8c8b8b8986106101d0575050505050505050505060019061011c565b8761023c8a9461022e8897956101fb8b876101f28f8d9a849151169c516106c1565b511696516106c1565b51905163a9059cbb60e01b9381019384526001600160a01b03909516968501968752602087015290948391604090910190565b03601f19810183528261055b565b51925af16102486106d5565b9015908115610282575b5061025f576001016101b2565b8c8a8a8a61026e8589516106c1565b5116905191633e68c41760e01b8352820152fd5b805180151592508d908361029a575b50505038610252565b6102aa9350820181019101610715565b15388c81610291565b865163a3b5229960e01b81528890fd5b8980fd5b505051635fc483c560e01b8152fd5b8680fd5b8580fd5b8380fd5b8280fd5b50503461030e578160031936011261030e57905490516001600160a01b039091168152602090f35b5080fd5b5090346102e257602090816003193601126102de5761032f6104f4565b84546001600160a01b03908116330361048c57811661036857505050508080808047335af161035c6106d5565b50156103655780f35b80fd5b8151838101906370a0823160e01b8252306024820152602481526060810181811067ffffffffffffffff8211176104795784525186929183918291845afa906103af6106d5565b91156102e25784828051810103126102e25790840151835163a9059cbb60e01b81870190815233602483015260448201929092528392919083906103f6816064810161022e565b51925af16104026106d5565b81610449575b50156104145750505080f35b5162461bcd60e51b81529182015260116024820152704661696c65642073656e642066756e647360781b604482015260649150fd5b80518015925084908315610461575b50505038610408565b6104719350820181019101610715565b388381610458565b634e487b7160e01b885260418752602488fd5b8251635fc483c560e01b81528590fd5b828591346102e25760203660031901126102e2576104b86104f4565b8354926001600160a01b039283851633036104e857505016906bffffffffffffffffffffffff60a01b1617815580f35b635fc483c560e01b8152fd5b600435906001600160a01b038216820361050a57565b600080fd5b35906001600160a01b038216820361050a57565b91908110156105455760051b81013590605e198136030182121561050a570190565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761057d57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161057d5760051b60200190565b60608136031261050a5760408051919067ffffffffffffffff606084018181118582101761057d5782526105de8361050f565b84526020928381013582811161050a57810136601f8201121561050a5780359061060782610593565b916106148651938461055b565b808352868084019160051b8301019136831161050a5787809101915b8383106106a957509150508601528281013591821161050a57019136601f8401121561050a5782359261066284610593565b9361066f8451958661055b565b808552828086019160051b8301019136831161050a578301905b82821061069a575050505082015290565b81358152908301908301610689565b81906106b48461050f565b8152019101908790610630565b80518210156105455760209160051b010190565b3d15610710573d9067ffffffffffffffff821161057d5760405191610704601f8201601f19166020018461055b565b82523d6000602084013e565b606090565b9081602091031261050a5751801515810361050a579056fea164736f6c6343000813000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
SONIC | 100.00% | $0.430799 | 7.7457 | $3.34 |
[ 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.