More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 732 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdrawn Tokens | 5247001 | 2343 days ago | IN | 0 ETH | 0.00028882 | ||||
Collect Authoriz... | 4431982 | 2481 days ago | IN | 0 ETH | 0.00007944 | ||||
Collect Authoriz... | 4426634 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4426187 | 2482 days ago | IN | 0 ETH | 0.00015889 | ||||
Collect Authoriz... | 4426142 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4425053 | 2482 days ago | IN | 0 ETH | 0.0000942 | ||||
Collect Authoriz... | 4424312 | 2482 days ago | IN | 0 ETH | 0.00079448 | ||||
Collect Authoriz... | 4423841 | 2482 days ago | IN | 0 ETH | 0.00000595 | ||||
Collect Authoriz... | 4422585 | 2482 days ago | IN | 0 ETH | 0.00039724 | ||||
Collect Authoriz... | 4422580 | 2482 days ago | IN | 0 ETH | 0.00039724 | ||||
Collect Authoriz... | 4422458 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4422419 | 2482 days ago | IN | 0 ETH | 0.00019862 | ||||
Collect Authoriz... | 4422225 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4422225 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4422103 | 2482 days ago | IN | 0 ETH | 0.00000595 | ||||
Collect Authoriz... | 4422005 | 2482 days ago | IN | 0 ETH | 0.00019862 | ||||
Collect Authoriz... | 4421970 | 2482 days ago | IN | 0 ETH | 0.00031779 | ||||
Collect Authoriz... | 4421937 | 2482 days ago | IN | 0 ETH | 0.00015889 | ||||
Collect Authoriz... | 4421930 | 2482 days ago | IN | 0 ETH | 0.00000595 | ||||
Collect Authoriz... | 4421913 | 2482 days ago | IN | 0 ETH | 0.00015889 | ||||
Collect Authoriz... | 4421891 | 2482 days ago | IN | 0 ETH | 0.00000595 | ||||
Collect Authoriz... | 4421840 | 2482 days ago | IN | 0 ETH | 0.00021848 | ||||
Collect Authoriz... | 4421779 | 2482 days ago | IN | 0 ETH | 0.00079448 | ||||
Collect Authoriz... | 4421678 | 2482 days ago | IN | 0 ETH | 0.00079448 | ||||
Collect Authoriz... | 4421659 | 2482 days ago | IN | 0 ETH | 0.00079448 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4431982 | 2481 days ago | 1.20046609 ETH | ||||
4426634 | 2482 days ago | 8.92826167 ETH | ||||
4426187 | 2482 days ago | 4.93224648 ETH | ||||
4426142 | 2482 days ago | 4.77853769 ETH | ||||
4424312 | 2482 days ago | 2.71719571 ETH | ||||
4424194 | 2482 days ago | 0.00063517 ETH | ||||
4423841 | 2482 days ago | 0.82108253 ETH | ||||
4422585 | 2482 days ago | 1.60476968 ETH | ||||
4422580 | 2482 days ago | 2.6190266 ETH | ||||
4422458 | 2482 days ago | 5.6747125 ETH | ||||
4422422 | 2482 days ago | 8.92826167 ETH | ||||
4422419 | 2482 days ago | 28.89018803 ETH | ||||
4422293 | 2482 days ago | 2.6190266 ETH | ||||
4422225 | 2482 days ago | 25.699426 ETH | ||||
4422225 | 2482 days ago | 25.69685605 ETH | ||||
4422158 | 2482 days ago | 1.60476968 ETH | ||||
4422150 | 2482 days ago | 2.71719571 ETH | ||||
4422148 | 2482 days ago | 5.6747125 ETH | ||||
4422125 | 2482 days ago | 28.89018803 ETH | ||||
4422103 | 2482 days ago | 40.44750321 ETH | ||||
4422005 | 2482 days ago | 1.30500487 ETH | ||||
4421970 | 2482 days ago | 112.30328696 ETH | ||||
4421937 | 2482 days ago | 1.03405264 ETH | ||||
4421930 | 2482 days ago | 2.41495238 ETH | ||||
4421913 | 2482 days ago | 5.61815124 ETH |
Loading...
Loading
Contract Name:
DelayedPayments
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 2017-09-19 */ pragma solidity ^0.4.11; /** * @title Owned contract with safe ownership pass. * * Note: all the non constant functions return false instead of throwing in case if state change * didn't happen yet. */ contract Owned { /** * Contract owner address */ address public contractOwner; /** * Contract owner address */ address public pendingContractOwner; function Owned() { contractOwner = msg.sender; } /** * @dev Owner check modifier */ modifier onlyContractOwner() { if (contractOwner == msg.sender) { _; } } /** * @dev Destroy contract and scrub a data * @notice Only owner can call it */ function destroy() onlyContractOwner { suicide(msg.sender); } /** * Prepares ownership pass. * * Can only be called by current owner. * * @param _to address of the next owner. 0x0 is not allowed. * * @return success. */ function changeContractOwnership(address _to) onlyContractOwner() returns(bool) { if (_to == 0x0) { return false; } pendingContractOwner = _to; return true; } /** * Finalize ownership pass. * * Can only be called by pending owner. * * @return success. */ function claimContractOwnership() returns(bool) { if (pendingContractOwner != msg.sender) { return false; } contractOwner = pendingContractOwner; delete pendingContractOwner; return true; } } contract ERC20Interface { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed from, address indexed spender, uint256 value); string public symbol; function totalSupply() constant returns (uint256 supply); function balanceOf(address _owner) constant returns (uint256 balance); function transfer(address _to, uint256 _value) returns (bool success); function transferFrom(address _from, address _to, uint256 _value) returns (bool success); function approve(address _spender, uint256 _value) returns (bool success); function allowance(address _owner, address _spender) constant returns (uint256 remaining); } /** * @title Generic owned destroyable contract */ contract Object is Owned { /** * Common result code. Means everything is fine. */ uint constant OK = 1; uint constant OWNED_ACCESS_DENIED_ONLY_CONTRACT_OWNER = 8; function withdrawnTokens(address[] tokens, address _to) onlyContractOwner returns(uint) { for(uint i=0;i<tokens.length;i++) { address token = tokens[i]; uint balance = ERC20Interface(token).balanceOf(this); if(balance != 0) ERC20Interface(token).transfer(_to,balance); } return OK; } function checkOnlyContractOwner() internal constant returns(uint) { if (contractOwner == msg.sender) { return OK; } return OWNED_ACCESS_DENIED_ONLY_CONTRACT_OWNER; } } /** * @title General MultiEventsHistory user. * */ contract MultiEventsHistoryAdapter { /** * @dev It is address of MultiEventsHistory caller assuming we are inside of delegate call. */ function _self() constant internal returns (address) { return msg.sender; } } contract DelayedPaymentsEmitter is MultiEventsHistoryAdapter { event Error(bytes32 message); function emitError(bytes32 _message) { Error(_message); } } contract DelayedPayments is Object { uint constant DELAYED_PAYMENTS_SCOPE = 52000; uint constant DELAYED_PAYMENTS_INVALID_INVOCATION = DELAYED_PAYMENTS_SCOPE + 17; /// @dev `Payment` is a public structure that describes the details of /// each payment making it easy to track the movement of funds /// transparently struct Payment { address spender; // Who is sending the funds uint earliestPayTime; // The earliest a payment can be made (Unix Time) bool canceled; // If True then the payment has been canceled bool paid; // If True then the payment has been paid address recipient; // Who is receiving the funds uint amount; // The amount of wei sent in the payment uint securityGuardDelay;// The seconds `securityGuard` can delay payment } Payment[] public authorizedPayments; address public securityGuard; uint public absoluteMinTimeLock; uint public timeLock; uint public maxSecurityGuardDelay; // Should use interface of the emitter, but address of events history. address public eventsHistory; /// @dev The white list of approved addresses allowed to set up && receive /// payments from this vault mapping (address => bool) public allowedSpenders; /// @dev The address assigned the role of `securityGuard` is the only /// addresses that can call a function with this modifier modifier onlySecurityGuard { if (msg.sender != securityGuard) throw; _; } // @dev Events to make the payment movements easy to find on the blockchain event PaymentAuthorized(uint indexed idPayment, address indexed recipient, uint amount); event PaymentExecuted(uint indexed idPayment, address indexed recipient, uint amount); event PaymentCanceled(uint indexed idPayment); event EtherReceived(address indexed from, uint amount); event SpenderAuthorization(address indexed spender, bool authorized); ///////// // Constructor ///////// /// @notice The Constructor creates the Vault on the blockchain /// @param _absoluteMinTimeLock The minimum number of seconds `timelock` can /// be set to, if set to 0 the `owner` can remove the `timeLock` completely /// @param _timeLock Initial number of seconds that payments are delayed /// after they are authorized (a security precaution) /// @param _maxSecurityGuardDelay The maximum number of seconds in total /// that `securityGuard` can delay a payment so that the owner can cancel /// the payment if needed function DelayedPayments( uint _absoluteMinTimeLock, uint _timeLock, uint _maxSecurityGuardDelay) { absoluteMinTimeLock = _absoluteMinTimeLock; timeLock = _timeLock; securityGuard = msg.sender; maxSecurityGuardDelay = _maxSecurityGuardDelay; } /** * Emits Error event with specified error message. * * Should only be used if no state changes happened. * * @param _errorCode code of an error * @param _message error message. */ function _error(uint _errorCode, bytes32 _message) internal returns(uint) { DelayedPaymentsEmitter(eventsHistory).emitError(_message); return _errorCode; } /** * Sets EventsHstory contract address. * * Can be set only once, and only by contract owner. * * @param _eventsHistory MultiEventsHistory contract address. * * @return success. */ function setupEventsHistory(address _eventsHistory) returns(uint errorCode) { errorCode = checkOnlyContractOwner(); if (errorCode != OK) { return errorCode; } if (eventsHistory != 0x0 && eventsHistory != _eventsHistory) { return DELAYED_PAYMENTS_INVALID_INVOCATION; } eventsHistory = _eventsHistory; return OK; } ///////// // Helper functions ///////// /// @notice States the total number of authorized payments in this contract /// @return The number of payments ever authorized even if they were canceled function numberOfAuthorizedPayments() constant returns (uint) { return authorizedPayments.length; } ////// // Receive Ether ////// /// @notice Called anytime ether is sent to the contract && creates an event /// to more easily track the incoming transactions function receiveEther() payable { EtherReceived(msg.sender, msg.value); } /// @notice The fall back function is called whenever ether is sent to this /// contract function () payable { receiveEther(); } //////// // Spender Interface //////// /// @notice only `allowedSpenders[]` Creates a new `Payment` /// @param _recipient Destination of the payment /// @param _amount Amount to be paid in wei /// @param _paymentDelay Number of seconds the payment is to be delayed, if /// this value is below `timeLock` then the `timeLock` determines the delay /// @return The Payment ID number for the new authorized payment function authorizePayment( address _recipient, uint _amount, uint _paymentDelay ) returns(uint) { // Fail if you arent on the `allowedSpenders` white list if (!allowedSpenders[msg.sender]) throw; uint idPayment = authorizedPayments.length; // Unique Payment ID authorizedPayments.length++; // The following lines fill out the payment struct Payment p = authorizedPayments[idPayment]; p.spender = msg.sender; // Overflow protection if (_paymentDelay > 10**18) throw; // Determines the earliest the recipient can receive payment (Unix time) p.earliestPayTime = _paymentDelay >= timeLock ? now + _paymentDelay : now + timeLock; p.recipient = _recipient; p.amount = _amount; PaymentAuthorized(idPayment, p.recipient, p.amount); return idPayment; } /// @notice only `allowedSpenders[]` The recipient of a payment calls this /// function to send themselves the ether after the `earliestPayTime` has /// expired /// @param _idPayment The payment ID to be executed function collectAuthorizedPayment(uint _idPayment) { // Check that the `_idPayment` has been added to the payments struct if (_idPayment >= authorizedPayments.length) return; Payment p = authorizedPayments[_idPayment]; // Checking for reasons not to execute the payment if (msg.sender != p.recipient) return; if (now < p.earliestPayTime) return; if (p.canceled) return; if (p.paid) return; if (this.balance < p.amount) return; p.paid = true; // Set the payment to being paid if (!p.recipient.send(p.amount)) { // Make the payment return; } PaymentExecuted(_idPayment, p.recipient, p.amount); } ///////// // SecurityGuard Interface ///////// /// @notice `onlySecurityGuard` Delays a payment for a set number of seconds /// @param _idPayment ID of the payment to be delayed /// @param _delay The number of seconds to delay the payment function delayPayment(uint _idPayment, uint _delay) onlySecurityGuard { if (_idPayment >= authorizedPayments.length) throw; // Overflow test if (_delay > 10**18) throw; Payment p = authorizedPayments[_idPayment]; if ((p.securityGuardDelay + _delay > maxSecurityGuardDelay) || (p.paid) || (p.canceled)) throw; p.securityGuardDelay += _delay; p.earliestPayTime += _delay; } //////// // Owner Interface /////// /// @notice `onlyOwner` Cancel a payment all together /// @param _idPayment ID of the payment to be canceled. function cancelPayment(uint _idPayment) onlyContractOwner { if (_idPayment >= authorizedPayments.length) throw; Payment p = authorizedPayments[_idPayment]; if (p.canceled) throw; if (p.paid) throw; p.canceled = true; PaymentCanceled(_idPayment); } /// @notice `onlyOwner` Adds a spender to the `allowedSpenders[]` white list /// @param _spender The address of the contract being authorized/unauthorized /// @param _authorize `true` if authorizing and `false` if unauthorizing function authorizeSpender(address _spender, bool _authorize) onlyContractOwner { allowedSpenders[_spender] = _authorize; SpenderAuthorization(_spender, _authorize); } /// @notice `onlyOwner` Sets the address of `securityGuard` /// @param _newSecurityGuard Address of the new security guard function setSecurityGuard(address _newSecurityGuard) onlyContractOwner { securityGuard = _newSecurityGuard; } /// @notice `onlyOwner` Changes `timeLock`; the new `timeLock` cannot be /// lower than `absoluteMinTimeLock` /// @param _newTimeLock Sets the new minimum default `timeLock` in seconds; /// pending payments maintain their `earliestPayTime` function setTimelock(uint _newTimeLock) onlyContractOwner { if (_newTimeLock < absoluteMinTimeLock) throw; timeLock = _newTimeLock; } /// @notice `onlyOwner` Changes the maximum number of seconds /// `securityGuard` can delay a payment /// @param _maxSecurityGuardDelay The new maximum delay in seconds that /// `securityGuard` can delay the payment's execution in total function setMaxSecurityGuardDelay(uint _maxSecurityGuardDelay) onlyContractOwner { maxSecurityGuardDelay = _maxSecurityGuardDelay; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_eventsHistory","type":"address"}],"name":"setupEventsHistory","outputs":[{"name":"errorCode","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxSecurityGuardDelay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newTimeLock","type":"uint256"}],"name":"setTimelock","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimContractOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"changeContractOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pendingContractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfAuthorizedPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_authorize","type":"bool"}],"name":"authorizeSpender","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"},{"name":"_delay","type":"uint256"}],"name":"delayPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"collectAuthorizedPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"authorizedPayments","outputs":[{"name":"spender","type":"address"},{"name":"earliestPayTime","type":"uint256"},{"name":"canceled","type":"bool"},{"name":"paid","type":"bool"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"securityGuardDelay","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"receiveEther","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"securityGuard","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newSecurityGuard","type":"address"}],"name":"setSecurityGuard","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_paymentDelay","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"timeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedSpenders","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"address[]"},{"name":"_to","type":"address"}],"name":"withdrawnTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxSecurityGuardDelay","type":"uint256"}],"name":"setMaxSecurityGuardDelay","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"absoluteMinTimeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"eventsHistory","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_absoluteMinTimeLock","type":"uint256"},{"name":"_timeLock","type":"uint256"},{"name":"_maxSecurityGuardDelay","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PaymentAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PaymentExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"PaymentCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EtherReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"authorized","type":"bool"}],"name":"SpenderAuthorization","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b604051606080610f298339810160405280805191906020018051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b6004839055600582905560038054600160a060020a03191633600160a060020a031617905560068190555b5050505b610e9a8061008f6000396000f300606060405236156101225763ffffffff60e060020a60003504166302927d20811461012e5780630b2e74231461015f5780631e891c0a146101845780634592cd1d1461019c578063557f4bc9146101c35780635aa77d3c146101f657806368b8c5a114610225578063793c0fd41461024a57806383197ef0146102705780638422927d14610285578063846a5dde1461029d57806392e4b8a4146102b8578063a0927a6a146102d0578063a3912ec814610122578063b2ca3ec41461033b578063bb2a51d11461036a578063c17337121461038b578063ce606ee0146103c2578063d085835a146103f1578063d8528af014610416578063d8f9659b14610449578063da4793ac146104b5578063ea8a66c7146104cd578063f07629f8146104f2575b5b61012b610521565b5b005b341561013957600080fd5b61014d600160a060020a0360043516610561565b60405190815260200160405180910390f35b341561016a57600080fd5b61014d6105d4565b60405190815260200160405180910390f35b341561018f57600080fd5b61012b6004356105da565b005b34156101a757600080fd5b6101af61060b565b604051901515815260200160405180910390f35b34156101ce57600080fd5b6101af600160a060020a0360043516610656565b604051901515815260200160405180910390f35b341561020157600080fd5b6102096106aa565b604051600160a060020a03909116815260200160405180910390f35b341561023057600080fd5b61014d6106b9565b60405190815260200160405180910390f35b341561025557600080fd5b61012b600160a060020a036004351660243515156106c0565b005b341561027b57600080fd5b61012b610739565b005b341561029057600080fd5b61012b600435610760565b005b34156102a857600080fd5b61012b600435602435610815565b005b34156102c357600080fd5b61012b6004356108cb565b005b34156102db57600080fd5b6102e6600435610a27565b604051600160a060020a039788168152602081019690965293151560408087019190915292151560608601529416608084015260a083019390935260c082015260e001905180910390f35b61012b610521565b005b341561034657600080fd5b610209610a88565b604051600160a060020a03909116815260200160405180910390f35b341561037557600080fd5b61012b600160a060020a0360043516610a97565b005b341561039657600080fd5b61014d600160a060020a0360043516602435604435610acf565b60405190815260200160405180910390f35b34156103cd57600080fd5b610209610c01565b604051600160a060020a03909116815260200160405180910390f35b34156103fc57600080fd5b61014d610c10565b60405190815260200160405180910390f35b341561042157600080fd5b6101af600160a060020a0360043516610c16565b604051901515815260200160405180910390f35b341561045457600080fd5b61014d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610c2b915050565b60405190815260200160405180910390f35b34156104c057600080fd5b61012b600435610d7d565b005b34156104d857600080fd5b61014d610d9f565b60405190815260200160405180910390f35b34156104fd57600080fd5b610209610da5565b604051600160a060020a03909116815260200160405180910390f35b33600160a060020a03167f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b3460405190815260200160405180910390a25b565b600061056b610db4565b90506001811461057a576105cf565b600754600160a060020a0316158015906105a25750600754600160a060020a03838116911614155b156105b0575061cb316105cf565b5060078054600160a060020a031916600160a060020a03831617905560015b919050565b60065481565b60005433600160a060020a03908116911614156106065760045481101561060057600080fd5b60058190555b5b5b50565b60015460009033600160a060020a0390811691161461062c57506000610653565b506001805460008054600160a060020a0319908116600160a060020a038416179091551681555b90565b6000805433600160a060020a03908116911614156105cf57600160a060020a0382161515610686575060006105cf565b5060018054600160a060020a031916600160a060020a0383161781555b5b5b919050565b600154600160a060020a031681565b6002545b90565b60005433600160a060020a039081169116141561073357600160a060020a03821660008181526008602052604090819020805460ff19168415151790557f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c82728190839051901515815260200160405180910390a25b5b5b5050565b60005433600160a060020a039081169116141561055f5733600160a060020a0316ff5b5b5b565b6000805433600160a060020a039081169116141561073357600254821061078657600080fd5b600280548390811061079457fe5b906000526020600020906005020160005b50600281015490915060ff16156107bb57600080fd5b6002810154610100900460ff16156107d257600080fd5b60028101805460ff19166001179055817ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30160405160405180910390a25b5b5b5050565b60035460009033600160a060020a0390811691161461083357600080fd5b600254831061084157600080fd5b670de0b6b3a764000082111561085657600080fd5b600280548490811061086457fe5b906000526020600020906005020160005b50905060065482826004015401118061089757506002810154610100900460ff165b806108a65750600281015460ff165b156108b057600080fd5b60048101805483019055600181018054830190555b5b505050565b60025460009082106108dc57610733565b60028054839081106108ea57fe5b906000526020600020906005020160005b50600281015490915033600160a060020a0390811662010000909204161461092257610733565b806001015442101561093357610733565b600281015460ff161561094557610733565b6002810154610100900460ff161561095c57610733565b806003015430600160a060020a031631101561097757610733565b60028101805461010061ff00199091161790819055600382015462010000909104600160a060020a0316906108fc81150290604051600060405180830381858888f1935050505015156109c957610733565b8060020160029054906101000a9004600160a060020a0316600160a060020a0316827f7f5bfe3018715b26a7067888a5c42912fbb3485170b8154ea9a448661f2f0de2836003015460405190815260200160405180910390a35b5050565b6002805482908110610a3557fe5b906000526020600020906005020160005b508054600182015460028301546003840154600490940154600160a060020a039384169550919360ff8083169461010084049091169362010000909304169187565b600354600160a060020a031681565b60005433600160a060020a03908116911614156106065760038054600160a060020a031916600160a060020a0383161790555b5b5b50565b600160a060020a0333166000908152600860205260408120548190819060ff161515610afa57600080fd5b6002805492508290610b0f9060018301610ddb565b506002805483908110610b1e57fe5b906000526020600020906005020160005b508054600160a060020a03191633600160a060020a03161781559050670de0b6b3a7640000841115610b6057600080fd5b600554841015610b74576005544201610b78565b8342015b600182015560028101805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a03898116820292909217928390556003840188905590910416827f47e9633c99dd05fabd1b937e7c85f9e00d6866bfd2e5885e0091f40a173be3d38760405190815260200160405180910390a38192505b50509392505050565b600054600160a060020a031681565b60055481565b60086020526000908152604090205460ff1681565b6000805481908190819033600160a060020a0390811691161415610d7257600092505b8551831015610d6d57858381518110610c6357fe5b90602001906020020151915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610cc657600080fd5b6102c65a03f11515610cd757600080fd5b50505060405180519150508015610d615781600160a060020a031663a9059cbb868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d4557600080fd5b6102c65a03f11515610d5657600080fd5b505050604051805150505b5b600190920191610c4e565b600193505b5b5b50505092915050565b60005433600160a060020a03908116911614156106065760068190555b5b5b50565b60045481565b600754600160a060020a031681565b6000805433600160a060020a0390811691161415610dd457506001610653565b5060085b90565b8154818355818115116108c5576005028160050283600052602060002091820191016108c59190610e0d565b5b505050565b61065391905b80821115610e67578054600160a060020a031916815560006001820181905560028201805475ffffffffffffffffffffffffffffffffffffffffffff19169055600382018190556004820155600501610e13565b5090565b905600a165627a7a72305820f0e4f0a656ad9b7514b6590be5896e31a5b27aa9346560717b66141b46c07e5800290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x606060405236156101225763ffffffff60e060020a60003504166302927d20811461012e5780630b2e74231461015f5780631e891c0a146101845780634592cd1d1461019c578063557f4bc9146101c35780635aa77d3c146101f657806368b8c5a114610225578063793c0fd41461024a57806383197ef0146102705780638422927d14610285578063846a5dde1461029d57806392e4b8a4146102b8578063a0927a6a146102d0578063a3912ec814610122578063b2ca3ec41461033b578063bb2a51d11461036a578063c17337121461038b578063ce606ee0146103c2578063d085835a146103f1578063d8528af014610416578063d8f9659b14610449578063da4793ac146104b5578063ea8a66c7146104cd578063f07629f8146104f2575b5b61012b610521565b5b005b341561013957600080fd5b61014d600160a060020a0360043516610561565b60405190815260200160405180910390f35b341561016a57600080fd5b61014d6105d4565b60405190815260200160405180910390f35b341561018f57600080fd5b61012b6004356105da565b005b34156101a757600080fd5b6101af61060b565b604051901515815260200160405180910390f35b34156101ce57600080fd5b6101af600160a060020a0360043516610656565b604051901515815260200160405180910390f35b341561020157600080fd5b6102096106aa565b604051600160a060020a03909116815260200160405180910390f35b341561023057600080fd5b61014d6106b9565b60405190815260200160405180910390f35b341561025557600080fd5b61012b600160a060020a036004351660243515156106c0565b005b341561027b57600080fd5b61012b610739565b005b341561029057600080fd5b61012b600435610760565b005b34156102a857600080fd5b61012b600435602435610815565b005b34156102c357600080fd5b61012b6004356108cb565b005b34156102db57600080fd5b6102e6600435610a27565b604051600160a060020a039788168152602081019690965293151560408087019190915292151560608601529416608084015260a083019390935260c082015260e001905180910390f35b61012b610521565b005b341561034657600080fd5b610209610a88565b604051600160a060020a03909116815260200160405180910390f35b341561037557600080fd5b61012b600160a060020a0360043516610a97565b005b341561039657600080fd5b61014d600160a060020a0360043516602435604435610acf565b60405190815260200160405180910390f35b34156103cd57600080fd5b610209610c01565b604051600160a060020a03909116815260200160405180910390f35b34156103fc57600080fd5b61014d610c10565b60405190815260200160405180910390f35b341561042157600080fd5b6101af600160a060020a0360043516610c16565b604051901515815260200160405180910390f35b341561045457600080fd5b61014d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610c2b915050565b60405190815260200160405180910390f35b34156104c057600080fd5b61012b600435610d7d565b005b34156104d857600080fd5b61014d610d9f565b60405190815260200160405180910390f35b34156104fd57600080fd5b610209610da5565b604051600160a060020a03909116815260200160405180910390f35b33600160a060020a03167f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b3460405190815260200160405180910390a25b565b600061056b610db4565b90506001811461057a576105cf565b600754600160a060020a0316158015906105a25750600754600160a060020a03838116911614155b156105b0575061cb316105cf565b5060078054600160a060020a031916600160a060020a03831617905560015b919050565b60065481565b60005433600160a060020a03908116911614156106065760045481101561060057600080fd5b60058190555b5b5b50565b60015460009033600160a060020a0390811691161461062c57506000610653565b506001805460008054600160a060020a0319908116600160a060020a038416179091551681555b90565b6000805433600160a060020a03908116911614156105cf57600160a060020a0382161515610686575060006105cf565b5060018054600160a060020a031916600160a060020a0383161781555b5b5b919050565b600154600160a060020a031681565b6002545b90565b60005433600160a060020a039081169116141561073357600160a060020a03821660008181526008602052604090819020805460ff19168415151790557f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c82728190839051901515815260200160405180910390a25b5b5b5050565b60005433600160a060020a039081169116141561055f5733600160a060020a0316ff5b5b5b565b6000805433600160a060020a039081169116141561073357600254821061078657600080fd5b600280548390811061079457fe5b906000526020600020906005020160005b50600281015490915060ff16156107bb57600080fd5b6002810154610100900460ff16156107d257600080fd5b60028101805460ff19166001179055817ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30160405160405180910390a25b5b5b5050565b60035460009033600160a060020a0390811691161461083357600080fd5b600254831061084157600080fd5b670de0b6b3a764000082111561085657600080fd5b600280548490811061086457fe5b906000526020600020906005020160005b50905060065482826004015401118061089757506002810154610100900460ff165b806108a65750600281015460ff165b156108b057600080fd5b60048101805483019055600181018054830190555b5b505050565b60025460009082106108dc57610733565b60028054839081106108ea57fe5b906000526020600020906005020160005b50600281015490915033600160a060020a0390811662010000909204161461092257610733565b806001015442101561093357610733565b600281015460ff161561094557610733565b6002810154610100900460ff161561095c57610733565b806003015430600160a060020a031631101561097757610733565b60028101805461010061ff00199091161790819055600382015462010000909104600160a060020a0316906108fc81150290604051600060405180830381858888f1935050505015156109c957610733565b8060020160029054906101000a9004600160a060020a0316600160a060020a0316827f7f5bfe3018715b26a7067888a5c42912fbb3485170b8154ea9a448661f2f0de2836003015460405190815260200160405180910390a35b5050565b6002805482908110610a3557fe5b906000526020600020906005020160005b508054600182015460028301546003840154600490940154600160a060020a039384169550919360ff8083169461010084049091169362010000909304169187565b600354600160a060020a031681565b60005433600160a060020a03908116911614156106065760038054600160a060020a031916600160a060020a0383161790555b5b5b50565b600160a060020a0333166000908152600860205260408120548190819060ff161515610afa57600080fd5b6002805492508290610b0f9060018301610ddb565b506002805483908110610b1e57fe5b906000526020600020906005020160005b508054600160a060020a03191633600160a060020a03161781559050670de0b6b3a7640000841115610b6057600080fd5b600554841015610b74576005544201610b78565b8342015b600182015560028101805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a03898116820292909217928390556003840188905590910416827f47e9633c99dd05fabd1b937e7c85f9e00d6866bfd2e5885e0091f40a173be3d38760405190815260200160405180910390a38192505b50509392505050565b600054600160a060020a031681565b60055481565b60086020526000908152604090205460ff1681565b6000805481908190819033600160a060020a0390811691161415610d7257600092505b8551831015610d6d57858381518110610c6357fe5b90602001906020020151915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610cc657600080fd5b6102c65a03f11515610cd757600080fd5b50505060405180519150508015610d615781600160a060020a031663a9059cbb868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d4557600080fd5b6102c65a03f11515610d5657600080fd5b505050604051805150505b5b600190920191610c4e565b600193505b5b5b50505092915050565b60005433600160a060020a03908116911614156106065760068190555b5b5b50565b60045481565b600754600160a060020a031681565b6000805433600160a060020a0390811691161415610dd457506001610653565b5060085b90565b8154818355818115116108c5576005028160050283600052602060002091820191016108c59190610e0d565b5b505050565b61065391905b80821115610e67578054600160a060020a031916815560006001820181905560028201805475ffffffffffffffffffffffffffffffffffffffffffff19169055600382018190556004820155600501610e13565b5090565b905600a165627a7a72305820f0e4f0a656ad9b7514b6590be5896e31a5b27aa9346560717b66141b46c07e580029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000A
-----Decoded View---------------
Arg [0] : _absoluteMinTimeLock (uint256): 0
Arg [1] : _timeLock (uint256): 10
Arg [2] : _maxSecurityGuardDelay (uint256): 10
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 000000000000000000000000000000000000000000000000000000000000000A
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000A
Swarm Source
bzzr://f0e4f0a656ad9b7514b6590be5896e31a5b27aa9346560717b66141b46c07e58
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,619.84 | 0.3672 | $962.06 |
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.