More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MultiSigWallet
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-17 */ pragma solidity ^0.4.15; /// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution. /// @author Stefan George - <[email protected]> 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 Deposit(address indexed sender, uint value); 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 != 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 != 0); _; } modifier validRequirement(uint ownerCount, uint _required) { require(ownerCount <= MAX_OWNER_COUNT && _required <= ownerCount && _required != 0 && ownerCount != 0); _; } /// @dev Fallback function allows to deposit ether. function() payable { if (msg.value > 0) Deposit(msg.sender, msg.value); } /* * 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. function MultiSigWallet(address[] _owners, uint _required) public validRequirement(_owners.length, _required) { for (uint i=0; i<_owners.length; i++) { require(!isOwner[_owners[i]] && _owners[i] != 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); 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.length -= 1; if (required > owners.length) changeRequirement(owners.length); 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; OwnerRemoval(owner); 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; 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 Returns transaction ID. function submitTransaction(address destination, uint value, bytes 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; 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; 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)) Execution(transactionId); else { 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 data) internal 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, 34710), // 34710 is the value that solidity is currently emitting // 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) 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 constant 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; } } /* * 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 Returns transaction ID. function addTransaction(address destination, uint value, bytes data) internal notNull(destination) returns (uint transactionId) { transactionId = transactionCount; transactions[transactionId] = Transaction({ destination: destination, value: value, data: data, executed: false }); transactionCount += 1; Submission(transactionId); } /* * Web3 call functions */ /// @dev Returns number of confirmations of a transaction. /// @param transactionId Transaction ID. /// @return Number of confirmations. function getConfirmationCount(uint transactionId) public constant 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 Total number of transactions after filters are applied. function getTransactionCount(bool pending, bool executed) public constant 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 constant returns (address[]) { return owners; } /// @dev Returns array with owner addresses, which confirmed transaction. /// @param transactionId Transaction ID. /// @return Returns array of owner addresses. function getConfirmations(uint transactionId) public constant returns (address[] _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 Returns array of transaction IDs. function getTransactionIds(uint from, uint to, bool pending, bool executed) public constant returns (uint[] _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]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"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":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620019003803806200190083398101604052805160208201519101805190919060009082603282118015906200004b5750818111155b80156200005757508015155b80156200006357508115155b15156200006f57600080fd5b600092505b845183101562000147576002600086858151811015156200009157fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16158015620000e757508483815181101515620000cf57fe5b90602001906020020151600160a060020a0316600014155b1515620000f357600080fd5b60016002600087868151811015156200010857fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790556001929092019162000074565b84516200015c9060039060208801906200016e565b50505060049190915550620002029050565b828054828255906000526020600020908101928215620001c6579160200282015b82811115620001c65782518254600160a060020a031916600160a060020a039091161782556020909201916001909101906200018f565b50620001d4929150620001d8565b5090565b620001ff91905b80821115620001d4578054600160a060020a0319168155600101620001df565b90565b6116ee80620002126000396000f30060806040526004361061011c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c27811461015e578063173825d91461019f57806320ea8d86146101cd5780632f54bf6e146101e55780633411c81c1461022757806354741525146102585780637065cb4814610289578063784547a7146102b75780638b51d13f146102cf5780639ace38c2146102e7578063a0e67e2b146103bc578063a8abe69a14610421578063b5dc40c314610446578063b77bf6001461045e578063ba51a6df14610473578063c01a8c841461048b578063c6427474146104a3578063d74f8edd14610519578063dc8452cd1461052e578063e20056e614610543578063ee22610b14610577575b600034111561015c5760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b34801561016a57600080fd5b5061017660043561058f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101ab57600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff600435166105c4565b3480156101d957600080fd5b5061015c6004356107a3565b3480156101f157600080fd5b5061021373ffffffffffffffffffffffffffffffffffffffff6004351661085d565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061021360043573ffffffffffffffffffffffffffffffffffffffff60243516610872565b34801561026457600080fd5b5061027760043515156024351515610892565b60408051918252519081900360200190f35b34801561029557600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff600435166108fe565b3480156102c357600080fd5b50610213600435610a55565b3480156102db57600080fd5b50610277600435610ae6565b3480156102f357600080fd5b506102ff600435610b62565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561037e578181015183820152602001610366565b50505050905090810190601f1680156103ab5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156103c857600080fd5b506103d1610c2d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561040d5781810151838201526020016103f5565b505050509050019250505060405180910390f35b34801561042d57600080fd5b506103d160043560243560443515156064351515610c9d565b34801561045257600080fd5b506103d1600435610dd6565b34801561046a57600080fd5b50610277610f83565b34801561047f57600080fd5b5061015c600435610f89565b34801561049757600080fd5b5061015c600435611008565b3480156104af57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261027794823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506110e09650505050505050565b34801561052557600080fd5b506102776110ff565b34801561053a57600080fd5b50610277611104565b34801561054f57600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff6004358116906024351661110a565b34801561058357600080fd5b5061015c6004356112fc565b600380548290811061059d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60003330146105d257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff16151561060857600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260205260408120805460ff1916905591505b60035460001901821015610731578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561066c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610726576003805460001981019081106106a657fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691849081106106d957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610731565b600190910190610638565b6003805460001901906107449082611601565b50600354600454111561075d5760035461075d90610f89565b60405173ffffffffffffffffffffffffffffffffffffffff8416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b3360008181526002602052604090205460ff1615156107c157600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1615156107ed57600080fd5b600084815260208190526040902060030154849060ff161561080e57600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b6000805b6005548110156108f7578380156108bf575060008181526020819052604090206003015460ff16155b806108e357508280156108e3575060008181526020819052604090206003015460ff165b156108ef576001820191505b600101610896565b5092915050565b33301461090a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054819060ff161561093f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff8116151561096257600080fd5b6003805490506001016004546032821115801561097f5750818111155b801561098a57508015155b801561099557508115155b15156109a057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610adf5760008481526001602052604081206003805491929184908110610a8357fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610ac4576001820191505b600454821415610ad75760019250610adf565b600101610a5a565b5050919050565b6000805b600354811015610b5c5760008381526001602052604081206003805491929184908110610b1357fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610b54576001820191505b600101610aea565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f810188900488028401880190965285835273ffffffffffffffffffffffffffffffffffffffff90931695909491929190830182828015610c1a5780601f10610bef57610100808354040283529160200191610c1a565b820191906000526020600020905b815481529060010190602001808311610bfd57829003601f168201915b5050506003909301549192505060ff1684565b60606003805480602002602001604051908101604052809291908181526020018280548015610c9257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c67575b505050505090505b90565b606080600080600554604051908082528060200260200182016040528015610ccf578160200160208202803883390190505b50925060009150600090505b600554811015610d5657858015610d04575060008181526020819052604090206003015460ff16155b80610d285750848015610d28575060008181526020819052604090206003015460ff165b15610d4e57808383815181101515610d3c57fe5b60209081029091010152600191909101905b600101610cdb565b878703604051908082528060200260200182016040528015610d82578160200160208202803883390190505b5093508790505b86811015610dcb578281815181101515610d9f57fe5b9060200190602002015184898303815181101515610db957fe5b60209081029091010152600101610d89565b505050949350505050565b606080600080600380549050604051908082528060200260200182016040528015610e0b578160200160208202803883390190505b50925060009150600090505b600354811015610eef5760008581526001602052604081206003805491929184908110610e4057fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610ee7576003805482908110610e8857fe5b600091825260209091200154835173ffffffffffffffffffffffffffffffffffffffff90911690849084908110610ebb57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152600191909101905b600101610e17565b81604051908082528060200260200182016040528015610f19578160200160208202803883390190505b509350600090505b81811015610f7b578281815181101515610f3757fe5b906020019060200201518482815181101515610f4f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152600101610f21565b505050919050565b60055481565b333014610f9557600080fd5b6003548160328211801590610faa5750818111155b8015610fb557508015155b8015610fc057508115155b1515610fcb57600080fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526002602052604090205460ff16151561102657600080fd5b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16151561105857600080fd5b60008381526001602090815260408083203380855292529091205484919060ff161561108357600080fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36110d9856112fc565b5050505050565b60006110ed8484846114c9565b90506110f881611008565b9392505050565b603281565b60045481565b600033301461111857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054839060ff16151561114e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054839060ff161561118357600080fd5b600092505b600354831015611248578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156111b857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561123d57836003848154811015156111f057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611248565b600190920191611188565b73ffffffffffffffffffffffffffffffffffffffff808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a260405173ffffffffffffffffffffffffffffffffffffffff8516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b3360008181526002602052604081205490919060ff16151561131d57600080fd5b60008381526001602090815260408083203380855292529091205484919060ff16151561134957600080fd5b600085815260208190526040902060030154859060ff161561136a57600080fd5b61137386610a55565b156114c1576000868152602081815260409182902060038101805460ff19166001908117909155815481830154600280850180548851601f60001997831615610100029790970190911692909204948501879004870282018701909752838152939a506114549573ffffffffffffffffffffffffffffffffffffffff9092169490939190839083018282801561144a5780601f1061141f5761010080835404028352916020019161144a565b820191906000526020600020905b81548152906001019060200180831161142d57829003601f168201915b50505050506115de565b156114895760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a26114c1565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038501805460ff191690555b505050505050565b60008373ffffffffffffffffffffffffffffffffffffffff811615156114ee57600080fd5b6005546040805160808101825273ffffffffffffffffffffffffffffffffffffffff8881168252602080830189815283850189815260006060860181905287815280845295909520845181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169416939093178355516001830155925180519496509193909261158692600285019291019061162a565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b815481835581811115611625576000838152602090206116259181019083016116a8565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061166b57805160ff1916838001178555611698565b82800160010185558215611698579182015b8281111561169857825182559160200191906001019061167d565b506116a49291506116a8565b5090565b610c9a91905b808211156116a457600081556001016116ae5600a165627a7a723058203aef542ed971ca264194c88091a741ba44050cdd834a0e7fedb67e19be02cd0500290000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000008415064684795d695e6b2f1d549e1ecc03d6776600000000000000000000000085a24d529863a923535424dc7df1656fe855a3cb000000000000000000000000c98ec06d0f464d6cfda36627a856a670fe5a79ab000000000000000000000000e95104155fe11cdb81048e1436b22644180e47de
Deployed Bytecode
0x60806040526004361061011c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c27811461015e578063173825d91461019f57806320ea8d86146101cd5780632f54bf6e146101e55780633411c81c1461022757806354741525146102585780637065cb4814610289578063784547a7146102b75780638b51d13f146102cf5780639ace38c2146102e7578063a0e67e2b146103bc578063a8abe69a14610421578063b5dc40c314610446578063b77bf6001461045e578063ba51a6df14610473578063c01a8c841461048b578063c6427474146104a3578063d74f8edd14610519578063dc8452cd1461052e578063e20056e614610543578063ee22610b14610577575b600034111561015c5760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b34801561016a57600080fd5b5061017660043561058f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101ab57600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff600435166105c4565b3480156101d957600080fd5b5061015c6004356107a3565b3480156101f157600080fd5b5061021373ffffffffffffffffffffffffffffffffffffffff6004351661085d565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061021360043573ffffffffffffffffffffffffffffffffffffffff60243516610872565b34801561026457600080fd5b5061027760043515156024351515610892565b60408051918252519081900360200190f35b34801561029557600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff600435166108fe565b3480156102c357600080fd5b50610213600435610a55565b3480156102db57600080fd5b50610277600435610ae6565b3480156102f357600080fd5b506102ff600435610b62565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561037e578181015183820152602001610366565b50505050905090810190601f1680156103ab5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156103c857600080fd5b506103d1610c2d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561040d5781810151838201526020016103f5565b505050509050019250505060405180910390f35b34801561042d57600080fd5b506103d160043560243560443515156064351515610c9d565b34801561045257600080fd5b506103d1600435610dd6565b34801561046a57600080fd5b50610277610f83565b34801561047f57600080fd5b5061015c600435610f89565b34801561049757600080fd5b5061015c600435611008565b3480156104af57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261027794823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506110e09650505050505050565b34801561052557600080fd5b506102776110ff565b34801561053a57600080fd5b50610277611104565b34801561054f57600080fd5b5061015c73ffffffffffffffffffffffffffffffffffffffff6004358116906024351661110a565b34801561058357600080fd5b5061015c6004356112fc565b600380548290811061059d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60003330146105d257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff16151561060857600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260205260408120805460ff1916905591505b60035460001901821015610731578273ffffffffffffffffffffffffffffffffffffffff1660038381548110151561066c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610726576003805460001981019081106106a657fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691849081106106d957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610731565b600190910190610638565b6003805460001901906107449082611601565b50600354600454111561075d5760035461075d90610f89565b60405173ffffffffffffffffffffffffffffffffffffffff8416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b3360008181526002602052604090205460ff1615156107c157600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1615156107ed57600080fd5b600084815260208190526040902060030154849060ff161561080e57600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b6000805b6005548110156108f7578380156108bf575060008181526020819052604090206003015460ff16155b806108e357508280156108e3575060008181526020819052604090206003015460ff165b156108ef576001820191505b600101610896565b5092915050565b33301461090a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054819060ff161561093f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff8116151561096257600080fd5b6003805490506001016004546032821115801561097f5750818111155b801561098a57508015155b801561099557508115155b15156109a057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610adf5760008481526001602052604081206003805491929184908110610a8357fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610ac4576001820191505b600454821415610ad75760019250610adf565b600101610a5a565b5050919050565b6000805b600354811015610b5c5760008381526001602052604081206003805491929184908110610b1357fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610b54576001820191505b600101610aea565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f810188900488028401880190965285835273ffffffffffffffffffffffffffffffffffffffff90931695909491929190830182828015610c1a5780601f10610bef57610100808354040283529160200191610c1a565b820191906000526020600020905b815481529060010190602001808311610bfd57829003601f168201915b5050506003909301549192505060ff1684565b60606003805480602002602001604051908101604052809291908181526020018280548015610c9257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c67575b505050505090505b90565b606080600080600554604051908082528060200260200182016040528015610ccf578160200160208202803883390190505b50925060009150600090505b600554811015610d5657858015610d04575060008181526020819052604090206003015460ff16155b80610d285750848015610d28575060008181526020819052604090206003015460ff165b15610d4e57808383815181101515610d3c57fe5b60209081029091010152600191909101905b600101610cdb565b878703604051908082528060200260200182016040528015610d82578160200160208202803883390190505b5093508790505b86811015610dcb578281815181101515610d9f57fe5b9060200190602002015184898303815181101515610db957fe5b60209081029091010152600101610d89565b505050949350505050565b606080600080600380549050604051908082528060200260200182016040528015610e0b578160200160208202803883390190505b50925060009150600090505b600354811015610eef5760008581526001602052604081206003805491929184908110610e4057fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610ee7576003805482908110610e8857fe5b600091825260209091200154835173ffffffffffffffffffffffffffffffffffffffff90911690849084908110610ebb57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152600191909101905b600101610e17565b81604051908082528060200260200182016040528015610f19578160200160208202803883390190505b509350600090505b81811015610f7b578281815181101515610f3757fe5b906020019060200201518482815181101515610f4f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152600101610f21565b505050919050565b60055481565b333014610f9557600080fd5b6003548160328211801590610faa5750818111155b8015610fb557508015155b8015610fc057508115155b1515610fcb57600080fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526002602052604090205460ff16151561102657600080fd5b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16151561105857600080fd5b60008381526001602090815260408083203380855292529091205484919060ff161561108357600080fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36110d9856112fc565b5050505050565b60006110ed8484846114c9565b90506110f881611008565b9392505050565b603281565b60045481565b600033301461111857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054839060ff16151561114e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054839060ff161561118357600080fd5b600092505b600354831015611248578473ffffffffffffffffffffffffffffffffffffffff166003848154811015156111b857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561123d57836003848154811015156111f057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611248565b600190920191611188565b73ffffffffffffffffffffffffffffffffffffffff808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a260405173ffffffffffffffffffffffffffffffffffffffff8516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b3360008181526002602052604081205490919060ff16151561131d57600080fd5b60008381526001602090815260408083203380855292529091205484919060ff16151561134957600080fd5b600085815260208190526040902060030154859060ff161561136a57600080fd5b61137386610a55565b156114c1576000868152602081815260409182902060038101805460ff19166001908117909155815481830154600280850180548851601f60001997831615610100029790970190911692909204948501879004870282018701909752838152939a506114549573ffffffffffffffffffffffffffffffffffffffff9092169490939190839083018282801561144a5780601f1061141f5761010080835404028352916020019161144a565b820191906000526020600020905b81548152906001019060200180831161142d57829003601f168201915b50505050506115de565b156114895760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a26114c1565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038501805460ff191690555b505050505050565b60008373ffffffffffffffffffffffffffffffffffffffff811615156114ee57600080fd5b6005546040805160808101825273ffffffffffffffffffffffffffffffffffffffff8881168252602080830189815283850189815260006060860181905287815280845295909520845181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169416939093178355516001830155925180519496509193909261158692600285019291019061162a565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b815481835581811115611625576000838152602090206116259181019083016116a8565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061166b57805160ff1916838001178555611698565b82800160010185558215611698579182015b8281111561169857825182559160200191906001019061167d565b506116a49291506116a8565b5090565b610c9a91905b808211156116a457600081556001016116ae5600a165627a7a723058203aef542ed971ca264194c88091a741ba44050cdd834a0e7fedb67e19be02cd050029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000008415064684795d695e6b2f1d549e1ecc03d6776600000000000000000000000085a24d529863a923535424dc7df1656fe855a3cb000000000000000000000000c98ec06d0f464d6cfda36627a856a670fe5a79ab000000000000000000000000e95104155fe11cdb81048e1436b22644180e47de
-----Decoded View---------------
Arg [0] : _owners (address[]): 0x8415064684795D695e6B2f1d549e1Ecc03d67766,0x85a24d529863A923535424dc7df1656FE855a3cb,0xc98ec06d0f464d6CfDA36627A856a670Fe5a79Ab,0xE95104155FE11cdB81048E1436B22644180e47De
Arg [1] : _required (uint256): 2
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 0000000000000000000000008415064684795d695e6b2f1d549e1ecc03d67766
Arg [4] : 00000000000000000000000085a24d529863a923535424dc7df1656fe855a3cb
Arg [5] : 000000000000000000000000c98ec06d0f464d6cfda36627a856a670fe5a79ab
Arg [6] : 000000000000000000000000e95104155fe11cdb81048e1436b22644180e47de
Deployed Bytecode Sourcemap
192:13014:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2618:1;2606:9;:13;2602:62;;;2634:30;;;2654:9;2634:30;;;;2642:10;;2634:30;;;;;;;;;;2602:62;192:13014;1062:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1062:23:0;;;;;;;;;;;;;;;;;;;;;;;;3831:475;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3831:475:0;;;;;;;6473:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6473:299:0;;;;;1015:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1015:40:0;;;;;;;;;;;;;;;;;;;;;;;;;944:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;944:64:0;;;;;;;;;10840:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10840:328:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3417:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3417:287:0;;;;;;;8950:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8950:349:0;;;;;10312:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10312:260:0;;;;;888:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;888:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;888:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11256:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11256:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11256:121:0;;;;;;;;;;;;;;;;;12509:694;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12509:694:0;;;;;;;;;;;;;;;11561:591;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11561:591:0;;;;;1119:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1119:28:0;;;;5152:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5152:214:0;;;;;5992:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5992:353:0;;;;;5632:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5632:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5632:250:0;;-1:-1:-1;5632:250:0;;-1:-1:-1;;;;;;;5632:250:0;804:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;804:41:0;;;;1092:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1092:20:0;;;;4513:464;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4513:464:0;;;;;;;;;;;;6890:602;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6890:602:0;;;;;1062:23;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1062:23:0;:::o;3831:475::-;3985:6;1364:10;1386:4;1364:27;1356:36;;;;;;1580:14;;;;;;;:7;:14;;;;;;3924:5;;1580:14;;1572:23;;;;;;;;3947:14;;;3964:5;3947:14;;;:7;:14;;;;;:22;;-1:-1:-1;;3947:22:0;;;3964:5;-1:-1:-1;3980:174:0;3997:6;:13;-1:-1:-1;;3997:17:0;3995:19;;3980:174;;;4051:5;4038:18;;:6;4045:1;4038:9;;;;;;;;;;;;;;;;;;;;;;:18;4034:120;;;4089:6;4096:13;;-1:-1:-1;;4096:17:0;;;4089:25;;;;;;;;;;;;;;;;4077:6;:9;;4089:25;;;;;4084:1;;4077:9;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;4133:5;;4034:120;4016:3;;;;;3980:174;;;4164:6;:18;;-1:-1:-1;;4164:18:0;;;;;;:::i;:::-;-1:-1:-1;4208:6:0;:13;4197:8;;:24;4193:75;;;4254:6;:13;4236:32;;:17;:32::i;:::-;4279:19;;;;;;;;;;;1403:1;3831:475;;:::o;6473:299::-;6558:10;1580:14;;;;:7;:14;;;;;;;;1572:23;;;;;;;;1835:28;;;;:13;:28;;;;;;;;6604:10;1835:35;;;;;;;;;6589:13;;6604:10;1835:35;;1827:44;;;;;;;;2101:12;:27;;;;;;;;;;:36;;;6637:13;;2101:36;;2100:37;2092:46;;;;;;6711:5;6668:28;;;:13;:28;;;;;;;;6697:10;6668:40;;;;;;;;:48;;-1:-1:-1;;6668:48:0;;;6727:37;6682:13;;6727:37;;;1882:1;1606;;6473:299;;:::o;1015:40::-;;;;;;;;;;;;;;;:::o;944:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10840:328::-;10950:10;;10978:182;10995:16;;10993:1;:18;10978:182;;;11038:7;:36;;;;-1:-1:-1;11050:12:0;:15;;;;;;;;;;:24;;;;;11049:25;11038:36;:93;;;;11095:8;:36;;;;-1:-1:-1;11107:12:0;:15;;;;;;;;;;:24;;;;;11095:36;11031:129;;;11159:1;11150:10;;;;11031:129;11013:3;;10978:182;;;10840:328;;;;;:::o;3417:287::-;1364:10;1386:4;1364:27;1356:36;;;;;;1482:14;;;;;;;:7;:14;;;;;;3513:5;;1482:14;;1481:15;1473:24;;;;;;3537:5;2220:13;;;;;2212:22;;;;;;3570:6;:13;;;;3586:1;3570:17;3589:8;;843:2;2340:10;:29;;:69;;;;;2399:10;2386:9;:23;;2340:69;:100;;;;-1:-1:-1;2426:14:0;;;2340:100;:132;;;;-1:-1:-1;2457:15:0;;;2340:132;2332:141;;;;;;;;3615:14;;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;3615:21:0;3632:4;3615:21;;;;;;3647:6;27:10:-1;;23:18;;;45:23;;3647:18:0;;;;;;;;;;;;3676:20;;;3615:14;3676:20;2245:1;;1508;1403;3417:287;:::o;8950:349::-;9043:4;;;9090:202;9107:6;:13;9105:15;;9090:202;;;9146:28;;;;:13;:28;;;;;9175:6;:9;;9146:28;;;9182:1;;9175:9;;;;;;;;;;;;;;;;;;;;9146:39;;;;;;;;;;;;;;;9142:72;;;9213:1;9204:10;;;;9142:72;9242:8;;9233:5;:17;9229:51;;;9276:4;9269:11;;;;9229:51;9122:3;;9090:202;;;8950:349;;;;;:::o;10312:260::-;10414:10;;10442:122;10459:6;:13;10457:15;;10442:122;;;10496:28;;;;:13;:28;;;;;10525:6;:9;;10496:28;;;10532:1;;10525:9;;;;;;;;;;;;;;;;;;;;10496:39;;;;;;;;;;;;;;;10492:72;;;10563:1;10554:10;;;;10492:72;10474:3;;10442:122;;;10312:260;;;;:::o;888:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;888:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;888:49:0;;;;;;;-1:-1:-1;;888:49:0;;;:::o;11256:121::-;11329:9;11363:6;11356:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11256:121;;:::o;12509:694::-;12637:22;12677:32;12751:10;12776:6;12723:16;;12712:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12712:28:0;;12677:63;;12764:1;12751:14;;12800:1;12798:3;;12793:256;12805:16;;12803:1;:18;12793:256;;;12848:7;:36;;;;-1:-1:-1;12860:12:0;:15;;;;;;;;;;:24;;;;;12859:25;12848:36;:93;;;;12905:8;:36;;;;-1:-1:-1;12917:12:0;:15;;;;;;;;;;:24;;;;;12905:36;12841:208;;;13003:1;12975:18;12994:5;12975:25;;;;;;;;;;;;;;;;;;:29;13032:1;13023:10;;;;;12841:208;12823:3;;12793:256;;;13093:4;13088:2;:9;13077:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13077:21:0;;13059:39;;13116:4;13114:6;;13109:86;13124:2;13122:1;:4;13109:86;;;13174:18;13193:1;13174:21;;;;;;;;;;;;;;;;;;13146:15;13166:4;13162:1;:8;13146:25;;;;;;;;;;;;;;;;;;:49;13128:3;;13109:86;;;12509:694;;;;;;;;;:::o;11561:591::-;11659:24;11701:34;11777:10;11802:6;11752;:13;;;;11738:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11738:28:0;;11701:65;;11790:1;11777:14;;11826:1;11824:3;;11819:190;11831:6;:13;11829:15;;11819:190;;;11868:28;;;;:13;:28;;;;;11897:6;:9;;11868:28;;;11904:1;;11897:9;;;;;;;;;;;;;;;;;;;;11868:39;;;;;;;;;;;;;;;11864:145;;;11955:6;:9;;11962:1;;11955:9;;;;;;;;;;;;;;;;11928:24;;11955:9;;;;;11928:17;;11946:5;;11928:24;;;;;;:36;;;;:24;;;;;;;;;;:36;11992:1;11983:10;;;;;11864:145;11846:3;;11819:190;;;12050:5;12036:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12036:20:0;;12019:37;;12074:1;12072:3;;12067:77;12079:5;12077:1;:7;12067:77;;;12124:17;12142:1;12124:20;;;;;;;;;;;;;;;;;;12104:14;12119:1;12104:17;;;;;;;;;;:40;;;;:17;;;;;;;;;;:40;12086:3;;12067:77;;;11561:591;;;;;;:::o;1119:28::-;;;;:::o;5152:214::-;1364:10;1386:4;1364:27;1356:36;;;;;;5257:6;:13;5272:9;843:2;2340:29;;;;;:69;;;2399:10;2386:9;:23;;2340:69;:100;;;;-1:-1:-1;2426:14:0;;;2340:100;:132;;;;-1:-1:-1;2457:15:0;;;2340:132;2332:141;;;;;;;;5299:8;:20;;;5330:28;;;;;;;;;;;;;;;;;1403:1;;5152:214;:::o;5992:353::-;6077:10;1580:14;;;;:7;:14;;;;;;;;1572:23;;;;;;;;1689:12;:27;;;;;;;;;;:39;6116:13;;1689:39;;:44;;1681:53;;;;;;1976:28;;;;:13;:28;;;;;;;;6168:10;1976:35;;;;;;;;;6153:13;;6168:10;1976:35;;1975:36;1967:45;;;;;;6196:28;;;;6239:4;6196:28;;;;;;;;6225:10;6196:40;;;;;;;;:47;;-1:-1:-1;;6196:47:0;;;;;;;6254:39;;6210:13;;6254:39;;;6304:33;6323:13;6304:18;:33::i;:::-;1745:1;;1606;5992:353;;:::o;5632:250::-;5738:18;5790:40;5805:11;5818:5;5825:4;5790:14;:40::i;:::-;5774:56;;5841:33;5860:13;5841:18;:33::i;:::-;5632:250;;;;;:::o;804:41::-;843:2;804:41;:::o;1092:20::-;;;;:::o;4513:464::-;4690:6;1364:10;1386:4;1364:27;1356:36;;;;;;1580:14;;;;;;;:7;:14;;;;;;4625:5;;1580:14;;1572:23;;;;;;;;1482:14;;;;;;;:7;:14;;;;;;4659:8;;1482:14;;1481:15;1473:24;;;;;;4697:1;4690:8;;4685:153;4702:6;:13;4700:15;;4685:153;;;4752:5;4739:18;;:6;4746:1;4739:9;;;;;;;;;;;;;;;;;;;;;;:18;4735:103;;;4790:8;4778:6;4785:1;4778:9;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4817:5;;4735:103;4717:3;;;;;4685:153;;;4848:14;;;;4865:5;4848:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;4848:22:0;;;;;;4881:17;;;;;;;;:24;;;;;4848:22;4881:24;;;;4916:19;;4848:14;;4916:19;;;4946:23;;;;;;;;;;;1606:1;1403;4513:464;;;:::o;6890:602::-;6975:10;7132:23;1580:14;;;:7;:14;;;;;;7132:23;;6975:10;1580:14;;1572:23;;;;;;;;1835:28;;;;:13;:28;;;;;;;;7021:10;1835:35;;;;;;;;;7006:13;;7021:10;1835:35;;1827:44;;;;;;;;2101:12;:27;;;;;;;;;;:36;;;7054:13;;2101:36;;2100:37;2092:46;;;;;;7089:26;7101:13;7089:11;:26::i;:::-;7085:400;;;7158:12;:27;;;;;;;;;;;;7200:12;;;:19;;-1:-1:-1;;7200:19:0;7215:4;7200:19;;;;;;7252:15;;7269:9;;;;7280:8;;;;:15;;7238:68;;;-1:-1:-1;;7280:15:0;;;;7200:19;7280:15;;;;;;;;;;;;7238:68;;;;;;;;;;;;;;;;;;7158:27;;-1:-1:-1;7238:68:0;;7252:15;;;;;7269:9;;7238:68;7280:8;:15;;7238:68;;7280:8;:15;7238:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:68::i;:::-;7234:240;;;7325:24;;7335:13;;7325:24;;;;;7234:240;;;7388:31;;7405:13;;7388:31;;;;;7438:12;;;:20;;-1:-1:-1;;7438:20:0;;;7234:240;1882:1;1606;;6890:602;;;:::o;9642:465::-;9777:18;9746:11;2220:13;;;;;2212:22;;;;;;9829:16;;9886:145;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9886:145:0;;;;;;9856:27;;;;;;;;;;:175;;;;;;;;;;;;;;;-1:-1:-1;9856:175:0;;;;;;;9829:16;;-1:-1:-1;9886:145:0;;9856:27;;:175;;;;;;;;;;:::i;:::-;-1:-1:-1;9856:175:0;;;;;;;;;;;;-1:-1:-1;;9856:175:0;;;;;;;;;;10042:16;:21;;-1:-1:-1;10042:21:0;;;10074:25;;10085:13;;10074:25;;-1:-1:-1;;10074:25:0;9642:465;;;;;;:::o;7673:1121::-;7776:4;7793:11;7854:4;7848:11;7988:2;7982:4;7978:13;8663:1;8643;8534:10;8514:1;8490:5;8460:11;8112:5;8107:3;8103:15;8080:672;8070:682;7673:1121;-1:-1:-1;;;;;;;;7673:1121:0:o;192:13014::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;192:13014:0;;;-1:-1:-1;192:13014:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://3aef542ed971ca264194c88091a741ba44050cdd834a0e7fedb67e19be02cd05
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.002683 | 4,157,792.3464 | $11,153.28 |
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.