ETH Price: $2,429.97 (+5.41%)

Contract

0xd2aaC4daCe0E96905Df493c425B0805E42243715
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep150166182022-06-24 5:01:13818 days ago1656046873IN
0xd2aaC4da...E42243715
0 ETH0.0042833557.66890887
Sweep150137512022-06-23 16:10:32818 days ago1656000632IN
0xd2aaC4da...E42243715
0 ETH0.0066624383.73154571
Sweep120519322021-03-16 20:43:001282 days ago1615927380IN
0xd2aaC4da...E42243715
0 ETH0.00978269163.9
Sweep119056022021-02-22 7:52:241305 days ago1613980344IN
0xd2aaC4da...E42243715
0 ETH0.00745043124.8
Sweep119055852021-02-22 7:47:581305 days ago1613980078IN
0xd2aaC4da...E42243715
0 ETH0.0068382120
Transfer119055612021-02-22 7:44:201305 days ago1613979860IN
0xd2aaC4da...E42243715
12.743954 ETH0.00269452128
Sweep118945452021-02-20 15:16:071306 days ago1613834167IN
0xd2aaC4da...E42243715
0 ETH0.015933279.6
Transfer118945382021-02-20 15:14:181306 days ago1613834058IN
0xd2aaC4da...E42243715
0.60525 ETH0.00442071210
Transfer118945222021-02-20 15:10:441306 days ago1613833844IN
0xd2aaC4da...E42243715
0.6075 ETH0.004893233
Sweep118942512021-02-20 14:12:311306 days ago1613830351IN
0xd2aaC4da...E42243715
0 ETH0.01718985288
Sweep118190962021-02-09 0:43:151318 days ago1612831395IN
0xd2aaC4da...E42243715
0 ETH0.01450394243
Sweep118179242021-02-08 20:26:361318 days ago1612815996IN
0xd2aaC4da...E42243715
0 ETH0.0149725250.8
Sweep116080602021-01-07 14:20:551350 days ago1610029255IN
0xd2aaC4da...E42243715
0 ETH0.00847252148.6800018
Transfer116080432021-01-07 14:15:561350 days ago1610028956IN
0xd2aaC4da...E42243715
2.81658201 ETH0.00252612120.00000145
Sweep116048072021-01-07 2:21:431351 days ago1609986103IN
0xd2aaC4da...E42243715
0 ETH0.00891648153.6
Sweep116033152021-01-06 20:45:411351 days ago1609965941IN
0xd2aaC4da...E42243715
0 ETH0.0055662997.68
Transfer116032992021-01-06 20:42:371351 days ago1609965757IN
0xd2aaC4da...E42243715
1.78299034 ETH0.0019156491
Sweep106352652020-08-10 23:53:511500 days ago1597103631IN
0xd2aaC4da...E42243715
0 ETH0.00743654130.5
Transfer106352472020-08-10 23:49:401500 days ago1597103380IN
0xd2aaC4da...E42243715
0.105 ETH0.0019156491

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
119055852021-02-22 7:47:581305 days ago1613980078
0xd2aaC4da...E42243715
12.743954 ETH
118945452021-02-20 15:16:071306 days ago1613834167
0xd2aaC4da...E42243715
0.60525 ETH
116080602021-01-07 14:20:551350 days ago1610029255
0xd2aaC4da...E42243715
2.81658201 ETH
116033152021-01-06 20:45:411351 days ago1609965941
0xd2aaC4da...E42243715
1.78299034 ETH
106352652020-08-10 23:53:511500 days ago1597103631
0xd2aaC4da...E42243715
0.105 ETH
52970702018-03-21 20:16:152373 days ago1521663375  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.