ETH Price: $2,094.40 (-2.65%)

Contract

0x2f8997976236C8D04bb070D2E412Bb52408989fC
 

Overview

ETH Balance

0.049687564577005141 ETH

Eth Value

$104.07 (@ $2,094.40/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep125566112021-06-02 18:11:391737 days ago1622657499IN
0x2f899797...2408989fC
0 ETH0.0024095537.95
Sweep106822942020-08-18 6:16:112025 days ago1597731371IN
0x2f899797...2408989fC
0 ETH0.00692195126.5
Sweep106821372020-08-18 5:38:242025 days ago1597729104IN
0x2f899797...2408989fC
0 ETH0.00740185135.3
Transfer88865512019-11-06 23:02:262310 days ago1573081346IN
0x2f899797...2408989fC
0.01027321 ETH0.000021051
Transfer88429692019-10-30 23:00:182317 days ago1572476418IN
0x2f899797...2408989fC
0.02937422 ETH0.000021051
Transfer87994812019-10-23 23:00:382324 days ago1571871638IN
0x2f899797...2408989fC
0.01004012 ETH0.000021051
Sweep87341602019-10-13 16:28:392335 days ago1570984119IN
0x2f899797...2408989fC
0 ETH0.0010998422
Transfer87341372019-10-13 16:23:162335 days ago1570983796IN
0x2f899797...2408989fC
0.01003545 ETH0.000021051
Transfer86808182019-10-05 7:47:232343 days ago1570261643IN
0x2f899797...2408989fC
0.04828835 ETH0.000021051
Sweep86360572019-09-28 7:46:222350 days ago1569656782IN
0x2f899797...2408989fC
0 ETH0.0010998422
Transfer86360342019-09-28 7:42:552350 days ago1569656575IN
0x2f899797...2408989fC
0.06367192 ETH0.000021051
Sweep85913212019-09-21 7:46:352357 days ago1569051995IN
0x2f899797...2408989fC
0 ETH0.0010998422
Transfer85912972019-09-21 7:40:162357 days ago1569051616IN
0x2f899797...2408989fC
0.06567997 ETH0.000021051
Sweep85464182019-09-14 7:39:442364 days ago1568446784IN
0x2f899797...2408989fC
0 ETH0.0014997930
Transfer85463972019-09-14 7:35:362364 days ago1568446536IN
0x2f899797...2408989fC
0.0558544 ETH0.000021051
Sweep85016072019-09-07 7:36:582371 days ago1567841818IN
0x2f899797...2408989fC
0 ETH0.0011012522
Transfer85015872019-09-07 7:32:162371 days ago1567841536IN
0x2f899797...2408989fC
0.07790743 ETH0.000021051
Sweep84566182019-08-31 7:30:342378 days ago1567236634IN
0x2f899797...2408989fC
0 ETH0.0011012522
Transfer84566052019-08-31 7:27:472378 days ago1567236467IN
0x2f899797...2408989fC
0.06439382 ETH0.000021051
Transfer84116322019-08-24 7:27:042385 days ago1566631624IN
0x2f899797...2408989fC
0.01002311 ETH0.000021051
Sweep83500472019-08-14 17:39:272395 days ago1565804367IN
0x2f899797...2408989fC
0 ETH0.0011012522
Transfer83500272019-08-14 17:35:222395 days ago1565804122IN
0x2f899797...2408989fC
0.09228372 ETH0.000021051
Sweep83048752019-08-07 17:31:332402 days ago1565199093IN
0x2f899797...2408989fC
0 ETH0.0011012522
Transfer83048552019-08-07 17:27:142402 days ago1565198834IN
0x2f899797...2408989fC
0.09299927 ETH0.000021051
Sweep82597382019-07-31 17:28:332409 days ago1564594113IN
0x2f899797...2408989fC
0 ETH0.0010998422
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-87341602019-10-13 16:28:392335 days ago1570984119
0x2f899797...2408989fC
0.05832382 ETH
-86360572019-09-28 7:46:222350 days ago1569656782
0x2f899797...2408989fC
0.06367192 ETH
-85913212019-09-21 7:46:352357 days ago1569051995
0x2f899797...2408989fC
0.06567998 ETH
-85464182019-09-14 7:39:442364 days ago1568446784
0x2f899797...2408989fC
0.05585441 ETH
-85016072019-09-07 7:36:582371 days ago1567841818
0x2f899797...2408989fC
0.07790744 ETH
-84566182019-08-31 7:30:342378 days ago1567236634
0x2f899797...2408989fC
0.07441693 ETH
-83500472019-08-14 17:39:272395 days ago1565804367
0x2f899797...2408989fC
0.09228373 ETH
-83048752019-08-07 17:31:332402 days ago1565199093
0x2f899797...2408989fC
0.09299927 ETH
-82597382019-07-31 17:28:332409 days ago1564594113
0x2f899797...2408989fC
0.05116154 ETH
-82147042019-07-24 17:24:322416 days ago1563989072
0x2f899797...2408989fC
0.09211962 ETH
-81695382019-07-17 17:18:412423 days ago1563383921
0x2f899797...2408989fC
0.09141036 ETH
-81247312019-07-10 17:12:552430 days ago1562778775
0x2f899797...2408989fC
0.09440054 ETH
-80796842019-07-03 17:12:282437 days ago1562173948
0x2f899797...2408989fC
0.09825612 ETH
-80348562019-06-26 17:08:532444 days ago1561568933
0x2f899797...2408989fC
0.09737653 ETH
-79899732019-06-19 17:08:152451 days ago1560964095
0x2f899797...2408989fC
0.10303647 ETH
-79451642019-06-12 17:07:332458 days ago1560359253
0x2f899797...2408989fC
0.09893887 ETH
-79004222019-06-05 17:00:442465 days ago1559754044
0x2f899797...2408989fC
0.11227202 ETH
-78557112019-05-29 16:57:432472 days ago1559149063
0x2f899797...2408989fC
0.14219093 ETH
-78108292019-05-22 16:57:482479 days ago1558544268
0x2f899797...2408989fC
0.10205018 ETH
-77660802019-05-15 16:48:262486 days ago1557938906
0x2f899797...2408989fC
0.12678454 ETH
-76763352019-05-01 16:45:132500 days ago1556729113
0x2f899797...2408989fC
0.09077579 ETH
-75539422019-04-12 15:27:492519 days ago1555082869
0x2f899797...2408989fC
0.20016744 ETH
-75088492019-04-05 15:27:112526 days ago1554478031
0x2f899797...2408989fC
0.2143983 ETH
-74641682019-03-29 15:25:452533 days ago1553873145
0x2f899797...2408989fC
0.21269709 ETH
-74193012019-03-22 15:17:472540 days ago1553267867
0x2f899797...2408989fC
0.20478418 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.