ETH Price: $1,959.51 (-0.92%)

Contract

0xA8DdEEE70F8aABF671c824aa41eA49E44f3Ec2E5
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep184160882023-10-23 22:55:59866 days ago1698101759IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0036743164.94824015
Transfer184160692023-10-23 22:51:59866 days ago1698101519IN
0xA8DdEEE7...44f3Ec2E5
0.3 ETH0.0014488368.82491357
Sweep183057502023-10-08 12:25:23881 days ago1696767923IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020243730
Sweep182942642023-10-06 21:53:11883 days ago1696629191IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0021146130
Sweep182358332023-09-28 17:50:47891 days ago1695923447IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020240130
Sweep182350452023-09-28 15:12:23891 days ago1695913943IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020240130
Sweep181537442023-09-17 5:36:35903 days ago1694928995IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020243730
Sweep181501162023-09-16 17:15:59903 days ago1694884559IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020240130
Sweep181365362023-09-14 19:18:35905 days ago1694719115IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.002211132.77308432
Sweep180281572023-08-30 14:57:59920 days ago1693407479IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0039343258.30450694
Sweep180228272023-08-29 21:02:59921 days ago1693342979IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0025594637.92984051
Sweep180226782023-08-29 20:33:11921 days ago1693341191IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0028719642.55334659
Sweep180110842023-08-28 5:34:11923 days ago1693200851IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020276730
Sweep178231042023-08-01 22:21:23949 days ago1690928483IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0018833130
Sweep177407042023-07-21 9:44:47960 days ago1689932687IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0019246234.02012443
Transfer177406852023-07-21 9:40:47960 days ago1689932447IN
0xA8DdEEE7...44f3Ec2E5
0.4 ETH0.0005671826.9431932
Sweep177272382023-07-19 12:29:47962 days ago1689769787IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0016971930
Transfer177272192023-07-19 12:25:59962 days ago1689769559IN
0xA8DdEEE7...44f3Ec2E5
0.23 ETH0.0005472925.99860729
Sweep177137132023-07-17 14:56:11964 days ago1689605771IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0023437233.2560874
Sweep177119002023-07-17 8:50:23965 days ago1689583823IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020121630
Sweep177063702023-07-16 14:14:11965 days ago1689516851IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.002011830
Sweep176968752023-07-15 5:57:47967 days ago1689400667IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020121630
Sweep176958272023-07-15 2:24:59967 days ago1689387899IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020121630
Sweep176949762023-07-14 23:32:35967 days ago1689377555IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020121630
Sweep176949352023-07-14 23:23:59967 days ago1689377039IN
0xA8DdEEE7...44f3Ec2E5
0 ETH0.0020121630
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer184160882023-10-23 22:55:59866 days ago1698101759
0xA8DdEEE7...44f3Ec2E5
0.3 ETH
Transfer177407042023-07-21 9:44:47960 days ago1689932687
0xA8DdEEE7...44f3Ec2E5
0.4 ETH
Transfer177272382023-07-19 12:29:47962 days ago1689769787
0xA8DdEEE7...44f3Ec2E5
0.23 ETH
Transfer169294382023-03-29 0:38:351075 days ago1680050315
0xA8DdEEE7...44f3Ec2E5
0.06 ETH
Transfer169049862023-03-25 14:11:111078 days ago1679753471
0xA8DdEEE7...44f3Ec2E5
0.098 ETH
Transfer169033612023-03-25 8:42:471079 days ago1679733767
0xA8DdEEE7...44f3Ec2E5
0.506 ETH
Transfer168991632023-03-24 18:32:351079 days ago1679682755
0xA8DdEEE7...44f3Ec2E5
0.076 ETH
Transfer168930202023-03-23 21:50:591080 days ago1679608259
0xA8DdEEE7...44f3Ec2E5
0.127 ETH
Transfer168915522023-03-23 16:54:591080 days ago1679590499
0xA8DdEEE7...44f3Ec2E5
0.155 ETH
Transfer167845342023-03-08 15:49:351095 days ago1678290575
0xA8DdEEE7...44f3Ec2E5
0.101 ETH
Transfer165806322023-02-08 0:59:111124 days ago1675817951
0xA8DdEEE7...44f3Ec2E5
0.308 ETH
Transfer164768302023-01-24 13:00:591138 days ago1674565259
0xA8DdEEE7...44f3Ec2E5
0.073 ETH
Transfer164758262023-01-24 9:38:351138 days ago1674553115
0xA8DdEEE7...44f3Ec2E5
0.613 ETH
Transfer164481862023-01-20 13:02:231142 days ago1674219743
0xA8DdEEE7...44f3Ec2E5
0.105 ETH
Transfer163887262023-01-12 5:46:471151 days ago1673502407
0xA8DdEEE7...44f3Ec2E5
0.198 ETH
Transfer163027332022-12-31 5:43:591163 days ago1672465439
0xA8DdEEE7...44f3Ec2E5
0.101 ETH
Transfer162924422022-12-29 19:16:111164 days ago1672341371
0xA8DdEEE7...44f3Ec2E5
0.566 ETH
Transfer162650162022-12-25 23:22:111168 days ago1672010531
0xA8DdEEE7...44f3Ec2E5
0.73 ETH
Transfer161691662022-12-12 14:16:591181 days ago1670854619
0xA8DdEEE7...44f3Ec2E5
0.743 ETH
Transfer158269602022-10-25 18:44:351229 days ago1666723475
0xA8DdEEE7...44f3Ec2E5
0.297 ETH
Transfer156190792022-09-26 17:37:591258 days ago1664213879
0xA8DdEEE7...44f3Ec2E5
0.82 ETH
Transfer156064092022-09-24 23:09:591260 days ago1664060999
0xA8DdEEE7...44f3Ec2E5
0.424 ETH
Transfer155497062022-09-17 0:22:231268 days ago1663374143
0xA8DdEEE7...44f3Ec2E5
0.615 ETH
Transfer155475432022-09-16 17:04:471268 days ago1663347887
0xA8DdEEE7...44f3Ec2E5
0.295 ETH
Transfer155438092022-09-16 4:26:231269 days ago1663302383
0xA8DdEEE7...44f3Ec2E5
0.2015 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.