ETH Price: $2,265.65 (+2.20%)

Contract

0xb742Ac00A312f6791017691f81b19EfFF16dEbbC
 

Overview

ETH Balance

0.000000002097058976 ETH

Eth Value

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

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep132656732021-09-20 23:39:271082 days ago1632181167IN
0xb742Ac00...FF16dEbbC
0 ETH0.00641188113.31424195
Transfer132656612021-09-20 23:37:081082 days ago1632181028IN
0xb742Ac00...FF16dEbbC
0.09748842 ETH0.00233658110.99660469
Sweep130673922021-08-21 7:46:441113 days ago1629532004IN
0xb742Ac00...FF16dEbbC
0 ETH0.0018117332.01802211
Transfer130673732021-08-21 7:42:441113 days ago1629531764IN
0xb742Ac00...FF16dEbbC
0.09940678 ETH0.0006043728.70985152
Sweep128947162021-07-25 9:48:111140 days ago1627206491IN
0xb742Ac00...FF16dEbbC
0 ETH0.0016975530
Transfer128946972021-07-25 9:42:291140 days ago1627206149IN
0xb742Ac00...FF16dEbbC
0.10001189 ETH0.000021051
Transfer127270292021-06-29 5:09:131166 days ago1624943353IN
0xb742Ac00...FF16dEbbC
0.01882126 ETH0.000021051
Sweep125636022021-06-03 20:16:031192 days ago1622751363IN
0xb742Ac00...FF16dEbbC
0 ETH0.0024727643.7
Transfer125635592021-06-03 20:03:011192 days ago1622750581IN
0xb742Ac00...FF16dEbbC
1.36413165 ETH0.0007236234.375
Sweep123709862021-05-05 0:28:501221 days ago1620174530IN
0xb742Ac00...FF16dEbbC
0 ETH0.0025378344.85
Transfer123630832021-05-03 19:17:151223 days ago1620069435IN
0xb742Ac00...FF16dEbbC
0.0358737 ETH0.002684127.5
Sweep108488772020-09-12 18:49:501456 days ago1599936590IN
0xb742Ac00...FF16dEbbC
0 ETH0.00636502111.72
Transfer108488552020-09-12 18:44:381456 days ago1599936278IN
0xb742Ac00...FF16dEbbC
0.15 ETH0.00254867121.07142857

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
132656732021-09-20 23:39:271082 days ago1632181167
0xb742Ac00...FF16dEbbC
0.09748842 ETH
130673922021-08-21 7:46:441113 days ago1629532004
0xb742Ac00...FF16dEbbC
0.09940678 ETH
128947162021-07-25 9:48:111140 days ago1627206491
0xb742Ac00...FF16dEbbC
0.11883316 ETH
125636022021-06-03 20:16:031192 days ago1622751363
0xb742Ac00...FF16dEbbC
1.36413165 ETH
123709862021-05-05 0:28:501221 days ago1620174530
0xb742Ac00...FF16dEbbC
0.0858737 ETH
123709722021-05-05 0:26:061221 days ago1620174366
0xb742Ac00...FF16dEbbC
0.05 ETH
108488772020-09-12 18:49:501456 days ago1599936590
0xb742Ac00...FF16dEbbC
0.15 ETH
53014852018-03-22 13:54:572361 days ago1521726897  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.