Contract 0x73B29c2a2Dd1c18Fe95cc43F67E5D202651794fE

 

TxHash Block Age From To Value [TxFee]
0xbe0866ce7555b35e0b67f93df92f2faa4b3364f2d9d5e1bdfad3cbd925766d34687475766 days 10 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00068214
0x520db8fb9c9db9cf60a8b8bfb70c51c6ffa1262f8133478eff2feeea480eb3d9683016673 days 19 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.000750354
0xf72672cd31eea28694ed77a9b9b6405191179b5ea0648c7aa59bb92caa3ead8f670370894 days 15 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.000613926
0x847269fcacbcd4dcd4466e71f1c7166d6f958f20c7eaa06aca3348fc6932601b6525314123 days 19 hrs ago0x8936727ba97a87d8e41ba690a464f47154f131bc  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00024432
0xd72c6b4f721c17d68c0ad97f1b4aecd083a212dfd61aa5a1a7b829ebd0c21b3b6490515129 days 11 hrs ago0xf7cb7f8f93eb454ba1e8362debd87f3d4f8fc8c5  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00073296
0xf9d6126f77fcd44aa83e856faac844ea0afc17fbab81b80c798f8012568114d56382265147 days 3 hrs ago0xa22066eca1a417aecb770f9d1be48ee26673d32a  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.000173268
0x62427d1a92c951474c67feb171634b70902abe1790e2430dd5e99da0783b87e36382263147 days 3 hrs ago0xa22066eca1a417aecb770f9d1be48ee26673d32a  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00036648
0x8cba42967015f77accd89b63a0aedf9ac9b4dd7f8b5f2e8183c836c62d0d2cc56318506157 days 16 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.000595417523
0xd539429bcf31d94f886896c3329c3946c425b8dd9af558e7d5fec41732c2409c6318450157 days 16 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.001022519293
0x461e7333ec853189162cb092e4485a50b6e4f9e2544e5c7d683fe0f1bd0f355a6318430157 days 16 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.001022519293
0xc6b355585604a18f43550f6cd1f3ceb13f038df2ed96ae67dbfcd58ddaf967a76314274158 days 9 hrs ago0x44f2037ff6d67fea81553aab2711b7bdc7e72949  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00500856
0x76c49503cf1e1bb6c096ff19d5065920590e4375c00d9165636e0cca78f5a8266231239172 days 8 hrs ago0x192fec3528f5e81f798f65d2e0bcf7694c322ab6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00158808
0x9f38f5e8cc2f04d4209a77a60948b1c9115eb87027b725bcd95cb44abe9850946226670173 days 2 hrs ago0x8fc2709164c48bd1c9c8858b17c4f3abddd06764  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.0036648
0xa002eb6b899b1052892f25c95a4ee4ead06df855c70a1b2a3e50a93d793cee5f6224497173 days 11 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.0002726
0xaa172de695515787575467dec5500eba0dbc01505b70ccb9b77220859efa5f9b6205251176 days 17 hrs ago0x3ad396dcb86d3a72855f7e1e305eaa144ec9b434  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.0007981038
0x69f352a375e432b3b063f454f4d39b73b8bddc1aae505a5795aa7a9615502ecc6167611183 days 2 hrs ago0x2740215e5f139a589b021d8213a6f2f9d1c3dc86  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00024432
0xffd8e3f6c76cf73b1329ed994a4befcde485e44cfe04ec47160d728e4101b2e66159445184 days 11 hrs ago0x3569fc6cb782387c930ee1fafc6613196eade96b  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00500856
0x1cea66d717edc95a921c00ddc5b858b197b6107484c6e088f5acfc84f7f66a196156797184 days 22 hrs ago0x6f9130b5bb9f2339b7a65dbb1fa52e1cc6fd5a6e  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00036648
0xc52308acd2ed8470b7fe2c3427aa2e77580f096a1202a870b226d595149862396155253185 days 4 hrs ago0xd4e86be2d4ad7e987ab67ad679ceaeec269573b6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00057756
0x29ca087dff9a5054d189f8f6af44107abc6c349d0b0e3a6f2e5d013a25375c9b6155252185 days 4 hrs ago0xd4e86be2d4ad7e987ab67ad679ceaeec269573b6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00057756
0x5e144b052da95138ffe07d37ae6573571a2646c139c11d645d36878fc6c797d96155250185 days 4 hrs ago0xd4e86be2d4ad7e987ab67ad679ceaeec269573b6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00057756
0x24a2070bc9f1713bb433602bdbb0a3d554f627fcd18dd8cf56a03b97b3e1078b6155247185 days 4 hrs ago0xd4e86be2d4ad7e987ab67ad679ceaeec269573b6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00024432
0x0e259faf3f70728aaf35e3610a23e734fe15ce6d5b96f7ed25fb711483485c326153441185 days 11 hrs ago0x2e63ce0112cfd6018e0211ee0bee2022004fe96f  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00048864
0xb60608c4dd4dfbb651558fac1cd28e750c07a908f3b9b5c2cf506fb899a591176146681186 days 15 hrs ago0xd862534eeca54ac69676bfc879fb4efd3a9e07e6  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.0036648
0xb810326a0bfcfd99457c7a72c3a1172af44a4bbf62c872db63703c6a622ab36f6144226187 days 1 hr ago0x88b894de2ac17ac768dea1a8f6301cd05f1cd255  IN   0x73b29c2a2dd1c18fe95cc43f67e5d202651794fe0 Ether0.00057756
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: VestingWallet
Compiler Version: v0.4.19+commit.c4cbbb05
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.19;

// File: contracts/erc20/Token.sol

contract Token {

    /// @return total amount of tokens
    function totalSupply() constant returns (uint supply) {}

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint balance) {}

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint _value) returns (bool success) {}

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint _value) returns (bool success) {}

    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint _value) returns (bool success) {}

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant returns (uint remaining) {}

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

// File: contracts/math/SafeMath.sol

contract SafeMath {
    function safeMul(uint a, uint b) internal constant returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeDiv(uint a, uint b) internal constant returns (uint) {
        uint c = a / b;
        return c;
    }

    function safeSub(uint a, uint b) internal constant returns (uint) {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal constant returns (uint) {
        uint c = a + b;
        assert(c >= a);
        return c;
    }

    function max64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a >= b ? a : b;
    }

    function min64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a < b ? a : b;
    }

    function max256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a >= b ? a : b;
    }

    function min256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a < b ? a : b;
    }
}

// File: contracts/ownership/Ownable.sol

/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */

contract Ownable {
    address public owner;

    function Ownable() {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }
}

// File: contracts/vesting/VestingWallet.sol

contract VestingWallet is Ownable, SafeMath {

    mapping(address => VestingSchedule) public schedules;        // vesting schedules for given addresses
    mapping(address => address) public addressChangeRequests;    // requested address changes

    Token public vestingToken;

    address public approvedWallet;

    event VestingScheduleRegistered(
        address indexed registeredAddress,
        address depositor,
        uint startTimeInSec,
        uint cliffTimeInSec,
        uint endTimeInSec,
        uint totalAmount
    );


    event Withdrawal(address indexed registeredAddress, uint amountWithdrawn);

    event VestingEndedByOwner(address indexed registeredAddress, uint amountWithdrawn, uint amountRefunded);

    event AddressChangeRequested(address indexed oldRegisteredAddress, address indexed newRegisteredAddress);

    event AddressChangeConfirmed(address indexed oldRegisteredAddress, address indexed newRegisteredAddress);

    struct VestingSchedule {
        uint startTimeInSec;
        uint cliffTimeInSec;
        uint endTimeInSec;
        uint totalAmount;
        uint totalAmountWithdrawn;
        address depositor;
    }

    modifier addressRegistered(address target) {
        VestingSchedule storage vestingSchedule = schedules[target];
        require(vestingSchedule.depositor != address(0));
        _;
    }

    modifier addressNotRegistered(address target) {
        VestingSchedule storage vestingSchedule = schedules[target];
        require(vestingSchedule.depositor == address(0));
        _;
    }

    modifier pendingAddressChangeRequest(address target) {
        require(addressChangeRequests[target] != address(0));
        _;
    }

    modifier pastCliffTime(address target) {
        VestingSchedule storage vestingSchedule = schedules[target];
        require(getTime() > vestingSchedule.cliffTimeInSec);
        _;
    }

    modifier validVestingScheduleTimes(uint startTimeInSec, uint cliffTimeInSec, uint endTimeInSec) {
        require(cliffTimeInSec >= startTimeInSec);
        require(endTimeInSec >= cliffTimeInSec);
        _;
    }

    modifier addressNotNull(address target) {
        require(target != address(0));
        _;
    }

    /// @dev Assigns a vesting token to the wallet.
    /// @param _vestingToken Token that will be vested.
    function VestingWallet(address _vestingToken) {
        vestingToken = Token(_vestingToken);
        approvedWallet = msg.sender;
    }

    function registerVestingScheduleWithPercentage(
        address _addressToRegister,
        address _depositor,
        uint _startTimeInSec,
        uint _cliffTimeInSec,
        uint _endTimeInSec,
        uint _totalAmount,
        uint _percentage
    )
    public
    onlyOwner
    addressNotNull(_depositor)
    validVestingScheduleTimes(_startTimeInSec, _cliffTimeInSec, _endTimeInSec)
    {
        require(_percentage <= 100);
        uint vestedAmount = safeDiv(safeMul(
                _totalAmount, _percentage
            ), 100);
        registerVestingSchedule(_addressToRegister, _depositor, _startTimeInSec, _cliffTimeInSec, _endTimeInSec, vestedAmount);
    }

    /// @dev Registers a vesting schedule to an address.
    /// @param _addressToRegister The address that is allowed to withdraw vested tokens for this schedule.
    /// @param _depositor Address that will be depositing vesting token.
    /// @param _startTimeInSec The time in seconds that vesting began.
    /// @param _cliffTimeInSec The time in seconds that tokens become withdrawable.
    /// @param _endTimeInSec The time in seconds that vesting ends.
    /// @param _totalAmount The total amount of tokens that the registered address can withdraw by the end of the vesting period.
    function registerVestingSchedule(
        address _addressToRegister,
        address _depositor,
        uint _startTimeInSec,
        uint _cliffTimeInSec,
        uint _endTimeInSec,
        uint _totalAmount
    )
    public
    onlyOwner
    addressNotNull(_depositor)
    validVestingScheduleTimes(_startTimeInSec, _cliffTimeInSec, _endTimeInSec)
    {

        require(vestingToken.transferFrom(approvedWallet, address(this), _totalAmount));
        require(vestingToken.balanceOf(address(this)) >= _totalAmount);

        schedules[_addressToRegister] = VestingSchedule({
            startTimeInSec : _startTimeInSec,
            cliffTimeInSec : _cliffTimeInSec,
            endTimeInSec : _endTimeInSec,
            totalAmount : _totalAmount,
            totalAmountWithdrawn : 0,
            depositor : _depositor
            });

        VestingScheduleRegistered(
            _addressToRegister,
            _depositor,
            _startTimeInSec,
            _cliffTimeInSec,
            _endTimeInSec,
            _totalAmount
        );
    }

    /// @dev Allows a registered address to withdraw tokens that have already been vested.
    function withdraw()
    public
    pastCliffTime(msg.sender)
    {
        VestingSchedule storage vestingSchedule = schedules[msg.sender];
        uint totalAmountVested = getTotalAmountVested(vestingSchedule);
        uint amountWithdrawable = safeSub(totalAmountVested, vestingSchedule.totalAmountWithdrawn);
        vestingSchedule.totalAmountWithdrawn = totalAmountVested;

        if (amountWithdrawable > 0) {
            require(vestingToken.transfer(msg.sender, amountWithdrawable));
            Withdrawal(msg.sender, amountWithdrawable);
        }
    }

    /// @dev Allows contract owner to terminate a vesting schedule, transfering remaining vested tokens to the registered address and refunding owner with remaining tokens.
    /// @param _addressToEnd Address that is currently registered to the vesting schedule that will be closed.
    /// @param _addressToRefund Address that will receive unvested tokens.
    function endVesting(address _addressToEnd, address _addressToRefund)
    public
    onlyOwner
    addressNotNull(_addressToRefund)
    {
        VestingSchedule storage vestingSchedule = schedules[_addressToEnd];

        uint amountWithdrawable = 0;
        uint amountRefundable = 0;

        if (getTime() < vestingSchedule.cliffTimeInSec) {
            amountRefundable = vestingSchedule.totalAmount;
        }
        else {
            uint totalAmountVested = getTotalAmountVested(vestingSchedule);
            amountWithdrawable = safeSub(totalAmountVested, vestingSchedule.totalAmountWithdrawn);
            amountRefundable = safeSub(vestingSchedule.totalAmount, totalAmountVested);
        }

        delete schedules[_addressToEnd];
        require(amountWithdrawable == 0 || vestingToken.transfer(_addressToEnd, amountWithdrawable));
        require(amountRefundable == 0 || vestingToken.transfer(_addressToRefund, amountRefundable));

        VestingEndedByOwner(_addressToEnd, amountWithdrawable, amountRefundable);
    }

    /// @dev Allows a registered address to request an address change.
    /// @param _newRegisteredAddress Desired address to update to.
    function requestAddressChange(address _newRegisteredAddress)
    public
    addressNotRegistered(_newRegisteredAddress)
    addressNotNull(_newRegisteredAddress)
    {
        addressChangeRequests[msg.sender] = _newRegisteredAddress;
        AddressChangeRequested(msg.sender, _newRegisteredAddress);
    }

    /// @dev Confirm an address change and migrate vesting schedule to new address.
    /// @param _oldRegisteredAddress Current registered address.
    /// @param _newRegisteredAddress Address to migrate vesting schedule to.
    function confirmAddressChange(address _oldRegisteredAddress, address _newRegisteredAddress)
    public
    onlyOwner
    pendingAddressChangeRequest(_oldRegisteredAddress)
    addressNotRegistered(_newRegisteredAddress)
    {
        address newRegisteredAddress = addressChangeRequests[_oldRegisteredAddress];
        require(newRegisteredAddress == _newRegisteredAddress);
        // prevents race condition

        VestingSchedule memory vestingSchedule = schedules[_oldRegisteredAddress];
        schedules[newRegisteredAddress] = vestingSchedule;

        delete schedules[_oldRegisteredAddress];
        delete addressChangeRequests[_oldRegisteredAddress];

        AddressChangeConfirmed(_oldRegisteredAddress, _newRegisteredAddress);
    }

    function setApprovedWallet(address _approvedWallet)
    public
    addressNotNull(_approvedWallet)
    onlyOwner {
        approvedWallet = _approvedWallet;
    }

    function getTime() internal view returns (uint) {
        return now;
    }

    function allowance(address _target) public view returns (uint) {
        VestingSchedule storage vestingSchedule = schedules[_target];
        uint totalAmountVested = getTotalAmountVested(vestingSchedule);
        uint amountWithdrawable = safeSub(totalAmountVested, vestingSchedule.totalAmountWithdrawn);
        return amountWithdrawable;
    }

    /// @dev Calculates the total tokens that have been vested for a vesting schedule, assuming the schedule is past the cliff.
    /// @param vestingSchedule Vesting schedule used to calculate vested tokens.
    /// @return Total tokens vested for a vesting schedule.
    function getTotalAmountVested(VestingSchedule vestingSchedule)
    internal
    view
    returns (uint)
    {
        if (getTime() >= vestingSchedule.endTimeInSec) {
            return vestingSchedule.totalAmount;
        }

        uint timeSinceStartInSec = safeSub(getTime(), vestingSchedule.startTimeInSec);
        uint totalVestingTimeInSec = safeSub(vestingSchedule.endTimeInSec, vestingSchedule.startTimeInSec);
        uint totalAmountVested = safeDiv(
            safeMul(timeSinceStartInSec, vestingSchedule.totalAmount), totalVestingTimeInSec
        );

        return totalAmountVested;
    }
}

Contract ABI
[{"constant":false,"inputs":[{"name":"_addressToRegister","type":"address"},{"name":"_depositor","type":"address"},{"name":"_startTimeInSec","type":"uint256"},{"name":"_cliffTimeInSec","type":"uint256"},{"name":"_endTimeInSec","type":"uint256"},{"name":"_totalAmount","type":"uint256"}],"name":"registerVestingSchedule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRegisteredAddress","type":"address"}],"name":"requestAddressChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vestingToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressToRegister","type":"address"},{"name":"_depositor","type":"address"},{"name":"_startTimeInSec","type":"uint256"},{"name":"_cliffTimeInSec","type":"uint256"},{"name":"_endTimeInSec","type":"uint256"},{"name":"_totalAmount","type":"uint256"},{"name":"_percentage","type":"uint256"}],"name":"registerVestingScheduleWithPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"schedules","outputs":[{"name":"startTimeInSec","type":"uint256"},{"name":"cliffTimeInSec","type":"uint256"},{"name":"endTimeInSec","type":"uint256"},{"name":"totalAmount","type":"uint256"},{"name":"totalAmountWithdrawn","type":"uint256"},{"name":"depositor","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressToEnd","type":"address"},{"name":"_addressToRefund","type":"address"}],"name":"endVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_approvedWallet","type":"address"}],"name":"setApprovedWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressChangeRequests","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldRegisteredAddress","type":"address"},{"name":"_newRegisteredAddress","type":"address"}],"name":"confirmAddressChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"approvedWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_vestingToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"registeredAddress","type":"address"},{"indexed":false,"name":"depositor","type":"address"},{"indexed":false,"name":"startTimeInSec","type":"uint256"},{"indexed":false,"name":"cliffTimeInSec","type":"uint256"},{"indexed":false,"name":"endTimeInSec","type":"uint256"},{"indexed":false,"name":"totalAmount","type":"uint256"}],"name":"VestingScheduleRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"registeredAddress","type":"address"},{"indexed":false,"name":"amountWithdrawn","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"registeredAddress","type":"address"},{"indexed":false,"name":"amountWithdrawn","type":"uint256"},{"indexed":false,"name":"amountRefunded","type":"uint256"}],"name":"VestingEndedByOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldRegisteredAddress","type":"address"},{"indexed":true,"name":"newRegisteredAddress","type":"address"}],"name":"AddressChangeRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldRegisteredAddress","type":"address"},{"indexed":true,"name":"newRegisteredAddress","type":"address"}],"name":"AddressChangeConfirmed","type":"event"}]

Contract Creation Code
6060604052341561000f57600080fd5b604051602080611f8c83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611e8f806100fd6000396000f3006060604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301d490fd146100d55780630633cd321461015157806319d152fa1461018a5780633ccfd60b146101df5780633e5beab9146101f4578063483e8c8c1461024157806380c3780f146102c65780638da5cb5b14610362578063a5b19937146103b7578063ae6a1c301461040f578063b1e9ee6414610448578063bff44f0d146104c1578063f2a7e62414610519578063f2fde38b1461056e575b600080fd5b34156100e057600080fd5b61014f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919080359060200190919080359060200190919050506105a7565b005b341561015c57600080fd5b610188600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a3d565b005b341561019557600080fd5b61019d610bfb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101ea57600080fd5b6101f2610c21565b005b34156101ff57600080fd5b61022b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ece565b6040518082815260200191505060405180910390f35b341561024c57600080fd5b6102c4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091905050610fcf565b005b34156102d157600080fd5b6102fd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110cc565b604051808781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b341561036d57600080fd5b610375611128565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103c257600080fd5b61040d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061114d565b005b341561041a57600080fd5b610446600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115ff565b005b341561045357600080fd5b61047f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104cc57600080fd5b610517600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061170f565b005b341561052457600080fd5b61052c611c36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057957600080fd5b6105a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c5c565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561060257600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561063f57600080fd5b84848482821015151561065157600080fd5b81811015151561066057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561078357600080fd5b6102c65a03f1151561079457600080fd5b5050506040518051905015156107a957600080fd5b84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561086f57600080fd5b6102c65a03f1151561088057600080fd5b505050604051805190501015151561089757600080fd5b60c060405190810160405280898152602001888152602001878152602001868152602001600081526020018a73ffffffffffffffffffffffffffffffffffffffff16815250600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508973ffffffffffffffffffffffffffffffffffffffff167feabffab667737db1059b7735b91f5924be3f07f24e6374dbb1b9d11668ed89a58a8a8a8a8a604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a250505050505050505050565b806000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ae057600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b1d57600080fd5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4fd8411c817c0b524aeeef15446e8327901fcf5b6a31246930dfbe5f8c12235160405160405180910390a350505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000336000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010154610c77611d31565b111515610c8357600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450610d618560c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050611d39565b9350610d71848660040154611daf565b92508385600401819055506000831115610ec757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e5257600080fd5b6102c65a03f11515610e6357600080fd5b505050604051805190501515610e7857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65846040518082815260200191505060405180910390a25b5050505050565b600080600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250610fb28360c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050611d39565b9150610fc2828460040154611daf565b9050809350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102c57600080fd5b86600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561106957600080fd5b86868682821015151561107b57600080fd5b81811015151561108a57600080fd5b6064861115151561109a57600080fd5b6110ae6110a78888611dc8565b6064611dfb565b94506110be8c8c8c8c8c8a6105a7565b505050505050505050505050565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905086565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ae57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111eb57600080fd5b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020945060009350600092508460010154611241611d31565b10156112535784600301549250611313565b6112f08560c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050611d39565b9150611300828660040154611daf565b9350611310856003015483611daf565b92505b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505060008414806114975750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88866000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561147b57600080fd5b6102c65a03f1151561148c57600080fd5b505050604051805190505b15156114a257600080fd5b60008314806115955750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561157957600080fd5b6102c65a03f1151561158a57600080fd5b505050604051805190505b15156115a057600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f5312918bb945e949b32d01afc69cad19c589287f4711f3c39aa84ae39a478f2e8585604051808381526020018281526020019250505060405180910390a250505050505050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561163c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561169757600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611719611e16565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177457600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561181057600080fd5b836000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118b357600080fd5b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1694508573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151561194f57600080fd5b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3e4882fc047fc5cb92f283c6f3b683c6befb9b02aed687b56407df15640b388560405160405180910390a350505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cb757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611d2e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600042905090565b6000806000808460400151611d4c611d31565b101515611d5f5784606001519350611da7565b611d74611d6a611d31565b8660000151611daf565b9250611d8885604001518660000151611daf565b9150611da1611d9b848760600151611dc8565b83611dfb565b90508093505b505050919050565b6000828211151515611dbd57fe5b818303905092915050565b60008082840290506000841480611de95750828482811515611de657fe5b04145b1515611df157fe5b8091505092915050565b6000808284811515611e0957fe5b0490508091505092915050565b60c0604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905600a165627a7a723058209992aad18d1d06976c97393ca58cfea1cb61f1d96802dd1046969e77ed90a7f800290000000000000000000000004df47b4969b2911c966506e3592c41389493953b


    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004df47b4969b2911c966506e3592c41389493953b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004df47b4969b2911c966506e3592c41389493953b


   Swarm Source:
bzzr://9992aad18d1d06976c97393ca58cfea1cb61f1d96802dd1046969e77ed90a7f8
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.