More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 621 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Confirm Transact... | 15044599 | 1001 days ago | IN | 0 ETH | 0.00344318 | ||||
Confirm Transact... | 14767930 | 1048 days ago | IN | 0 ETH | 0.0068887 | ||||
Confirm Transact... | 14750460 | 1051 days ago | IN | 0 ETH | 0.0040177 | ||||
Confirm Transact... | 13487759 | 1248 days ago | IN | 0 ETH | 0.01460389 | ||||
Submit Transacti... | 13218448 | 1290 days ago | IN | 0 ETH | 0.0172657 | ||||
Submit Transacti... | 13106747 | 1307 days ago | IN | 0 ETH | 0.0141998 | ||||
Confirm Transact... | 13100187 | 1308 days ago | IN | 0 ETH | 0.0093872 | ||||
Confirm Transact... | 13100094 | 1308 days ago | IN | 0 ETH | 0.00714625 | ||||
Confirm Transact... | 13093819 | 1309 days ago | IN | 0 ETH | 0.00863196 | ||||
Execute Transact... | 13093815 | 1309 days ago | IN | 0 ETH | 0.01011392 | ||||
Execute Transact... | 13089852 | 1310 days ago | IN | 0 ETH | 0.00716852 | ||||
Execute Transact... | 13089830 | 1310 days ago | IN | 0 ETH | 0.00717933 | ||||
Execute Transact... | 13089813 | 1310 days ago | IN | 0 ETH | 0.00698562 | ||||
Confirm Transact... | 13089800 | 1310 days ago | IN | 0 ETH | 0.01458589 | ||||
Confirm Transact... | 13089776 | 1310 days ago | IN | 0 ETH | 0.01372206 | ||||
Execute Transact... | 13089762 | 1310 days ago | IN | 0 ETH | 0.00735724 | ||||
Execute Transact... | 13089754 | 1310 days ago | IN | 0 ETH | 0.00735724 | ||||
Confirm Transact... | 13089748 | 1310 days ago | IN | 0 ETH | 0.00976199 | ||||
Confirm Transact... | 12989918 | 1325 days ago | IN | 0 ETH | 0.00382129 | ||||
Confirm Transact... | 12989918 | 1325 days ago | IN | 0 ETH | 0.0034187 | ||||
Confirm Transact... | 12989918 | 1325 days ago | IN | 0 ETH | 0.0034187 | ||||
Confirm Transact... | 12989912 | 1325 days ago | IN | 0 ETH | 0.00366886 | ||||
Confirm Transact... | 12959334 | 1330 days ago | IN | 0 ETH | 0.00546405 | ||||
Confirm Transact... | 12959334 | 1330 days ago | IN | 0 ETH | 0.00546405 | ||||
Confirm Transact... | 12959334 | 1330 days ago | IN | 0 ETH | 0.00546405 |
Loading...
Loading
Contract Name:
MultiSigWallet
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-02-28 */ pragma solidity ^0.4.15; 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) private returns (bool) { bool result; assembly { let x := mload(0x40) // "Allocate" memory for output (0x40 is where "free memory" pointer is stored by convention) let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that result := call( sub(gas, 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
Contract ABI
API[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"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,"type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"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,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"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,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"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
606060405234156200001057600080fd5b6040516200192538038062001925833981016040528080518201919060200180519150505b6000825182603282111580156200004c5750818111155b80156200005857508015155b80156200006457508115155b15156200007057600080fd5b600092505b84518310156200014157600260008685815181106200009057fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff16158015620000e35750848381518110620000cd57fe5b90602001906020020151600160a060020a031615155b1515620000ef57600080fd5b6001600260008786815181106200010257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b60019092019162000075565b60038580516200015692916020019062000169565b5060048490555b5b505050505062000204565b828054828255906000526020600020908101928215620001c3579160200282015b82811115620001c35782518254600160a060020a031916600160a060020a0391909116178255602092909201916001909101906200018a565b5b50620001d2929150620001d6565b5090565b6200020191905b80821115620001d2578054600160a060020a0319168155600101620001dd565b5090565b90565b61171180620002146000396000f3006060604052361561011a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c278114610165578063173825d91461019757806320ea8d86146101b85780632f54bf6e146101d05780633411c81c1461020357806354741525146102395780637065cb4814610268578063784547a7146102895780638b51d13f146102b35780639ace38c2146102db578063a0e67e2b1461039a578063a8abe69a14610401578063b5dc40c314610478578063b77bf600146104e2578063ba51a6df14610507578063c01a8c841461051f578063c642747414610537578063d74f8edd146105ae578063dc8452cd146105d3578063e20056e6146105f8578063ee22610b1461061f575b5b60003411156101625733600160a060020a03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405190815260200160405180910390a25b5b005b341561017057600080fd5b61017b600435610637565b604051600160a060020a03909116815260200160405180910390f35b34156101a257600080fd5b610162600160a060020a0360043516610669565b005b34156101c357600080fd5b61016260043561081a565b005b34156101db57600080fd5b6101ef600160a060020a03600435166108fc565b604051901515815260200160405180910390f35b341561020e57600080fd5b6101ef600435600160a060020a0360243516610911565b604051901515815260200160405180910390f35b341561024457600080fd5b61025660043515156024351515610931565b60405190815260200160405180910390f35b341561027357600080fd5b610162600160a060020a03600435166109a0565b005b341561029457600080fd5b6101ef600435610add565b604051901515815260200160405180910390f35b34156102be57600080fd5b610256600435610b71565b60405190815260200160405180910390f35b34156102e657600080fd5b6102f1600435610bf0565b604051600160a060020a03851681526020810184905281151560608201526080604082018181528454600260001961010060018416150201909116049183018290529060a0830190859080156103885780601f1061035d57610100808354040283529160200191610388565b820191906000526020600020905b81548152906001019060200180831161036b57829003601f168201915b50509550505050505060405180910390f35b34156103a557600080fd5b6103ad610c24565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b341561040c57600080fd5b6103ad60043560243560443515156064351515610c8d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b341561048357600080fd5b6103ad600435610dbb565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b34156104ed57600080fd5b610256610f3d565b60405190815260200160405180910390f35b341561051257600080fd5b610162600435610f43565b005b341561052a57600080fd5b610162600435610fd9565b005b341561054257600080fd5b61025660048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506110cb95505050505050565b60405190815260200160405180910390f35b34156105b957600080fd5b6102566110eb565b60405190815260200160405180910390f35b34156105de57600080fd5b6102566110f0565b60405190815260200160405180910390f35b341561060357600080fd5b610162600160a060020a03600435811690602435166110f6565b005b341561062a57600080fd5b6101626004356112b7565b005b600380548290811061064557fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600030600160a060020a031633600160a060020a031614151561068b57600080fd5b600160a060020a038216600090815260026020526040902054829060ff1615156106b457600080fd5b600160a060020a0383166000908152600260205260408120805460ff1916905591505b600354600019018210156107af5782600160a060020a03166003838154811015156106fe57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031614156107a35760038054600019810190811061073f57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660038381548110151561076e57fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a031602179055506107af565b5b6001909101906106d7565b6003805460001901906107c290826115cd565b5060035460045411156107db576003546107db90610f43565b5b82600160a060020a03167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25b5b505b5050565b33600160a060020a03811660009081526002602052604090205460ff16151561084257600080fd5b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff16151561087757600080fd5b600084815260208190526040902060030154849060ff161561089857600080fd5b6000858152600160209081526040808320600160a060020a033316808552925291829020805460ff1916905586917ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9905160405180910390a35b5b505b50505b5050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b6000805b6005548110156109985783801561095e575060008181526020819052604090206003015460ff16155b806109825750828015610982575060008181526020819052604090206003015460ff165b5b1561098f576001820191505b5b600101610935565b5b5092915050565b30600160a060020a031633600160a060020a03161415156109c057600080fd5b600160a060020a038116600090815260026020526040902054819060ff16156109e857600080fd5b81600160a060020a03811615156109fe57600080fd5b60038054905060010160045460328211158015610a1b5750818111155b8015610a2657508015155b8015610a3157508115155b1515610a3c57600080fd5b600160a060020a0385166000908152600260205260409020805460ff191660019081179091556003805490918101610a7483826115cd565b916000526020600020900160005b8154600160a060020a03808a166101009390930a8381029102199091161790915590507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b50505b505b505b50565b600080805b600354811015610b695760008481526001602052604081206003805491929184908110610b0b57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610b4d576001820191505b600454821415610b605760019250610b69565b5b600101610ae2565b5b5050919050565b6000805b600354811015610be95760008381526001602052604081206003805491929184908110610b9e57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610be0576001820191505b5b600101610b75565b5b50919050565b6000602081905290815260409020805460018201546003830154600160a060020a0390921692909160029091019060ff1684565b610c2c611621565b6003805480602002602001604051908101604052809291908181526020018280548015610c8257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610c64575b505050505090505b90565b610c95611621565b610c9d611621565b600080600554604051805910610cb05750595b908082528060200260200182016040525b50925060009150600090505b600554811015610d4857858015610cf6575060008181526020819052604090206003015460ff16155b80610d1a5750848015610d1a575060008181526020819052604090206003015460ff165b5b15610d3f5780838381518110610d2d57fe5b60209081029091010152600191909101905b5b600101610ccd565b878703604051805910610d585750595b908082528060200260200182016040525b5093508790505b86811015610daf57828181518110610d8457fe5b906020019060200201518489830381518110610d9c57fe5b602090810290910101525b600101610d70565b5b505050949350505050565b610dc3611621565b610dcb611621565b6003546000908190604051805910610de05750595b908082528060200260200182016040525b50925060009150600090505b600354811015610ec35760008581526001602052604081206003805491929184908110610e2657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610eba576003805482908110610e6f57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316838381518110610e9b57fe5b600160a060020a03909216602092830290910190910152600191909101905b5b600101610dfd565b81604051805910610ed15750595b908082528060200260200182016040525b509350600090505b81811015610f3457828181518110610efe57fe5b90602001906020020151848281518110610f1457fe5b600160a060020a039092166020928302909101909101525b600101610eea565b5b505050919050565b60055481565b30600160a060020a031633600160a060020a0316141515610f6357600080fd5b6003548160328211801590610f785750818111155b8015610f8357508015155b8015610f8e57508115155b1515610f9957600080fd5b60048390557fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a8360405190815260200160405180910390a15b5b50505b50565b33600160a060020a03811660009081526002602052604090205460ff16151561100157600080fd5b6000828152602081905260409020548290600160a060020a0316151561102657600080fd5b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561105a57600080fd5b6000858152600160208181526040808420600160a060020a033316808652925292839020805460ff191690921790915586917f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef905160405180910390a36108f2856112b7565b5b5b50505b505b5050565b60006110d88484846114a6565b90506110e381610fd9565b5b9392505050565b603281565b60045481565b600030600160a060020a031633600160a060020a031614151561111857600080fd5b600160a060020a038316600090815260026020526040902054839060ff16151561114157600080fd5b600160a060020a038316600090815260026020526040902054839060ff161561116957600080fd5b600092505b6003548310156112115784600160a060020a031660038481548110151561119157fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316141561120557836003848154811015156111d057fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a03160217905550611211565b5b60019092019161116e565b600160a060020a03808616600081815260026020526040808220805460ff199081169091559388168252908190208054909316600117909255907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90905160405180910390a283600160a060020a03167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b505b505b505050565b33600160a060020a03811660009081526002602052604081205490919060ff1615156112e257600080fd5b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff16151561131757600080fd5b600085815260208190526040902060030154859060ff161561133857600080fd5b61134186610add565b15611499576000868152602081815260409182902060038101805460ff1916600190811790915581548183015460028085018054959c5061142897600160a060020a039094169692956000199581161561010002959095019094160492918391601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b50505050506115a5565b1561145f57857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611499565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260038501805460ff191690555b5b5b5b505b50505b505050565b600083600160a060020a03811615156114be57600080fd5b600554915060806040519081016040908152600160a060020a0387168252602080830187905281830186905260006060840181905285815290819052208151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201518160010155604082015181600201908051611549929160200190611645565b506060820151600391909101805460ff191691151591909117905550600580546001019055817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a25b5b509392505050565b6000806040516020840160008287838a8c6187965a03f1925050508091505b50949350505050565b815481835581811511610813576000838152602090206108139181019083016116c4565b5b505050565b815481835581811511610813576000838152602090206108139181019083016116c4565b5b505050565b60206040519081016040526000815290565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061168657805160ff19168380011785556116b3565b828001600101855582156116b3579182015b828111156116b3578251825591602001919060010190611698565b5b506116c09291506116c4565b5090565b610c8a91905b808211156116c057600081556001016116ca565b5090565b905600a165627a7a723058201f91c4a40456a2d7c2b12df8a71ae6f4f95caac60bffbc9f72e30c450042f5eb002900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000800000000000000000000000082a8439ba037f88bc73c4ccf55292e158a67f12500000000000000000000000010c9fd785d6ae23d90bf70358cb3e6f3e8c3759c00000000000000000000000034460ef4c96405e05a2f0434c1d32ce5de50c001000000000000000000000000ebd35752d5fa68fcfb77030c101d41de4d438800000000000000000000000000df934780e40d9449035779a58f9d25d64fa1ffc70000000000000000000000008060ca5327e0edb3c857d2fa64d9f9106d34cf90000000000000000000000000ffe5437c1b64471797fad49ff5d68ce330bcf439000000000000000000000000b0cd1c7d81c9a204d620aa2ee0ec85777d4ad817
Deployed Bytecode
0x6060604052361561011a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c278114610165578063173825d91461019757806320ea8d86146101b85780632f54bf6e146101d05780633411c81c1461020357806354741525146102395780637065cb4814610268578063784547a7146102895780638b51d13f146102b35780639ace38c2146102db578063a0e67e2b1461039a578063a8abe69a14610401578063b5dc40c314610478578063b77bf600146104e2578063ba51a6df14610507578063c01a8c841461051f578063c642747414610537578063d74f8edd146105ae578063dc8452cd146105d3578063e20056e6146105f8578063ee22610b1461061f575b5b60003411156101625733600160a060020a03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405190815260200160405180910390a25b5b005b341561017057600080fd5b61017b600435610637565b604051600160a060020a03909116815260200160405180910390f35b34156101a257600080fd5b610162600160a060020a0360043516610669565b005b34156101c357600080fd5b61016260043561081a565b005b34156101db57600080fd5b6101ef600160a060020a03600435166108fc565b604051901515815260200160405180910390f35b341561020e57600080fd5b6101ef600435600160a060020a0360243516610911565b604051901515815260200160405180910390f35b341561024457600080fd5b61025660043515156024351515610931565b60405190815260200160405180910390f35b341561027357600080fd5b610162600160a060020a03600435166109a0565b005b341561029457600080fd5b6101ef600435610add565b604051901515815260200160405180910390f35b34156102be57600080fd5b610256600435610b71565b60405190815260200160405180910390f35b34156102e657600080fd5b6102f1600435610bf0565b604051600160a060020a03851681526020810184905281151560608201526080604082018181528454600260001961010060018416150201909116049183018290529060a0830190859080156103885780601f1061035d57610100808354040283529160200191610388565b820191906000526020600020905b81548152906001019060200180831161036b57829003601f168201915b50509550505050505060405180910390f35b34156103a557600080fd5b6103ad610c24565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b341561040c57600080fd5b6103ad60043560243560443515156064351515610c8d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b341561048357600080fd5b6103ad600435610dbb565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ed5780820151818401525b6020016103d4565b505050509050019250505060405180910390f35b34156104ed57600080fd5b610256610f3d565b60405190815260200160405180910390f35b341561051257600080fd5b610162600435610f43565b005b341561052a57600080fd5b610162600435610fd9565b005b341561054257600080fd5b61025660048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506110cb95505050505050565b60405190815260200160405180910390f35b34156105b957600080fd5b6102566110eb565b60405190815260200160405180910390f35b34156105de57600080fd5b6102566110f0565b60405190815260200160405180910390f35b341561060357600080fd5b610162600160a060020a03600435811690602435166110f6565b005b341561062a57600080fd5b6101626004356112b7565b005b600380548290811061064557fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600030600160a060020a031633600160a060020a031614151561068b57600080fd5b600160a060020a038216600090815260026020526040902054829060ff1615156106b457600080fd5b600160a060020a0383166000908152600260205260408120805460ff1916905591505b600354600019018210156107af5782600160a060020a03166003838154811015156106fe57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031614156107a35760038054600019810190811061073f57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660038381548110151561076e57fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a031602179055506107af565b5b6001909101906106d7565b6003805460001901906107c290826115cd565b5060035460045411156107db576003546107db90610f43565b5b82600160a060020a03167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25b5b505b5050565b33600160a060020a03811660009081526002602052604090205460ff16151561084257600080fd5b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff16151561087757600080fd5b600084815260208190526040902060030154849060ff161561089857600080fd5b6000858152600160209081526040808320600160a060020a033316808552925291829020805460ff1916905586917ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9905160405180910390a35b5b505b50505b5050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b6000805b6005548110156109985783801561095e575060008181526020819052604090206003015460ff16155b806109825750828015610982575060008181526020819052604090206003015460ff165b5b1561098f576001820191505b5b600101610935565b5b5092915050565b30600160a060020a031633600160a060020a03161415156109c057600080fd5b600160a060020a038116600090815260026020526040902054819060ff16156109e857600080fd5b81600160a060020a03811615156109fe57600080fd5b60038054905060010160045460328211158015610a1b5750818111155b8015610a2657508015155b8015610a3157508115155b1515610a3c57600080fd5b600160a060020a0385166000908152600260205260409020805460ff191660019081179091556003805490918101610a7483826115cd565b916000526020600020900160005b8154600160a060020a03808a166101009390930a8381029102199091161790915590507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b50505b505b505b50565b600080805b600354811015610b695760008481526001602052604081206003805491929184908110610b0b57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610b4d576001820191505b600454821415610b605760019250610b69565b5b600101610ae2565b5b5050919050565b6000805b600354811015610be95760008381526001602052604081206003805491929184908110610b9e57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610be0576001820191505b5b600101610b75565b5b50919050565b6000602081905290815260409020805460018201546003830154600160a060020a0390921692909160029091019060ff1684565b610c2c611621565b6003805480602002602001604051908101604052809291908181526020018280548015610c8257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610c64575b505050505090505b90565b610c95611621565b610c9d611621565b600080600554604051805910610cb05750595b908082528060200260200182016040525b50925060009150600090505b600554811015610d4857858015610cf6575060008181526020819052604090206003015460ff16155b80610d1a5750848015610d1a575060008181526020819052604090206003015460ff165b5b15610d3f5780838381518110610d2d57fe5b60209081029091010152600191909101905b5b600101610ccd565b878703604051805910610d585750595b908082528060200260200182016040525b5093508790505b86811015610daf57828181518110610d8457fe5b906020019060200201518489830381518110610d9c57fe5b602090810290910101525b600101610d70565b5b505050949350505050565b610dc3611621565b610dcb611621565b6003546000908190604051805910610de05750595b908082528060200260200182016040525b50925060009150600090505b600354811015610ec35760008581526001602052604081206003805491929184908110610e2657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610eba576003805482908110610e6f57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316838381518110610e9b57fe5b600160a060020a03909216602092830290910190910152600191909101905b5b600101610dfd565b81604051805910610ed15750595b908082528060200260200182016040525b509350600090505b81811015610f3457828181518110610efe57fe5b90602001906020020151848281518110610f1457fe5b600160a060020a039092166020928302909101909101525b600101610eea565b5b505050919050565b60055481565b30600160a060020a031633600160a060020a0316141515610f6357600080fd5b6003548160328211801590610f785750818111155b8015610f8357508015155b8015610f8e57508115155b1515610f9957600080fd5b60048390557fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a8360405190815260200160405180910390a15b5b50505b50565b33600160a060020a03811660009081526002602052604090205460ff16151561100157600080fd5b6000828152602081905260409020548290600160a060020a0316151561102657600080fd5b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561105a57600080fd5b6000858152600160208181526040808420600160a060020a033316808652925292839020805460ff191690921790915586917f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef905160405180910390a36108f2856112b7565b5b5b50505b505b5050565b60006110d88484846114a6565b90506110e381610fd9565b5b9392505050565b603281565b60045481565b600030600160a060020a031633600160a060020a031614151561111857600080fd5b600160a060020a038316600090815260026020526040902054839060ff16151561114157600080fd5b600160a060020a038316600090815260026020526040902054839060ff161561116957600080fd5b600092505b6003548310156112115784600160a060020a031660038481548110151561119157fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316141561120557836003848154811015156111d057fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a03160217905550611211565b5b60019092019161116e565b600160a060020a03808616600081815260026020526040808220805460ff199081169091559388168252908190208054909316600117909255907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90905160405180910390a283600160a060020a03167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b505b505b505050565b33600160a060020a03811660009081526002602052604081205490919060ff1615156112e257600080fd5b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff16151561131757600080fd5b600085815260208190526040902060030154859060ff161561133857600080fd5b61134186610add565b15611499576000868152602081815260409182902060038101805460ff1916600190811790915581548183015460028085018054959c5061142897600160a060020a039094169692956000199581161561010002959095019094160492918391601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b50505050506115a5565b1561145f57857f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2611499565b857f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260038501805460ff191690555b5b5b5b505b50505b505050565b600083600160a060020a03811615156114be57600080fd5b600554915060806040519081016040908152600160a060020a0387168252602080830187905281830186905260006060840181905285815290819052208151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201518160010155604082015181600201908051611549929160200190611645565b506060820151600391909101805460ff191691151591909117905550600580546001019055817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a25b5b509392505050565b6000806040516020840160008287838a8c6187965a03f1925050508091505b50949350505050565b815481835581811511610813576000838152602090206108139181019083016116c4565b5b505050565b815481835581811511610813576000838152602090206108139181019083016116c4565b5b505050565b60206040519081016040526000815290565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061168657805160ff19168380011785556116b3565b828001600101855582156116b3579182015b828111156116b3578251825591602001919060010190611698565b5b506116c09291506116c4565b5090565b610c8a91905b808211156116c057600081556001016116ca565b5090565b905600a165627a7a723058201f91c4a40456a2d7c2b12df8a71ae6f4f95caac60bffbc9f72e30c450042f5eb0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000800000000000000000000000082a8439ba037f88bc73c4ccf55292e158a67f12500000000000000000000000010c9fd785d6ae23d90bf70358cb3e6f3e8c3759c00000000000000000000000034460ef4c96405e05a2f0434c1d32ce5de50c001000000000000000000000000ebd35752d5fa68fcfb77030c101d41de4d438800000000000000000000000000df934780e40d9449035779a58f9d25d64fa1ffc70000000000000000000000008060ca5327e0edb3c857d2fa64d9f9106d34cf90000000000000000000000000ffe5437c1b64471797fad49ff5d68ce330bcf439000000000000000000000000b0cd1c7d81c9a204d620aa2ee0ec85777d4ad817
-----Decoded View---------------
Arg [0] : _owners (address[]): 0x82a8439BA037f88bC73c4CCF55292e158A67f125,0x10c9FD785D6AE23D90Bf70358Cb3e6F3E8C3759C,0x34460EF4c96405E05a2F0434c1D32CE5dE50C001,0xEbD35752d5FA68fcfB77030C101D41De4D438800,0xDf934780e40d9449035779a58F9d25d64Fa1FfC7,0x8060Ca5327E0edb3C857D2FA64D9F9106D34cf90,0xfFE5437c1B64471797fad49ff5d68Ce330BCf439,0xb0Cd1c7D81c9A204d620aA2eE0Ec85777d4aD817
Arg [1] : _required (uint256): 5
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [3] : 00000000000000000000000082a8439ba037f88bc73c4ccf55292e158a67f125
Arg [4] : 00000000000000000000000010c9fd785d6ae23d90bf70358cb3e6f3e8c3759c
Arg [5] : 00000000000000000000000034460ef4c96405e05a2f0434c1d32ce5de50c001
Arg [6] : 000000000000000000000000ebd35752d5fa68fcfb77030c101d41de4d438800
Arg [7] : 000000000000000000000000df934780e40d9449035779a58f9d25d64fa1ffc7
Arg [8] : 0000000000000000000000008060ca5327e0edb3c857d2fa64d9f9106d34cf90
Arg [9] : 000000000000000000000000ffe5437c1b64471797fad49ff5d68ce330bcf439
Arg [10] : 000000000000000000000000b0cd1c7d81c9a204d620aa2ee0ec85777d4ad817
Swarm Source
bzzr://1f91c4a40456a2d7c2b12df8a71ae6f4f95caac60bffbc9f72e30c450042f5eb
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.