ETH Price: $3,398.83 (+2.11%)
Gas: 4.09 Gwei

Contract

0x8E7B21F2967D31e6d94Fdcc0eb9fF3A65f845704
 

Overview

ETH Balance

0.02582501683479256 ETH

Eth Value

$87.77 (@ $3,398.83/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer121708262021-04-04 3:59:571364 days ago1617508797IN
0x8E7B21F2...65f845704
0.02582501 ETH0.000021051
Sweep120798732021-03-21 3:56:241378 days ago1616298984IN
0x8E7B21F2...65f845704
0 ETH0.00689518121.0000016
Transfer120798582021-03-21 3:53:041378 days ago1616298784IN
0x8E7B21F2...65f845704
0.03739384 ETH0.000021051
Transfer119890362021-03-07 3:49:291392 days ago1615088969IN
0x8E7B21F2...65f845704
0.04422589 ETH0.000021051
Sweep118979422021-02-21 3:46:281406 days ago1613879188IN
0x8E7B21F2...65f845704
0 ETH0.00834768146.52
Transfer118979162021-02-21 3:41:281406 days ago1613878888IN
0x8E7B21F2...65f845704
0.05001222 ETH0.000021051
Sweep118115262021-02-07 20:39:061420 days ago1612730346IN
0x8E7B21F2...65f845704
0 ETH0.00895615157.2
Transfer118115102021-02-07 20:35:221420 days ago1612730122IN
0x8E7B21F2...65f845704
0.0316712 ETH0.000021051
Transfer117659912021-01-31 20:31:431427 days ago1612125103IN
0x8E7B21F2...65f845704
0.02307892 ETH0.000021051
Sweep117204712021-01-24 20:25:211434 days ago1611519921IN
0x8E7B21F2...65f845704
0 ETH0.005469496
Transfer117204542021-01-24 20:21:001434 days ago1611519660IN
0x8E7B21F2...65f845704
0.02768152 ETH0.000021051
Transfer116748162021-01-17 20:14:541441 days ago1610914494IN
0x8E7B21F2...65f845704
0.03395379 ETH0.000021051
Sweep116291802021-01-10 20:02:061448 days ago1610308926IN
0x8E7B21F2...65f845704
0 ETH0.0044516678.12
Transfer116291672021-01-10 20:00:001448 days ago1610308800IN
0x8E7B21F2...65f845704
0.04657337 ETH0.000021051
Transfer115835622021-01-03 20:00:511455 days ago1609704051IN
0x8E7B21F2...65f845704
0.04931285 ETH0.000021051
Sweep115378782020-12-27 20:02:141462 days ago1609099334IN
0x8E7B21F2...65f845704
0 ETH0.0026415146.3644
Transfer115378492020-12-27 19:56:411462 days ago1609099001IN
0x8E7B21F2...65f845704
0.05260474 ETH0.000021051
Sweep114922462020-12-20 19:57:361469 days ago1608494256IN
0x8E7B21F2...65f845704
0 ETH0.0023244940.8
Transfer114922262020-12-20 19:52:231469 days ago1608493943IN
0x8E7B21F2...65f845704
0.05379598 ETH0.000021051
Sweep114466402020-12-13 19:46:221476 days ago1607888782IN
0x8E7B21F2...65f845704
0 ETH0.0017091930
Transfer114466182020-12-13 19:42:011476 days ago1607888521IN
0x8E7B21F2...65f845704
0.05654378 ETH0.000021051
Sweep114010972020-12-06 19:40:461483 days ago1607283646IN
0x8E7B21F2...65f845704
0 ETH0.0017091930
Transfer114010742020-12-06 19:35:441483 days ago1607283344IN
0x8E7B21F2...65f845704
0.05805478 ETH0.000021051
Sweep113555432020-11-29 19:35:581490 days ago1606678558IN
0x8E7B21F2...65f845704
0 ETH0.0017091930
Transfer113555242020-11-29 19:32:591490 days ago1606678379IN
0x8E7B21F2...65f845704
0.06380969 ETH0.000021051
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
120798732021-03-21 3:56:241378 days ago1616298984
0x8E7B21F2...65f845704
0.08161974 ETH
118979422021-02-21 3:46:281406 days ago1613879188
0x8E7B21F2...65f845704
0.05001222 ETH
118115262021-02-07 20:39:061420 days ago1612730346
0x8E7B21F2...65f845704
0.05475013 ETH
117204712021-01-24 20:25:211434 days ago1611519921
0x8E7B21F2...65f845704
0.06163532 ETH
116291802021-01-10 20:02:061448 days ago1610308926
0x8E7B21F2...65f845704
0.09588624 ETH
115378782020-12-27 20:02:141462 days ago1609099334
0x8E7B21F2...65f845704
0.05260474 ETH
114922462020-12-20 19:57:361469 days ago1608494256
0x8E7B21F2...65f845704
0.05379598 ETH
114466402020-12-13 19:46:221476 days ago1607888782
0x8E7B21F2...65f845704
0.05654379 ETH
114010972020-12-06 19:40:461483 days ago1607283646
0x8E7B21F2...65f845704
0.05805479 ETH
113555432020-11-29 19:35:581490 days ago1606678558
0x8E7B21F2...65f845704
0.06380969 ETH
113099842020-11-22 19:37:081497 days ago1606073828
0x8E7B21F2...65f845704
0.06428374 ETH
112643422020-11-15 19:27:411504 days ago1605468461
0x8E7B21F2...65f845704
0.05922283 ETH
112186562020-11-08 19:25:351511 days ago1604863535
0x8E7B21F2...65f845704
0.06081177 ETH
111730662020-11-01 19:24:361518 days ago1604258676
0x8E7B21F2...65f845704
0.05725807 ETH
111274002020-10-25 19:21:391525 days ago1603653699
0x8E7B21F2...65f845704
0.07448324 ETH
110817762020-10-18 19:17:131532 days ago1603048633
0x8E7B21F2...65f845704
0.07108375 ETH
110360462020-10-11 19:08:191539 days ago1602443299
0x8E7B21F2...65f845704
0.08247944 ETH
109911242020-10-04 19:05:201546 days ago1601838320
0x8E7B21F2...65f845704
0.07048935 ETH
50368312018-02-05 19:21:302518 days ago1517858490  Contract Creation0 ETH
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
/**
 *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

[{"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"}]

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.