Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
13939159 | 1107 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
Stream
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
///////////////////////////////////////////////////////////////////////////////////// // // SPDX-License-Identifier: MIT // // ███ ███ ██████ ███ ██ ███████ ██ ██ ██████ ██ ██████ ███████ // ████ ████ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ // ██ ████ ██ ██ ██ ██ ██ ██ █████ ████ ██████ ██ ██████ █████ // ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ // ██ ██ ██████ ██ ████ ███████ ██ ██ ██ ██ ███████ // // ███████ ████████ ██████ ███████ █████ ███ ███ // ██ ██ ██ ██ ██ ██ ██ ████ ████ // ███████ ██ ██████ █████ ███████ ██ ████ ██ // ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ // ███████ ██ ██ ██ ███████ ██ ██ ██ ██ // // https://moneypipe.xyz // ///////////////////////////////////////////////////////////////////////////////////// pragma solidity ^0.8.4; import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; contract Stream is Initializable { Member[] private _members; struct Member { address account; uint32 value; uint32 total; } function initialize(Member[] calldata m) initializer public { for(uint i=0; i<m.length; i++) { _members.push(m[i]); } } receive () external payable { require(_members.length > 0, "1"); for(uint i=0; i<_members.length; i++) { Member memory member = _members[i]; _transfer(member.account, msg.value * member.value / member.total); } } function members() external view returns (Member[] memory) { return _members; } // adopted from https://github.com/lexDAO/Kali/blob/main/contracts/libraries/SafeTransferLib.sol error TransferFailed(); function _transfer(address to, uint256 amount) internal { bool callStatus; assembly { callStatus := call(gas(), to, amount, 0, 0, 0, 0) } if (!callStatus) revert TransferFailed(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. * * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. * * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. */ abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private _initializing; /** * @dev Modifier to protect an initializer function from being invoked twice. */ modifier initializer() { require(_initializing || !_initialized, "Initializable: contract is already initialized"); bool isTopLevelCall = !_initializing; if (isTopLevelCall) { _initializing = true; _initialized = true; } _; if (isTopLevelCall) { _initializing = false; } } }
{ "optimizer": { "enabled": true, "runs": 1000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"value","type":"uint32"},{"internalType":"uint32","name":"total","type":"uint32"}],"internalType":"struct Stream.Member[]","name":"m","type":"tuple[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"members","outputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"value","type":"uint32"},{"internalType":"uint32","name":"total","type":"uint32"}],"internalType":"struct Stream.Member[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610673806100206000396000f3fe60806040526004361061002d5760003560e01c8063804e1c081461014a578063bdd4d18d1461016c57600080fd5b36610145576001546100865760405162461bcd60e51b815260206004820152600160248201527f310000000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b600154811015610142576000600182815481106100b657634e487b7160e01b600052603260045260246000fd5b600091825260209182902060408051606081018252929091015473ffffffffffffffffffffffffffffffffffffffff811680845263ffffffff600160a01b83048116958501869052600160c01b90920490911691830182905291935061012f9261012090346104b0565b61012a9190610490565b610197565b508061013a816104cf565b915050610089565b50005b600080fd5b34801561015657600080fd5b5061016a6101653660046103a7565b6101e1565b005b34801561017857600080fd5b50610181610313565b60405161018e9190610417565b60405180910390f35b600080600080600085875af19050806101dc576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600054610100900460ff16806101fa575060005460ff16155b61026c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161007d565b600054610100900460ff1615801561028e576000805461ffff19166101011790555b60005b828110156102fc5760018484838181106102bb57634e487b7160e01b600052603260045260246000fd5b835460018101855560009485526020909420606090910292909201929190910190506102e7828261051b565b505080806102f4906104cf565b915050610291565b5080156101dc576000805461ff0019169055505050565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561039e576000848152602090819020604080516060810182529185015473ffffffffffffffffffffffffffffffffffffffff8116835263ffffffff600160a01b8204811684860152600160c01b9091041690820152825260019092019101610337565b50505050905090565b600080602083850312156103b9578182fd5b823567ffffffffffffffff808211156103d0578384fd5b818501915085601f8301126103e3578384fd5b8135818111156103f1578485fd5b866020606083028501011115610405578485fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015610483578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015163ffffffff9081168887015290860151168585015260609093019290850190600101610434565b5091979650505050505050565b6000826104ab57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156104ca576104ca6104ea565b500290565b60006000198214156104e3576104e36104ea565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6000813563ffffffff81168114610515578182fd5b92915050565b813573ffffffffffffffffffffffffffffffffffffffff811680821461054057600080fd5b82549150807fffffffffffffffffffffffff0000000000000000000000000000000000000000831617835577ffffffff000000000000000000000000000000000000000061059060208601610500565b60a01b1680827fffffffffffffffff0000000000000000000000000000000000000000000000008516171784557bffffffff0000000000000000000000000000000000000000000000006105e660408701610500565b60c01b167fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff83167fffffffff000000000000000000000000000000000000000000000000000000008516178217178455505050505056fea2646970667358221220adc0272f2ed275777abded06c3247c7cfd698af5c3bee91a4d44995fb6a8800e64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061002d5760003560e01c8063804e1c081461014a578063bdd4d18d1461016c57600080fd5b36610145576001546100865760405162461bcd60e51b815260206004820152600160248201527f310000000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b600154811015610142576000600182815481106100b657634e487b7160e01b600052603260045260246000fd5b600091825260209182902060408051606081018252929091015473ffffffffffffffffffffffffffffffffffffffff811680845263ffffffff600160a01b83048116958501869052600160c01b90920490911691830182905291935061012f9261012090346104b0565b61012a9190610490565b610197565b508061013a816104cf565b915050610089565b50005b600080fd5b34801561015657600080fd5b5061016a6101653660046103a7565b6101e1565b005b34801561017857600080fd5b50610181610313565b60405161018e9190610417565b60405180910390f35b600080600080600085875af19050806101dc576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600054610100900460ff16806101fa575060005460ff16155b61026c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161007d565b600054610100900460ff1615801561028e576000805461ffff19166101011790555b60005b828110156102fc5760018484838181106102bb57634e487b7160e01b600052603260045260246000fd5b835460018101855560009485526020909420606090910292909201929190910190506102e7828261051b565b505080806102f4906104cf565b915050610291565b5080156101dc576000805461ff0019169055505050565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561039e576000848152602090819020604080516060810182529185015473ffffffffffffffffffffffffffffffffffffffff8116835263ffffffff600160a01b8204811684860152600160c01b9091041690820152825260019092019101610337565b50505050905090565b600080602083850312156103b9578182fd5b823567ffffffffffffffff808211156103d0578384fd5b818501915085601f8301126103e3578384fd5b8135818111156103f1578485fd5b866020606083028501011115610405578485fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015610483578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015163ffffffff9081168887015290860151168585015260609093019290850190600101610434565b5091979650505050505050565b6000826104ab57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156104ca576104ca6104ea565b500290565b60006000198214156104e3576104e36104ea565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6000813563ffffffff81168114610515578182fd5b92915050565b813573ffffffffffffffffffffffffffffffffffffffff811680821461054057600080fd5b82549150807fffffffffffffffffffffffff0000000000000000000000000000000000000000831617835577ffffffff000000000000000000000000000000000000000061059060208601610500565b60a01b1680827fffffffffffffffff0000000000000000000000000000000000000000000000008516171784557bffffffff0000000000000000000000000000000000000000000000006105e660408701610500565b60c01b167fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff83167fffffffff000000000000000000000000000000000000000000000000000000008516178217178455505050505056fea2646970667358221220adc0272f2ed275777abded06c3247c7cfd698af5c3bee91a4d44995fb6a8800e64736f6c63430008040033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.