Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH | ||||
| Transfer | 16521583 | 1131 days ago | 0.0010362 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Minimal Proxy Contract for 0x81b1c2521647ded838c9a746a2922cb8c6347a64
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 ABI
API[{"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"}]Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,976.82 | 0.000000000000000819 | <$0.000001 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.