Source Code
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14635673 | 1414 days ago | 0.704 ETH | ||||
| - | 14635673 | 1414 days ago | 0.1408 ETH | ||||
| - | 14635673 | 1414 days ago | 0.1408 ETH | ||||
| - | 14635673 | 1414 days ago | 0.2112 ETH | ||||
| - | 14635673 | 1414 days ago | 0.0704 ETH | ||||
| - | 14635673 | 1414 days ago | 0.0704 ETH | ||||
| - | 14635673 | 1414 days ago | 0.0704 ETH | ||||
| - | 14635673 | 1414 days ago | 0.0704 ETH | ||||
| - | 14635673 | 1414 days ago | 0.352 ETH | ||||
| - | 14635673 | 1414 days ago | 0.704 ETH | ||||
| - | 14635673 | 1414 days ago | 1.3376 ETH | ||||
| - | 14635673 | 1414 days ago | 3.168 ETH | ||||
| - | 14635673 | 1414 days ago | 7.04 ETH | ||||
| - | 14152427 | 1489 days ago | 0.198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0396 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0396 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0594 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.0198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.099 ETH | ||||
| - | 14152427 | 1489 days ago | 0.198 ETH | ||||
| - | 14152427 | 1489 days ago | 0.3762 ETH | ||||
| - | 14152427 | 1489 days ago | 0.891 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Treasury
Compiler Version
v0.8.8+commit.dddeac2f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: None
pragma solidity ^0.8.8;
import "@openzeppelin/contracts/finance/PaymentSplitter.sol";
contract Treasury is PaymentSplitter {
uint256 private _numberOfPayees;
constructor(address[] memory payees, uint256[] memory shares_) payable PaymentSplitter(payees, shares_) {
_numberOfPayees = payees.length;
}
receive() external payable override {
emit PaymentReceived(_msgSender(), msg.value);
for (uint i = 0; i < _numberOfPayees; i++) {
release(payable(payee(i)));
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Address.sol";
import "../utils/Context.sol";
import "../utils/math/SafeMath.sol";
/**
* @title PaymentSplitter
* @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware
* that the Ether will be split in this way, since it is handled transparently by the contract.
*
* The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each
* account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim
* an amount proportional to the percentage of total shares they were assigned.
*
* `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the
* accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}
* function.
*/
contract PaymentSplitter is Context {
event PayeeAdded(address account, uint256 shares);
event PaymentReleased(address to, uint256 amount);
event PaymentReceived(address from, uint256 amount);
uint256 private _totalShares;
uint256 private _totalReleased;
mapping(address => uint256) private _shares;
mapping(address => uint256) private _released;
address[] private _payees;
/**
* @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at
* the matching position in the `shares` array.
*
* All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no
* duplicates in `payees`.
*/
constructor(address[] memory payees, uint256[] memory shares_) payable {
require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
require(payees.length > 0, "PaymentSplitter: no payees");
for (uint256 i = 0; i < payees.length; i++) {
_addPayee(payees[i], shares_[i]);
}
}
/**
* @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully
* reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the
* reliability of the events, and not the actual splitting of Ether.
*
* To learn more about this see the Solidity documentation for
* https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback
* functions].
*/
receive() external payable virtual {
emit PaymentReceived(_msgSender(), msg.value);
}
/**
* @dev Getter for the total shares held by payees.
*/
function totalShares() public view returns (uint256) {
return _totalShares;
}
/**
* @dev Getter for the total amount of Ether already released.
*/
function totalReleased() public view returns (uint256) {
return _totalReleased;
}
/**
* @dev Getter for the amount of shares held by an account.
*/
function shares(address account) public view returns (uint256) {
return _shares[account];
}
/**
* @dev Getter for the amount of Ether already released to a payee.
*/
function released(address account) public view returns (uint256) {
return _released[account];
}
/**
* @dev Getter for the address of the payee number `index`.
*/
function payee(uint256 index) public view returns (address) {
return _payees[index];
}
/**
* @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the
* total shares and their previous withdrawals.
*/
function release(address payable account) public virtual {
require(_shares[account] > 0, "PaymentSplitter: account has no shares");
uint256 totalReceived = address(this).balance + _totalReleased;
uint256 payment = (totalReceived * _shares[account]) / _totalShares - _released[account];
require(payment != 0, "PaymentSplitter: account is not due payment");
_released[account] = _released[account] + payment;
_totalReleased = _totalReleased + payment;
Address.sendValue(account, payment);
emit PaymentReleased(account, payment);
}
/**
* @dev Add a new payee to the contract.
* @param account The address of the payee to add.
* @param shares_ The number of shares owned by the payee.
*/
function _addPayee(address account, uint256 shares_) private {
require(account != address(0), "PaymentSplitter: account is the zero address");
require(shares_ > 0, "PaymentSplitter: shares are 0");
require(_shares[account] == 0, "PaymentSplitter: account already has shares");
_payees.push(account);
_shares[account] = shares_;
_totalShares = _totalShares + shares_;
emit PayeeAdded(account, shares_);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"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":[{"internalType":"address[]","name":"payees","type":"address[]"},{"internalType":"uint256[]","name":"shares_","type":"uint256[]"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260405162000bc138038062000bc1833981016040819052620000269162000437565b818180518251146200009a5760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620000ed5760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f20706179656573000000000000604482015260640162000091565b60005b825181101562000159576200014483828151811062000113576200011362000515565b602002602001015183838151811062000130576200013062000515565b60200260200101516200016960201b60201c565b80620001508162000541565b915050620000f0565b50509151600555506200057a9050565b6001600160a01b038216620001d65760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b606482015260840162000091565b60008111620002285760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a20736861726573206172652030000000604482015260640162000091565b6001600160a01b03821660009081526002602052604090205415620002a45760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b606482015260840162000091565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0384169081179091556000908152600260205260408120829055546200030c9082906200055f565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000396576200039662000355565b604052919050565b60006001600160401b03821115620003ba57620003ba62000355565b5060051b60200190565b600082601f830112620003d657600080fd5b81516020620003ef620003e9836200039e565b6200036b565b82815260059290921b840181019181810190868411156200040f57600080fd5b8286015b848110156200042c578051835291830191830162000413565b509695505050505050565b600080604083850312156200044b57600080fd5b82516001600160401b03808211156200046357600080fd5b818501915085601f8301126200047857600080fd5b815160206200048b620003e9836200039e565b82815260059290921b84018101918181019089841115620004ab57600080fd5b948201945b83861015620004e25785516001600160a01b0381168114620004d25760008081fd5b82529482019490820190620004b0565b91880151919650909350505080821115620004fc57600080fd5b506200050b85828601620003c4565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156200055857620005586200052b565b5060010190565b600082198211156200057557620005756200052b565b500190565b610637806200058a6000396000f3fe6080604052600436106100595760003560e01c806319165587146100d85780633a98ef39146100f55780638b83209b146101195780639852595c14610151578063ce7c2ac214610187578063e33b7de3146101bd57600080fd5b366100d3577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a160005b6005548110156100d0576100be6100b9826101d2565b610202565b806100c88161050b565b9150506100a3565b50005b600080fd5b3480156100e457600080fd5b506100f36100b936600461053e565b005b34801561010157600080fd5b506000545b6040519081526020015b60405180910390f35b34801561012557600080fd5b50610139610134366004610562565b6101d2565b6040516001600160a01b039091168152602001610110565b34801561015d57600080fd5b5061010661016c36600461053e565b6001600160a01b031660009081526003602052604090205490565b34801561019357600080fd5b506101066101a236600461053e565b6001600160a01b031660009081526002602052604090205490565b3480156101c957600080fd5b50600154610106565b6000600482815481106101e7576101e761057b565b6000918252602090912001546001600160a01b031692915050565b6001600160a01b03811660009081526002602052604090205461027b5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b60006001544761028b9190610591565b6001600160a01b038316600090815260036020908152604080832054835460029093529083205493945091926102c190856105a9565b6102cb91906105c8565b6102d591906105ea565b9050806103385760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610272565b6001600160a01b03831660009081526003602052604090205461035c908290610591565b6001600160a01b038416600090815260036020526040902055600154610383908290610591565b60015561039083826103d7565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b804710156104275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610272565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610474576040519150601f19603f3d011682016040523d82523d6000602084013e610479565b606091505b50509050806104f05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610272565b505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561051f5761051f6104f5565b5060010190565b6001600160a01b038116811461053b57600080fd5b50565b60006020828403121561055057600080fd5b813561055b81610526565b9392505050565b60006020828403121561057457600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600082198211156105a4576105a46104f5565b500190565b60008160001904831182151516156105c3576105c36104f5565b500290565b6000826105e557634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156105fc576105fc6104f5565b50039056fea2646970667358221220683ac79531a29b877f52173b1cba448c8fed5da1e987a2d6e744deb783654f2c64736f6c63430008080033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000aed67f1bb13c876d65657b6a08bb7fe68b7f61af00000000000000000000000007666ac59d43dfaf938cd603cbc40c6e4600c5bf000000000000000000000000e9e9206b598f6fc95e006684fe432f100e8761100000000000000000000000004500d9138f9ca18d5e6c9af6299d1c07172899db000000000000000000000000c4768845e794ca2a1585fa03bfac48dd10a10853000000000000000000000000b521d8ee678f406e008b26faafa868c051c556280000000000000000000000006b541517127284402251fb8391841a9a65f2661c000000000000000000000000fa081f79e9bd07e7742b854adc8b8c82a82bb01c0000000000000000000000005fb13b6a7d7ec59cafce892feea1992312b41593000000000000000000000000797e022eeab958c74794b52de0980300061f3e6c000000000000000000000000423231cf52b044d83e03d38ba219489f492a4d0400000000000000000000000079da92cd4ddf9c8bad35b2646aef58aaec8ec567000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000002d0000000000000000000000000000000000000000000000000000000000000013000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x6080604052600436106100595760003560e01c806319165587146100d85780633a98ef39146100f55780638b83209b146101195780639852595c14610151578063ce7c2ac214610187578063e33b7de3146101bd57600080fd5b366100d3577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a160005b6005548110156100d0576100be6100b9826101d2565b610202565b806100c88161050b565b9150506100a3565b50005b600080fd5b3480156100e457600080fd5b506100f36100b936600461053e565b005b34801561010157600080fd5b506000545b6040519081526020015b60405180910390f35b34801561012557600080fd5b50610139610134366004610562565b6101d2565b6040516001600160a01b039091168152602001610110565b34801561015d57600080fd5b5061010661016c36600461053e565b6001600160a01b031660009081526003602052604090205490565b34801561019357600080fd5b506101066101a236600461053e565b6001600160a01b031660009081526002602052604090205490565b3480156101c957600080fd5b50600154610106565b6000600482815481106101e7576101e761057b565b6000918252602090912001546001600160a01b031692915050565b6001600160a01b03811660009081526002602052604090205461027b5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b60006001544761028b9190610591565b6001600160a01b038316600090815260036020908152604080832054835460029093529083205493945091926102c190856105a9565b6102cb91906105c8565b6102d591906105ea565b9050806103385760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610272565b6001600160a01b03831660009081526003602052604090205461035c908290610591565b6001600160a01b038416600090815260036020526040902055600154610383908290610591565b60015561039083826103d7565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b804710156104275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610272565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610474576040519150601f19603f3d011682016040523d82523d6000602084013e610479565b606091505b50509050806104f05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610272565b505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561051f5761051f6104f5565b5060010190565b6001600160a01b038116811461053b57600080fd5b50565b60006020828403121561055057600080fd5b813561055b81610526565b9392505050565b60006020828403121561057457600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600082198211156105a4576105a46104f5565b500190565b60008160001904831182151516156105c3576105c36104f5565b500290565b6000826105e557634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156105fc576105fc6104f5565b50039056fea2646970667358221220683ac79531a29b877f52173b1cba448c8fed5da1e987a2d6e744deb783654f2c64736f6c63430008080033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000aed67f1bb13c876d65657b6a08bb7fe68b7f61af00000000000000000000000007666ac59d43dfaf938cd603cbc40c6e4600c5bf000000000000000000000000e9e9206b598f6fc95e006684fe432f100e8761100000000000000000000000004500d9138f9ca18d5e6c9af6299d1c07172899db000000000000000000000000c4768845e794ca2a1585fa03bfac48dd10a10853000000000000000000000000b521d8ee678f406e008b26faafa868c051c556280000000000000000000000006b541517127284402251fb8391841a9a65f2661c000000000000000000000000fa081f79e9bd07e7742b854adc8b8c82a82bb01c0000000000000000000000005fb13b6a7d7ec59cafce892feea1992312b41593000000000000000000000000797e022eeab958c74794b52de0980300061f3e6c000000000000000000000000423231cf52b044d83e03d38ba219489f492a4d0400000000000000000000000079da92cd4ddf9c8bad35b2646aef58aaec8ec567000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000002d0000000000000000000000000000000000000000000000000000000000000013000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : payees (address[]): 0xaed67F1Bb13C876D65657b6A08bb7fE68B7f61af,0x07666ac59D43dfaf938Cd603cBc40C6e4600C5bF,0xE9E9206B598F6Fc95E006684Fe432f100E876110,0x4500d9138f9CA18D5e6C9aF6299d1c07172899db,0xC4768845E794Ca2A1585Fa03BFAC48DD10A10853,0xb521D8EE678F406E008B26faaFA868c051c55628,0x6B541517127284402251FB8391841A9a65f2661c,0xFA081F79e9bd07E7742B854Adc8B8c82A82bb01C,0x5Fb13b6A7d7Ec59caFce892feEA1992312B41593,0x797e022eeaB958C74794b52de0980300061f3e6c,0x423231CF52B044D83e03D38bA219489f492A4d04,0x79Da92cd4Ddf9c8bad35B2646AEf58aAEc8EC567
Arg [1] : shares_ (uint256[]): 45,19,10,5,1,1,1,1,3,2,2,10
-----Encoded View---------------
28 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 000000000000000000000000aed67f1bb13c876d65657b6a08bb7fe68b7f61af
Arg [4] : 00000000000000000000000007666ac59d43dfaf938cd603cbc40c6e4600c5bf
Arg [5] : 000000000000000000000000e9e9206b598f6fc95e006684fe432f100e876110
Arg [6] : 0000000000000000000000004500d9138f9ca18d5e6c9af6299d1c07172899db
Arg [7] : 000000000000000000000000c4768845e794ca2a1585fa03bfac48dd10a10853
Arg [8] : 000000000000000000000000b521d8ee678f406e008b26faafa868c051c55628
Arg [9] : 0000000000000000000000006b541517127284402251fb8391841a9a65f2661c
Arg [10] : 000000000000000000000000fa081f79e9bd07e7742b854adc8b8c82a82bb01c
Arg [11] : 0000000000000000000000005fb13b6a7d7ec59cafce892feea1992312b41593
Arg [12] : 000000000000000000000000797e022eeab958c74794b52de0980300061f3e6c
Arg [13] : 000000000000000000000000423231cf52b044d83e03d38ba219489f492a4d04
Arg [14] : 00000000000000000000000079da92cd4ddf9c8bad35b2646aef58aaec8ec567
Arg [15] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [16] : 000000000000000000000000000000000000000000000000000000000000002d
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [18] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [26] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [27] : 000000000000000000000000000000000000000000000000000000000000000a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.