ETH Price: $2,163.10 (+3.85%)

Contract

0x77e88d54B137E7D8395aaBde5d40031Da3a79A4f
 

Overview

ETH Balance

0.000000005830631416 ETH

Eth Value

Less Than $0.01 (@ $2,163.10/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep85315802019-09-11 23:56:422384 days ago1568246202IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer85315652019-09-11 23:54:112384 days ago1568246051IN
0x77e88d54...Da3a79A4f
0.05000571 ETH0.0002105110
Sweep84517662019-08-30 13:22:432397 days ago1567171363IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer84517462019-08-30 13:17:102397 days ago1567171030IN
0x77e88d54...Da3a79A4f
0.05003003 ETH0.0002105110
Sweep83704772019-08-17 21:38:052409 days ago1566077885IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer83704622019-08-17 21:34:042409 days ago1566077644IN
0x77e88d54...Da3a79A4f
0.05001084 ETH0.0002105110
Sweep83001662019-08-06 23:59:452420 days ago1565135985IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer83001492019-08-06 23:55:482420 days ago1565135748IN
0x77e88d54...Da3a79A4f
0.05006619 ETH0.0002105110
Sweep82336512019-07-27 16:13:312430 days ago1564244011IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer82336382019-07-27 16:09:562430 days ago1564243796IN
0x77e88d54...Da3a79A4f
0.05005003 ETH0.0002105110
Sweep81663802019-07-17 5:09:592441 days ago1563340199IN
0x77e88d54...Da3a79A4f
0 ETH0.0014997930
Transfer81663582019-07-17 5:05:162441 days ago1563339916IN
0x77e88d54...Da3a79A4f
0.05006273 ETH0.0002105110
Sweep80903342019-07-05 8:45:472453 days ago1562316347IN
0x77e88d54...Da3a79A4f
0 ETH0.0010998422
Transfer80903122019-07-05 8:40:202453 days ago1562316020IN
0x77e88d54...Da3a79A4f
0.050049 ETH0.0002105110
Sweep80135552019-06-23 9:45:412465 days ago1561283141IN
0x77e88d54...Da3a79A4f
0 ETH0.0014997930
Transfer80135402019-06-23 9:41:512465 days ago1561282911IN
0x77e88d54...Da3a79A4f
0.05002026 ETH0.0002105110
Sweep79369602019-06-11 10:22:352477 days ago1560248555IN
0x77e88d54...Da3a79A4f
0 ETH0.0024996550
Transfer79369372019-06-11 10:15:582477 days ago1560248158IN
0x77e88d54...Da3a79A4f
0.0500159 ETH0.0002105110
Sweep78619692019-05-30 16:15:002488 days ago1559232900IN
0x77e88d54...Da3a79A4f
0 ETH0.0024996550
Transfer78619442019-05-30 16:10:072488 days ago1559232607IN
0x77e88d54...Da3a79A4f
0.05000966 ETH0.0002105110
Sweep77728352019-05-16 18:12:502502 days ago1558030370IN
0x77e88d54...Da3a79A4f
0 ETH0.0024996550
Transfer77728122019-05-16 18:08:092502 days ago1558030089IN
0x77e88d54...Da3a79A4f
0.05005649 ETH0.0002105110
Sweep77052792019-05-06 4:57:432513 days ago1557118663IN
0x77e88d54...Da3a79A4f
0 ETH0.0024996550
Transfer77052632019-05-06 4:54:232513 days ago1557118463IN
0x77e88d54...Da3a79A4f
0.05001079 ETH0.0002105110
Sweep76348432019-04-25 5:53:562524 days ago1556171636IN
0x77e88d54...Da3a79A4f
0 ETH0.0024996550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-85315802019-09-11 23:56:422384 days ago1568246202
0x77e88d54...Da3a79A4f
0.05000571 ETH
-84517662019-08-30 13:22:432397 days ago1567171363
0x77e88d54...Da3a79A4f
0.05003003 ETH
-83704772019-08-17 21:38:052409 days ago1566077885
0x77e88d54...Da3a79A4f
0.05001085 ETH
-83001662019-08-06 23:59:452420 days ago1565135985
0x77e88d54...Da3a79A4f
0.05006619 ETH
-82336512019-07-27 16:13:312430 days ago1564244011
0x77e88d54...Da3a79A4f
0.05005003 ETH
-81663802019-07-17 5:09:592441 days ago1563340199
0x77e88d54...Da3a79A4f
0.05006274 ETH
-80903342019-07-05 8:45:472453 days ago1562316347
0x77e88d54...Da3a79A4f
0.05004901 ETH
-80135552019-06-23 9:45:412465 days ago1561283141
0x77e88d54...Da3a79A4f
0.05002026 ETH
-79369602019-06-11 10:22:352477 days ago1560248555
0x77e88d54...Da3a79A4f
0.0500159 ETH
-78619692019-05-30 16:15:002488 days ago1559232900
0x77e88d54...Da3a79A4f
0.05000966 ETH
-77728352019-05-16 18:12:502502 days ago1558030370
0x77e88d54...Da3a79A4f
0.0500565 ETH
-77052792019-05-06 4:57:432513 days ago1557118663
0x77e88d54...Da3a79A4f
0.0500108 ETH
-76348432019-04-25 5:53:562524 days ago1556171636
0x77e88d54...Da3a79A4f
0.05006286 ETH
-75682962019-04-14 20:41:442534 days ago1555274504
0x77e88d54...Da3a79A4f
0.05000914 ETH
-75027712019-04-04 16:33:492544 days ago1554395629
0x77e88d54...Da3a79A4f
0.05001827 ETH
-74369982019-03-25 9:20:032555 days ago1553505603
0x77e88d54...Da3a79A4f
0.05002776 ETH
-73556032019-03-12 17:20:052567 days ago1552411205
0x77e88d54...Da3a79A4f
0.05004271 ETH
-72819392019-03-01 4:50:262579 days ago1551415826
0x77e88d54...Da3a79A4f
0.05000161 ETH
-72341372019-02-18 1:28:052590 days ago1550453285
0x77e88d54...Da3a79A4f
0.05010382 ETH
-71286292019-01-26 10:37:442613 days ago1548499064
0x77e88d54...Da3a79A4f
0.05006035 ETH
-71044412019-01-21 15:57:432617 days ago1548086263
0x77e88d54...Da3a79A4f
0.05000802 ETH
-70747372019-01-16 7:10:082623 days ago1547622608
0x77e88d54...Da3a79A4f
0.05002737 ETH
-70429282019-01-10 14:47:342629 days ago1547131654
0x77e88d54...Da3a79A4f
0.05001406 ETH
-69976472019-01-02 12:45:172637 days ago1546433117
0x77e88d54...Da3a79A4f
0.05001859 ETH
-69404152018-12-23 20:56:022646 days ago1545598562
0x77e88d54...Da3a79A4f
0.05015457 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xd1DD82d1...18D918504
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UserWallet

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-15
*/

pragma solidity ^0.4.10;

// Copyright 2017 Bittrex

contract AbstractSweeper {
    function sweep(address token, uint amount) returns (bool);

    function () { throw; }

    Controller controller;

    function AbstractSweeper(address _controller) {
        controller = Controller(_controller);
    }

    modifier canSweep() {
        if (msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()) throw;
        if (controller.halted()) throw;
        _;
    }
}

contract Token {
    function balanceOf(address a) returns (uint) {
        (a);
        return 0;
    }

    function transfer(address a, uint val) returns (bool) {
        (a);
        (val);
        return false;
    }
}

contract DefaultSweeper is AbstractSweeper {
    function DefaultSweeper(address controller)
             AbstractSweeper(controller) {}

    function sweep(address _token, uint _amount)
    canSweep
    returns (bool) {
        bool success = false;
        address destination = controller.destination();

        if (_token != address(0)) {
            Token token = Token(_token);
            uint amount = _amount;
            if (amount > token.balanceOf(this)) {
                return false;
            }

            success = token.transfer(destination, amount);
        }
        else {
            uint amountInWei = _amount;
            if (amountInWei > this.balance) {
                return false;
            }

            success = destination.send(amountInWei);
        }

        if (success) {
            controller.logSweep(this, destination, _token, _amount);
        }
        return success;
    }
}

contract UserWallet {
    AbstractSweeperList sweeperList;
    function UserWallet(address _sweeperlist) {
        sweeperList = AbstractSweeperList(_sweeperlist);
    }

    function () public payable { }

    function tokenFallback(address _from, uint _value, bytes _data) {
        (_from);
        (_value);
        (_data);
     }

    function sweep(address _token, uint _amount)
    returns (bool) {
        (_amount);
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

contract AbstractSweeperList {
    function sweeperOf(address _token) returns (address);
}

contract Controller is AbstractSweeperList {
    address public owner;
    address public authorizedCaller;

    address public destination;

    bool public halted;

    event LogNewWallet(address receiver);
    event LogSweep(address indexed from, address indexed to, address indexed token, uint amount);
    
    modifier onlyOwner() {
        if (msg.sender != owner) throw; 
        _;
    }

    modifier onlyAuthorizedCaller() {
        if (msg.sender != authorizedCaller) throw; 
        _;
    }

    modifier onlyAdmins() {
        if (msg.sender != authorizedCaller && msg.sender != owner) throw; 
        _;
    }

    function Controller() 
    {
        owner = msg.sender;
        destination = msg.sender;
        authorizedCaller = msg.sender;
    }

    function changeAuthorizedCaller(address _newCaller) onlyOwner {
        authorizedCaller = _newCaller;
    }

    function changeDestination(address _dest) onlyOwner {
        destination = _dest;
    }

    function changeOwner(address _owner) onlyOwner {
        owner = _owner;
    }

    function makeWallet() onlyAdmins returns (address wallet)  {
        wallet = address(new UserWallet(this));
        LogNewWallet(wallet);
    }

    function halt() onlyAdmins {
        halted = true;
    }

    function start() onlyOwner {
        halted = false;
    }

    address public defaultSweeper = address(new DefaultSweeper(this));
    mapping (address => address) sweepers;

    function addSweeper(address _token, address _sweeper) onlyOwner {
        sweepers[_token] = _sweeper;
    }

    function sweeperOf(address _token) returns (address) {
        address sweeper = sweepers[_token];
        if (sweeper == 0) sweeper = defaultSweeper;
        return sweeper;
    }

    function logSweep(address from, address to, address token, uint amount) {
        LogSweep(from, to, token, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"sweep","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"}]

0x6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.