ETH Price: $2,006.70 (+0.87%)

Contract

0xB998dB5e045F8df0BBCF0A8d70c1c9Dae76c3aa6
 

Overview

ETH Balance

0.000000006846341548 ETH

Eth Value

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

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep83744872019-08-18 12:52:152414 days ago1566132735IN
0xB998dB5e...ae76c3aa6
0 ETH0.0011012522
Transfer83744672019-08-18 12:47:352414 days ago1566132455IN
0xB998dB5e...ae76c3aa6
0.20007634 ETH0.0002105110
Sweep82397722019-07-28 14:58:122435 days ago1564325892IN
0xB998dB5e...ae76c3aa6
0 ETH0.0011012522
Transfer82397562019-07-28 14:54:512435 days ago1564325691IN
0xB998dB5e...ae76c3aa6
0.20008427 ETH0.0002105110
Sweep81373652019-07-12 16:36:042451 days ago1562949364IN
0xB998dB5e...ae76c3aa6
0 ETH0.0011012522
Transfer81373422019-07-12 16:30:122451 days ago1562949012IN
0xB998dB5e...ae76c3aa6
0.20003044 ETH0.0002105110
Sweep80383612019-06-27 6:21:572466 days ago1561616517IN
0xB998dB5e...ae76c3aa6
0 ETH0.0011012522
Transfer80383382019-06-27 6:16:372466 days ago1561616197IN
0xB998dB5e...ae76c3aa6
0.20002728 ETH0.0002105110
Sweep60962232018-08-06 2:50:402792 days ago1533523840IN
0xB998dB5e...ae76c3aa6
0 ETH0.0050057100
Transfer60962092018-08-06 2:46:292792 days ago1533523589IN
0xB998dB5e...ae76c3aa6
0.20002074 ETH0.000021051
Sweep60398112018-07-27 14:50:302801 days ago1532703030IN
0xB998dB5e...ae76c3aa6
0 ETH0.0050057100
Transfer60397912018-07-27 14:46:172801 days ago1532702777IN
0xB998dB5e...ae76c3aa6
0.2001097 ETH0.000021051
Sweep59739122018-07-16 9:11:122812 days ago1531732272IN
0xB998dB5e...ae76c3aa6
0 ETH0.0050057100
Transfer59738572018-07-16 8:57:112812 days ago1531731431IN
0xB998dB5e...ae76c3aa6
0.20001127 ETH0.000021051
Sweep59243162018-07-07 23:46:182821 days ago1531007178IN
0xB998dB5e...ae76c3aa6
0 ETH0.0050057100
Transfer59242922018-07-07 23:41:002821 days ago1531006860IN
0xB998dB5e...ae76c3aa6
0.20038823 ETH0.000021051
Sweep58907372018-07-02 5:32:332826 days ago1530509553IN
0xB998dB5e...ae76c3aa6
0 ETH0.00535359106.95
Transfer58907172018-07-02 5:28:102826 days ago1530509290IN
0xB998dB5e...ae76c3aa6
0.20058291 ETH0.000021051
Sweep58563582018-06-26 7:54:332832 days ago1529999673IN
0xB998dB5e...ae76c3aa6
0 ETH0.0025028550
Transfer58563152018-06-26 7:45:112832 days ago1529999111IN
0xB998dB5e...ae76c3aa6
0.20015577 ETH0.000021051
Sweep58165912018-06-19 11:57:492839 days ago1529409469IN
0xB998dB5e...ae76c3aa6
0 ETH0.0025028550
Transfer58165622018-06-19 11:51:012839 days ago1529409061IN
0xB998dB5e...ae76c3aa6
0.20026518 ETH0.000021051
Sweep57842502018-06-13 23:18:162845 days ago1528931896IN
0xB998dB5e...ae76c3aa6
0 ETH0.0025028550
Transfer57842282018-06-13 23:12:292845 days ago1528931549IN
0xB998dB5e...ae76c3aa6
0.20002856 ETH0.000021051
Sweep57462672018-06-07 6:26:512851 days ago1528352811IN
0xB998dB5e...ae76c3aa6
0 ETH0.0025028550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-83744872019-08-18 12:52:152414 days ago1566132735
0xB998dB5e...ae76c3aa6
0.20007634 ETH
-82397722019-07-28 14:58:122435 days ago1564325892
0xB998dB5e...ae76c3aa6
0.20008428 ETH
-81373652019-07-12 16:36:042451 days ago1562949364
0xB998dB5e...ae76c3aa6
0.20003044 ETH
-80383612019-06-27 6:21:572466 days ago1561616517
0xB998dB5e...ae76c3aa6
0.20002728 ETH
Transfer60962232018-08-06 2:50:402792 days ago1533523840
0xB998dB5e...ae76c3aa6
0.20002074 ETH
Transfer60398112018-07-27 14:50:302801 days ago1532703030
0xB998dB5e...ae76c3aa6
0.20010971 ETH
Transfer59739122018-07-16 9:11:122812 days ago1531732272
0xB998dB5e...ae76c3aa6
0.20001127 ETH
Transfer59243162018-07-07 23:46:182821 days ago1531007178
0xB998dB5e...ae76c3aa6
0.20038824 ETH
Transfer58907372018-07-02 5:32:332826 days ago1530509553
0xB998dB5e...ae76c3aa6
0.20058291 ETH
Transfer58563582018-06-26 7:54:332832 days ago1529999673
0xB998dB5e...ae76c3aa6
0.20015578 ETH
Transfer58165912018-06-19 11:57:492839 days ago1529409469
0xB998dB5e...ae76c3aa6
0.20026519 ETH
Transfer57842502018-06-13 23:18:162845 days ago1528931896
0xB998dB5e...ae76c3aa6
0.20002857 ETH
Transfer57462672018-06-07 6:26:512851 days ago1528352811
0xB998dB5e...ae76c3aa6
0.20067448 ETH
Transfer57158112018-06-01 20:49:352857 days ago1527886175
0xB998dB5e...ae76c3aa6
0.20054225 ETH
Transfer56853032018-05-27 11:07:042862 days ago1527419224
0xB998dB5e...ae76c3aa6
0.20130423 ETH
Transfer56531592018-05-21 18:04:392868 days ago1526925879
0xB998dB5e...ae76c3aa6
0.20024316 ETH
Transfer56216682018-05-16 4:30:112873 days ago1526445011
0xB998dB5e...ae76c3aa6
0.20035713 ETH
Transfer55899362018-05-10 15:21:022879 days ago1525965662
0xB998dB5e...ae76c3aa6
0.20002195 ETH
Transfer55574842018-05-04 23:54:062885 days ago1525478046
0xB998dB5e...ae76c3aa6
0.20003985 ETH
Transfer55269922018-04-29 15:08:422890 days ago1525014522
0xB998dB5e...ae76c3aa6
0.20050201 ETH
Transfer54960512018-04-24 6:37:352895 days ago1524551855
0xB998dB5e...ae76c3aa6
0.20011737 ETH
Transfer54662552018-04-19 3:33:122901 days ago1524108792
0xB998dB5e...ae76c3aa6
0.20048835 ETH
Transfer54344352018-04-13 17:48:022906 days ago1523641682
0xB998dB5e...ae76c3aa6
0.2000315 ETH
Transfer54024252018-04-08 9:16:202911 days ago1523178980
0xB998dB5e...ae76c3aa6
0.20035823 ETH
Transfer53717672018-04-03 7:27:562916 days ago1522740476
0xB998dB5e...ae76c3aa6
0.20060539 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.