Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 961 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Unlock Transfers... | 23920167 | 95 days ago | IN | 0 ETH | 0.00002241 | ||||
| Submit Transfer ... | 23919865 | 95 days ago | IN | 0 ETH | 0.00006954 | ||||
| Unlock Transfers... | 23918494 | 95 days ago | IN | 0 ETH | 0.00000332 | ||||
| Submit Transfer ... | 23918196 | 95 days ago | IN | 0 ETH | 0.00000558 | ||||
| Unlock Transfers... | 23827512 | 108 days ago | IN | 0 ETH | 0.0000497 | ||||
| Submit Transfer ... | 23827212 | 108 days ago | IN | 0 ETH | 0.00021738 | ||||
| Unlock Transfers... | 23824425 | 108 days ago | IN | 0 ETH | 0.00002101 | ||||
| Submit Transfer ... | 23824125 | 108 days ago | IN | 0 ETH | 0.00002677 | ||||
| Withdraw | 23822590 | 108 days ago | IN | 0.00016481 ETH | 0.00003768 | ||||
| Unlock Transfers... | 23796265 | 112 days ago | IN | 0 ETH | 0.00002582 | ||||
| Submit Transfer ... | 23795963 | 112 days ago | IN | 0 ETH | 0.00004301 | ||||
| Unlock Transfers... | 23795718 | 112 days ago | IN | 0 ETH | 0.00002078 | ||||
| Submit Transfer ... | 23795412 | 112 days ago | IN | 0 ETH | 0.00006728 | ||||
| Unlock Transfers... | 23794008 | 112 days ago | IN | 0 ETH | 0.00000984 | ||||
| Submit Transfer ... | 23793707 | 112 days ago | IN | 0 ETH | 0.0000189 | ||||
| Unlock Transfers... | 23776217 | 115 days ago | IN | 0 ETH | 0.00002157 | ||||
| Submit Transfer ... | 23775915 | 115 days ago | IN | 0 ETH | 0.00003939 | ||||
| Unlock Transfers... | 23739241 | 120 days ago | IN | 0 ETH | 0.00004738 | ||||
| Submit Transfer ... | 23738940 | 120 days ago | IN | 0 ETH | 0.00009318 | ||||
| Unlock Transfers... | 23692768 | 126 days ago | IN | 0 ETH | 0.00003256 | ||||
| Submit Transfer ... | 23692457 | 126 days ago | IN | 0 ETH | 0.00016112 | ||||
| Withdraw | 23641000 | 134 days ago | IN | 0.00012996 ETH | 0.00004633 | ||||
| Unlock Transfers... | 23640815 | 134 days ago | IN | 0 ETH | 0.00001635 | ||||
| Submit Transfer ... | 23640513 | 134 days ago | IN | 0 ETH | 0.00002891 | ||||
| Unlock Transfers... | 23640152 | 134 days ago | IN | 0 ETH | 0.00006191 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23822590 | 108 days ago | 0.00016481 ETH | ||||
| Transfer | 23641000 | 134 days ago | 0.00012996 ETH | ||||
| Transfer | 23374227 | 171 days ago | 0.00011085 ETH | ||||
| Transfer | 22815981 | 249 days ago | 0.00020128 ETH | ||||
| Transfer | 22786995 | 253 days ago | 0.00020115 ETH | ||||
| Transfer | 22730083 | 261 days ago | 0.000197 ETH | ||||
| Transfer | 22624590 | 276 days ago | 0.00019024 ETH | ||||
| Transfer | 22588338 | 281 days ago | 0.00018462 ETH | ||||
| Transfer | 22573561 | 283 days ago | 0.00018951 ETH | ||||
| Transfer | 22531194 | 289 days ago | 0.00019767 ETH | ||||
| Transfer | 22466573 | 298 days ago | 0.00019594 ETH | ||||
| Transfer | 22427724 | 303 days ago | 0.00027706 ETH | ||||
| Transfer | 22427714 | 303 days ago | 0.00027706 ETH | ||||
| Transfer | 22423328 | 304 days ago | 0.00027679 ETH | ||||
| Transfer | 22383261 | 310 days ago | 0.0002834 ETH | ||||
| Transfer | 22301445 | 321 days ago | 0.00031297 ETH | ||||
| Transfer | 22282125 | 324 days ago | 0.00031719 ETH | ||||
| Transfer | 22282065 | 324 days ago | 0.00031868 ETH | ||||
| Transfer | 22272971 | 325 days ago | 0.00030395 ETH | ||||
| Transfer | 22238644 | 330 days ago | 0.00031287 ETH | ||||
| Transfer | 22238395 | 330 days ago | 0.00031511 ETH | ||||
| Transfer | 22232218 | 331 days ago | 0.00033779 ETH | ||||
| Transfer | 22201603 | 335 days ago | 0.00027692 ETH | ||||
| Transfer | 22146035 | 343 days ago | 0.00026573 ETH | ||||
| Transfer | 22118619 | 347 days ago | 0.00024014 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ProxyMultiSig
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;
import "@openzeppelin/contracts/proxy/Proxy.sol";
import "@openzeppelin/contracts/utils/StorageSlot.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "./MultiSigWallet.sol";
import "hardhat/console.sol";
contract ProxyMultiSig is Proxy, MultiSigWallet {
bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
bytes32 private constant ADMIN_STORAGE_LOCATION = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
bytes4 private constant _UPGRADE_TO_AND_CALL_SIGNATURE = bytes4(keccak256("_upgradeToAndCall(address,bytes)"));
event Upgraded(address indexed implementation);
constructor(
address _logic,
bytes memory _data,
address[] memory owners,
uint _required
) MultiSigWallet(owners, _required) {
// Cannot use _upgradeToAndCall because of onlyWallet modifier
_upgradeTo(_logic);
if (_data.length > 0) {
Address.functionDelegateCall(_logic, _data);
}
StorageSlot.getAddressSlot(ADMIN_STORAGE_LOCATION).value = msg.sender; // trick the hardhat-deploy
}
function implementation() external view returns (address) {
return _implementation();
}
function upgradeTo(address newImplementation) external payable ownerExists(msg.sender) {
submitTransaction(
address(this),
msg.value,
abi.encodeWithSelector(_UPGRADE_TO_AND_CALL_SIGNATURE, newImplementation, bytes(""))
);
}
function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ownerExists(msg.sender) {
submitTransaction(
address(this),
msg.value,
abi.encodeWithSelector(_UPGRADE_TO_AND_CALL_SIGNATURE, newImplementation, data)
);
}
function _upgradeToAndCall(address newImplementation, bytes memory data) external onlyWallet payable {
_upgradeTo(newImplementation);
if (data.length > 0) {
Address.functionDelegateCall(newImplementation, data);
}
}
function _upgradeTo(address newImplementation) internal {
require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
emit Upgraded(newImplementation);
}
function _implementation() internal view override returns (address) {
return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
* instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
* be specified by overriding the virtual {_implementation} function.
*
* Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
* different contract through the {_delegate} function.
*
* The success and return data of the delegated call will be returned back to the caller of the proxy.
*/
abstract contract Proxy {
/**
* @dev Delegates the current call to `implementation`.
*
* This function does not return to its internall call site, it will return directly to the external caller.
*/
function _delegate(address implementation) internal virtual {
assembly {
// Copy msg.data. We take full control of memory in this inline assembly
// block because it will not return to Solidity code. We overwrite the
// Solidity scratch pad at memory position 0.
calldatacopy(0, 0, calldatasize())
// Call the implementation.
// out and outsize are 0 because we don't know the size yet.
let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
// Copy the returned data.
returndatacopy(0, 0, returndatasize())
switch result
// delegatecall returns 0 on error.
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
}
}
/**
* @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
* and {_fallback} should delegate.
*/
function _implementation() internal view virtual returns (address);
/**
* @dev Delegates the current call to the address returned by `_implementation()`.
*
* This function does not return to its internall call site, it will return directly to the external caller.
*/
function _fallback() internal virtual {
_beforeFallback();
_delegate(_implementation());
}
/**
* @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
* function in the contract matches the call data.
*/
fallback() external payable virtual {
_fallback();
}
/**
* @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
* is empty.
*/
receive() external payable virtual {
_fallback();
}
/**
* @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
* call, or as part of the Solidity `fallback` or `receive` functions.
*
* If overriden should call `super._beforeFallback()`.
*/
function _beforeFallback() internal virtual {}
}// 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 Library for reading and writing primitive types to specific storage slots.
*
* Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
* This library helps with reading and writing to such slots without the need for inline assembly.
*
* The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
*
* Example usage to set ERC1967 implementation slot:
* ```
* contract ERC1967 {
* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
*
* function _getImplementation() internal view returns (address) {
* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
* }
*
* function _setImplementation(address newImplementation) internal {
* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
* }
* }
* ```
*
* _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
*/
library StorageSlot {
struct AddressSlot {
address value;
}
struct BooleanSlot {
bool value;
}
struct Bytes32Slot {
bytes32 value;
}
struct Uint256Slot {
uint256 value;
}
/**
* @dev Returns an `AddressSlot` with member `value` located at `slot`.
*/
function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `BooleanSlot` with member `value` located at `slot`.
*/
function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
*/
function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Uint256Slot` with member `value` located at `slot`.
*/
function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
assembly {
r.slot := slot
}
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;
contract MultiSigWallet {
/*
* Events
*/
event Confirmation(address indexed sender, uint indexed transactionId);
event Revocation(address indexed sender, uint indexed transactionId);
event Submission(uint indexed transactionId);
event Execution(uint indexed transactionId);
event ExecutionFailure(uint indexed transactionId);
event OwnerAddition(address indexed owner);
event OwnerRemoval(address indexed owner);
event RequirementChange(uint required);
/*
* Constants
*/
uint constant public MAX_OWNER_COUNT = 50;
/*
* Storage
*/
mapping(uint => Transaction) public transactions;
mapping(uint => mapping(address => bool)) public confirmations;
mapping(address => bool) public isOwner;
address[] public owners;
uint public required;
uint public transactionCount;
struct Transaction {
address destination;
uint value;
bytes data;
bool executed;
}
/*
* Modifiers
*/
modifier onlyWallet() {
require(msg.sender == address(this));
_;
}
modifier ownerDoesNotExist(address owner) {
require(!isOwner[owner]);
_;
}
modifier ownerExists(address owner) {
require(isOwner[owner]);
_;
}
modifier transactionExists(uint transactionId) {
require(transactions[transactionId].destination != address(0));
_;
}
modifier confirmed(uint transactionId, address owner) {
require(confirmations[transactionId][owner]);
_;
}
modifier notConfirmed(uint transactionId, address owner) {
require(!confirmations[transactionId][owner]);
_;
}
modifier notExecuted(uint transactionId) {
require(!transactions[transactionId].executed);
_;
}
modifier notNull(address _address) {
require(_address != address(0));
_;
}
modifier validRequirement(uint ownerCount, uint _required) {
require(ownerCount <= MAX_OWNER_COUNT
&& _required <= ownerCount
&& _required != 0
&& ownerCount != 0);
_;
}
/*
* Public functions
*/
/// @dev Contract constructor sets initial owners and required number of confirmations.
/// @param _owners List of initial owners.
/// @param _required Number of required confirmations.
constructor(address[] memory _owners, uint _required)
validRequirement(_owners.length, _required)
{
for (uint i = 0; i < _owners.length; i++) {
require(!isOwner[_owners[i]] && _owners[i] != address(0));
isOwner[_owners[i]] = true;
}
owners = _owners;
required = _required;
}
/// @dev Allows to add a new owner. Transaction has to be sent by wallet.
/// @param owner Address of new owner.
function addOwner(address owner)
public
onlyWallet
ownerDoesNotExist(owner)
notNull(owner)
validRequirement(owners.length + 1, required)
{
isOwner[owner] = true;
owners.push(owner);
emit OwnerAddition(owner);
}
/// @dev Allows to remove an owner. Transaction has to be sent by wallet.
/// @param owner Address of owner.
function removeOwner(address owner)
public
onlyWallet
ownerExists(owner)
{
isOwner[owner] = false;
for (uint i = 0; i < owners.length - 1; i++)
if (owners[i] == owner) {
owners[i] = owners[owners.length - 1];
break;
}
owners.pop();
if (required > owners.length)
changeRequirement(owners.length);
emit OwnerRemoval(owner);
}
/// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
/// @param owner Address of owner to be replaced.
/// @param newOwner Address of new owner.
function replaceOwner(address owner, address newOwner)
public
onlyWallet
ownerExists(owner)
ownerDoesNotExist(newOwner)
{
for (uint i = 0; i < owners.length; i++)
if (owners[i] == owner) {
owners[i] = newOwner;
break;
}
isOwner[owner] = false;
isOwner[newOwner] = true;
emit OwnerRemoval(owner);
emit OwnerAddition(newOwner);
}
/// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
/// @param _required Number of required confirmations.
function changeRequirement(uint _required)
public
onlyWallet
validRequirement(owners.length, _required)
{
required = _required;
emit RequirementChange(_required);
}
/// @dev Allows an owner to submit and confirm a transaction.
/// @param destination Transaction target address.
/// @param value Transaction ether value.
/// @param data Transaction data payload.
/// @return transactionId Returns transaction ID.
function submitTransaction(
address destination,
uint value,
bytes memory data
) public returns (uint transactionId)
{
transactionId = addTransaction(destination, value, data);
confirmTransaction(transactionId);
}
/// @dev Allows an owner to confirm a transaction.
/// @param transactionId Transaction ID.
function confirmTransaction(uint transactionId)
public
ownerExists(msg.sender)
transactionExists(transactionId)
notConfirmed(transactionId, msg.sender)
{
confirmations[transactionId][msg.sender] = true;
emit Confirmation(msg.sender, transactionId);
executeTransaction(transactionId);
}
/// @dev Allows an owner to revoke a confirmation for a transaction.
/// @param transactionId Transaction ID.
function revokeConfirmation(uint transactionId)
public
ownerExists(msg.sender)
confirmed(transactionId, msg.sender)
notExecuted(transactionId)
{
confirmations[transactionId][msg.sender] = false;
emit Revocation(msg.sender, transactionId);
}
/// @dev Allows anyone to execute a confirmed transaction.
/// @param transactionId Transaction ID.
function executeTransaction(uint transactionId)
public
ownerExists(msg.sender)
confirmed(transactionId, msg.sender)
notExecuted(transactionId)
{
if (isConfirmed(transactionId)) {
Transaction storage txn = transactions[transactionId];
txn.executed = true;
if (external_call(txn.destination, txn.value, txn.data.length, txn.data))
emit Execution(transactionId);
else {
emit ExecutionFailure(transactionId);
txn.executed = false;
}
}
}
// call has been separated into its own function in order to take advantage
// of the Solidity's code generator to produce a loop that copies tx.data into memory.
function external_call(address destination, uint value, uint dataLength, bytes memory data) private returns (bool) {
bool result;
assembly {
let x := mload(0x40) // "Allocate" memory for output (0x40 is where "free memory" pointer is stored by convention)
let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that
result := call(
sub(gas(), 36810), // 34710 is the value that solidity is currently emitting // todo
// It includes callGas (700) + callVeryLow (3, to pay for SUB) + callValueTransferGas (9000) +
// callNewAccountGas (25000, in case the destination address does not exist and needs creating) +
// gasSLoadEIP2929 (2100)
destination,
value,
d,
dataLength, // Size of the input (in bytes) - this is what fixes the padding problem
x,
0 // Output is ignored, therefore the output size is zero
)
}
return result;
}
/// @dev Returns the confirmation status of a transaction.
/// @param transactionId Transaction ID.
/// @return Confirmation status.
function isConfirmed(uint transactionId) public view returns (bool)
{
uint count = 0;
for (uint i = 0; i < owners.length; i++) {
if (confirmations[transactionId][owners[i]])
count += 1;
if (count == required)
return true;
}
return false;
}
/*
* Internal functions
*/
/// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
/// @param destination Transaction target address.
/// @param value Transaction ether value.
/// @param data Transaction data payload.
/// @return transactionId Returns transaction ID.
function addTransaction(
address destination,
uint value,
bytes memory data
) internal
notNull(destination) returns (uint transactionId)
{
transactionId = transactionCount;
transactions[transactionId] = Transaction({
destination : destination,
value : value,
data : data,
executed : false
});
transactionCount += 1;
emit Submission(transactionId);
}
/*
* Web3 call functions
*/
/// @dev Returns number of confirmations of a transaction.
/// @param transactionId Transaction ID.
/// @return count Number of confirmations.
function getConfirmationCount(uint transactionId)
public
view
returns (uint count)
{
for (uint i = 0; i < owners.length; i++)
if (confirmations[transactionId][owners[i]])
count += 1;
}
/// @dev Returns total number of transactions after filers are applied.
/// @param pending Include pending transactions.
/// @param executed Include executed transactions.
/// @return count Total number of transactions after filters are applied.
function getTransactionCount(bool pending, bool executed)
public
view
returns (uint count)
{
for (uint i = 0; i < transactionCount; i++)
if (pending && !transactions[i].executed
|| executed && transactions[i].executed)
count += 1;
}
/// @dev Returns list of owners.
/// @return List of owner addresses.
function getOwners() public view returns (address[] memory)
{
return owners;
}
/// @dev Returns array with owner addresses, which confirmed transaction.
/// @param transactionId Transaction ID.
/// @return _confirmations Returns array of owner addresses.
function getConfirmations(uint transactionId) public view
returns (address[] memory _confirmations)
{
address[] memory confirmationsTemp = new address[](owners.length);
uint count = 0;
uint i;
for (i = 0; i < owners.length; i++)
if (confirmations[transactionId][owners[i]]) {
confirmationsTemp[count] = owners[i];
count += 1;
}
_confirmations = new address[](count);
for (i = 0; i < count; i++)
_confirmations[i] = confirmationsTemp[i];
}
/// @dev Returns list of transaction IDs in defined range.
/// @param from Index start position of transaction array.
/// @param to Index end position of transaction array.
/// @param pending Include pending transactions.
/// @param executed Include executed transactions.
/// @return _transactionIds Returns array of transaction IDs.
function getTransactionIds(uint from, uint to, bool pending, bool executed)
public
view
returns (uint[] memory _transactionIds)
{
uint[] memory transactionIdsTemp = new uint[](transactionCount);
uint count = 0;
uint i;
for (i = 0; i < transactionCount; i++)
if (pending && !transactions[i].executed
|| executed && transactions[i].executed)
{
transactionIdsTemp[count] = i;
count += 1;
}
_transactionIds = new uint[](to - from);
for (i = from; i < to; i++)
_transactionIds[i - from] = transactionIdsTemp[i];
}
}// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);
function _sendLogPayload(bytes memory payload) private view {
uint256 payloadLength = payload.length;
address consoleAddress = CONSOLE_ADDRESS;
assembly {
let payloadStart := add(payload, 32)
let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
}
}
function log() internal view {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
}
function logUint(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function logString(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function logBool(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function logAddress(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function logBytes(bytes memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
}
function logBytes1(bytes1 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
}
function logBytes2(bytes2 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
}
function logBytes3(bytes3 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
}
function logBytes4(bytes4 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
}
function logBytes5(bytes5 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
}
function logBytes6(bytes6 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
}
function logBytes7(bytes7 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
}
function logBytes8(bytes8 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
}
function logBytes9(bytes9 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
}
function logBytes10(bytes10 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
}
function logBytes11(bytes11 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
}
function logBytes12(bytes12 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
}
function logBytes13(bytes13 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
}
function logBytes14(bytes14 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
}
function logBytes15(bytes15 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
}
function logBytes16(bytes16 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
}
function logBytes17(bytes17 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
}
function logBytes18(bytes18 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
}
function logBytes19(bytes19 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
}
function logBytes20(bytes20 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
}
function logBytes21(bytes21 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
}
function logBytes22(bytes22 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
}
function logBytes23(bytes23 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
}
function logBytes24(bytes24 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
}
function logBytes25(bytes25 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
}
function logBytes26(bytes26 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
}
function logBytes27(bytes27 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
}
function logBytes28(bytes28 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
}
function logBytes29(bytes29 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
}
function logBytes30(bytes30 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
}
function logBytes31(bytes31 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
}
function logBytes32(bytes32 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
}
function log(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function log(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function log(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function log(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function log(uint p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
}
function log(uint p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
}
function log(uint p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
}
function log(uint p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
}
function log(string memory p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
}
function log(string memory p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
}
function log(string memory p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
}
function log(string memory p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
}
function log(bool p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
}
function log(bool p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
}
function log(bool p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
}
function log(bool p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
}
function log(address p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
}
function log(address p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
}
function log(address p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
}
function log(address p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
}
function log(uint p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
}
function log(uint p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
}
function log(uint p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
}
function log(uint p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
}
function log(uint p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
}
function log(uint p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
}
function log(uint p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
}
function log(uint p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
}
function log(uint p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
}
function log(uint p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
}
function log(uint p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
}
function log(uint p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
}
function log(uint p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
}
function log(uint p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
}
function log(uint p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
}
function log(uint p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
}
function log(string memory p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
}
function log(string memory p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
}
function log(string memory p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
}
function log(string memory p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
}
function log(string memory p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
}
function log(string memory p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
}
function log(string memory p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
}
function log(string memory p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
}
function log(string memory p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
}
function log(string memory p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
}
function log(string memory p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
}
function log(string memory p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
}
function log(string memory p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
}
function log(string memory p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
}
function log(string memory p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
}
function log(string memory p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
}
function log(bool p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
}
function log(bool p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
}
function log(bool p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
}
function log(bool p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
}
function log(bool p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
}
function log(bool p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
}
function log(bool p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
}
function log(bool p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
}
function log(bool p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
}
function log(bool p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
}
function log(bool p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
}
function log(bool p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
}
function log(bool p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
}
function log(bool p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
}
function log(bool p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
}
function log(bool p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
}
function log(address p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
}
function log(address p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
}
function log(address p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
}
function log(address p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
}
function log(address p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
}
function log(address p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
}
function log(address p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
}
function log(address p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
}
function log(address p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
}
function log(address p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
}
function log(address p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
}
function log(address p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
}
function log(address p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
}
function log(address p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
}
function log(address p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
}
function log(address p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
}
function log(uint p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
}
}{
"evmVersion": "byzantium",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256","name":"_required","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"_upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"confirmations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"internalType":"address[]","name":"_confirmations","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"pending","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"bool","name":"pending","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"internalType":"uint256[]","name":"_transactionIds","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"required","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040523480156200001157600080fd5b506040516200285f3803806200285f833981016040819052620000349162000645565b8181815181603282111580156200004b5750818111155b80156200005757508015155b80156200006357508115155b6200006d57600080fd5b60005b845181101562000163576002600086838151811062000093576200009362000821565b602090810291909101810151600160a060020a031682528101919091526040016000205460ff16158015620000f757506000600160a060020a0316858281518110620000e357620000e362000821565b6020026020010151600160a060020a031614155b6200010157600080fd5b6001600260008784815181106200011c576200011c62000821565b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055806200015a81620007de565b91505062000070565b5083516200017990600390602087019062000511565b5050506004555062000194846401000000006200021b810204565b825115620001b857620001b68484640100000000620015686200034a82021704565b505b33620001f27fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036401000000006200158d6200038282021704565b8054600160a060020a031916600160a060020a0392909216919091179055506200087f92505050565b6200023481640100000000620015906200038582021704565b620002c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084015b60405180910390fd5b80620003007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6401000000006200158d6200038282021704565b8054600160a060020a031916600160a060020a03928316179055604051908216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200037b838360405180606001604052806027815260200162002838602791396401000000006200038b810204565b9392505050565b90565b3b151590565b6060620003a18464010000000062000385810204565b6200042f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401620002bd565b60008085600160a060020a0316856040516200044c919062000725565b600060405180830381855af49150503d806000811462000489576040519150601f19603f3d011682016040523d82523d6000602084013e6200048e565b606091505b5091509150620004af828286620004b9640100000000026401000000009004565b9695505050505050565b60608315620004ca5750816200037b565b825115620004db5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002bd919062000743565b82805482825590600052602060002090810192821562000569579160200282015b82811115620005695782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000532565b50620005779291506200057b565b5090565b5b808211156200057757600081556001016200057c565b8051600160a060020a0381168114620005aa57600080fd5b919050565b600082601f830112620005c157600080fd5b815160206001604060020a03821115620005df57620005df62000850565b808202620005ef82820162000778565b8381528281019086840183880185018910156200060b57600080fd5b600093505b858410156200063957620006248162000592565b83526001939093019291840191840162000610565b50979650505050505050565b600080600080608085870312156200065c57600080fd5b620006678562000592565b935060208501516001604060020a03808211156200068457600080fd5b818701915087601f8301126200069957600080fd5b815181811115620006ae57620006ae62000850565b620006c3601f8201601f191660200162000778565b818152896020838601011115620006d957600080fd5b620006ec826020830160208701620007ab565b6040890151909650925050808211156200070557600080fd5b506200071487828801620005af565b606096909601519497939650505050565b6000825162000739818460208701620007ab565b9190910192915050565b602081526000825180602084015262000764816040850160208701620007ab565b601f01601f19169190910160400192915050565b604051601f8201601f191681016001604060020a0381118282101715620007a357620007a362000850565b604052919050565b60005b83811015620007c8578181015183820152602001620007ae565b83811115620007d8576000848401525b50505050565b60006000198214156200081a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611fa9806200088f6000396000f3fe608060405260043610610187576000357c0100000000000000000000000000000000000000000000000000000000900480639ace38c2116100ee578063ba885381116100a7578063d74f8edd11610081578063d74f8edd14610487578063dc8452cd1461049c578063e20056e6146104b2578063ee22610b146104d257610196565b8063ba88538114610434578063c01a8c8414610447578063c64274741461046757610196565b80639ace38c21461035f578063a0e67e2b1461038f578063a8abe69a146103b1578063b5dc40c3146103de578063b77bf600146103fe578063ba51a6df1461041457610196565b80634f1ef286116101405780634f1ef286146102a957806354741525146102bc5780635c60da1b146102ea5780637065cb48146102ff578063784547a71461031f5780638b51d13f1461033f57610196565b8063025e7c271461019e578063173825d9146101db57806320ea8d86146101fb5780632f54bf6e1461021b5780633411c81c1461025b5780633659cfe61461029657610196565b36610196576101946104f2565b005b6101946104f2565b3480156101aa57600080fd5b506101be6101b9366004611c30565b61052d565b604051600160a060020a0390911681526020015b60405180910390f35b3480156101e757600080fd5b506101946101f6366004611a90565b610557565b34801561020757600080fd5b50610194610216366004611c30565b61071b565b34801561022757600080fd5b5061024b610236366004611a90565b60026020526000908152604090205460ff1681565b60405190151581526020016101d2565b34801561026757600080fd5b5061024b610276366004611c49565b600160209081526000928352604080842090915290825290205460ff1681565b6101946102a4366004611a90565b6107d1565b6101946102b7366004611ade565b61089e565b3480156102c857600080fd5b506102dc6102d7366004611c06565b6108fc565b6040519081526020016101d2565b3480156102f657600080fd5b506101be610979565b34801561030b57600080fd5b5061019461031a366004611a90565b6109b1565b34801561032b57600080fd5b5061024b61033a366004611c30565b610ad7565b34801561034b57600080fd5b506102dc61035a366004611c30565b610b76565b34801561036b57600080fd5b5061037f61037a366004611c30565b610bfc565b6040516101d29493929190611d63565b34801561039b57600080fd5b506103a4610cba565b6040516101d29190611d9e565b3480156103bd57600080fd5b506103d16103cc366004611c6c565b610d1c565b6040516101d29190611deb565b3480156103ea57600080fd5b506103a46103f9366004611c30565b610eb4565b34801561040a57600080fd5b506102dc60055481565b34801561042057600080fd5b5061019461042f366004611c30565b61108c565b610194610442366004611b61565b611109565b34801561045357600080fd5b50610194610462366004611c30565b611133565b34801561047357600080fd5b506102dc610482366004611baf565b6111f3565b34801561049357600080fd5b506102dc603281565b3480156104a857600080fd5b506102dc60045481565b3480156104be57600080fd5b506101946104cd366004611aab565b611212565b3480156104de57600080fd5b506101946104ed366004611c30565b6113a5565b61052b6105267f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600160a060020a031690565b611596565b565b6003818154811061053d57600080fd5b600091825260209091200154600160a060020a0316905081565b33301461056357600080fd5b600160a060020a038116600090815260026020526040902054819060ff1661058a57600080fd5b600160a060020a0382166000908152600260205260408120805460ff191690555b6003546105ba90600190611e4e565b81101561068a5782600160a060020a0316600382815481106105de576105de611f1a565b600091825260209091200154600160a060020a03161415610678576003805461060990600190611e4e565b8154811061061957610619611f1a565b60009182526020909120015460038054600160a060020a03909216918390811061064557610645611f1a565b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061068a565b8061068281611ecd565b9150506105ab565b50600380548061069c5761069c611f01565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905560035460045411156106e3576003546106e39061108c565b604051600160a060020a038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff1661073757600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1661076157600080fd5b600084815260208190526040902060030154849060ff161561078257600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b3360008181526002602052604090205460ff166107ed57600080fd5b61089930347fba885381e9e37cc12b642007ef2e8679381eb527b676e6a3d428e0378e8cbc908560405180602001604052806000815250604051602401610835929190611d39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526111f3565b505050565b3360008181526002602052604090205460ff166108ba57600080fd5b6108f530347fba885381e9e37cc12b642007ef2e8679381eb527b676e6a3d428e0378e8cbc9087878760405160240161083593929190611cfa565b5050505050565b6000805b60055481101561097257838015610929575060008181526020819052604090206003015460ff16155b8061094d575082801561094d575060008181526020819052604090206003015460ff165b156109605761095d600183611e36565b91505b8061096a81611ecd565b915050610900565b5092915050565b60006109ac7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600160a060020a031690565b905090565b3330146109bd57600080fd5b600160a060020a038116600090815260026020526040902054819060ff16156109e557600080fd5b81600160a060020a0381166109f957600080fd5b600354610a07906001611e36565b60045460328211158015610a1b5750818111155b8015610a2657508015155b8015610a3157508115155b610a3a57600080fd5b600160a060020a038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610b6c5760008481526001602052604081206003805491929184908110610b0b57610b0b611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610b4657610b43600183611e36565b91505b600454821415610b5a575060019392505050565b80610b6481611ecd565b915050610adc565b5060009392505050565b6000805b600354811015610bf65760008381526001602052604081206003805491929184908110610ba957610ba9611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610be457610be1600183611e36565b91505b80610bee81611ecd565b915050610b7a565b50919050565b600060208190529081526040902080546001820154600283018054600160a060020a03909316939192610c2e90611e95565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5a90611e95565b8015610ca75780601f10610c7c57610100808354040283529160200191610ca7565b820191906000526020600020905b815481529060010190602001808311610c8a57829003601f168201915b5050506003909301549192505060ff1684565b60606003805480602002602001604051908101604052809291908181526020018280548015610d1257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610cf4575b5050505050905090565b6060600060055467ffffffffffffffff811115610d3b57610d3b611f33565b604051908082528060200260200182016040528015610d64578160200160208202803683370190505b5090506000805b600554811015610dfb57858015610d94575060008181526020819052604090206003015460ff16155b80610db85750848015610db8575060008181526020819052604090206003015460ff165b15610de95780838381518110610dd057610dd0611f1a565b6020908102919091010152610de6600183611e36565b91505b80610df381611ecd565b915050610d6b565b610e058888611e4e565b67ffffffffffffffff811115610e1d57610e1d611f33565b604051908082528060200260200182016040528015610e46578160200160208202803683370190505b5093508790505b86811015610ea957828181518110610e6757610e67611f1a565b6020026020010151848983610e7c9190611e4e565b81518110610e8c57610e8c611f1a565b602090810291909101015280610ea181611ecd565b915050610e4d565b505050949350505050565b60035460609060009067ffffffffffffffff811115610ed557610ed5611f33565b604051908082528060200260200182016040528015610efe578160200160208202803683370190505b5090506000805b600354811015610fdc5760008581526001602052604081206003805491929184908110610f3457610f34611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610fca5760038181548110610f7457610f74611f1a565b9060005260206000200160009054906101000a9004600160a060020a0316838381518110610fa457610fa4611f1a565b600160a060020a0390921660209283029190910190910152610fc7600183611e36565b91505b80610fd481611ecd565b915050610f05565b8167ffffffffffffffff811115610ff557610ff5611f33565b60405190808252806020026020018201604052801561101e578160200160208202803683370190505b509350600090505b818110156110845782818151811061104057611040611f1a565b602002602001015184828151811061105a5761105a611f1a565b600160a060020a03909216602092830291909101909101528061107c81611ecd565b915050611026565b505050919050565b33301461109857600080fd5b60035481603282118015906110ad5750818111155b80156110b857508015155b80156110c357508115155b6110cc57600080fd5b60048390556040518381527fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9060200160405180910390a1505050565b33301461111557600080fd5b61111e826115ba565b80511561112f576108998282611568565b5050565b3360008181526002602052604090205460ff1661114f57600080fd5b6000828152602081905260409020548290600160a060020a031661117257600080fd5b60008381526001602090815260408083203380855292529091205484919060ff161561119d57600080fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36108f5856113a5565b60006112008484846116c3565b905061120b81611133565b9392505050565b33301461121e57600080fd5b600160a060020a038216600090815260026020526040902054829060ff1661124557600080fd5b600160a060020a038216600090815260026020526040902054829060ff161561126d57600080fd5b60005b60035481101561130b5784600160a060020a03166003828154811061129757611297611f1a565b600091825260209091200154600160a060020a031614156112f95783600382815481106112c6576112c6611f1a565b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061130b565b8061130381611ecd565b915050611270565b50600160a060020a03808516600081815260026020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526002602052604090205460ff166113c157600080fd5b60008281526001602090815260408083203380855292529091205483919060ff166113eb57600080fd5b600084815260208190526040902060030154849060ff161561140c57600080fd5b61141585610ad7565b156108f557600085815260208190526040902060038101805460ff191660019081179091558154908201546002830180546114f393600160a060020a031692919061145f90611e95565b905084600201805461147090611e95565b80601f016020809104026020016040519081016040528092919081815260200182805461149c90611e95565b80156114e95780601f106114be576101008083540402835291602001916114e9565b820191906000526020600020905b8154815290600101906020018083116114cc57829003601f168201915b50505050506117c3565b156115285760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611560565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038101805460ff191690555b505050505050565b606061120b8383604051806060016040528060278152602001611f4d602791396117e6565b90565b3b151590565b3660008037600080366000845af43d6000803e8080156115b5573d6000f35b3d6000fd5b803b61164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600083600160a060020a0381166116d957600080fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519496509193909261175992600285019291019061193e565b50606091909101516003909101805460ff1916911515919091179055600580546001919060009061178b908490611e36565b909155505060405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000806040516020840160008287838a8c618fca5a03f198975050505050505050565b6060833b611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401611644565b60008085600160a060020a0316856040516118919190611cde565b600060405180830381855af49150503d80600081146118cc576040519150601f19603f3d011682016040523d82523d6000602084013e6118d1565b606091505b50915091506118e18282866118eb565b9695505050505050565b606083156118fa57508161120b565b82511561190a5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449190611e23565b82805461194a90611e95565b90600052602060002090601f01602090048101928261196c57600085556119b2565b82601f1061198557805160ff19168380011785556119b2565b828001600101855582156119b2579182015b828111156119b2578251825591602001919060010190611997565b506119be9291506119c2565b5090565b5b808211156119be57600081556001016119c3565b8035600160a060020a03811681146119ee57600080fd5b919050565b803580151581146119ee57600080fd5b600082601f830112611a1457600080fd5b813567ffffffffffffffff80821115611a2f57611a2f611f33565b604051601f8301601f19908116603f01168101908282118183101715611a5757611a57611f33565b81604052838152866020858801011115611a7057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215611aa257600080fd5b61120b826119d7565b60008060408385031215611abe57600080fd5b611ac7836119d7565b9150611ad5602084016119d7565b90509250929050565b600080600060408486031215611af357600080fd5b611afc846119d7565b9250602084013567ffffffffffffffff80821115611b1957600080fd5b818601915086601f830112611b2d57600080fd5b813581811115611b3c57600080fd5b876020828501011115611b4e57600080fd5b6020830194508093505050509250925092565b60008060408385031215611b7457600080fd5b611b7d836119d7565b9150602083013567ffffffffffffffff811115611b9957600080fd5b611ba585828601611a03565b9150509250929050565b600080600060608486031215611bc457600080fd5b611bcd846119d7565b925060208401359150604084013567ffffffffffffffff811115611bf057600080fd5b611bfc86828701611a03565b9150509250925092565b60008060408385031215611c1957600080fd5b611c22836119f3565b9150611ad5602084016119f3565b600060208284031215611c4257600080fd5b5035919050565b60008060408385031215611c5c57600080fd5b82359150611ad5602084016119d7565b60008060008060808587031215611c8257600080fd5b8435935060208501359250611c99604086016119f3565b9150611ca7606086016119f3565b905092959194509250565b60008151808452611cca816020860160208601611e65565b601f01601f19169290920160200192915050565b60008251611cf0818460208701611e65565b9190910192915050565b600160a060020a038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600160a060020a0383168152604060208201526000611d5b6040830184611cb2565b949350505050565b600160a060020a0385168152836020820152608060408201526000611d8b6080830185611cb2565b9050821515606083015295945050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ddf578351600160a060020a031683529284019291840191600101611dba565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ddf57835183529284019291840191600101611e07565b60208152600061120b6020830184611cb2565b60008219821115611e4957611e49611ee8565b500190565b600082821015611e6057611e60611ee8565b500390565b60005b83811015611e80578181015183820152602001611e68565b83811115611e8f576000848401525b50505050565b600281046001821680611ea957607f821691505b60208210811415610bf65760e060020a634e487b7102600052602260045260246000fd5b6000600019821415611ee157611ee1611ee8565b5060010190565b60e060020a634e487b7102600052601160045260246000fd5b60e060020a634e487b7102600052603160045260246000fd5b60e060020a634e487b7102600052603260045260246000fd5b60e060020a634e487b7102600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220558728c0a320f4caa2d0ad93c90eb723e3aaa33a04102dd7eef27686a8aa796864736f6c63430008060033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000008f499bc97b99ef413bac02545040b701b86d2628000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000001604169e7a9900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000f00259b67b0646d84c1a5abc435943f5473232aec507bd899e83a00abf388fcb8d0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000019cabc1e34ab0cc5c62daa1394f6022b38b75c78000000000000000000000000b6db3c082d25c0dc26602334b5f3d270091dc422000000000000000000000000fae075e12116fbfe65c58e1ef0e6ca959ca37ded000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce36451880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000030000000000000000000000002b2d892c3fe2b4113dd7ac0d2c1882af202fb28f000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce3645188000000000000000000000000e7c3607474e235ec8def1f0a63ea983538eea1820000000000000000000000000000000000000000000000000000000000000097000000000000000000000000162ba761fc75f5873197a340f9e7fb926ba7517d000000000000000000000000129c0057af3f91d4fa729aea7910b46f7ce3d08100000000000000000000000073574449cbed6213f5340e806e9dec36f05a25ec000000000000000000000000742c823ac6963f43e3fa218be3b8abb4b786bdbe0000000000000000000000009f8b33a65a61f3382904611020edc17e647456220000000000000000000000009b1822da3f6450832dd92713f49c075b2538f057000000000000000000000000fef2ea6607d891f30d916b207c62eacbecfbb48a000000000000000000000000138687b0eb23fbe0bca74f2d60e37cb3e370e66c0000000000000000000000007cfbdda8ed4ba1bd1e826dfd5c0262003d010b110000000000000000000000008ceb1b9f5d2603a2df7761fc5204421de582d072000000000000000000000000ce0131435386f95e527438a021424eb1224969c70000000000000000000000003b460775ac2c299b3717b46b2cc80e1581c71f2a000000000000000000000000ac733dd5032ee3946058ff4c8a668090c0627ea40000000000000000000000008ee3ffb66b3a73a9366170b5d1335b24ad110006000000000000000000000000f1e149223a0614f2da591db097fe95101c46bdfc000000000000000000000000dcc27e312f77e8fca4cec1c7da80375b29fcbe49000000000000000000000000eaa70cf46b0ab7d1b9e5670d250dae21c7752c7500000000000000000000000030b0b0f047f0fd0a769165b1f37e880910722a8e000000000000000000000000ab0f37183ba79ab089707dd084adce1e83fa767e000000000000000000000000a3d52fdd6441358f4fd6456eca9739699d19637d0000000000000000000000007e890ae8dc02e4004618d32ada2c0cf24f6496500000000000000000000000000fd04a8810c6ca7d20278a4c0f0cdb2b763ed17a000000000000000000000000b4439fb83012557a1037ba897ba32db85463fcf500000000000000000000000006bc91fd5360136fae0ee2c4325e806d2fef8c91000000000000000000000000ce70659202a4d172a13fe099598fa8c4e8d112d200000000000000000000000086b8fb21c1acda087c9c682b573b0eb45c6c0aa200000000000000000000000079eefefdd489d0b6a22225b31f8cffc424f3af030000000000000000000000008f64d0bc82557fd8c2be558382cdf793c48805c30000000000000000000000001cff2e3ae9e45f42b21423a13bedc2a8a4b793f2000000000000000000000000be3a417f13d8f878275d4fae20255250e6a027d60000000000000000000000001bc2d8e9f0289fca70b65db74e9ec54ac996fcf7000000000000000000000000b08ed49d231a7ae7a2107463e3656bee9a7b52b200000000000000000000000069aa49661c21d196555230d6cbaa2a44a7efaea8000000000000000000000000c43b53dcaa928e7ea7cd4eec4ed69cc9cad6831e000000000000000000000000d0c394a55ed86d49b1d5417e2abd2bc716dd25bf000000000000000000000000a93d6cf6aa5de876351044017d1a996bddaa7ef50000000000000000000000007873a27ff825bd0aea97040fcdb5fecb16860be6000000000000000000000000c86d0450248d26c8ac57e05c25020b2a9c9303950000000000000000000000005a97d3119fdd7790341195aea7473db5e472f5840000000000000000000000006a3a0ba256d62258426ce55d3dde5dce230419d9000000000000000000000000db22968688bd5a999ed270d5fc92d93ca48e27ee00000000000000000000000004c60ec0f73358fb0f066248a852a5e5bbaf5f7d000000000000000000000000acaf7ebac25345732d62ed9e3773683254d27145000000000000000000000000bad13a54ea55a54719b04c9c9c66e6641838236d000000000000000000000000bf9a1a9ff27779d8bdafdcf1e0006c29dfa4a1f90000000000000000000000001e6a48718b5314630b1a5b232c03c764ee75a3da000000000000000000000000bde95b78ba9aafb0b32b006c37f0a4529e4a3f47000000000000000000000000c71f56df3c7915ed3a5ca9092a07148870b8eb4e000000000000000000000000408c6f2683ff22fd0bd22b23268673e029c6b58a00000000000000000000000057b49083224ade62bcca859151cdbd0ed21542430000000000000000000000001fd9fb1d037bde2438d03031a867ad34134f7c3e00000000000000000000000074aad1e344507707fd69c711fc84f46e15a7fdf1000000000000000000000000f9cf8775cd6697c1bb52fdbd9625c8f5fae6c62c0000000000000000000000000db5ba0246ea95952cee6185bddf2127a36b11e4000000000000000000000000ead0f93d61011d64cb8ec04b94a3dd7174b3eb6000000000000000000000000068e89a6c875f19bd4352b460fa9e266e966d2aa0000000000000000000000000ae839443a6e3b2780c215cc4383aed5a8dd33402000000000000000000000000de05ea20ba8ffbd9b34e2d6ceedaac70ed81cb4c000000000000000000000000f98fa8f72531b8b46838a8b93869992d2856ae3900000000000000000000000067ac377cbdd8ea9115d7e7824801d948ba871dfd00000000000000000000000054fd4d217f419ebcf3dc682d69307f9f93f6c2f60000000000000000000000000bf8b6d38c75622929430c3bd6456d7d5e4cbc72000000000000000000000000276ded8feac8a3ccb4ac443e73364ab39526f06b000000000000000000000000049ff380cf0c95d9998ad4bf05fdf127061fe87a00000000000000000000000097faf64436bf6d385d438e5799170e569159242c00000000000000000000000046afaf062cc1b5497d0b3c84bd9fab74873c63cf00000000000000000000000086d43d411523a26608f724de2d1852f626e875cc0000000000000000000000009cf1a5260f214c197a6f9eecd58776937f33b40c0000000000000000000000008c8915f998e2bf938cf82b3530269c38d4ad6ae20000000000000000000000004dae3a51049a390a253a941dc1a6f18104f6d1c8000000000000000000000000421e84dc43b05a5db967adac16f231341cfb219500000000000000000000000029e273cd79d7c6d449744b5b681b0d6f93c447cd00000000000000000000000033f37ee39e17a7ccc6ab3e42104ea636a8752538000000000000000000000000f50ec954b0e6f9e2c2939ffdcab84a92f53714f50000000000000000000000007a3599b88ea2068268b763dee8b8703d21700df30000000000000000000000004df7e56ea65784c56d601d201ee2915b9db66c7e000000000000000000000000d55bf79b35db54e28eadb9dfb67621269938608e000000000000000000000000b9830ecc83bd54a574d81f7ca04080bc8299c98b0000000000000000000000002c19568e9ee6a9e3980ff6124301a9f7a2307813000000000000000000000000c48049fdeb138ce3472de4976539bfc657d9c3b9000000000000000000000000fe1f7c9ca6b109d22bff83579ac7a6d2e0e5e9c9000000000000000000000000a5e7d68aecf9578b604ccf461b9d22760495477d000000000000000000000000c0c05faca257d02dbe3f34b5c615ff0781ce65f90000000000000000000000000a83aff99582d68aa08a6a8e8e8b16212d7567f0000000000000000000000000cf03bc13888a1ecb89c66b495b4e669ae09712da000000000000000000000000ba91099ae5da08064bf269f11621bb09b9d89ae10000000000000000000000000bf0315611cd24745d955a71d9c0f23f7c2c0f0b0000000000000000000000001b0db8ca2f90781b0d80fe411f36934f094d7a33000000000000000000000000a1d921c093e793d9d1a14298a9e3dbb5f130a658000000000000000000000000dcae77e5845c828e3765de97d2f98f59232b8cab000000000000000000000000123a1048b72e14ddfe11a8a246860a84199aa9e9000000000000000000000000b0c9db4cd4d8557a83ec113405568182db95958000000000000000000000000078253d5b6032ffbaa3357476c004a5f844c23d8300000000000000000000000020e61908877e5e4874d22b2581aeb803ed99062c00000000000000000000000000df8532681af85ec649e51c9e5c292b6f03d0e0000000000000000000000000cb0cdf3f7df262e2e294524168f1d421c2512b01000000000000000000000000bc71a9e156ec8feea4f33dbc4469ffa8662fd2fb000000000000000000000000d07b605e363ded3ca8f643ec225acccc5f3de949000000000000000000000000c522a6f276999fa0a8574c837d91cf2435f256bc000000000000000000000000afde7eae86fd37bd8e500bdac87a68e1582133e1000000000000000000000000a79ceaf487a3933d08a0680ea5ea0963fee6d5b60000000000000000000000000b1f4bc6ef1282c065156c3cfc2d79f4d2803655000000000000000000000000a07c4aed3ee6f4425fcaa8b7926cca3f3da97d55000000000000000000000000122555bdb0152564070453c447320aaa0ab712ec0000000000000000000000008e9138a2ae378c4b1470699d4bd3a3b1f4bfcea300000000000000000000000090719a0fa1ed2902ddefc3936993147712ad530300000000000000000000000094b4afa91c0e24e67b084ea56dda69ee63ec0dd9000000000000000000000000ca8f5e2b46d1b736bd2363a9b70b70a408c2e062000000000000000000000000dd33fa00ae8e3b88b7e0c1b6be40c3aeb6047bd9000000000000000000000000bfab4eb93b8f6182110fb1d82cc6ed56220aefc300000000000000000000000011716c7479d43737119dd10da4c8cf4990cc7534000000000000000000000000555ef499a80519dec9f0fd305c6d679c0ab2a4b800000000000000000000000043f2da6f301a87fccd2962c82bb5eb9164919cb40000000000000000000000003f1e100b629763b5330e69ff129da8c5e603dfb9000000000000000000000000ad1b553c0a1a0c366ee062917cb66a43f1d79a4700000000000000000000000003149cbd44bbb9f72f651b4d0db48dd0f358ef3f000000000000000000000000248b1e5a3a157c65cfa2c8f43e8c55f9d8e41241000000000000000000000000c56f8419bc0d9bd669075de70aaea2269354d5c700000000000000000000000084a7acd4a65ba22d6d16fea2df9908c47f2fabbd000000000000000000000000281614e111afbad37ef84aaff74c831539ed3e320000000000000000000000003612882d4149d18a3604a6392b4596826c8fdc65000000000000000000000000ecb61494feddbdf4989ef2579ee8f9ccb91e473b0000000000000000000000000c6ca6f2c9b41884ec3abeb659ba1d1eed82cb8f000000000000000000000000bec6eb5a834cd23738eb7ec293ef11af9955c6720000000000000000000000008f767f33afd062b0fe5da47223529fda412ba7910000000000000000000000006cb4dd53adb878858767a4666f2e4ee7cdf9d5cb0000000000000000000000000a3ba1da9d6203d28a208952323f44b929fda3a80000000000000000000000008efe37febecdae467ac83549464e37f7e25fd74b000000000000000000000000de0d970b653d352391c3a4cce0e70bd1938546ba000000000000000000000000df43648a9748901a784c017821b05ba26274898c0000000000000000000000009999d29a1df911aa8bf4b0bf81eabb65dda05299000000000000000000000000111b35d671c7d8e80cc5cb01ec4267965fbd648d00000000000000000000000081e955e967213fdf2476a451d97ac8ccc3399a98000000000000000000000000a7273df94c37e7c024761a13e1575104eeda1714000000000000000000000000c967d362468c0683cbbc29ca05fc08699674f403000000000000000000000000085d1113afdcd9709e3e9506e5a0e142c3d2e1dc000000000000000000000000d73b65cec8c2c1697db90dbb5a321bc7741a640b000000000000000000000000869dbca06bc1d1f6b0f67abe9e7e4ee55cc2c57c000000000000000000000000ca1f8bcfb1edf02d2701923a20d395ec4dbda60b000000000000000000000000af106234f2dfed3c1265c02c1702a9fef8a80cc5000000000000000000000000dd39170089c49538a2b08827fa95413f8428bdfc0000000000000000000000006f845d7fbdb121607f7f317e381b808199d5db8d0000000000000000000000007b56cac281a096bb42a48f807a4db75e6b9686a7000000000000000000000000a7afbed971071011459cfc4781cb9ddd7068fa040000000000000000000000008e11f754808929ee8cb7def770fc6979f74999af0000000000000000000000009db5e882011f89c338c63f59ad330e30dcf11787000000000000000000000000d34ea40ea7f07dbc5a7357a848d9a78b986648a60000000000000000000000001084c027162ac971d4c2b26ec4168ec5c19b7f5500000000000000000000000067c14e9f4f2aade77da35bf24e36bd76de21060d0000000000000000000000009b4b0e8262725b7f896dd7dd97152cdd18d97495000000000000000000000000de3f6d974e58f17a9fbe898beaf142200af599e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000f3cb1e06e72233e0350f7588d11a2585b268c7ad000000000000000000000000b017dccc473499c83f1b553be564f3ceaf002254000000000000000000000000e620e1f969bc3a24ac96d527220ad6b6e2d12843000000000000000000000000e8d204d3b12e643888debd525e2f8034fc7eb855000000000000000000000000fe231e979dae1d87cd961aa353221c0c754941d800000000000000000000000059c66c7e3d3f239961c87a4627f86a5a9049407c000000000000000000000000a5e32d3fb342d9ed3135fd5cb59a102ac8ed7b85
Deployed Bytecode
0x608060405260043610610187576000357c0100000000000000000000000000000000000000000000000000000000900480639ace38c2116100ee578063ba885381116100a7578063d74f8edd11610081578063d74f8edd14610487578063dc8452cd1461049c578063e20056e6146104b2578063ee22610b146104d257610196565b8063ba88538114610434578063c01a8c8414610447578063c64274741461046757610196565b80639ace38c21461035f578063a0e67e2b1461038f578063a8abe69a146103b1578063b5dc40c3146103de578063b77bf600146103fe578063ba51a6df1461041457610196565b80634f1ef286116101405780634f1ef286146102a957806354741525146102bc5780635c60da1b146102ea5780637065cb48146102ff578063784547a71461031f5780638b51d13f1461033f57610196565b8063025e7c271461019e578063173825d9146101db57806320ea8d86146101fb5780632f54bf6e1461021b5780633411c81c1461025b5780633659cfe61461029657610196565b36610196576101946104f2565b005b6101946104f2565b3480156101aa57600080fd5b506101be6101b9366004611c30565b61052d565b604051600160a060020a0390911681526020015b60405180910390f35b3480156101e757600080fd5b506101946101f6366004611a90565b610557565b34801561020757600080fd5b50610194610216366004611c30565b61071b565b34801561022757600080fd5b5061024b610236366004611a90565b60026020526000908152604090205460ff1681565b60405190151581526020016101d2565b34801561026757600080fd5b5061024b610276366004611c49565b600160209081526000928352604080842090915290825290205460ff1681565b6101946102a4366004611a90565b6107d1565b6101946102b7366004611ade565b61089e565b3480156102c857600080fd5b506102dc6102d7366004611c06565b6108fc565b6040519081526020016101d2565b3480156102f657600080fd5b506101be610979565b34801561030b57600080fd5b5061019461031a366004611a90565b6109b1565b34801561032b57600080fd5b5061024b61033a366004611c30565b610ad7565b34801561034b57600080fd5b506102dc61035a366004611c30565b610b76565b34801561036b57600080fd5b5061037f61037a366004611c30565b610bfc565b6040516101d29493929190611d63565b34801561039b57600080fd5b506103a4610cba565b6040516101d29190611d9e565b3480156103bd57600080fd5b506103d16103cc366004611c6c565b610d1c565b6040516101d29190611deb565b3480156103ea57600080fd5b506103a46103f9366004611c30565b610eb4565b34801561040a57600080fd5b506102dc60055481565b34801561042057600080fd5b5061019461042f366004611c30565b61108c565b610194610442366004611b61565b611109565b34801561045357600080fd5b50610194610462366004611c30565b611133565b34801561047357600080fd5b506102dc610482366004611baf565b6111f3565b34801561049357600080fd5b506102dc603281565b3480156104a857600080fd5b506102dc60045481565b3480156104be57600080fd5b506101946104cd366004611aab565b611212565b3480156104de57600080fd5b506101946104ed366004611c30565b6113a5565b61052b6105267f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600160a060020a031690565b611596565b565b6003818154811061053d57600080fd5b600091825260209091200154600160a060020a0316905081565b33301461056357600080fd5b600160a060020a038116600090815260026020526040902054819060ff1661058a57600080fd5b600160a060020a0382166000908152600260205260408120805460ff191690555b6003546105ba90600190611e4e565b81101561068a5782600160a060020a0316600382815481106105de576105de611f1a565b600091825260209091200154600160a060020a03161415610678576003805461060990600190611e4e565b8154811061061957610619611f1a565b60009182526020909120015460038054600160a060020a03909216918390811061064557610645611f1a565b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061068a565b8061068281611ecd565b9150506105ab565b50600380548061069c5761069c611f01565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905560035460045411156106e3576003546106e39061108c565b604051600160a060020a038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff1661073757600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1661076157600080fd5b600084815260208190526040902060030154849060ff161561078257600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b3360008181526002602052604090205460ff166107ed57600080fd5b61089930347fba885381e9e37cc12b642007ef2e8679381eb527b676e6a3d428e0378e8cbc908560405180602001604052806000815250604051602401610835929190611d39565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526111f3565b505050565b3360008181526002602052604090205460ff166108ba57600080fd5b6108f530347fba885381e9e37cc12b642007ef2e8679381eb527b676e6a3d428e0378e8cbc9087878760405160240161083593929190611cfa565b5050505050565b6000805b60055481101561097257838015610929575060008181526020819052604090206003015460ff16155b8061094d575082801561094d575060008181526020819052604090206003015460ff165b156109605761095d600183611e36565b91505b8061096a81611ecd565b915050610900565b5092915050565b60006109ac7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600160a060020a031690565b905090565b3330146109bd57600080fd5b600160a060020a038116600090815260026020526040902054819060ff16156109e557600080fd5b81600160a060020a0381166109f957600080fd5b600354610a07906001611e36565b60045460328211158015610a1b5750818111155b8015610a2657508015155b8015610a3157508115155b610a3a57600080fd5b600160a060020a038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610b6c5760008481526001602052604081206003805491929184908110610b0b57610b0b611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610b4657610b43600183611e36565b91505b600454821415610b5a575060019392505050565b80610b6481611ecd565b915050610adc565b5060009392505050565b6000805b600354811015610bf65760008381526001602052604081206003805491929184908110610ba957610ba9611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610be457610be1600183611e36565b91505b80610bee81611ecd565b915050610b7a565b50919050565b600060208190529081526040902080546001820154600283018054600160a060020a03909316939192610c2e90611e95565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5a90611e95565b8015610ca75780601f10610c7c57610100808354040283529160200191610ca7565b820191906000526020600020905b815481529060010190602001808311610c8a57829003601f168201915b5050506003909301549192505060ff1684565b60606003805480602002602001604051908101604052809291908181526020018280548015610d1257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610cf4575b5050505050905090565b6060600060055467ffffffffffffffff811115610d3b57610d3b611f33565b604051908082528060200260200182016040528015610d64578160200160208202803683370190505b5090506000805b600554811015610dfb57858015610d94575060008181526020819052604090206003015460ff16155b80610db85750848015610db8575060008181526020819052604090206003015460ff165b15610de95780838381518110610dd057610dd0611f1a565b6020908102919091010152610de6600183611e36565b91505b80610df381611ecd565b915050610d6b565b610e058888611e4e565b67ffffffffffffffff811115610e1d57610e1d611f33565b604051908082528060200260200182016040528015610e46578160200160208202803683370190505b5093508790505b86811015610ea957828181518110610e6757610e67611f1a565b6020026020010151848983610e7c9190611e4e565b81518110610e8c57610e8c611f1a565b602090810291909101015280610ea181611ecd565b915050610e4d565b505050949350505050565b60035460609060009067ffffffffffffffff811115610ed557610ed5611f33565b604051908082528060200260200182016040528015610efe578160200160208202803683370190505b5090506000805b600354811015610fdc5760008581526001602052604081206003805491929184908110610f3457610f34611f1a565b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610fca5760038181548110610f7457610f74611f1a565b9060005260206000200160009054906101000a9004600160a060020a0316838381518110610fa457610fa4611f1a565b600160a060020a0390921660209283029190910190910152610fc7600183611e36565b91505b80610fd481611ecd565b915050610f05565b8167ffffffffffffffff811115610ff557610ff5611f33565b60405190808252806020026020018201604052801561101e578160200160208202803683370190505b509350600090505b818110156110845782818151811061104057611040611f1a565b602002602001015184828151811061105a5761105a611f1a565b600160a060020a03909216602092830291909101909101528061107c81611ecd565b915050611026565b505050919050565b33301461109857600080fd5b60035481603282118015906110ad5750818111155b80156110b857508015155b80156110c357508115155b6110cc57600080fd5b60048390556040518381527fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9060200160405180910390a1505050565b33301461111557600080fd5b61111e826115ba565b80511561112f576108998282611568565b5050565b3360008181526002602052604090205460ff1661114f57600080fd5b6000828152602081905260409020548290600160a060020a031661117257600080fd5b60008381526001602090815260408083203380855292529091205484919060ff161561119d57600080fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36108f5856113a5565b60006112008484846116c3565b905061120b81611133565b9392505050565b33301461121e57600080fd5b600160a060020a038216600090815260026020526040902054829060ff1661124557600080fd5b600160a060020a038216600090815260026020526040902054829060ff161561126d57600080fd5b60005b60035481101561130b5784600160a060020a03166003828154811061129757611297611f1a565b600091825260209091200154600160a060020a031614156112f95783600382815481106112c6576112c6611f1a565b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061130b565b8061130381611ecd565b915050611270565b50600160a060020a03808516600081815260026020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526002602052604090205460ff166113c157600080fd5b60008281526001602090815260408083203380855292529091205483919060ff166113eb57600080fd5b600084815260208190526040902060030154849060ff161561140c57600080fd5b61141585610ad7565b156108f557600085815260208190526040902060038101805460ff191660019081179091558154908201546002830180546114f393600160a060020a031692919061145f90611e95565b905084600201805461147090611e95565b80601f016020809104026020016040519081016040528092919081815260200182805461149c90611e95565b80156114e95780601f106114be576101008083540402835291602001916114e9565b820191906000526020600020905b8154815290600101906020018083116114cc57829003601f168201915b50505050506117c3565b156115285760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611560565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038101805460ff191690555b505050505050565b606061120b8383604051806060016040528060278152602001611f4d602791396117e6565b90565b3b151590565b3660008037600080366000845af43d6000803e8080156115b5573d6000f35b3d6000fd5b803b61164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600083600160a060020a0381166116d957600080fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519496509193909261175992600285019291019061193e565b50606091909101516003909101805460ff1916911515919091179055600580546001919060009061178b908490611e36565b909155505060405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000806040516020840160008287838a8c618fca5a03f198975050505050505050565b6060833b611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401611644565b60008085600160a060020a0316856040516118919190611cde565b600060405180830381855af49150503d80600081146118cc576040519150601f19603f3d011682016040523d82523d6000602084013e6118d1565b606091505b50915091506118e18282866118eb565b9695505050505050565b606083156118fa57508161120b565b82511561190a5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449190611e23565b82805461194a90611e95565b90600052602060002090601f01602090048101928261196c57600085556119b2565b82601f1061198557805160ff19168380011785556119b2565b828001600101855582156119b2579182015b828111156119b2578251825591602001919060010190611997565b506119be9291506119c2565b5090565b5b808211156119be57600081556001016119c3565b8035600160a060020a03811681146119ee57600080fd5b919050565b803580151581146119ee57600080fd5b600082601f830112611a1457600080fd5b813567ffffffffffffffff80821115611a2f57611a2f611f33565b604051601f8301601f19908116603f01168101908282118183101715611a5757611a57611f33565b81604052838152866020858801011115611a7057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215611aa257600080fd5b61120b826119d7565b60008060408385031215611abe57600080fd5b611ac7836119d7565b9150611ad5602084016119d7565b90509250929050565b600080600060408486031215611af357600080fd5b611afc846119d7565b9250602084013567ffffffffffffffff80821115611b1957600080fd5b818601915086601f830112611b2d57600080fd5b813581811115611b3c57600080fd5b876020828501011115611b4e57600080fd5b6020830194508093505050509250925092565b60008060408385031215611b7457600080fd5b611b7d836119d7565b9150602083013567ffffffffffffffff811115611b9957600080fd5b611ba585828601611a03565b9150509250929050565b600080600060608486031215611bc457600080fd5b611bcd846119d7565b925060208401359150604084013567ffffffffffffffff811115611bf057600080fd5b611bfc86828701611a03565b9150509250925092565b60008060408385031215611c1957600080fd5b611c22836119f3565b9150611ad5602084016119f3565b600060208284031215611c4257600080fd5b5035919050565b60008060408385031215611c5c57600080fd5b82359150611ad5602084016119d7565b60008060008060808587031215611c8257600080fd5b8435935060208501359250611c99604086016119f3565b9150611ca7606086016119f3565b905092959194509250565b60008151808452611cca816020860160208601611e65565b601f01601f19169290920160200192915050565b60008251611cf0818460208701611e65565b9190910192915050565b600160a060020a038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600160a060020a0383168152604060208201526000611d5b6040830184611cb2565b949350505050565b600160a060020a0385168152836020820152608060408201526000611d8b6080830185611cb2565b9050821515606083015295945050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ddf578351600160a060020a031683529284019291840191600101611dba565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ddf57835183529284019291840191600101611e07565b60208152600061120b6020830184611cb2565b60008219821115611e4957611e49611ee8565b500190565b600082821015611e6057611e60611ee8565b500390565b60005b83811015611e80578181015183820152602001611e68565b83811115611e8f576000848401525b50505050565b600281046001821680611ea957607f821691505b60208210811415610bf65760e060020a634e487b7102600052602260045260246000fd5b6000600019821415611ee157611ee1611ee8565b5060010190565b60e060020a634e487b7102600052601160045260246000fd5b60e060020a634e487b7102600052603160045260246000fd5b60e060020a634e487b7102600052603260045260246000fd5b60e060020a634e487b7102600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220558728c0a320f4caa2d0ad93c90eb723e3aaa33a04102dd7eef27686a8aa796864736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008f499bc97b99ef413bac02545040b701b86d2628000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000001604169e7a9900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000f00259b67b0646d84c1a5abc435943f5473232aec507bd899e83a00abf388fcb8d0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000019cabc1e34ab0cc5c62daa1394f6022b38b75c78000000000000000000000000b6db3c082d25c0dc26602334b5f3d270091dc422000000000000000000000000fae075e12116fbfe65c58e1ef0e6ca959ca37ded000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce36451880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000030000000000000000000000002b2d892c3fe2b4113dd7ac0d2c1882af202fb28f000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce3645188000000000000000000000000e7c3607474e235ec8def1f0a63ea983538eea1820000000000000000000000000000000000000000000000000000000000000097000000000000000000000000162ba761fc75f5873197a340f9e7fb926ba7517d000000000000000000000000129c0057af3f91d4fa729aea7910b46f7ce3d08100000000000000000000000073574449cbed6213f5340e806e9dec36f05a25ec000000000000000000000000742c823ac6963f43e3fa218be3b8abb4b786bdbe0000000000000000000000009f8b33a65a61f3382904611020edc17e647456220000000000000000000000009b1822da3f6450832dd92713f49c075b2538f057000000000000000000000000fef2ea6607d891f30d916b207c62eacbecfbb48a000000000000000000000000138687b0eb23fbe0bca74f2d60e37cb3e370e66c0000000000000000000000007cfbdda8ed4ba1bd1e826dfd5c0262003d010b110000000000000000000000008ceb1b9f5d2603a2df7761fc5204421de582d072000000000000000000000000ce0131435386f95e527438a021424eb1224969c70000000000000000000000003b460775ac2c299b3717b46b2cc80e1581c71f2a000000000000000000000000ac733dd5032ee3946058ff4c8a668090c0627ea40000000000000000000000008ee3ffb66b3a73a9366170b5d1335b24ad110006000000000000000000000000f1e149223a0614f2da591db097fe95101c46bdfc000000000000000000000000dcc27e312f77e8fca4cec1c7da80375b29fcbe49000000000000000000000000eaa70cf46b0ab7d1b9e5670d250dae21c7752c7500000000000000000000000030b0b0f047f0fd0a769165b1f37e880910722a8e000000000000000000000000ab0f37183ba79ab089707dd084adce1e83fa767e000000000000000000000000a3d52fdd6441358f4fd6456eca9739699d19637d0000000000000000000000007e890ae8dc02e4004618d32ada2c0cf24f6496500000000000000000000000000fd04a8810c6ca7d20278a4c0f0cdb2b763ed17a000000000000000000000000b4439fb83012557a1037ba897ba32db85463fcf500000000000000000000000006bc91fd5360136fae0ee2c4325e806d2fef8c91000000000000000000000000ce70659202a4d172a13fe099598fa8c4e8d112d200000000000000000000000086b8fb21c1acda087c9c682b573b0eb45c6c0aa200000000000000000000000079eefefdd489d0b6a22225b31f8cffc424f3af030000000000000000000000008f64d0bc82557fd8c2be558382cdf793c48805c30000000000000000000000001cff2e3ae9e45f42b21423a13bedc2a8a4b793f2000000000000000000000000be3a417f13d8f878275d4fae20255250e6a027d60000000000000000000000001bc2d8e9f0289fca70b65db74e9ec54ac996fcf7000000000000000000000000b08ed49d231a7ae7a2107463e3656bee9a7b52b200000000000000000000000069aa49661c21d196555230d6cbaa2a44a7efaea8000000000000000000000000c43b53dcaa928e7ea7cd4eec4ed69cc9cad6831e000000000000000000000000d0c394a55ed86d49b1d5417e2abd2bc716dd25bf000000000000000000000000a93d6cf6aa5de876351044017d1a996bddaa7ef50000000000000000000000007873a27ff825bd0aea97040fcdb5fecb16860be6000000000000000000000000c86d0450248d26c8ac57e05c25020b2a9c9303950000000000000000000000005a97d3119fdd7790341195aea7473db5e472f5840000000000000000000000006a3a0ba256d62258426ce55d3dde5dce230419d9000000000000000000000000db22968688bd5a999ed270d5fc92d93ca48e27ee00000000000000000000000004c60ec0f73358fb0f066248a852a5e5bbaf5f7d000000000000000000000000acaf7ebac25345732d62ed9e3773683254d27145000000000000000000000000bad13a54ea55a54719b04c9c9c66e6641838236d000000000000000000000000bf9a1a9ff27779d8bdafdcf1e0006c29dfa4a1f90000000000000000000000001e6a48718b5314630b1a5b232c03c764ee75a3da000000000000000000000000bde95b78ba9aafb0b32b006c37f0a4529e4a3f47000000000000000000000000c71f56df3c7915ed3a5ca9092a07148870b8eb4e000000000000000000000000408c6f2683ff22fd0bd22b23268673e029c6b58a00000000000000000000000057b49083224ade62bcca859151cdbd0ed21542430000000000000000000000001fd9fb1d037bde2438d03031a867ad34134f7c3e00000000000000000000000074aad1e344507707fd69c711fc84f46e15a7fdf1000000000000000000000000f9cf8775cd6697c1bb52fdbd9625c8f5fae6c62c0000000000000000000000000db5ba0246ea95952cee6185bddf2127a36b11e4000000000000000000000000ead0f93d61011d64cb8ec04b94a3dd7174b3eb6000000000000000000000000068e89a6c875f19bd4352b460fa9e266e966d2aa0000000000000000000000000ae839443a6e3b2780c215cc4383aed5a8dd33402000000000000000000000000de05ea20ba8ffbd9b34e2d6ceedaac70ed81cb4c000000000000000000000000f98fa8f72531b8b46838a8b93869992d2856ae3900000000000000000000000067ac377cbdd8ea9115d7e7824801d948ba871dfd00000000000000000000000054fd4d217f419ebcf3dc682d69307f9f93f6c2f60000000000000000000000000bf8b6d38c75622929430c3bd6456d7d5e4cbc72000000000000000000000000276ded8feac8a3ccb4ac443e73364ab39526f06b000000000000000000000000049ff380cf0c95d9998ad4bf05fdf127061fe87a00000000000000000000000097faf64436bf6d385d438e5799170e569159242c00000000000000000000000046afaf062cc1b5497d0b3c84bd9fab74873c63cf00000000000000000000000086d43d411523a26608f724de2d1852f626e875cc0000000000000000000000009cf1a5260f214c197a6f9eecd58776937f33b40c0000000000000000000000008c8915f998e2bf938cf82b3530269c38d4ad6ae20000000000000000000000004dae3a51049a390a253a941dc1a6f18104f6d1c8000000000000000000000000421e84dc43b05a5db967adac16f231341cfb219500000000000000000000000029e273cd79d7c6d449744b5b681b0d6f93c447cd00000000000000000000000033f37ee39e17a7ccc6ab3e42104ea636a8752538000000000000000000000000f50ec954b0e6f9e2c2939ffdcab84a92f53714f50000000000000000000000007a3599b88ea2068268b763dee8b8703d21700df30000000000000000000000004df7e56ea65784c56d601d201ee2915b9db66c7e000000000000000000000000d55bf79b35db54e28eadb9dfb67621269938608e000000000000000000000000b9830ecc83bd54a574d81f7ca04080bc8299c98b0000000000000000000000002c19568e9ee6a9e3980ff6124301a9f7a2307813000000000000000000000000c48049fdeb138ce3472de4976539bfc657d9c3b9000000000000000000000000fe1f7c9ca6b109d22bff83579ac7a6d2e0e5e9c9000000000000000000000000a5e7d68aecf9578b604ccf461b9d22760495477d000000000000000000000000c0c05faca257d02dbe3f34b5c615ff0781ce65f90000000000000000000000000a83aff99582d68aa08a6a8e8e8b16212d7567f0000000000000000000000000cf03bc13888a1ecb89c66b495b4e669ae09712da000000000000000000000000ba91099ae5da08064bf269f11621bb09b9d89ae10000000000000000000000000bf0315611cd24745d955a71d9c0f23f7c2c0f0b0000000000000000000000001b0db8ca2f90781b0d80fe411f36934f094d7a33000000000000000000000000a1d921c093e793d9d1a14298a9e3dbb5f130a658000000000000000000000000dcae77e5845c828e3765de97d2f98f59232b8cab000000000000000000000000123a1048b72e14ddfe11a8a246860a84199aa9e9000000000000000000000000b0c9db4cd4d8557a83ec113405568182db95958000000000000000000000000078253d5b6032ffbaa3357476c004a5f844c23d8300000000000000000000000020e61908877e5e4874d22b2581aeb803ed99062c00000000000000000000000000df8532681af85ec649e51c9e5c292b6f03d0e0000000000000000000000000cb0cdf3f7df262e2e294524168f1d421c2512b01000000000000000000000000bc71a9e156ec8feea4f33dbc4469ffa8662fd2fb000000000000000000000000d07b605e363ded3ca8f643ec225acccc5f3de949000000000000000000000000c522a6f276999fa0a8574c837d91cf2435f256bc000000000000000000000000afde7eae86fd37bd8e500bdac87a68e1582133e1000000000000000000000000a79ceaf487a3933d08a0680ea5ea0963fee6d5b60000000000000000000000000b1f4bc6ef1282c065156c3cfc2d79f4d2803655000000000000000000000000a07c4aed3ee6f4425fcaa8b7926cca3f3da97d55000000000000000000000000122555bdb0152564070453c447320aaa0ab712ec0000000000000000000000008e9138a2ae378c4b1470699d4bd3a3b1f4bfcea300000000000000000000000090719a0fa1ed2902ddefc3936993147712ad530300000000000000000000000094b4afa91c0e24e67b084ea56dda69ee63ec0dd9000000000000000000000000ca8f5e2b46d1b736bd2363a9b70b70a408c2e062000000000000000000000000dd33fa00ae8e3b88b7e0c1b6be40c3aeb6047bd9000000000000000000000000bfab4eb93b8f6182110fb1d82cc6ed56220aefc300000000000000000000000011716c7479d43737119dd10da4c8cf4990cc7534000000000000000000000000555ef499a80519dec9f0fd305c6d679c0ab2a4b800000000000000000000000043f2da6f301a87fccd2962c82bb5eb9164919cb40000000000000000000000003f1e100b629763b5330e69ff129da8c5e603dfb9000000000000000000000000ad1b553c0a1a0c366ee062917cb66a43f1d79a4700000000000000000000000003149cbd44bbb9f72f651b4d0db48dd0f358ef3f000000000000000000000000248b1e5a3a157c65cfa2c8f43e8c55f9d8e41241000000000000000000000000c56f8419bc0d9bd669075de70aaea2269354d5c700000000000000000000000084a7acd4a65ba22d6d16fea2df9908c47f2fabbd000000000000000000000000281614e111afbad37ef84aaff74c831539ed3e320000000000000000000000003612882d4149d18a3604a6392b4596826c8fdc65000000000000000000000000ecb61494feddbdf4989ef2579ee8f9ccb91e473b0000000000000000000000000c6ca6f2c9b41884ec3abeb659ba1d1eed82cb8f000000000000000000000000bec6eb5a834cd23738eb7ec293ef11af9955c6720000000000000000000000008f767f33afd062b0fe5da47223529fda412ba7910000000000000000000000006cb4dd53adb878858767a4666f2e4ee7cdf9d5cb0000000000000000000000000a3ba1da9d6203d28a208952323f44b929fda3a80000000000000000000000008efe37febecdae467ac83549464e37f7e25fd74b000000000000000000000000de0d970b653d352391c3a4cce0e70bd1938546ba000000000000000000000000df43648a9748901a784c017821b05ba26274898c0000000000000000000000009999d29a1df911aa8bf4b0bf81eabb65dda05299000000000000000000000000111b35d671c7d8e80cc5cb01ec4267965fbd648d00000000000000000000000081e955e967213fdf2476a451d97ac8ccc3399a98000000000000000000000000a7273df94c37e7c024761a13e1575104eeda1714000000000000000000000000c967d362468c0683cbbc29ca05fc08699674f403000000000000000000000000085d1113afdcd9709e3e9506e5a0e142c3d2e1dc000000000000000000000000d73b65cec8c2c1697db90dbb5a321bc7741a640b000000000000000000000000869dbca06bc1d1f6b0f67abe9e7e4ee55cc2c57c000000000000000000000000ca1f8bcfb1edf02d2701923a20d395ec4dbda60b000000000000000000000000af106234f2dfed3c1265c02c1702a9fef8a80cc5000000000000000000000000dd39170089c49538a2b08827fa95413f8428bdfc0000000000000000000000006f845d7fbdb121607f7f317e381b808199d5db8d0000000000000000000000007b56cac281a096bb42a48f807a4db75e6b9686a7000000000000000000000000a7afbed971071011459cfc4781cb9ddd7068fa040000000000000000000000008e11f754808929ee8cb7def770fc6979f74999af0000000000000000000000009db5e882011f89c338c63f59ad330e30dcf11787000000000000000000000000d34ea40ea7f07dbc5a7357a848d9a78b986648a60000000000000000000000001084c027162ac971d4c2b26ec4168ec5c19b7f5500000000000000000000000067c14e9f4f2aade77da35bf24e36bd76de21060d0000000000000000000000009b4b0e8262725b7f896dd7dd97152cdd18d97495000000000000000000000000de3f6d974e58f17a9fbe898beaf142200af599e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000f3cb1e06e72233e0350f7588d11a2585b268c7ad000000000000000000000000b017dccc473499c83f1b553be564f3ceaf002254000000000000000000000000e620e1f969bc3a24ac96d527220ad6b6e2d12843000000000000000000000000e8d204d3b12e643888debd525e2f8034fc7eb855000000000000000000000000fe231e979dae1d87cd961aa353221c0c754941d800000000000000000000000059c66c7e3d3f239961c87a4627f86a5a9049407c000000000000000000000000a5e32d3fb342d9ed3135fd5cb59a102ac8ed7b85
-----Decoded View---------------
Arg [0] : _logic (address): 0x8F499Bc97B99EF413bAc02545040b701b86d2628
Arg [1] : _data (bytes): 0x169e7a9900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000f00259b67b0646d84c1a5abc435943f5473232aec507bd899e83a00abf388fcb8d0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000019cabc1e34ab0cc5c62daa1394f6022b38b75c78000000000000000000000000b6db3c082d25c0dc26602334b5f3d270091dc422000000000000000000000000fae075e12116fbfe65c58e1ef0e6ca959ca37ded000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce36451880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000030000000000000000000000002b2d892c3fe2b4113dd7ac0d2c1882af202fb28f000000000000000000000000278a8c33ef2a7d7c682f458c85e9447ce3645188000000000000000000000000e7c3607474e235ec8def1f0a63ea983538eea1820000000000000000000000000000000000000000000000000000000000000097000000000000000000000000162ba761fc75f5873197a340f9e7fb926ba7517d000000000000000000000000129c0057af3f91d4fa729aea7910b46f7ce3d08100000000000000000000000073574449cbed6213f5340e806e9dec36f05a25ec000000000000000000000000742c823ac6963f43e3fa218be3b8abb4b786bdbe0000000000000000000000009f8b33a65a61f3382904611020edc17e647456220000000000000000000000009b1822da3f6450832dd92713f49c075b2538f057000000000000000000000000fef2ea6607d891f30d916b207c62eacbecfbb48a000000000000000000000000138687b0eb23fbe0bca74f2d60e37cb3e370e66c0000000000000000000000007cfbdda8ed4ba1bd1e826dfd5c0262003d010b110000000000000000000000008ceb1b9f5d2603a2df7761fc5204421de582d072000000000000000000000000ce0131435386f95e527438a021424eb1224969c70000000000000000000000003b460775ac2c299b3717b46b2cc80e1581c71f2a000000000000000000000000ac733dd5032ee3946058ff4c8a668090c0627ea40000000000000000000000008ee3ffb66b3a73a9366170b5d1335b24ad110006000000000000000000000000f1e149223a0614f2da591db097fe95101c46bdfc000000000000000000000000dcc27e312f77e8fca4cec1c7da80375b29fcbe49000000000000000000000000eaa70cf46b0ab7d1b9e5670d250dae21c7752c7500000000000000000000000030b0b0f047f0fd0a769165b1f37e880910722a8e000000000000000000000000ab0f37183ba79ab089707dd084adce1e83fa767e000000000000000000000000a3d52fdd6441358f4fd6456eca9739699d19637d0000000000000000000000007e890ae8dc02e4004618d32ada2c0cf24f6496500000000000000000000000000fd04a8810c6ca7d20278a4c0f0cdb2b763ed17a000000000000000000000000b4439fb83012557a1037ba897ba32db85463fcf500000000000000000000000006bc91fd5360136fae0ee2c4325e806d2fef8c91000000000000000000000000ce70659202a4d172a13fe099598fa8c4e8d112d200000000000000000000000086b8fb21c1acda087c9c682b573b0eb45c6c0aa200000000000000000000000079eefefdd489d0b6a22225b31f8cffc424f3af030000000000000000000000008f64d0bc82557fd8c2be558382cdf793c48805c30000000000000000000000001cff2e3ae9e45f42b21423a13bedc2a8a4b793f2000000000000000000000000be3a417f13d8f878275d4fae20255250e6a027d60000000000000000000000001bc2d8e9f0289fca70b65db74e9ec54ac996fcf7000000000000000000000000b08ed49d231a7ae7a2107463e3656bee9a7b52b200000000000000000000000069aa49661c21d196555230d6cbaa2a44a7efaea8000000000000000000000000c43b53dcaa928e7ea7cd4eec4ed69cc9cad6831e000000000000000000000000d0c394a55ed86d49b1d5417e2abd2bc716dd25bf000000000000000000000000a93d6cf6aa5de876351044017d1a996bddaa7ef50000000000000000000000007873a27ff825bd0aea97040fcdb5fecb16860be6000000000000000000000000c86d0450248d26c8ac57e05c25020b2a9c9303950000000000000000000000005a97d3119fdd7790341195aea7473db5e472f5840000000000000000000000006a3a0ba256d62258426ce55d3dde5dce230419d9000000000000000000000000db22968688bd5a999ed270d5fc92d93ca48e27ee00000000000000000000000004c60ec0f73358fb0f066248a852a5e5bbaf5f7d000000000000000000000000acaf7ebac25345732d62ed9e3773683254d27145000000000000000000000000bad13a54ea55a54719b04c9c9c66e6641838236d000000000000000000000000bf9a1a9ff27779d8bdafdcf1e0006c29dfa4a1f90000000000000000000000001e6a48718b5314630b1a5b232c03c764ee75a3da000000000000000000000000bde95b78ba9aafb0b32b006c37f0a4529e4a3f47000000000000000000000000c71f56df3c7915ed3a5ca9092a07148870b8eb4e000000000000000000000000408c6f2683ff22fd0bd22b23268673e029c6b58a00000000000000000000000057b49083224ade62bcca859151cdbd0ed21542430000000000000000000000001fd9fb1d037bde2438d03031a867ad34134f7c3e00000000000000000000000074aad1e344507707fd69c711fc84f46e15a7fdf1000000000000000000000000f9cf8775cd6697c1bb52fdbd9625c8f5fae6c62c0000000000000000000000000db5ba0246ea95952cee6185bddf2127a36b11e4000000000000000000000000ead0f93d61011d64cb8ec04b94a3dd7174b3eb6000000000000000000000000068e89a6c875f19bd4352b460fa9e266e966d2aa0000000000000000000000000ae839443a6e3b2780c215cc4383aed5a8dd33402000000000000000000000000de05ea20ba8ffbd9b34e2d6ceedaac70ed81cb4c000000000000000000000000f98fa8f72531b8b46838a8b93869992d2856ae3900000000000000000000000067ac377cbdd8ea9115d7e7824801d948ba871dfd00000000000000000000000054fd4d217f419ebcf3dc682d69307f9f93f6c2f60000000000000000000000000bf8b6d38c75622929430c3bd6456d7d5e4cbc72000000000000000000000000276ded8feac8a3ccb4ac443e73364ab39526f06b000000000000000000000000049ff380cf0c95d9998ad4bf05fdf127061fe87a00000000000000000000000097faf64436bf6d385d438e5799170e569159242c00000000000000000000000046afaf062cc1b5497d0b3c84bd9fab74873c63cf00000000000000000000000086d43d411523a26608f724de2d1852f626e875cc0000000000000000000000009cf1a5260f214c197a6f9eecd58776937f33b40c0000000000000000000000008c8915f998e2bf938cf82b3530269c38d4ad6ae20000000000000000000000004dae3a51049a390a253a941dc1a6f18104f6d1c8000000000000000000000000421e84dc43b05a5db967adac16f231341cfb219500000000000000000000000029e273cd79d7c6d449744b5b681b0d6f93c447cd00000000000000000000000033f37ee39e17a7ccc6ab3e42104ea636a8752538000000000000000000000000f50ec954b0e6f9e2c2939ffdcab84a92f53714f50000000000000000000000007a3599b88ea2068268b763dee8b8703d21700df30000000000000000000000004df7e56ea65784c56d601d201ee2915b9db66c7e000000000000000000000000d55bf79b35db54e28eadb9dfb67621269938608e000000000000000000000000b9830ecc83bd54a574d81f7ca04080bc8299c98b0000000000000000000000002c19568e9ee6a9e3980ff6124301a9f7a2307813000000000000000000000000c48049fdeb138ce3472de4976539bfc657d9c3b9000000000000000000000000fe1f7c9ca6b109d22bff83579ac7a6d2e0e5e9c9000000000000000000000000a5e7d68aecf9578b604ccf461b9d22760495477d000000000000000000000000c0c05faca257d02dbe3f34b5c615ff0781ce65f90000000000000000000000000a83aff99582d68aa08a6a8e8e8b16212d7567f0000000000000000000000000cf03bc13888a1ecb89c66b495b4e669ae09712da000000000000000000000000ba91099ae5da08064bf269f11621bb09b9d89ae10000000000000000000000000bf0315611cd24745d955a71d9c0f23f7c2c0f0b0000000000000000000000001b0db8ca2f90781b0d80fe411f36934f094d7a33000000000000000000000000a1d921c093e793d9d1a14298a9e3dbb5f130a658000000000000000000000000dcae77e5845c828e3765de97d2f98f59232b8cab000000000000000000000000123a1048b72e14ddfe11a8a246860a84199aa9e9000000000000000000000000b0c9db4cd4d8557a83ec113405568182db95958000000000000000000000000078253d5b6032ffbaa3357476c004a5f844c23d8300000000000000000000000020e61908877e5e4874d22b2581aeb803ed99062c00000000000000000000000000df8532681af85ec649e51c9e5c292b6f03d0e0000000000000000000000000cb0cdf3f7df262e2e294524168f1d421c2512b01000000000000000000000000bc71a9e156ec8feea4f33dbc4469ffa8662fd2fb000000000000000000000000d07b605e363ded3ca8f643ec225acccc5f3de949000000000000000000000000c522a6f276999fa0a8574c837d91cf2435f256bc000000000000000000000000afde7eae86fd37bd8e500bdac87a68e1582133e1000000000000000000000000a79ceaf487a3933d08a0680ea5ea0963fee6d5b60000000000000000000000000b1f4bc6ef1282c065156c3cfc2d79f4d2803655000000000000000000000000a07c4aed3ee6f4425fcaa8b7926cca3f3da97d55000000000000000000000000122555bdb0152564070453c447320aaa0ab712ec0000000000000000000000008e9138a2ae378c4b1470699d4bd3a3b1f4bfcea300000000000000000000000090719a0fa1ed2902ddefc3936993147712ad530300000000000000000000000094b4afa91c0e24e67b084ea56dda69ee63ec0dd9000000000000000000000000ca8f5e2b46d1b736bd2363a9b70b70a408c2e062000000000000000000000000dd33fa00ae8e3b88b7e0c1b6be40c3aeb6047bd9000000000000000000000000bfab4eb93b8f6182110fb1d82cc6ed56220aefc300000000000000000000000011716c7479d43737119dd10da4c8cf4990cc7534000000000000000000000000555ef499a80519dec9f0fd305c6d679c0ab2a4b800000000000000000000000043f2da6f301a87fccd2962c82bb5eb9164919cb40000000000000000000000003f1e100b629763b5330e69ff129da8c5e603dfb9000000000000000000000000ad1b553c0a1a0c366ee062917cb66a43f1d79a4700000000000000000000000003149cbd44bbb9f72f651b4d0db48dd0f358ef3f000000000000000000000000248b1e5a3a157c65cfa2c8f43e8c55f9d8e41241000000000000000000000000c56f8419bc0d9bd669075de70aaea2269354d5c700000000000000000000000084a7acd4a65ba22d6d16fea2df9908c47f2fabbd000000000000000000000000281614e111afbad37ef84aaff74c831539ed3e320000000000000000000000003612882d4149d18a3604a6392b4596826c8fdc65000000000000000000000000ecb61494feddbdf4989ef2579ee8f9ccb91e473b0000000000000000000000000c6ca6f2c9b41884ec3abeb659ba1d1eed82cb8f000000000000000000000000bec6eb5a834cd23738eb7ec293ef11af9955c6720000000000000000000000008f767f33afd062b0fe5da47223529fda412ba7910000000000000000000000006cb4dd53adb878858767a4666f2e4ee7cdf9d5cb0000000000000000000000000a3ba1da9d6203d28a208952323f44b929fda3a80000000000000000000000008efe37febecdae467ac83549464e37f7e25fd74b000000000000000000000000de0d970b653d352391c3a4cce0e70bd1938546ba000000000000000000000000df43648a9748901a784c017821b05ba26274898c0000000000000000000000009999d29a1df911aa8bf4b0bf81eabb65dda05299000000000000000000000000111b35d671c7d8e80cc5cb01ec4267965fbd648d00000000000000000000000081e955e967213fdf2476a451d97ac8ccc3399a98000000000000000000000000a7273df94c37e7c024761a13e1575104eeda1714000000000000000000000000c967d362468c0683cbbc29ca05fc08699674f403000000000000000000000000085d1113afdcd9709e3e9506e5a0e142c3d2e1dc000000000000000000000000d73b65cec8c2c1697db90dbb5a321bc7741a640b000000000000000000000000869dbca06bc1d1f6b0f67abe9e7e4ee55cc2c57c000000000000000000000000ca1f8bcfb1edf02d2701923a20d395ec4dbda60b000000000000000000000000af106234f2dfed3c1265c02c1702a9fef8a80cc5000000000000000000000000dd39170089c49538a2b08827fa95413f8428bdfc0000000000000000000000006f845d7fbdb121607f7f317e381b808199d5db8d0000000000000000000000007b56cac281a096bb42a48f807a4db75e6b9686a7000000000000000000000000a7afbed971071011459cfc4781cb9ddd7068fa040000000000000000000000008e11f754808929ee8cb7def770fc6979f74999af0000000000000000000000009db5e882011f89c338c63f59ad330e30dcf11787000000000000000000000000d34ea40ea7f07dbc5a7357a848d9a78b986648a60000000000000000000000001084c027162ac971d4c2b26ec4168ec5c19b7f5500000000000000000000000067c14e9f4f2aade77da35bf24e36bd76de21060d0000000000000000000000009b4b0e8262725b7f896dd7dd97152cdd18d97495000000000000000000000000de3f6d974e58f17a9fbe898beaf142200af599e7
Arg [2] : owners (address[]): 0xf3cb1e06e72233e0350F7588D11a2585B268C7AD,0xb017DcCC473499C83f1b553bE564f3CeAf002254,0xe620e1F969Bc3a24Ac96D527220AD6B6e2d12843,0xe8d204D3B12E643888DEBD525e2f8034fC7EB855,0xFe231E979dAe1D87Cd961Aa353221C0c754941d8,0x59C66c7E3D3F239961c87A4627F86a5a9049407C,0xa5E32D3fB342D9Ed3135fD5cb59a102AC8ED7B85
Arg [3] : _required (uint256): 4
-----Encoded View---------------
190 Constructor Arguments found :
Arg [0] : 0000000000000000000000008f499bc97b99ef413bac02545040b701b86d2628
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000000000000000000016c0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 0000000000000000000000000000000000000000000000000000000000001604
Arg [5] : 169e7a9900000000000000000000000000000000000000000000000000000000
Arg [6] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000030000000000000000000000000000000000000000000000000000000000
Arg [8] : 00000f00259b67b0646d84c1a5abc435943f5473232aec507bd899e83a00abf3
Arg [9] : 88fcb8d000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000a00000000000000000000000019cabc1e34ab0cc5c62daa1394f6022b
Arg [11] : 38b75c78000000000000000000000000b6db3c082d25c0dc26602334b5f3d270
Arg [12] : 091dc422000000000000000000000000fae075e12116fbfe65c58e1ef0e6ca95
Arg [13] : 9ca37ded000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead908
Arg [14] : 3c756cc200000000000000000000000000000000000000000000000000000000
Arg [15] : 0000016000000000000000000000000000000000000000000000000000000000
Arg [16] : 000001e000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [19] : 0000384000000000000000000000000000000000000000000000000000000000
Arg [20] : 0000025800000000000000000000000000000000000000000000000000000000
Arg [21] : 0000000a00000000000000000000000000000000000000000000000000000000
Arg [22] : 00000003000000000000000000000000278a8c33ef2a7d7c682f458c85e9447c
Arg [23] : e364518800000000000000000000000000000000000000000000000000000000
Arg [24] : 00000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead908
Arg [25] : 3c756cc200000000000000000000000000000000000000000000000000000000
Arg [26] : 000000030000000000000000000000002b2d892c3fe2b4113dd7ac0d2c1882af
Arg [27] : 202fb28f000000000000000000000000278a8c33ef2a7d7c682f458c85e9447c
Arg [28] : e3645188000000000000000000000000e7c3607474e235ec8def1f0a63ea9835
Arg [29] : 38eea18200000000000000000000000000000000000000000000000000000000
Arg [30] : 00000097000000000000000000000000162ba761fc75f5873197a340f9e7fb92
Arg [31] : 6ba7517d000000000000000000000000129c0057af3f91d4fa729aea7910b46f
Arg [32] : 7ce3d08100000000000000000000000073574449cbed6213f5340e806e9dec36
Arg [33] : f05a25ec000000000000000000000000742c823ac6963f43e3fa218be3b8abb4
Arg [34] : b786bdbe0000000000000000000000009f8b33a65a61f3382904611020edc17e
Arg [35] : 647456220000000000000000000000009b1822da3f6450832dd92713f49c075b
Arg [36] : 2538f057000000000000000000000000fef2ea6607d891f30d916b207c62eacb
Arg [37] : ecfbb48a000000000000000000000000138687b0eb23fbe0bca74f2d60e37cb3
Arg [38] : e370e66c0000000000000000000000007cfbdda8ed4ba1bd1e826dfd5c026200
Arg [39] : 3d010b110000000000000000000000008ceb1b9f5d2603a2df7761fc5204421d
Arg [40] : e582d072000000000000000000000000ce0131435386f95e527438a021424eb1
Arg [41] : 224969c70000000000000000000000003b460775ac2c299b3717b46b2cc80e15
Arg [42] : 81c71f2a000000000000000000000000ac733dd5032ee3946058ff4c8a668090
Arg [43] : c0627ea40000000000000000000000008ee3ffb66b3a73a9366170b5d1335b24
Arg [44] : ad110006000000000000000000000000f1e149223a0614f2da591db097fe9510
Arg [45] : 1c46bdfc000000000000000000000000dcc27e312f77e8fca4cec1c7da80375b
Arg [46] : 29fcbe49000000000000000000000000eaa70cf46b0ab7d1b9e5670d250dae21
Arg [47] : c7752c7500000000000000000000000030b0b0f047f0fd0a769165b1f37e8809
Arg [48] : 10722a8e000000000000000000000000ab0f37183ba79ab089707dd084adce1e
Arg [49] : 83fa767e000000000000000000000000a3d52fdd6441358f4fd6456eca973969
Arg [50] : 9d19637d0000000000000000000000007e890ae8dc02e4004618d32ada2c0cf2
Arg [51] : 4f6496500000000000000000000000000fd04a8810c6ca7d20278a4c0f0cdb2b
Arg [52] : 763ed17a000000000000000000000000b4439fb83012557a1037ba897ba32db8
Arg [53] : 5463fcf500000000000000000000000006bc91fd5360136fae0ee2c4325e806d
Arg [54] : 2fef8c91000000000000000000000000ce70659202a4d172a13fe099598fa8c4
Arg [55] : e8d112d200000000000000000000000086b8fb21c1acda087c9c682b573b0eb4
Arg [56] : 5c6c0aa200000000000000000000000079eefefdd489d0b6a22225b31f8cffc4
Arg [57] : 24f3af030000000000000000000000008f64d0bc82557fd8c2be558382cdf793
Arg [58] : c48805c30000000000000000000000001cff2e3ae9e45f42b21423a13bedc2a8
Arg [59] : a4b793f2000000000000000000000000be3a417f13d8f878275d4fae20255250
Arg [60] : e6a027d60000000000000000000000001bc2d8e9f0289fca70b65db74e9ec54a
Arg [61] : c996fcf7000000000000000000000000b08ed49d231a7ae7a2107463e3656bee
Arg [62] : 9a7b52b200000000000000000000000069aa49661c21d196555230d6cbaa2a44
Arg [63] : a7efaea8000000000000000000000000c43b53dcaa928e7ea7cd4eec4ed69cc9
Arg [64] : cad6831e000000000000000000000000d0c394a55ed86d49b1d5417e2abd2bc7
Arg [65] : 16dd25bf000000000000000000000000a93d6cf6aa5de876351044017d1a996b
Arg [66] : ddaa7ef50000000000000000000000007873a27ff825bd0aea97040fcdb5fecb
Arg [67] : 16860be6000000000000000000000000c86d0450248d26c8ac57e05c25020b2a
Arg [68] : 9c9303950000000000000000000000005a97d3119fdd7790341195aea7473db5
Arg [69] : e472f5840000000000000000000000006a3a0ba256d62258426ce55d3dde5dce
Arg [70] : 230419d9000000000000000000000000db22968688bd5a999ed270d5fc92d93c
Arg [71] : a48e27ee00000000000000000000000004c60ec0f73358fb0f066248a852a5e5
Arg [72] : bbaf5f7d000000000000000000000000acaf7ebac25345732d62ed9e37736832
Arg [73] : 54d27145000000000000000000000000bad13a54ea55a54719b04c9c9c66e664
Arg [74] : 1838236d000000000000000000000000bf9a1a9ff27779d8bdafdcf1e0006c29
Arg [75] : dfa4a1f90000000000000000000000001e6a48718b5314630b1a5b232c03c764
Arg [76] : ee75a3da000000000000000000000000bde95b78ba9aafb0b32b006c37f0a452
Arg [77] : 9e4a3f47000000000000000000000000c71f56df3c7915ed3a5ca9092a071488
Arg [78] : 70b8eb4e000000000000000000000000408c6f2683ff22fd0bd22b23268673e0
Arg [79] : 29c6b58a00000000000000000000000057b49083224ade62bcca859151cdbd0e
Arg [80] : d21542430000000000000000000000001fd9fb1d037bde2438d03031a867ad34
Arg [81] : 134f7c3e00000000000000000000000074aad1e344507707fd69c711fc84f46e
Arg [82] : 15a7fdf1000000000000000000000000f9cf8775cd6697c1bb52fdbd9625c8f5
Arg [83] : fae6c62c0000000000000000000000000db5ba0246ea95952cee6185bddf2127
Arg [84] : a36b11e4000000000000000000000000ead0f93d61011d64cb8ec04b94a3dd71
Arg [85] : 74b3eb6000000000000000000000000068e89a6c875f19bd4352b460fa9e266e
Arg [86] : 966d2aa0000000000000000000000000ae839443a6e3b2780c215cc4383aed5a
Arg [87] : 8dd33402000000000000000000000000de05ea20ba8ffbd9b34e2d6ceedaac70
Arg [88] : ed81cb4c000000000000000000000000f98fa8f72531b8b46838a8b93869992d
Arg [89] : 2856ae3900000000000000000000000067ac377cbdd8ea9115d7e7824801d948
Arg [90] : ba871dfd00000000000000000000000054fd4d217f419ebcf3dc682d69307f9f
Arg [91] : 93f6c2f60000000000000000000000000bf8b6d38c75622929430c3bd6456d7d
Arg [92] : 5e4cbc72000000000000000000000000276ded8feac8a3ccb4ac443e73364ab3
Arg [93] : 9526f06b000000000000000000000000049ff380cf0c95d9998ad4bf05fdf127
Arg [94] : 061fe87a00000000000000000000000097faf64436bf6d385d438e5799170e56
Arg [95] : 9159242c00000000000000000000000046afaf062cc1b5497d0b3c84bd9fab74
Arg [96] : 873c63cf00000000000000000000000086d43d411523a26608f724de2d1852f6
Arg [97] : 26e875cc0000000000000000000000009cf1a5260f214c197a6f9eecd5877693
Arg [98] : 7f33b40c0000000000000000000000008c8915f998e2bf938cf82b3530269c38
Arg [99] : d4ad6ae20000000000000000000000004dae3a51049a390a253a941dc1a6f181
Arg [100] : 04f6d1c8000000000000000000000000421e84dc43b05a5db967adac16f23134
Arg [101] : 1cfb219500000000000000000000000029e273cd79d7c6d449744b5b681b0d6f
Arg [102] : 93c447cd00000000000000000000000033f37ee39e17a7ccc6ab3e42104ea636
Arg [103] : a8752538000000000000000000000000f50ec954b0e6f9e2c2939ffdcab84a92
Arg [104] : f53714f50000000000000000000000007a3599b88ea2068268b763dee8b8703d
Arg [105] : 21700df30000000000000000000000004df7e56ea65784c56d601d201ee2915b
Arg [106] : 9db66c7e000000000000000000000000d55bf79b35db54e28eadb9dfb6762126
Arg [107] : 9938608e000000000000000000000000b9830ecc83bd54a574d81f7ca04080bc
Arg [108] : 8299c98b0000000000000000000000002c19568e9ee6a9e3980ff6124301a9f7
Arg [109] : a2307813000000000000000000000000c48049fdeb138ce3472de4976539bfc6
Arg [110] : 57d9c3b9000000000000000000000000fe1f7c9ca6b109d22bff83579ac7a6d2
Arg [111] : e0e5e9c9000000000000000000000000a5e7d68aecf9578b604ccf461b9d2276
Arg [112] : 0495477d000000000000000000000000c0c05faca257d02dbe3f34b5c615ff07
Arg [113] : 81ce65f90000000000000000000000000a83aff99582d68aa08a6a8e8e8b1621
Arg [114] : 2d7567f0000000000000000000000000cf03bc13888a1ecb89c66b495b4e669a
Arg [115] : e09712da000000000000000000000000ba91099ae5da08064bf269f11621bb09
Arg [116] : b9d89ae10000000000000000000000000bf0315611cd24745d955a71d9c0f23f
Arg [117] : 7c2c0f0b0000000000000000000000001b0db8ca2f90781b0d80fe411f36934f
Arg [118] : 094d7a33000000000000000000000000a1d921c093e793d9d1a14298a9e3dbb5
Arg [119] : f130a658000000000000000000000000dcae77e5845c828e3765de97d2f98f59
Arg [120] : 232b8cab000000000000000000000000123a1048b72e14ddfe11a8a246860a84
Arg [121] : 199aa9e9000000000000000000000000b0c9db4cd4d8557a83ec113405568182
Arg [122] : db95958000000000000000000000000078253d5b6032ffbaa3357476c004a5f8
Arg [123] : 44c23d8300000000000000000000000020e61908877e5e4874d22b2581aeb803
Arg [124] : ed99062c00000000000000000000000000df8532681af85ec649e51c9e5c292b
Arg [125] : 6f03d0e0000000000000000000000000cb0cdf3f7df262e2e294524168f1d421
Arg [126] : c2512b01000000000000000000000000bc71a9e156ec8feea4f33dbc4469ffa8
Arg [127] : 662fd2fb000000000000000000000000d07b605e363ded3ca8f643ec225acccc
Arg [128] : 5f3de949000000000000000000000000c522a6f276999fa0a8574c837d91cf24
Arg [129] : 35f256bc000000000000000000000000afde7eae86fd37bd8e500bdac87a68e1
Arg [130] : 582133e1000000000000000000000000a79ceaf487a3933d08a0680ea5ea0963
Arg [131] : fee6d5b60000000000000000000000000b1f4bc6ef1282c065156c3cfc2d79f4
Arg [132] : d2803655000000000000000000000000a07c4aed3ee6f4425fcaa8b7926cca3f
Arg [133] : 3da97d55000000000000000000000000122555bdb0152564070453c447320aaa
Arg [134] : 0ab712ec0000000000000000000000008e9138a2ae378c4b1470699d4bd3a3b1
Arg [135] : f4bfcea300000000000000000000000090719a0fa1ed2902ddefc39369931477
Arg [136] : 12ad530300000000000000000000000094b4afa91c0e24e67b084ea56dda69ee
Arg [137] : 63ec0dd9000000000000000000000000ca8f5e2b46d1b736bd2363a9b70b70a4
Arg [138] : 08c2e062000000000000000000000000dd33fa00ae8e3b88b7e0c1b6be40c3ae
Arg [139] : b6047bd9000000000000000000000000bfab4eb93b8f6182110fb1d82cc6ed56
Arg [140] : 220aefc300000000000000000000000011716c7479d43737119dd10da4c8cf49
Arg [141] : 90cc7534000000000000000000000000555ef499a80519dec9f0fd305c6d679c
Arg [142] : 0ab2a4b800000000000000000000000043f2da6f301a87fccd2962c82bb5eb91
Arg [143] : 64919cb40000000000000000000000003f1e100b629763b5330e69ff129da8c5
Arg [144] : e603dfb9000000000000000000000000ad1b553c0a1a0c366ee062917cb66a43
Arg [145] : f1d79a4700000000000000000000000003149cbd44bbb9f72f651b4d0db48dd0
Arg [146] : f358ef3f000000000000000000000000248b1e5a3a157c65cfa2c8f43e8c55f9
Arg [147] : d8e41241000000000000000000000000c56f8419bc0d9bd669075de70aaea226
Arg [148] : 9354d5c700000000000000000000000084a7acd4a65ba22d6d16fea2df9908c4
Arg [149] : 7f2fabbd000000000000000000000000281614e111afbad37ef84aaff74c8315
Arg [150] : 39ed3e320000000000000000000000003612882d4149d18a3604a6392b459682
Arg [151] : 6c8fdc65000000000000000000000000ecb61494feddbdf4989ef2579ee8f9cc
Arg [152] : b91e473b0000000000000000000000000c6ca6f2c9b41884ec3abeb659ba1d1e
Arg [153] : ed82cb8f000000000000000000000000bec6eb5a834cd23738eb7ec293ef11af
Arg [154] : 9955c6720000000000000000000000008f767f33afd062b0fe5da47223529fda
Arg [155] : 412ba7910000000000000000000000006cb4dd53adb878858767a4666f2e4ee7
Arg [156] : cdf9d5cb0000000000000000000000000a3ba1da9d6203d28a208952323f44b9
Arg [157] : 29fda3a80000000000000000000000008efe37febecdae467ac83549464e37f7
Arg [158] : e25fd74b000000000000000000000000de0d970b653d352391c3a4cce0e70bd1
Arg [159] : 938546ba000000000000000000000000df43648a9748901a784c017821b05ba2
Arg [160] : 6274898c0000000000000000000000009999d29a1df911aa8bf4b0bf81eabb65
Arg [161] : dda05299000000000000000000000000111b35d671c7d8e80cc5cb01ec426796
Arg [162] : 5fbd648d00000000000000000000000081e955e967213fdf2476a451d97ac8cc
Arg [163] : c3399a98000000000000000000000000a7273df94c37e7c024761a13e1575104
Arg [164] : eeda1714000000000000000000000000c967d362468c0683cbbc29ca05fc0869
Arg [165] : 9674f403000000000000000000000000085d1113afdcd9709e3e9506e5a0e142
Arg [166] : c3d2e1dc000000000000000000000000d73b65cec8c2c1697db90dbb5a321bc7
Arg [167] : 741a640b000000000000000000000000869dbca06bc1d1f6b0f67abe9e7e4ee5
Arg [168] : 5cc2c57c000000000000000000000000ca1f8bcfb1edf02d2701923a20d395ec
Arg [169] : 4dbda60b000000000000000000000000af106234f2dfed3c1265c02c1702a9fe
Arg [170] : f8a80cc5000000000000000000000000dd39170089c49538a2b08827fa95413f
Arg [171] : 8428bdfc0000000000000000000000006f845d7fbdb121607f7f317e381b8081
Arg [172] : 99d5db8d0000000000000000000000007b56cac281a096bb42a48f807a4db75e
Arg [173] : 6b9686a7000000000000000000000000a7afbed971071011459cfc4781cb9ddd
Arg [174] : 7068fa040000000000000000000000008e11f754808929ee8cb7def770fc6979
Arg [175] : f74999af0000000000000000000000009db5e882011f89c338c63f59ad330e30
Arg [176] : dcf11787000000000000000000000000d34ea40ea7f07dbc5a7357a848d9a78b
Arg [177] : 986648a60000000000000000000000001084c027162ac971d4c2b26ec4168ec5
Arg [178] : c19b7f5500000000000000000000000067c14e9f4f2aade77da35bf24e36bd76
Arg [179] : de21060d0000000000000000000000009b4b0e8262725b7f896dd7dd97152cdd
Arg [180] : 18d97495000000000000000000000000de3f6d974e58f17a9fbe898beaf14220
Arg [181] : 0af599e700000000000000000000000000000000000000000000000000000000
Arg [182] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [183] : 000000000000000000000000f3cb1e06e72233e0350f7588d11a2585b268c7ad
Arg [184] : 000000000000000000000000b017dccc473499c83f1b553be564f3ceaf002254
Arg [185] : 000000000000000000000000e620e1f969bc3a24ac96d527220ad6b6e2d12843
Arg [186] : 000000000000000000000000e8d204d3b12e643888debd525e2f8034fc7eb855
Arg [187] : 000000000000000000000000fe231e979dae1d87cd961aa353221c0c754941d8
Arg [188] : 00000000000000000000000059c66c7e3d3f239961c87a4627f86a5a9049407c
Arg [189] : 000000000000000000000000a5e32d3fb342d9ed3135fd5cb59a102ac8ed7b85
Loading...
Loading
Loading...
Loading
Net Worth in USD
$32.18
Net Worth in ETH
0.016203
Token Allocations
USDT
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.999995 | 32.1768 | $32.18 |
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.