More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 264 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Tokens ... | 13772753 | 1049 days ago | IN | 0 ETH | 0.00885143 | ||||
Transfer Tokens ... | 13766188 | 1050 days ago | IN | 0 ETH | 0.00387 | ||||
Transfer Tokens ... | 13764751 | 1050 days ago | IN | 0 ETH | 0.00917211 | ||||
Transfer Tokens ... | 13754033 | 1052 days ago | IN | 0 ETH | 0.00465747 | ||||
Transfer Tokens ... | 13753286 | 1052 days ago | IN | 0 ETH | 0.0071472 | ||||
Transfer Tokens ... | 13752225 | 1052 days ago | IN | 0 ETH | 0.01076969 | ||||
Transfer Tokens ... | 13679419 | 1064 days ago | IN | 0 ETH | 0.007672 | ||||
Transfer Tokens ... | 13679348 | 1064 days ago | IN | 0 ETH | 0.00882523 | ||||
Transfer Tokens ... | 13679342 | 1064 days ago | IN | 0 ETH | 0.01671929 | ||||
Transfer Tokens ... | 13621233 | 1073 days ago | IN | 0 ETH | 0.01056646 | ||||
Transfer Tokens ... | 13621232 | 1073 days ago | IN | 0 ETH | 0.01056461 | ||||
Transfer Tokens ... | 13620575 | 1073 days ago | IN | 0 ETH | 0.00472338 | ||||
Transfer Tokens ... | 13620399 | 1073 days ago | IN | 0 ETH | 0.0159873 | ||||
Transfer Tokens ... | 13620165 | 1073 days ago | IN | 0 ETH | 0.00344053 | ||||
Transfer Tokens ... | 13603583 | 1076 days ago | IN | 0 ETH | 0.01716862 | ||||
Transfer Tokens ... | 13588449 | 1078 days ago | IN | 0 ETH | 0.01056646 | ||||
Transfer Tokens ... | 13583195 | 1079 days ago | IN | 0 ETH | 0.00752023 | ||||
Transfer Tokens ... | 13582373 | 1079 days ago | IN | 0 ETH | 0.01884674 | ||||
Transfer Tokens ... | 13495319 | 1093 days ago | IN | 0 ETH | 0.0107378 | ||||
Transfer Tokens ... | 13487765 | 1094 days ago | IN | 0 ETH | 0.00535794 | ||||
Transfer Tokens ... | 13487294 | 1094 days ago | IN | 0 ETH | 0.0116944 | ||||
Transfer Tokens ... | 13444622 | 1101 days ago | IN | 0 ETH | 0.00885298 | ||||
Transfer Tokens ... | 13443401 | 1101 days ago | IN | 0 ETH | 0.00545016 | ||||
Transfer Tokens ... | 13442721 | 1101 days ago | IN | 0 ETH | 0.00984991 | ||||
Transfer Tokens ... | 13410197 | 1106 days ago | IN | 0 ETH | 0.01097338 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenHolder
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-13 */ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.4.26; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.4.26; // Interface declarations /* solhint-disable func-order */ interface IERC20 { // Emitted when the allowance of a spender for an owner is set by a call to approve. // Value is the new allowance event Approval(address indexed owner, address indexed spender, uint value); // Emitted when value tokens are moved from one account (from) to another (to). // Note that value may be zero event Transfer(address indexed from, address indexed to, uint value); // Returns the amount of tokens in existence function totalSupply() external view returns (uint); // Returns the amount of tokens owned by account function balanceOf(address account) external view returns (uint); // Returns the remaining number of tokens that spender will be allowed to spend on behalf of owner // through transferFrom. This is zero by default // This value changes when approve or transferFrom are called function allowance(address owner, address spender) external view returns (uint); // Sets amount as the allowance of spender over the caller’s tokens // Returns a boolean value indicating whether the operation succeeded // Emits an Approval event. function approve(address spender, uint amount) external returns (bool); // Moves amount tokens from the caller’s account to recipient // Returns a boolean value indicating whether the operation succeeded // Emits a Transfer event. function transfer(address recipient, uint amount) external returns (bool); // Moves amount tokens from sender to recipient using the allowance mechanism // Amount is then deducted from the caller’s allowance // Returns a boolean value indicating whether the operation succeeded // Emits a Transfer event function transferFrom(address sender, address recipient, uint amount) external returns (bool); } // Copyright (C) 2017 MixBytes, LLC // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND (express or implied). // Code taken from https://github.com/ethereum/dapp-bin/blob/master/wallet/wallet.sol // Audit, refactoring and improvements by github.com/Eenae // @authors: // Gav Wood <[email protected]> // inheritable "property" contract that enables methods to be protected by requiring the acquiescence of either a // single, or, crucially, each of a number of, designated owners. // usage: // use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by // some number (specified in constructor) of the set of owners (specified in the constructor, modifiable) before the // interior is executed. pragma solidity ^0.4.26; /// note: during any ownership changes all pending operations (waiting for more signatures) are cancelled // TODO acceptOwnership contract multiowned { // TYPES // struct for the status of a pending operation. struct MultiOwnedOperationPendingState { // count of confirmations needed uint yetNeeded; // bitmap of confirmations where owner #ownerIndex's decision corresponds to 2**ownerIndex bit uint ownersDone; // position of this operation key in m_multiOwnedPendingIndex uint index; } // EVENTS event Confirmation(address owner, bytes32 operation); event Revoke(address owner, bytes32 operation); event FinalConfirmation(address owner, bytes32 operation); event Op(bytes32 operation); // some others are in the case of an owner changing. event OwnerChanged(address oldOwner, address newOwner); event OwnerAdded(address newOwner); event OwnerRemoved(address oldOwner); // the last one is emitted if the required signatures change event RequirementChanged(uint newRequirement); // MODIFIERS // simple single-sig function modifier. modifier onlyowner { require(isOwner(msg.sender)); _; } // multi-sig function modifier: the operation must have an intrinsic hash in order // that later attempts can be realised as the same underlying operation and // thus count as confirmations. modifier onlymanyowners(bytes32 _operation) { if (confirmAndCheck(_operation)) { _; } // Even if required number of confirmations has't been collected yet, // we can't throw here - because changes to the state have to be preserved. // But, confirmAndCheck itself will throw in case sender is not an owner. } modifier onlyallowners(bytes32 _operation) { if (confirmAndCheckForAll(_operation)) { _; } } modifier onlyalmostallowners(bytes32 _operation) { if (confirmAndCheckForAlmostAll(_operation)) { _; } } modifier validNumOwners(uint _numOwners) { require(_numOwners > 0 && _numOwners <= c_maxOwners); _; } modifier multiOwnedValidRequirement(uint _required, uint _numOwners) { require(_required > 0 && _required <= _numOwners); _; } modifier ownerExists(address _address) { require(isOwner(_address)); _; } modifier ownerDoesNotExist(address _address) { require(!isOwner(_address)); _; } modifier multiOwnedOperationIsActive(bytes32 _operation) { require(isOperationActive(_operation)); _; } // METHODS // constructor is given number of sigs required to do protected "onlymanyowners" transactions // as well as the selection of addresses capable of confirming them (msg.sender is not added to the owners!). constructor(address[] _owners, uint _required) public validNumOwners(_owners.length) multiOwnedValidRequirement(_required, _owners.length) { assert(c_maxOwners <= 255); require(_owners.length == 6, "Gath3r: Number of total multisig owners must be equal to 6"); require(_required == 3, "Gath3r: Number of required multisig owners must be equal to 3"); m_numOwners = _owners.length; m_multiOwnedRequired = _required; for (uint i = 0; i < _owners.length; ++i) { address owner = _owners[i]; // invalid and duplicate addresses are not allowed require(0 != owner && !isOwner(owner) /* not isOwner yet! */); uint currentOwnerIndex = checkOwnerIndex(i + 1 /* first slot is unused */); m_owners[currentOwnerIndex] = owner; m_ownerIndex[owner] = currentOwnerIndex; } assertOwnersAreConsistent(); } /// @notice replaces an owner `_from` with another `_to`. /// @param _from address of owner to replace /// @param _to address of new owner // All pending operations will be canceled! function changeOwner(address _from, address _to) external ownerExists(_from) ownerDoesNotExist(_to) onlyalmostallowners(keccak256(msg.data)) { assertOwnersAreConsistent(); clearPending(); uint ownerIndex = checkOwnerIndex(m_ownerIndex[_from]); m_owners[ownerIndex] = _to; m_ownerIndex[_from] = 0; m_ownerIndex[_to] = ownerIndex; assertOwnersAreConsistent(); emit OwnerChanged(_from, _to); } /// @notice adds an owner /// @param _owner address of new owner // All pending operations will be canceled! function addOwner(address _owner) external ownerDoesNotExist(_owner) validNumOwners(m_numOwners + 1) onlyalmostallowners(keccak256(msg.data)) { assertOwnersAreConsistent(); clearPending(); m_numOwners++; m_owners[m_numOwners] = _owner; m_ownerIndex[_owner] = checkOwnerIndex(m_numOwners); assertOwnersAreConsistent(); OwnerAdded(_owner); } /// @notice removes an owner /// @param _owner address of owner to remove // All pending operations will be canceled! function removeOwner(address _owner) external ownerExists(_owner) validNumOwners(m_numOwners - 1) multiOwnedValidRequirement(m_multiOwnedRequired, m_numOwners - 1) onlyalmostallowners(keccak256(msg.data)) { assertOwnersAreConsistent(); clearPending(); uint ownerIndex = checkOwnerIndex(m_ownerIndex[_owner]); m_owners[ownerIndex] = 0; m_ownerIndex[_owner] = 0; //make sure m_numOwners is equal to the number of owners and always points to the last owner reorganizeOwners(); assertOwnersAreConsistent(); OwnerRemoved(_owner); } /// @notice changes the required number of owner signatures /// @param _newRequired new number of signatures required // All pending operations will be canceled! function changeRequirement(uint _newRequired) external multiOwnedValidRequirement(_newRequired, m_numOwners) onlymanyowners(keccak256(msg.data)) { m_multiOwnedRequired = _newRequired; clearPending(); RequirementChanged(_newRequired); } /// @notice Gets an owner by 0-indexed position /// @param ownerIndex 0-indexed owner position function getOwner(uint ownerIndex) public view returns (address) { return m_owners[ownerIndex + 1]; } /// @notice Gets owners /// @return memory array of owners function getOwners() public view returns (address[]) { address[] memory result = new address[](m_numOwners); for (uint i = 0; i < m_numOwners; i++) result[i] = getOwner(i); return result; } /// @notice checks if provided address is an owner address /// @param _addr address to check /// @return true if it's an owner function isOwner(address _addr) public view returns (bool) { return m_ownerIndex[_addr] > 0; } /// @notice Tests ownership of the current caller. /// @return true if it's an owner // It's advisable to call it by new owner to make sure that the same erroneous address is not copy-pasted to // addOwner/changeOwner and to isOwner. function amIOwner() external view onlyowner returns (bool) { return true; } /// @notice Revokes a prior confirmation of the given operation /// @param _operation operation value, typically keccak256(msg.data) function revoke(bytes32 _operation) external multiOwnedOperationIsActive(_operation) onlyowner { uint ownerIndexBit = makeOwnerBitmapBit(msg.sender); MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; require(pending.ownersDone & ownerIndexBit > 0); assertOperationIsConsistent(_operation); pending.yetNeeded++; pending.ownersDone -= ownerIndexBit; assertOperationIsConsistent(_operation); Revoke(msg.sender, _operation); } /// @notice Checks if owner confirmed given operation /// @param _operation operation value, typically keccak256(msg.data) /// @param _owner an owner address function hasConfirmed(bytes32 _operation, address _owner) external view multiOwnedOperationIsActive(_operation) ownerExists(_owner) returns (bool) { return !(m_multiOwnedPending[_operation].ownersDone & makeOwnerBitmapBit(_owner) == 0); } // INTERNAL METHODS function confirmAndCheck(bytes32 _operation) private onlyowner returns (bool) { if (512 == m_multiOwnedPendingIndex.length) // In case m_multiOwnedPendingIndex grows too much we have to shrink it: otherwise at some point // we won't be able to do it because of block gas limit. // Yes, pending confirmations will be lost. Dont see any security or stability implications. // TODO use more graceful approach like compact or removal of clearPending completely clearPending(); MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; // if we're not yet working on this operation, switch over and reset the confirmation status. if (! isOperationActive(_operation)) { // reset count of confirmations needed. pending.yetNeeded = m_multiOwnedRequired; // reset which owners have confirmed (none) - set our bitmap to 0. pending.ownersDone = 0; pending.index = m_multiOwnedPendingIndex.length++; m_multiOwnedPendingIndex[pending.index] = _operation; assertOperationIsConsistent(_operation); } // determine the bit to set for this owner. uint ownerIndexBit = makeOwnerBitmapBit(msg.sender); // make sure we (the message sender) haven't confirmed this operation previously. if (pending.ownersDone & ownerIndexBit == 0) { // ok - check if count is enough to go ahead. assert(pending.yetNeeded > 0); if (pending.yetNeeded == 1) { // enough confirmations: reset and run interior. delete m_multiOwnedPendingIndex[m_multiOwnedPending[_operation].index]; delete m_multiOwnedPending[_operation]; FinalConfirmation(msg.sender, _operation); return true; } else { // not enough: record that this owner in particular confirmed. pending.yetNeeded--; pending.ownersDone |= ownerIndexBit; assertOperationIsConsistent(_operation); Confirmation(msg.sender, _operation); } } } function confirmAndCheckForAll(bytes32 _operation) private onlyowner returns (bool) { if (512 == m_multiOwnedPendingIndex.length) // In case m_multiOwnedPendingIndex grows too much we have to shrink it: otherwise at some point // we won't be able to do it because of block gas limit. // Yes, pending confirmations will be lost. Dont see any security or stability implications. // TODO use more graceful approach like compact or removal of clearPending completely clearPending(); MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; // if we're not yet working on this operation, switch over and reset the confirmation status. if (! isOperationActive(_operation)) { // reset count of confirmations needed. pending.yetNeeded = m_numOwners; // reset which owners have confirmed (none) - set our bitmap to 0. pending.ownersDone = 0; pending.index = m_multiOwnedPendingIndex.length++; m_multiOwnedPendingIndex[pending.index] = _operation; assertOperationIsConsistentForAll(_operation); } // determine the bit to set for this owner. uint ownerIndexBit = makeOwnerBitmapBit(msg.sender); // make sure we (the message sender) haven't confirmed this operation previously. if (pending.ownersDone & ownerIndexBit == 0) { // ok - check if count is enough to go ahead. assert(pending.yetNeeded > 0); if (pending.yetNeeded == 1) { // enough confirmations: reset and run interior. delete m_multiOwnedPendingIndex[m_multiOwnedPending[_operation].index]; delete m_multiOwnedPending[_operation]; FinalConfirmation(msg.sender, _operation); return true; } else { // not enough: record that this owner in particular confirmed. pending.yetNeeded--; pending.ownersDone |= ownerIndexBit; assertOperationIsConsistentForAll(_operation); Confirmation(msg.sender, _operation); } } } function confirmAndCheckForAlmostAll(bytes32 _operation) private onlyowner returns (bool) { if (512 == m_multiOwnedPendingIndex.length) // In case m_multiOwnedPendingIndex grows too much we have to shrink it: otherwise at some point // we won't be able to do it because of block gas limit. // Yes, pending confirmations will be lost. Dont see any security or stability implications. // TODO use more graceful approach like compact or removal of clearPending completely clearPending(); MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; // if we're not yet working on this operation, switch over and reset the confirmation status. if (! isOperationActive(_operation)) { // reset count of confirmations needed. pending.yetNeeded = m_numOwners - 1; // reset which owners have confirmed (none) - set our bitmap to 0. pending.ownersDone = 0; pending.index = m_multiOwnedPendingIndex.length++; m_multiOwnedPendingIndex[pending.index] = _operation; assertOperationIsConsistentForAlmostAll(_operation); } // determine the bit to set for this owner. uint ownerIndexBit = makeOwnerBitmapBit(msg.sender); // make sure we (the message sender) haven't confirmed this operation previously. if (pending.ownersDone & ownerIndexBit == 0) { // ok - check if count is enough to go ahead. assert(pending.yetNeeded > 0); if (pending.yetNeeded == 1) { // enough confirmations: reset and run interior. delete m_multiOwnedPendingIndex[m_multiOwnedPending[_operation].index]; delete m_multiOwnedPending[_operation]; FinalConfirmation(msg.sender, _operation); return true; } else { // not enough: record that this owner in particular confirmed. pending.yetNeeded--; pending.ownersDone |= ownerIndexBit; assertOperationIsConsistentForAlmostAll(_operation); Confirmation(msg.sender, _operation); } } } // Reclaims free slots between valid owners in m_owners. // TODO given that its called after each removal, it could be simplified. function reorganizeOwners() private { uint free = 1; while (free < m_numOwners) { // iterating to the first free slot from the beginning while (free < m_numOwners && m_owners[free] != 0) free++; // iterating to the first occupied slot from the end while (m_numOwners > 1 && m_owners[m_numOwners] == 0) m_numOwners--; // swap, if possible, so free slot is located at the end after the swap if (free < m_numOwners && m_owners[m_numOwners] != 0 && m_owners[free] == 0) { // owners between swapped slots should't be renumbered - that saves a lot of gas m_owners[free] = m_owners[m_numOwners]; m_ownerIndex[m_owners[free]] = free; m_owners[m_numOwners] = 0; } } } function clearPending() private onlyowner { uint length = m_multiOwnedPendingIndex.length; // TODO block gas limit for (uint i = 0; i < length; ++i) { if (m_multiOwnedPendingIndex[i] != 0) delete m_multiOwnedPending[m_multiOwnedPendingIndex[i]]; } delete m_multiOwnedPendingIndex; } function checkOwnerIndex(uint ownerIndex) private pure returns (uint) { assert(0 != ownerIndex && ownerIndex <= c_maxOwners); return ownerIndex; } function makeOwnerBitmapBit(address owner) private view returns (uint) { uint ownerIndex = checkOwnerIndex(m_ownerIndex[owner]); return 2 ** ownerIndex; } function isOperationActive(bytes32 _operation) private view returns (bool) { return 0 != m_multiOwnedPending[_operation].yetNeeded; } function assertOwnersAreConsistent() private view { assert(m_numOwners > 0); assert(m_numOwners <= c_maxOwners); assert(m_owners[0] == 0); assert(0 != m_multiOwnedRequired && m_multiOwnedRequired <= m_numOwners); } function assertOperationIsConsistent(bytes32 _operation) private view { MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; assert(0 != pending.yetNeeded); assert(m_multiOwnedPendingIndex[pending.index] == _operation); assert(pending.yetNeeded <= m_multiOwnedRequired); } function assertOperationIsConsistentForAll(bytes32 _operation) private view { MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; assert(0 != pending.yetNeeded); assert(m_multiOwnedPendingIndex[pending.index] == _operation); assert(pending.yetNeeded <= m_numOwners); } function assertOperationIsConsistentForAlmostAll(bytes32 _operation) private view { MultiOwnedOperationPendingState pending = m_multiOwnedPending[_operation]; assert(0 != pending.yetNeeded); assert(m_multiOwnedPendingIndex[pending.index] == _operation); assert(pending.yetNeeded <= m_numOwners - 1); } // FIELDS uint constant c_maxOwners = 250; // the number of owners that must confirm the same operation before it is run. uint256 public m_multiOwnedRequired; // pointer used to find a free slot in m_owners uint public m_numOwners; // list of owners (addresses), // slot 0 is unused so there are no owner which index is 0. // TODO could we save space at the end of the array for the common case of <10 owners? and should we? address[256] internal m_owners; // index on the list of owners to allow reverse lookup: owner address => index in m_owners mapping(address => uint) internal m_ownerIndex; // the ongoing operations. mapping(bytes32 => MultiOwnedOperationPendingState) internal m_multiOwnedPending; bytes32[] internal m_multiOwnedPendingIndex; } // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.4.26; contract TokenHolder is multiowned { using SafeMath for uint256; IERC20 public token; event Transferred(address to, uint256 amount); constructor (address[] _owners, uint _required, address _token) multiowned(_owners, _required) public { token = IERC20(_token); } function transferTokensTo(address _address, uint256 _amount) external onlymanyowners(keccak256(msg.data)) { token.transfer(_address, _amount); emit Transferred(_address, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferTokensTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_numOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amIOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_multiOwnedRequired","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRequired","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ownerIndex","type":"uint256"}],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"FinalConfirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Op","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newRequirement","type":"uint256"}],"name":"RequirementChanged","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620020523803806200205283398101806040528101908080518201929190602001805190602001909291908051906020019092919050505082826000806000845160008111801562000068575060fa8111155b15156200007457600080fd5b848651600082118015620000885750808211155b15156200009457600080fd5b60ff60fa11151515620000a357fe5b6006885114151562000143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001807f4761746833723a204e756d626572206f6620746f74616c206d756c746973696781526020017f206f776e657273206d75737420626520657175616c20746f203600000000000081525060400191505060405180910390fd5b600387141515620001e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f4761746833723a204e756d626572206f66207265717569726564206d756c746981526020017f736967206f776e657273206d75737420626520657175616c20746f203300000081525060400191505060405180910390fd5b875160018190555086600081905550600095505b8751861015620003275787868151811015156200020f57fe5b9060200190602002015194508473ffffffffffffffffffffffffffffffffffffffff166000141580156200025a5750620002588562000393640100000000026401000000009004565b155b15156200026657600080fd5b6200028360018701620003df640100000000026401000000009004565b935084600285610100811015156200029757fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508361010260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550856001019550620001f6565b6200034062000405640100000000026401000000009004565b50505050505050508061010560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200049d565b60008061010260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b600081600014158015620003f4575060fa8211155b1515620003fd57fe5b819050919050565b60006001541115156200041457fe5b60fa600154111515156200042457fe5b600060026000610100811015156200043857fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156200047a57fe5b60005460001415801562000492575060015460005411155b15156200049b57fe5b565b611ba580620004ad6000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063173825d9146100d55780632be8c2a5146101185780632f54bf6e146101655780634123cb6b146101c05780634e4ab830146101eb5780637065cb481461021a578063787d64e41461025d578063a0e67e2b14610288578063b75c7dc6146102f4578063ba51a6df14610325578063c2cf732614610352578063c41a360a146103bb578063f00d4b5d14610428578063fc0c546a1461048b575b600080fd5b3480156100e157600080fd5b50610116600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e2565b005b34801561012457600080fd5b50610163600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106d8565b005b34801561017157600080fd5b506101a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610877565b604051808215151515815260200191505060405180910390f35b3480156101cc57600080fd5b506101d56108c3565b6040518082815260200191505060405180910390f35b3480156101f757600080fd5b506102006108c9565b604051808215151515815260200191505060405180910390f35b34801561022657600080fd5b5061025b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e6565b005b34801561026957600080fd5b50610272610a7e565b6040518082815260200191505060405180910390f35b34801561029457600080fd5b5061029d610a84565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102e05780820151818401526020810190506102c5565b505050509050019250505060405180910390f35b34801561030057600080fd5b506103236004803603810190808035600019169060200190929190505050610b34565b005b34801561033157600080fd5b5061035060048036038101908080359060200190929190505050610c4f565b005b34801561035e57600080fd5b506103a16004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce7565b604051808215151515815260200191505060405180910390f35b3480156103c757600080fd5b506103e660048036038101908080359060200190929190505050610d4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043457600080fd5b50610489600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d89565b005b34801561049757600080fd5b506104a0610fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000816104ee81610877565b15156104f957600080fd5b600180540360008111801561050f575060fa8111155b151561051a57600080fd5b60005460018054036000821180156105325750808211155b151561053d57600080fd5b60003660405180838380828437820191505092505050604051809103902061056481610fe7565b156106cf5761057161127e565b610579611310565b6105c261010260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b95506000600287610100811015156105d657fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061010260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106636113fc565b61066b61127e565b7f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da87604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b50505050505050565b6000366040518083838082843782019150509250505060405180910390206106ff816116f9565b156108725761010560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d60208110156107f457600080fd5b8101908080519060200190929190505050507fe6d858f14d755446648a6e0c8ab8b5a0f58ccc7920d4c910b0454e4dcd869af08383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b60008061010260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60015481565b60006108d433610877565b15156108df57600080fd5b6001905090565b806108f081610877565b1515156108fc57600080fd5b6001805401600081118015610912575060fa8111155b151561091d57600080fd5b60003660405180838380828437820191505092505050604051809103902061094481610fe7565b15610a785761095161127e565b610959611310565b6001600081548092919060010191905055508360026001546101008110151561097e57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109c86001546113d8565b61010260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1461127e565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c384604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b50505050565b60005481565b6060806000600154604051908082528060200260200182016040528015610aba5781602001602082028038833980820191505090505b509150600090505b600154811015610b2c57610ad581610d4b565b8282815181101515610ae357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ac2565b819250505090565b60008082610b418161198e565b1515610b4c57600080fd5b610b5533610877565b1515610b6057600080fd5b610b69336119bb565b9250610103600085600019166000191681526020019081526020016000209150600083836001015416111515610b9e57600080fd5b610ba784611a15565b8160000160008154809291906001019190505550828260010160008282540392505081905550610bd684611a15565b7fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a150505050565b80600154600082118015610c635750808211155b1515610c6e57600080fd5b600036604051808383808284378201915050925050506040518091039020610c95816116f9565b15610ce15783600081905550610ca9611310565b7facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da846040518082815260200191505060405180910390a15b50505050565b600082610cf38161198e565b1515610cfe57600080fd5b82610d0881610877565b1515610d1357600080fd5b6000610d1e856119bb565b61010360008860001916600019168152602001908152602001600020600101541614159250505092915050565b600060026001830161010081101515610d6057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600082610d9581610877565b1515610da057600080fd5b82610daa81610877565b151515610db657600080fd5b600036604051808383808284378201915050925050506040518091039020610ddd81610fe7565b15610fb857610dea61127e565b610df2611310565b610e3b61010260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b93508460028561010081101515610e4e57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061010260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508361010260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f2061127e565b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8686604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b505050505050565b61010560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000610ff533610877565b151561100057600080fd5b61010480549050610200141561101957611018611310565b5b6101036000856000191660001916815260200190815260200160002091506110408461198e565b15156110ab57600180540382600001819055506000826001018190555061010480548091906001016110729190611b07565b826002018190555083610104836002015481548110151561108f57fe5b9060005260206000200181600019169055506110aa84611a8d565b5b6110b4336119bb565b9050600081836001015416141561127657600082600001541115156110d557fe5b6001826000015414156111d257610104610103600086600019166000191681526020019081526020016000206002015481548110151561111157fe5b9060005260206000200160009055610103600085600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550507f367569357efc39b74a025c4ba1d64068b2b574e3b0d081c48d42f7feeca4cd163385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a160019250611277565b81600001600081548092919060019003919050555080826001016000828254179250508190555061120284611a8d565b7fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050919050565b600060015411151561128c57fe5b60fa6001541115151561129b57fe5b600060026000610100811015156112ae57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112ef57fe5b600054600014158015611306575060015460005411155b151561130e57fe5b565b60008061131c33610877565b151561132757600080fd5b610104805490509150600090505b818110156113c55760006001026101048281548110151561135257fe5b9060005260206000200154600019161415156113ba5761010360006101048381548110151561137d57fe5b9060005260206000200154600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550505b806001019050611335565b61010460006113d49190611b33565b5050565b6000816000141580156113ec575060fa8211155b15156113f457fe5b819050919050565b6000600190505b6001548110156116f6575b60015481108015611467575060006002826101008110151561142c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561147957808060010191505061140e565b5b600180541180156114d45750600060026001546101008110151561149a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156114f1576001600081548092919060019003919050555061147a565b6001548110801561154c5750600060026001546101008110151561151157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060006002826101008110151561156557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156116f1576002600154610100811015156115b657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282610100811015156115e857fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508061010260006002846101008110151561163d57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006002600154610100811015156116b157fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611403565b50565b600080600061170733610877565b151561171257600080fd5b61010480549050610200141561172b5761172a611310565b5b6101036000856000191660001916815260200190815260200160002091506117528461198e565b15156117bb5760005482600001819055506000826001018190555061010480548091906001016117829190611b07565b826002018190555083610104836002015481548110151561179f57fe5b9060005260206000200181600019169055506117ba84611a15565b5b6117c4336119bb565b9050600081836001015416141561198657600082600001541115156117e557fe5b6001826000015414156118e257610104610103600086600019166000191681526020019081526020016000206002015481548110151561182157fe5b9060005260206000200160009055610103600085600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550507f367569357efc39b74a025c4ba1d64068b2b574e3b0d081c48d42f7feeca4cd163385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a160019250611987565b81600001600081548092919060019003919050555080826001016000828254179250508190555061191284611a15565b7fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050919050565b60006101036000836000191660001916815260200190815260200160002060000154600014159050919050565b600080611a0761010260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b90508060020a915050919050565b60006101036000836000191660001916815260200190815260200160002090508060000154600014151515611a4657fe5b81600019166101048260020154815481101515611a5f57fe5b906000526020600020015460001916141515611a7757fe5b600054816000015411151515611a8957fe5b5050565b60006101036000836000191660001916815260200190815260200160002090508060000154600014151515611abe57fe5b81600019166101048260020154815481101515611ad757fe5b906000526020600020015460001916141515611aef57fe5b6001805403816000015411151515611b0357fe5b5050565b815481835581811115611b2e57818360005260206000209182019101611b2d9190611b54565b5b505050565b5080546000825590600052602060002090810190611b519190611b54565b50565b611b7691905b80821115611b72576000816000905550600101611b5a565b5090565b905600a165627a7a723058208a108d8b24e8af724823f69b6bf3b9acd1ef54dea802a224a8becfe74592a484002900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000c3771d47e2ab5a519e2917e61e23078d0c05ed7f0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000fa9d5f6d0a4823a87f37f9a3216d80e34cbb75ab00000000000000000000000050ec98ffd7fc601240679462b5a9cd490879587a0000000000000000000000004f959d80040bc1c5a799521eebc450b3b3b95ed4000000000000000000000000fd5b2eaeb9792c21674c723b0091336a1db39b6d000000000000000000000000b179210b997b60c4c2a2cd64ba417e95a3e33faa0000000000000000000000001b5c5d240447f7792186404233a13b8623c61cbf
Deployed Bytecode
0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063173825d9146100d55780632be8c2a5146101185780632f54bf6e146101655780634123cb6b146101c05780634e4ab830146101eb5780637065cb481461021a578063787d64e41461025d578063a0e67e2b14610288578063b75c7dc6146102f4578063ba51a6df14610325578063c2cf732614610352578063c41a360a146103bb578063f00d4b5d14610428578063fc0c546a1461048b575b600080fd5b3480156100e157600080fd5b50610116600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e2565b005b34801561012457600080fd5b50610163600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106d8565b005b34801561017157600080fd5b506101a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610877565b604051808215151515815260200191505060405180910390f35b3480156101cc57600080fd5b506101d56108c3565b6040518082815260200191505060405180910390f35b3480156101f757600080fd5b506102006108c9565b604051808215151515815260200191505060405180910390f35b34801561022657600080fd5b5061025b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e6565b005b34801561026957600080fd5b50610272610a7e565b6040518082815260200191505060405180910390f35b34801561029457600080fd5b5061029d610a84565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102e05780820151818401526020810190506102c5565b505050509050019250505060405180910390f35b34801561030057600080fd5b506103236004803603810190808035600019169060200190929190505050610b34565b005b34801561033157600080fd5b5061035060048036038101908080359060200190929190505050610c4f565b005b34801561035e57600080fd5b506103a16004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce7565b604051808215151515815260200191505060405180910390f35b3480156103c757600080fd5b506103e660048036038101908080359060200190929190505050610d4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043457600080fd5b50610489600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d89565b005b34801561049757600080fd5b506104a0610fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000816104ee81610877565b15156104f957600080fd5b600180540360008111801561050f575060fa8111155b151561051a57600080fd5b60005460018054036000821180156105325750808211155b151561053d57600080fd5b60003660405180838380828437820191505092505050604051809103902061056481610fe7565b156106cf5761057161127e565b610579611310565b6105c261010260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b95506000600287610100811015156105d657fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061010260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106636113fc565b61066b61127e565b7f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da87604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b50505050505050565b6000366040518083838082843782019150509250505060405180910390206106ff816116f9565b156108725761010560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d60208110156107f457600080fd5b8101908080519060200190929190505050507fe6d858f14d755446648a6e0c8ab8b5a0f58ccc7920d4c910b0454e4dcd869af08383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b60008061010260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60015481565b60006108d433610877565b15156108df57600080fd5b6001905090565b806108f081610877565b1515156108fc57600080fd5b6001805401600081118015610912575060fa8111155b151561091d57600080fd5b60003660405180838380828437820191505092505050604051809103902061094481610fe7565b15610a785761095161127e565b610959611310565b6001600081548092919060010191905055508360026001546101008110151561097e57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109c86001546113d8565b61010260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1461127e565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c384604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b50505050565b60005481565b6060806000600154604051908082528060200260200182016040528015610aba5781602001602082028038833980820191505090505b509150600090505b600154811015610b2c57610ad581610d4b565b8282815181101515610ae357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ac2565b819250505090565b60008082610b418161198e565b1515610b4c57600080fd5b610b5533610877565b1515610b6057600080fd5b610b69336119bb565b9250610103600085600019166000191681526020019081526020016000209150600083836001015416111515610b9e57600080fd5b610ba784611a15565b8160000160008154809291906001019190505550828260010160008282540392505081905550610bd684611a15565b7fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a150505050565b80600154600082118015610c635750808211155b1515610c6e57600080fd5b600036604051808383808284378201915050925050506040518091039020610c95816116f9565b15610ce15783600081905550610ca9611310565b7facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da846040518082815260200191505060405180910390a15b50505050565b600082610cf38161198e565b1515610cfe57600080fd5b82610d0881610877565b1515610d1357600080fd5b6000610d1e856119bb565b61010360008860001916600019168152602001908152602001600020600101541614159250505092915050565b600060026001830161010081101515610d6057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600082610d9581610877565b1515610da057600080fd5b82610daa81610877565b151515610db657600080fd5b600036604051808383808284378201915050925050506040518091039020610ddd81610fe7565b15610fb857610dea61127e565b610df2611310565b610e3b61010260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b93508460028561010081101515610e4e57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061010260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508361010260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f2061127e565b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8686604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b505050505050565b61010560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000610ff533610877565b151561100057600080fd5b61010480549050610200141561101957611018611310565b5b6101036000856000191660001916815260200190815260200160002091506110408461198e565b15156110ab57600180540382600001819055506000826001018190555061010480548091906001016110729190611b07565b826002018190555083610104836002015481548110151561108f57fe5b9060005260206000200181600019169055506110aa84611a8d565b5b6110b4336119bb565b9050600081836001015416141561127657600082600001541115156110d557fe5b6001826000015414156111d257610104610103600086600019166000191681526020019081526020016000206002015481548110151561111157fe5b9060005260206000200160009055610103600085600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550507f367569357efc39b74a025c4ba1d64068b2b574e3b0d081c48d42f7feeca4cd163385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a160019250611277565b81600001600081548092919060019003919050555080826001016000828254179250508190555061120284611a8d565b7fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050919050565b600060015411151561128c57fe5b60fa6001541115151561129b57fe5b600060026000610100811015156112ae57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112ef57fe5b600054600014158015611306575060015460005411155b151561130e57fe5b565b60008061131c33610877565b151561132757600080fd5b610104805490509150600090505b818110156113c55760006001026101048281548110151561135257fe5b9060005260206000200154600019161415156113ba5761010360006101048381548110151561137d57fe5b9060005260206000200154600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550505b806001019050611335565b61010460006113d49190611b33565b5050565b6000816000141580156113ec575060fa8211155b15156113f457fe5b819050919050565b6000600190505b6001548110156116f6575b60015481108015611467575060006002826101008110151561142c57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561147957808060010191505061140e565b5b600180541180156114d45750600060026001546101008110151561149a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156114f1576001600081548092919060019003919050555061147a565b6001548110801561154c5750600060026001546101008110151561151157fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060006002826101008110151561156557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156116f1576002600154610100811015156115b657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282610100811015156115e857fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508061010260006002846101008110151561163d57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006002600154610100811015156116b157fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611403565b50565b600080600061170733610877565b151561171257600080fd5b61010480549050610200141561172b5761172a611310565b5b6101036000856000191660001916815260200190815260200160002091506117528461198e565b15156117bb5760005482600001819055506000826001018190555061010480548091906001016117829190611b07565b826002018190555083610104836002015481548110151561179f57fe5b9060005260206000200181600019169055506117ba84611a15565b5b6117c4336119bb565b9050600081836001015416141561198657600082600001541115156117e557fe5b6001826000015414156118e257610104610103600086600019166000191681526020019081526020016000206002015481548110151561182157fe5b9060005260206000200160009055610103600085600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550507f367569357efc39b74a025c4ba1d64068b2b574e3b0d081c48d42f7feeca4cd163385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a160019250611987565b81600001600081548092919060019003919050555080826001016000828254179250508190555061191284611a15565b7fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050919050565b60006101036000836000191660001916815260200190815260200160002060000154600014159050919050565b600080611a0761010260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d8565b90508060020a915050919050565b60006101036000836000191660001916815260200190815260200160002090508060000154600014151515611a4657fe5b81600019166101048260020154815481101515611a5f57fe5b906000526020600020015460001916141515611a7757fe5b600054816000015411151515611a8957fe5b5050565b60006101036000836000191660001916815260200190815260200160002090508060000154600014151515611abe57fe5b81600019166101048260020154815481101515611ad757fe5b906000526020600020015460001916141515611aef57fe5b6001805403816000015411151515611b0357fe5b5050565b815481835581811115611b2e57818360005260206000209182019101611b2d9190611b54565b5b505050565b5080546000825590600052602060002090810190611b519190611b54565b50565b611b7691905b80821115611b72576000816000905550600101611b5a565b5090565b905600a165627a7a723058208a108d8b24e8af724823f69b6bf3b9acd1ef54dea802a224a8becfe74592a4840029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000c3771d47e2ab5a519e2917e61e23078d0c05ed7f0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000fa9d5f6d0a4823a87f37f9a3216d80e34cbb75ab00000000000000000000000050ec98ffd7fc601240679462b5a9cd490879587a0000000000000000000000004f959d80040bc1c5a799521eebc450b3b3b95ed4000000000000000000000000fd5b2eaeb9792c21674c723b0091336a1db39b6d000000000000000000000000b179210b997b60c4c2a2cd64ba417e95a3e33faa0000000000000000000000001b5c5d240447f7792186404233a13b8623c61cbf
-----Decoded View---------------
Arg [0] : _owners (address[]): 0xfa9D5f6d0A4823A87f37F9a3216D80e34cbB75Ab,0x50eC98FFd7fC601240679462B5A9Cd490879587a,0x4F959d80040Bc1C5a799521EeBc450b3B3B95Ed4,0xfd5b2eaeB9792c21674c723b0091336a1Db39B6D,0xb179210B997b60c4C2a2CD64BA417e95A3e33FAA,0x1b5c5D240447F7792186404233a13b8623c61CBf
Arg [1] : _required (uint256): 3
Arg [2] : _token (address): 0xc3771d47E2Ab5A519E2917E61e23078d0C05Ed7f
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [2] : 000000000000000000000000c3771d47e2ab5a519e2917e61e23078d0c05ed7f
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 000000000000000000000000fa9d5f6d0a4823a87f37f9a3216d80e34cbb75ab
Arg [5] : 00000000000000000000000050ec98ffd7fc601240679462b5a9cd490879587a
Arg [6] : 0000000000000000000000004f959d80040bc1c5a799521eebc450b3b3b95ed4
Arg [7] : 000000000000000000000000fd5b2eaeb9792c21674c723b0091336a1db39b6d
Arg [8] : 000000000000000000000000b179210b997b60c4c2a2cd64ba417e95a3e33faa
Arg [9] : 0000000000000000000000001b5c5d240447f7792186404233a13b8623c61cbf
Deployed Bytecode Sourcemap
22732:519:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9348:606;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9348:606:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23042:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23042:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11047:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11047:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22064:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22064:23:0;;;;;;;;;;;;;;;;;;;;;;;11401:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11401:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8803:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8803:412:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21969:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21969:35:0;;;;;;;;;;;;;;;;;;;;;;;10689:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10689:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10689:216:0;;;;;;;;;;;;;;;;;11629:514;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11629:514:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10131:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10131:271:0;;;;;;;;;;;;;;;;;;;;;;;;;;12316:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12316:274:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10509:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10509:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8211:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8211:468:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22809:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22809:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9348:606;9645:15;9416:6;6614:17;6622:8;6614:7;:17::i;:::-;6606:26;;;;;;;;9458:1;9444:11;;:15;6364:1;6351:10;:14;:43;;;;;21877:3;6369:10;:25;;6351:43;6343:52;;;;;;;;9493:20;;9529:1;9515:11;;:15;6511:1;6499:9;:13;:40;;;;;6529:10;6516:9;:23;;6499:40;6491:49;;;;;;;;9567:8;;9557:19;;;;;;;;;;;;;;;;;;;;;;;;;6225:39;6253:10;6225:27;:39::i;:::-;6221:63;;;9588:27;:25;:27::i;:::-;9624:14;:12;:14::i;:::-;9663:37;9679:12;:20;9692:6;9679:20;;;;;;;;;;;;;;;;9663:15;:37::i;:::-;9645:55;;9730:1;9707:8;9716:10;9707:20;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;9761:1;9738:12;:20;9751:6;9738:20;;;;;;;;;;;;;;;:24;;;;9867:18;:16;:18::i;:::-;9894:27;:25;:27::i;:::-;9928:20;9941:6;9928:20;;;;;;;;;;;;;;;;;;;;;;6221:63;6547:1;6402;;6639;9348:606;;;:::o;23042:204::-;23137:8;;23127:19;;;;;;;;;;;;;;;;;;;;;;;;;5754:27;5770:10;5754:15;:27::i;:::-;5750:51;;;23159:5;;;;;;;;;;;:14;;;23174:8;23184:7;23159:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23159:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23159:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23159:33:0;;;;;;;;;;;;;;;;;23208:30;23220:8;23230:7;23208:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:51;23042:204;;;:::o;11047:102::-;11100:4;11142:1;11120:12;:19;11133:5;11120:19;;;;;;;;;;;;;;;;:23;11113:30;;11047:102;;;:::o;22064:23::-;;;;:::o;11401:83::-;11454:4;5461:19;5469:10;5461:7;:19::i;:::-;5453:28;;;;;;;;11474:4;11467:11;;11401:83;:::o;8803:412::-;8878:6;6713:17;6721:8;6713:7;:17::i;:::-;6712:18;6704:27;;;;;;;;8922:1;8908:11;;:15;6364:1;6351:10;:14;:43;;;;;21877:3;6369:10;:25;;6351:43;6343:52;;;;;;;;8962:8;;8952:19;;;;;;;;;;;;;;;;;;;;;;;;;6225:39;6253:10;6225:27;:39::i;:::-;6221:63;;;8983:27;:25;:27::i;:::-;9019:14;:12;:14::i;:::-;9040:11;;:13;;;;;;;;;;;;;9084:6;9060:8;9069:11;;9060:21;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9120:28;9136:11;;9120:15;:28::i;:::-;9097:12;:20;9110:6;9097:20;;;;;;;;;;;;;;;:51;;;;9157:27;:25;:27::i;:::-;9191:18;9202:6;9191:18;;;;;;;;;;;;;;;;;;;;;;6221:63;6402:1;6738;8803:412;;:::o;21969:35::-;;;;:::o;10689:216::-;10731:9;10749:23;10813:6;10789:11;;10775:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10775:26:0;;;;10749:52;;10822:1;10813:10;;10808:69;10829:11;;10825:1;:15;10808:69;;;10866:11;10875:1;10866:8;:11::i;:::-;10854:6;10861:1;10854:9;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10842:3;;;;;;;10808:69;;;10893:6;10886:13;;10689:216;;;:::o;11629:514::-;11749:18;11807:39;11712:10;6823:29;6841:10;6823:17;:29::i;:::-;6815:38;;;;;;;;5461:19;5469:10;5461:7;:19::i;:::-;5453:28;;;;;;;;11770:30;11789:10;11770:18;:30::i;:::-;11749:51;;11849:19;:31;11869:10;11849:31;;;;;;;;;;;;;;;;;11807:73;;11932:1;11916:13;11895:7;:18;;;:34;:38;11887:47;;;;;;;;11943:39;11971:10;11943:27;:39::i;:::-;11991:7;:17;;;:19;;;;;;;;;;;;;12039:13;12017:7;:18;;;:35;;;;;;;;;;;12061:39;12089:10;12061:27;:39::i;:::-;12107:30;12114:10;12126;12107:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11629:514;;;;:::o;10131:271::-;10223:12;10237:11;;6511:1;6499:9;:13;:40;;;;;6529:10;6516:9;:23;;6499:40;6491:49;;;;;;;;10280:8;;10270:19;;;;;;;;;;;;;;;;;;;;;;;;;5754:27;5770:10;5754:15;:27::i;:::-;5750:51;;;10324:12;10301:20;:35;;;;10343:14;:12;:14::i;:::-;10364:32;10383:12;10364:32;;;;;;;;;;;;;;;;;;5750:51;6547:1;10131:271;;;:::o;12316:274::-;12482:4;12431:10;6823:29;6841:10;6823:17;:29::i;:::-;6815:38;;;;;;;;12460:6;6614:17;6622:8;6614:7;:17::i;:::-;6606:26;;;;;;;;12582:1;12552:26;12571:6;12552:18;:26::i;:::-;12507:19;:31;12527:10;12507:31;;;;;;;;;;;;;;;;;:42;;;:71;:76;12505:79;12498:86;;6860:1;12316:274;;;;;:::o;10509:109::-;10565:7;10588:8;10610:1;10597:10;:14;10588:24;;;;;;;;;;;;;;;;;;;;10581:31;;10509:109;;;:::o;8211:468::-;8447:15;8295:5;6614:17;6622:8;6614:7;:17::i;:::-;6606:26;;;;;;;;8327:3;6713:17;6721:8;6713:7;:17::i;:::-;6712:18;6704:27;;;;;;;;8369:8;;8359:19;;;;;;;;;;;;;;;;;;;;;;;;;6225:39;6253:10;6225:27;:39::i;:::-;6221:63;;;8390:27;:25;:27::i;:::-;8426:14;:12;:14::i;:::-;8465:36;8481:12;:19;8494:5;8481:19;;;;;;;;;;;;;;;;8465:15;:36::i;:::-;8447:54;;8531:3;8508:8;8517:10;8508:20;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8563:1;8541:12;:19;8554:5;8541:19;;;;;;;;;;;;;;;:23;;;;8591:10;8571:12;:17;8584:3;8571:17;;;;;;;;;;;;;;;:30;;;;8610:27;:25;:27::i;:::-;8649:24;8662:5;8669:3;8649:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6221:63;6738:1;6639;8211:468;;;;:::o;22809:19::-;;;;;;;;;;;;;:::o;16774:2097::-;16873:4;17324:39;17982:18;5461:19;5469:10;5461:7;:19::i;:::-;5453:28;;;;;;;;16900:24;:31;;;;16893:3;:38;16889:426;;;17301:14;:12;:14::i;:::-;16889:426;17366:19;:31;17386:10;17366:31;;;;;;;;;;;;;;;;;17324:73;;17511:29;17529:10;17511:17;:29::i;:::-;17509:31;17505:420;;;17632:1;17618:11;;:15;17598:7;:17;;:35;;;;17737:1;17716:7;:18;;:22;;;;17763:24;:33;;;;;;;;;;;:::i;:::-;17747:7;:13;;:49;;;;17847:10;17805:24;17830:7;:13;;;17805:39;;;;;;;;;;;;;;;;;:52;;;;;;;17866:51;17906:10;17866:39;:51::i;:::-;17505:420;18003:30;18022:10;18003:18;:30::i;:::-;17982:51;;18169:1;18152:13;18131:7;:18;;;:34;:39;18127:739;;;18261:1;18241:7;:17;;;:21;18234:29;;;;;;18297:1;18276:7;:17;;;:22;18272:587;;;18376:24;18401:19;:31;18421:10;18401:31;;;;;;;;;;;;;;;;;:37;;;18376:63;;;;;;;;;;;;;;;;;18369:70;;;18457:19;:31;18477:10;18457:31;;;;;;;;;;;;;;;;;;18450:38;;;;;;;;;;;;;;;;;;;;18499:41;18517:10;18529;18499:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18558:4;18551:11;;;;18272:587;18675:7;:17;;;:19;;;;;;;;;;;;;;18727:13;18705:7;:18;;;:35;;;;;;;;;;;18751:51;18791:10;18751:39;:51::i;:::-;18813:36;18826:10;18838;18813:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18127:739;5488:1;16774:2097;;;;;:::o;20616:237::-;20694:1;20680:11;;:15;20673:23;;;;;;21877:3;20710:11;;:26;;20703:34;;;;;;20766:1;20751:8;20760:1;20751:11;;;;;;;;;;;;;;;;;;;;:16;;;20744:24;;;;;;20787:20;;20782:1;:25;;:64;;;;;20835:11;;20811:20;;:35;;20782:64;20775:72;;;;;;20616:237::o;19797:326::-;19846:11;19932:6;5461:19;5469:10;5461:7;:19::i;:::-;5453:28;;;;;;;;19860:24;:31;;;;19846:45;;19941:1;19932:10;;19927:153;19948:6;19944:1;:10;19927:153;;;20005:1;19974:32;;:24;19999:1;19974:27;;;;;;;;;;;;;;;;;;:32;;;;;19970:102;;;20024:19;:48;20044:24;20069:1;20044:27;;;;;;;;;;;;;;;;;;20024:48;;;;;;;;;;;;;;;;;;20017:55;;;;;;;;;;;;;;;;;;;;19970:102;19956:3;;;;;19927:153;;;20093:24;;20086:31;;;;:::i;:::-;19797:326;;:::o;20129:159::-;20193:4;20218:10;20213:1;:15;;:44;;;;;21877:3;20232:10;:25;;20213:44;20206:52;;;;;;20272:10;20265:17;;20129:159;;;:::o;19014:777::-;19057:9;19069:1;19057:13;;19077:709;19091:11;;19084:4;:18;19077:709;;;19180:56;19194:11;;19187:4;:18;:41;;;;;19227:1;19209:8;19218:4;19209:14;;;;;;;;;;;;;;;;;;;;:19;;;;19187:41;19180:56;;;19230:6;;;;;;;19180:56;;;19307:67;19328:1;19314:11;;:15;:45;;;;;19358:1;19333:8;19342:11;;19333:21;;;;;;;;;;;;;;;;;;;;:26;;;19314:45;19307:67;;;19361:11;;:13;;;;;;;;;;;;;;19307:67;;;19475:11;;19468:4;:18;:48;;;;;19515:1;19490:8;19499:11;;19490:21;;;;;;;;;;;;;;;;;;;;:26;;;;19468:48;:71;;;;;19538:1;19520:8;19529:4;19520:14;;;;;;;;;;;;;;;;;;;;:19;;;19468:71;19464:315;;;19666:8;19675:11;;19666:21;;;;;;;;;;;;;;;;;;;;19649:8;19658:4;19649:14;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19729:4;19698:12;:28;19711:8;19720:4;19711:14;;;;;;;;;;;;;;;;;;;;19698:28;;;;;;;;;;;;;;;:35;;;;19768:1;19744:8;19753:11;;19744:21;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;19464:315;19077:709;;;19014:777;:::o;12621:2066::-;12708:4;13159:39;13810:18;5461:19;5469:10;5461:7;:19::i;:::-;5453:28;;;;;;;;12735:24;:31;;;;12728:3;:38;12724:426;;;13136:14;:12;:14::i;:::-;12724:426;13201:19;:31;13221:10;13201:31;;;;;;;;;;;;;;;;;13159:73;;13346:29;13364:10;13346:17;:29::i;:::-;13344:31;13340:413;;;13453:20;;13433:7;:17;;:40;;;;13577:1;13556:7;:18;;:22;;;;13603:24;:33;;;;;;;;;;;:::i;:::-;13587:7;:13;;:49;;;;13687:10;13645:24;13670:7;:13;;;13645:39;;;;;;;;;;;;;;;;;:52;;;;;;;13706:39;13734:10;13706:27;:39::i;:::-;13340:413;13831:30;13850:10;13831:18;:30::i;:::-;13810:51;;13997:1;13980:13;13959:7;:18;;;:34;:39;13955:727;;;14089:1;14069:7;:17;;;:21;14062:29;;;;;;14125:1;14104:7;:17;;;:22;14100:575;;;14204:24;14229:19;:31;14249:10;14229:31;;;;;;;;;;;;;;;;;:37;;;14204:63;;;;;;;;;;;;;;;;;14197:70;;;14285:19;:31;14305:10;14285:31;;;;;;;;;;;;;;;;;;14278:38;;;;;;;;;;;;;;;;;;;;14327:41;14345:10;14357;14327:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14386:4;14379:11;;;;14100:575;14503:7;:17;;;:19;;;;;;;;;;;;;;14555:13;14533:7;:18;;;:35;;;;;;;;;;;14579:39;14607:10;14579:27;:39::i;:::-;14629:36;14642:10;14654;14629:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13955:727;5488:1;12621:2066;;;;;:::o;20467:141::-;20536:4;20561:19;:31;20581:10;20561:31;;;;;;;;;;;;;;;;;:41;;;20556:1;:46;;20549:53;;20467:141;;;:::o;20294:167::-;20359:4;20372:15;20390:36;20406:12;:19;20419:5;20406:19;;;;;;;;;;;;;;;;20390:15;:36::i;:::-;20372:54;;20445:10;20440:1;:15;20433:22;;20294:167;;;;:::o;20859:317::-;20936:39;20978:19;:31;20998:10;20978:31;;;;;;;;;;;;;;;;;20936:73;;21028:7;:17;;;21023:1;:22;;21016:30;;;;;;21103:10;21060:53;;;:24;21085:7;:13;;;21060:39;;;;;;;;;;;;;;;;;;:53;;;;21053:61;;;;;;21149:20;;21128:7;:17;;;:41;;21121:49;;;;;;20859:317;;:::o;21502:324::-;21591:39;21633:19;:31;21653:10;21633:31;;;;;;;;;;;;;;;;;21591:73;;21683:7;:17;;;21678:1;:22;;21671:30;;;;;;21758:10;21715:53;;;:24;21740:7;:13;;;21715:39;;;;;;;;;;;;;;;;;;:53;;;;21708:61;;;;;;21818:1;21804:11;;:15;21783:7;:17;;;:36;;21776:44;;;;;;21502:324;;:::o;22732:519::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://8a108d8b24e8af724823f69b6bf3b9acd1ef54dea802a224a8becfe74592a484
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.