More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 177 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Submit Transacti... | 5823593 | 2219 days ago | IN | 0 ETH | 0.00085912 | ||||
Submit Transacti... | 5615166 | 2256 days ago | IN | 0 ETH | 0.00112232 | ||||
Submit Transacti... | 5615156 | 2256 days ago | IN | 0 ETH | 0.00118248 | ||||
Submit Transacti... | 5598413 | 2259 days ago | IN | 0 ETH | 0.00051643 | ||||
Submit Transacti... | 5586590 | 2261 days ago | IN | 0 ETH | 0.0009727 | ||||
Submit Transacti... | 5586582 | 2261 days ago | IN | 0 ETH | 0.00068858 | ||||
Transfer | 5585763 | 2261 days ago | IN | 700 ETH | 0.00116826 | ||||
Submit Transacti... | 5579903 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579890 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579884 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579875 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579865 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579857 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579850 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579840 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579824 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579815 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579810 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579803 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579792 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579780 | 2262 days ago | IN | 0 ETH | 0.00032398 | ||||
Submit Transacti... | 5579764 | 2262 days ago | IN | 0 ETH | 0.0003241 | ||||
Submit Transacti... | 5579756 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579734 | 2262 days ago | IN | 0 ETH | 0.00032423 | ||||
Submit Transacti... | 5579718 | 2262 days ago | IN | 0 ETH | 0.00032423 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5823593 | 2219 days ago | 0.038 ETH | ||||
5615166 | 2256 days ago | 212.71565718 ETH | ||||
5615156 | 2256 days ago | 274.72527472 ETH | ||||
5598413 | 2259 days ago | 154.05585854 ETH | ||||
5586590 | 2261 days ago | 69.90305064 ETH | ||||
5586582 | 2261 days ago | 33.69458836 ETH | ||||
5579903 | 2262 days ago | 2,775.95797261 ETH | ||||
5579890 | 2262 days ago | 1,657.31290694 ETH | ||||
5579884 | 2262 days ago | 669.87371298 ETH | ||||
5579875 | 2262 days ago | 666.08713374 ETH | ||||
5579865 | 2262 days ago | 434.89247639 ETH | ||||
5579857 | 2262 days ago | 415.84285836 ETH | ||||
5579850 | 2262 days ago | 346.62747295 ETH | ||||
5579840 | 2262 days ago | 299.20682603 ETH | ||||
5579824 | 2262 days ago | 293.4275467 ETH | ||||
5579815 | 2262 days ago | 161.06452662 ETH | ||||
5579810 | 2262 days ago | 141.8998668 ETH | ||||
5579803 | 2262 days ago | 140.33149811 ETH | ||||
5579792 | 2262 days ago | 138.87663882 ETH | ||||
5579780 | 2262 days ago | 138.79789863 ETH | ||||
5579764 | 2262 days ago | 138.72442445 ETH | ||||
5579756 | 2262 days ago | 138.68770195 ETH | ||||
5579734 | 2262 days ago | 138.68770195 ETH | ||||
5579718 | 2262 days ago | 138.68770195 ETH | ||||
5579710 | 2262 days ago | 138.65098918 ETH |
Loading...
Loading
Contract Name:
MultiSigWalletWithDailyLimit
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-22 */ 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() { if (msg.sender != address(this)) throw; _; } modifier ownerDoesNotExist(address owner) { if (isOwner[owner]) throw; _; } modifier ownerExists(address owner) { if (!isOwner[owner]) throw; _; } modifier transactionExists(uint transactionId) { if (transactions[transactionId].destination == 0) throw; _; } modifier confirmed(uint transactionId, address owner) { if (!confirmations[transactionId][owner]) throw; _; } modifier notConfirmed(uint transactionId, address owner) { if (confirmations[transactionId][owner]) throw; _; } modifier notExecuted(uint transactionId) { if (transactions[transactionId].executed) throw; _; } modifier notNull(address _address) { if (_address == 0) throw; _; } modifier validRequirement(uint ownerCount, uint _required) { if ( ownerCount > MAX_OWNER_COUNT || _required > ownerCount || _required == 0 || ownerCount == 0) throw; _; } /// @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++) { if (isOwner[_owners[i]] || _owners[i] == 0) throw; 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 tx = transactions[transactionId]; tx.executed = true; if (tx.destination.call.value(tx.value)(tx.data)) Execution(transactionId); else { ExecutionFailure(transactionId); tx.executed = false; } } } /// @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]; } } /// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig. /// @author Stefan George - <[email protected]> contract MultiSigWalletWithDailyLimit is MultiSigWallet { /* * Events */ event DailyLimitChange(uint dailyLimit); /* * Storage */ uint public dailyLimit; uint public lastDay; uint public spentToday; /* * Public functions */ /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit. /// @param _owners List of initial owners. /// @param _required Number of required confirmations. /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis. function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit) public MultiSigWallet(_owners, _required) { dailyLimit = _dailyLimit; } /// @dev Allows to change the daily limit. Transaction has to be sent by wallet. /// @param _dailyLimit Amount in wei. function changeDailyLimit(uint _dailyLimit) public onlyWallet { dailyLimit = _dailyLimit; DailyLimitChange(_dailyLimit); } /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached. /// @param transactionId Transaction ID. function executeTransaction(uint transactionId) public ownerExists(msg.sender) confirmed(transactionId, msg.sender) notExecuted(transactionId) { Transaction tx = transactions[transactionId]; bool _confirmed = isConfirmed(transactionId); if (_confirmed || tx.data.length == 0 && isUnderLimit(tx.value)) { tx.executed = true; if (!_confirmed) spentToday += tx.value; if (tx.destination.call.value(tx.value)(tx.data)) Execution(transactionId); else { ExecutionFailure(transactionId); tx.executed = false; if (!_confirmed) spentToday -= tx.value; } } } /* * Internal functions */ /// @dev Returns if amount is within daily limit and resets spentToday after one day. /// @param amount Amount to withdraw. /// @return Returns if amount is under daily limit. function isUnderLimit(uint amount) internal returns (bool) { if (now > lastDay + 24 hours) { lastDay = now; spentToday = 0; } if (spentToday + amount > dailyLimit || spentToday + amount < spentToday) return false; return true; } /* * Web3 call functions */ /// @dev Returns maximum withdraw amount. /// @return Returns amount. function calcMaxWithdraw() public constant returns (uint) { if (now > lastDay + 24 hours) return dailyLimit; if (dailyLimit < spentToday) return 0; return dailyLimit - spentToday; } }
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,"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":"calcMaxWithdraw","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lastDay","outputs":[{"name":"","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":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"changeDailyLimit","outputs":[],"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"},{"constant":true,"inputs":[],"name":"spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_dailyLimit","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dailyLimit","type":"uint256"}],"name":"DailyLimitChange","type":"event"},{"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
606060405234156200001057600080fd5b6040516200263038038062002630833981016040528080518201919060200180519060200190919080519060200190919050505b82825b600082518260328211806200005b57508181115b80620000675750600081145b80620000735750600082145b156200007e57600080fd5b600092505b8451831015620001b657600260008685815181101515620000a057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806200012c5750600085848151811015156200010a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16145b156200013757600080fd5b60016002600087868151811015156200014c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b828060010193505062000083565b8460039080519060200190620001ce929190620001ee565b50836004819055505b5b5050505050806006819055505b505050620002c3565b8280548282559060005260206000209081019282156200026a579160200282015b82811115620002695782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200020f565b5b5090506200027991906200027d565b5090565b620002c091905b80821115620002bc57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000284565b5090565b90565b61235d80620002d36000396000f30060606040523615610152576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c27146101ae578063173825d91461021157806320ea8d861461024a5780632f54bf6e1461026d5780633411c81c146102be5780634bc9fdc214610318578063547415251461034157806367eeba0c146103855780636b0c932d146103ae5780637065cb48146103d7578063784547a7146104105780638b51d13f1461044b5780639ace38c214610482578063a0e67e2b14610580578063a8abe69a146105eb578063b5dc40c314610683578063b77bf600146106fc578063ba51a6df14610725578063c01a8c8414610748578063c64274741461076b578063cea0862114610804578063d74f8edd14610827578063dc8452cd14610850578063e20056e614610879578063ee22610b146108d1578063f059cf2b146108f4575b5b60003411156101ab573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b5b005b34156101b957600080fd5b6101cf600480803590602001909190505061091d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021c57600080fd5b610248600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095d565b005b341561025557600080fd5b61026b6004808035906020019091905050610c00565b005b341561027857600080fd5b6102a4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610daa565b604051808215151515815260200191505060405180910390f35b34156102c957600080fd5b6102fe600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dca565b604051808215151515815260200191505060405180910390f35b341561032357600080fd5b61032b610df9565b6040518082815260200191505060405180910390f35b341561034c57600080fd5b61036f600480803515159060200190919080351515906020019091905050610e36565b6040518082815260200191505060405180910390f35b341561039057600080fd5b610398610eca565b6040518082815260200191505060405180910390f35b34156103b957600080fd5b6103c1610ed0565b6040518082815260200191505060405180910390f35b34156103e257600080fd5b61040e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed6565b005b341561041b57600080fd5b61043160048080359060200190919050506110d2565b604051808215151515815260200191505060405180910390f35b341561045657600080fd5b61046c60048080359060200190919050506111ba565b6040518082815260200191505060405180910390f35b341561048d57600080fd5b6104a36004808035906020019091905050611289565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018315151515815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561056e5780601f106105435761010080835404028352916020019161056e565b820191906000526020600020905b81548152906001019060200180831161055157829003601f168201915b50509550505050505060405180910390f35b341561058b57600080fd5b6105936112e5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d75780820151818401525b6020810190506105bb565b505050509050019250505060405180910390f35b34156105f657600080fd5b61062b60048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061137a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561066f5780820151818401525b602081019050610653565b505050509050019250505060405180910390f35b341561068e57600080fd5b6106a460048080359060200190919050506114db565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e85780820151818401525b6020810190506106cc565b505050509050019250505060405180910390f35b341561070757600080fd5b61070f61170c565b6040518082815260200191505060405180910390f35b341561073057600080fd5b6107466004808035906020019091905050611712565b005b341561075357600080fd5b61076960048080359060200190919050506117c7565b005b341561077657600080fd5b6107ee600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506119a4565b6040518082815260200191505060405180910390f35b341561080f57600080fd5b61082560048080359060200190919050506119c4565b005b341561083257600080fd5b61083a611a41565b6040518082815260200191505060405180910390f35b341561085b57600080fd5b610863611a46565b6040518082815260200191505060405180910390f35b341561088457600080fd5b6108cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a4c565b005b34156108dc57600080fd5b6108f26004808035906020019091905050611d68565b005b34156108ff57600080fd5b610907612062565b6040518082815260200191505060405180910390f35b60038181548110151561092c57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561099957600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156109f257600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610b7e578273ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a8557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b70576003600160038054905003815481101515610ae557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610b2157fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7e565b5b8180600101925050610a4f565b6001600381818054905003915081610b96919061220c565b506003805490506004541115610bb557610bb4600380549050611712565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25b5b505b5050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c5957600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cc457600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff1615610cf257600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35b5b505b50505b5050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60006201518060075401421115610e14576006549050610e33565b6008546006541015610e295760009050610e33565b6008546006540390505b90565b600080600090505b600554811015610ec257838015610e75575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610ea85750828015610ea7575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610eb4576001820191505b5b8080600101915050610e3e565b5b5092915050565b60065481565b60075481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1057600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f6857600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff161415610f8d57600080fd5b6001600380549050016004546032821180610fa757508181115b80610fb25750600081145b80610fbd5750600082145b15610fc757600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600380548060010182816110339190612238565b916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b50505b505b505b50565b6000806000809150600090505b6003805490508110156111b25760016000858152602001908152602001600020600060038381548110151561111057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611191576001820191505b6004548214156111a457600192506111b3565b5b80806001019150506110df565b5b5050919050565b600080600090505b600380549050811015611282576001600084815260200190815260200160002060006003838154811015156111f357fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611274576001820191505b5b80806001019150506111c2565b5b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6112ed612264565b600380548060200260200160405190810160405280929190818152602001828054801561136f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611325575b505050505090505b90565b611382612278565b61138a612278565b60008060055460405180591061139d5750595b908082528060200260200182016040525b50925060009150600090505b60055481101561145b578580156113f1575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806114245750848015611423575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b1561144d5780838381518110151561143857fe5b90602001906020020181815250506001820191505b5b80806001019150506113ba565b87870360405180591061146b5750595b908082528060200260200182016040525b5093508790505b868110156114cf57828181518110151561149957fe5b90602001906020020151848983038151811015156114b357fe5b90602001906020020181815250505b8080600101915050611483565b5b505050949350505050565b6114e3612264565b6114eb612264565b6000806003805490506040518059106115015750595b908082528060200260200182016040525b50925060009150600090505b6003805490508110156116645760016000868152602001908152602001600020600060038381548110151561154f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611656576003818154811015156115d857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110151561161357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b5b808060010191505061151e565b816040518059106116725750595b908082528060200260200182016040525b509350600090505b818110156117035782818151811015156116a157fe5b9060200190602002015184828151811015156116b957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b808060010191505061168b565b5b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b60038054905081603282118061176157508181115b8061176c5750600081145b806117775750600082145b1561178157600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a15b5b50505b50565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561182057600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561187a57600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118e457600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361199985611d68565b5b5b50505b505b5050565b60006119b1848484612068565b90506119bc816117c7565b5b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fe57600080fd5b806006819055507fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca2816040518082815260200191505060405180910390a15b5b50565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ae157600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b3957600080fd5b600092505b600380549050831015611c27578473ffffffffffffffffffffffffffffffffffffffff16600384815481101515611b7157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c195783600384815481101515611bca57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c27565b5b8280600101935050611b3e565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b505b505b505050565b60008033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dc457600080fd5b83336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e2f57600080fd5b8560008082815260200190815260200160002060030160009054906101000a900460ff1615611e5d57600080fd5b6000808881526020019081526020016000209550611e7a876110d2565b94508480611eb55750600086600201805460018160011615610100020316600290049050148015611eb45750611eb386600101546121ba565b5b5b156120555760018660030160006101000a81548160ff021916908315150217905550841515611ef35785600101546008600082825401925050819055505b8560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168660010154876002016040518082805460018160011615610100020316600290048015611f9c5780601f10611f7157610100808354040283529160200191611f9c565b820191906000526020600020905b815481529060010190602001808311611f7f57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611fed57867f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2612054565b867f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008660030160006101000a81548160ff0219169083151502179055508415156120535785600101546008600082825403925050819055505b5b5b5b5b505b50505b50505050565b60085481565b60008360008173ffffffffffffffffffffffffffffffffffffffff16141561208f57600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201908051906020019061214e92919061228c565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a25b5b509392505050565b600062015180600754014211156121db574260078190555060006008819055505b600654826008540111806121f457506008548260085401105b156122025760009050612207565b600190505b919050565b81548183558181151161223357818360005260206000209182019101612232919061230c565b5b505050565b81548183558181151161225f5781836000526020600020918201910161225e919061230c565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122cd57805160ff19168380011785556122fb565b828001600101855582156122fb579182015b828111156122fa5782518255916020019190600101906122df565b5b509050612308919061230c565b5090565b61232e91905b8082111561232a576000816000905550600101612312565b5090565b905600a165627a7a7230582000cec21dc1e72625952c957814e3c032536fc83fe5d6dddf631b0c66fb24d9ec002900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000300000000000000000000000031f043efbd719cbddab6a8b80ccdb37f91e86e3c000000000000000000000000cae48e58c0a964c9ecea452c12ed5b02fc574a3d0000000000000000000000008f0450617d3fe2eb00d57c2c102a6130cf94875e
Deployed Bytecode
0x60606040523615610152576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c27146101ae578063173825d91461021157806320ea8d861461024a5780632f54bf6e1461026d5780633411c81c146102be5780634bc9fdc214610318578063547415251461034157806367eeba0c146103855780636b0c932d146103ae5780637065cb48146103d7578063784547a7146104105780638b51d13f1461044b5780639ace38c214610482578063a0e67e2b14610580578063a8abe69a146105eb578063b5dc40c314610683578063b77bf600146106fc578063ba51a6df14610725578063c01a8c8414610748578063c64274741461076b578063cea0862114610804578063d74f8edd14610827578063dc8452cd14610850578063e20056e614610879578063ee22610b146108d1578063f059cf2b146108f4575b5b60003411156101ab573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b5b005b34156101b957600080fd5b6101cf600480803590602001909190505061091d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021c57600080fd5b610248600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095d565b005b341561025557600080fd5b61026b6004808035906020019091905050610c00565b005b341561027857600080fd5b6102a4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610daa565b604051808215151515815260200191505060405180910390f35b34156102c957600080fd5b6102fe600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dca565b604051808215151515815260200191505060405180910390f35b341561032357600080fd5b61032b610df9565b6040518082815260200191505060405180910390f35b341561034c57600080fd5b61036f600480803515159060200190919080351515906020019091905050610e36565b6040518082815260200191505060405180910390f35b341561039057600080fd5b610398610eca565b6040518082815260200191505060405180910390f35b34156103b957600080fd5b6103c1610ed0565b6040518082815260200191505060405180910390f35b34156103e257600080fd5b61040e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed6565b005b341561041b57600080fd5b61043160048080359060200190919050506110d2565b604051808215151515815260200191505060405180910390f35b341561045657600080fd5b61046c60048080359060200190919050506111ba565b6040518082815260200191505060405180910390f35b341561048d57600080fd5b6104a36004808035906020019091905050611289565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018315151515815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561056e5780601f106105435761010080835404028352916020019161056e565b820191906000526020600020905b81548152906001019060200180831161055157829003601f168201915b50509550505050505060405180910390f35b341561058b57600080fd5b6105936112e5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d75780820151818401525b6020810190506105bb565b505050509050019250505060405180910390f35b34156105f657600080fd5b61062b60048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061137a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561066f5780820151818401525b602081019050610653565b505050509050019250505060405180910390f35b341561068e57600080fd5b6106a460048080359060200190919050506114db565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e85780820151818401525b6020810190506106cc565b505050509050019250505060405180910390f35b341561070757600080fd5b61070f61170c565b6040518082815260200191505060405180910390f35b341561073057600080fd5b6107466004808035906020019091905050611712565b005b341561075357600080fd5b61076960048080359060200190919050506117c7565b005b341561077657600080fd5b6107ee600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506119a4565b6040518082815260200191505060405180910390f35b341561080f57600080fd5b61082560048080359060200190919050506119c4565b005b341561083257600080fd5b61083a611a41565b6040518082815260200191505060405180910390f35b341561085b57600080fd5b610863611a46565b6040518082815260200191505060405180910390f35b341561088457600080fd5b6108cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a4c565b005b34156108dc57600080fd5b6108f26004808035906020019091905050611d68565b005b34156108ff57600080fd5b610907612062565b6040518082815260200191505060405180910390f35b60038181548110151561092c57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561099957600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156109f257600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610b7e578273ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a8557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b70576003600160038054905003815481101515610ae557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610b2157fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7e565b5b8180600101925050610a4f565b6001600381818054905003915081610b96919061220c565b506003805490506004541115610bb557610bb4600380549050611712565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25b5b505b5050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c5957600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cc457600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff1615610cf257600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35b5b505b50505b5050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60006201518060075401421115610e14576006549050610e33565b6008546006541015610e295760009050610e33565b6008546006540390505b90565b600080600090505b600554811015610ec257838015610e75575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610ea85750828015610ea7575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610eb4576001820191505b5b8080600101915050610e3e565b5b5092915050565b60065481565b60075481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1057600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f6857600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff161415610f8d57600080fd5b6001600380549050016004546032821180610fa757508181115b80610fb25750600081145b80610fbd5750600082145b15610fc757600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600380548060010182816110339190612238565b916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b50505b505b505b50565b6000806000809150600090505b6003805490508110156111b25760016000858152602001908152602001600020600060038381548110151561111057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611191576001820191505b6004548214156111a457600192506111b3565b5b80806001019150506110df565b5b5050919050565b600080600090505b600380549050811015611282576001600084815260200190815260200160002060006003838154811015156111f357fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611274576001820191505b5b80806001019150506111c2565b5b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6112ed612264565b600380548060200260200160405190810160405280929190818152602001828054801561136f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611325575b505050505090505b90565b611382612278565b61138a612278565b60008060055460405180591061139d5750595b908082528060200260200182016040525b50925060009150600090505b60055481101561145b578580156113f1575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806114245750848015611423575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b1561144d5780838381518110151561143857fe5b90602001906020020181815250506001820191505b5b80806001019150506113ba565b87870360405180591061146b5750595b908082528060200260200182016040525b5093508790505b868110156114cf57828181518110151561149957fe5b90602001906020020151848983038151811015156114b357fe5b90602001906020020181815250505b8080600101915050611483565b5b505050949350505050565b6114e3612264565b6114eb612264565b6000806003805490506040518059106115015750595b908082528060200260200182016040525b50925060009150600090505b6003805490508110156116645760016000868152602001908152602001600020600060038381548110151561154f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611656576003818154811015156115d857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110151561161357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b5b808060010191505061151e565b816040518059106116725750595b908082528060200260200182016040525b509350600090505b818110156117035782818151811015156116a157fe5b9060200190602002015184828151811015156116b957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b808060010191505061168b565b5b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b60038054905081603282118061176157508181115b8061176c5750600081145b806117775750600082145b1561178157600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a15b5b50505b50565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561182057600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561187a57600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118e457600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361199985611d68565b5b5b50505b505b5050565b60006119b1848484612068565b90506119bc816117c7565b5b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fe57600080fd5b806006819055507fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca2816040518082815260200191505060405180910390a15b5b50565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ae157600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b3957600080fd5b600092505b600380549050831015611c27578473ffffffffffffffffffffffffffffffffffffffff16600384815481101515611b7157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c195783600384815481101515611bca57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c27565b5b8280600101935050611b3e565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b5b505b505b505050565b60008033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dc457600080fd5b83336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e2f57600080fd5b8560008082815260200190815260200160002060030160009054906101000a900460ff1615611e5d57600080fd5b6000808881526020019081526020016000209550611e7a876110d2565b94508480611eb55750600086600201805460018160011615610100020316600290049050148015611eb45750611eb386600101546121ba565b5b5b156120555760018660030160006101000a81548160ff021916908315150217905550841515611ef35785600101546008600082825401925050819055505b8560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168660010154876002016040518082805460018160011615610100020316600290048015611f9c5780601f10611f7157610100808354040283529160200191611f9c565b820191906000526020600020905b815481529060010190602001808311611f7f57829003601f168201915b505091505060006040518083038185876187965a03f19250505015611fed57867f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2612054565b867f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008660030160006101000a81548160ff0219169083151502179055508415156120535785600101546008600082825403925050819055505b5b5b5b5b505b50505b50505050565b60085481565b60008360008173ffffffffffffffffffffffffffffffffffffffff16141561208f57600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201908051906020019061214e92919061228c565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a25b5b509392505050565b600062015180600754014211156121db574260078190555060006008819055505b600654826008540111806121f457506008548260085401105b156122025760009050612207565b600190505b919050565b81548183558181151161223357818360005260206000209182019101612232919061230c565b5b505050565b81548183558181151161225f5781836000526020600020918201910161225e919061230c565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122cd57805160ff19168380011785556122fb565b828001600101855582156122fb579182015b828111156122fa5782518255916020019190600101906122df565b5b509050612308919061230c565b5090565b61232e91905b8082111561232a576000816000905550600101612312565b5090565b905600a165627a7a7230582000cec21dc1e72625952c957814e3c032536fc83fe5d6dddf631b0c66fb24d9ec0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000300000000000000000000000031f043efbd719cbddab6a8b80ccdb37f91e86e3c000000000000000000000000cae48e58c0a964c9ecea452c12ed5b02fc574a3d0000000000000000000000008f0450617d3fe2eb00d57c2c102a6130cf94875e
-----Decoded View---------------
Arg [0] : _owners (address[]): 0x31f043EfBd719CbdDab6a8b80cCDb37f91e86E3C,0xcae48e58c0a964c9EceA452C12Ed5B02fc574A3D,0x8f0450617d3FE2eb00D57C2C102A6130cf94875E
Arg [1] : _required (uint256): 2
Arg [2] : _dailyLimit (uint256): 10
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 00000000000000000000000031f043efbd719cbddab6a8b80ccdb37f91e86e3c
Arg [5] : 000000000000000000000000cae48e58c0a964c9ecea452c12ed5b02fc574a3d
Arg [6] : 0000000000000000000000008f0450617d3fe2eb00d57c2c102a6130cf94875e
Swarm Source
bzzr://00cec21dc1e72625952c957814e3c032536fc83fe5d6dddf631b0c66fb24d9ec
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,443.78 | 0.00026684 | $0.918948 |
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.