ETH Price: $2,288.04 (-3.33%)

Contract

0xf897c9b7228f4b71A110b5e24c8f00F76E19E2eE
 

Overview

ETH Balance

0.000000005288120213 ETH

Eth Value

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

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep135002422021-10-27 15:38:331045 days ago1635349113IN
0xf897c9b7...76E19E2eE
0 ETH0.01104976195.27725195
Transfer135002212021-10-27 15:35:041045 days ago1635348904IN
0xf897c9b7...76E19E2eE
0.13739575 ETH0.00541786257.3684873
Sweep133824842021-10-09 4:36:481064 days ago1633754208IN
0xf897c9b7...76E19E2eE
0 ETH0.004717783.39142638
Transfer133824682021-10-09 4:33:241064 days ago1633754004IN
0xf897c9b7...76E19E2eE
0.21 ETH0.0018851389.55103259
Sweep131364712021-09-01 0:11:561102 days ago1630455116IN
0xf897c9b7...76E19E2eE
0 ETH0.00992762175.44627814
Transfer131364572021-09-01 0:08:251102 days ago1630454905IN
0xf897c9b7...76E19E2eE
0.50134559 ETH0.0029345139.39980644
Sweep130442122021-08-17 18:08:171116 days ago1629223697IN
0xf897c9b7...76E19E2eE
0 ETH0.0046815182.73418748
Transfer130441982021-08-17 18:04:531116 days ago1629223493IN
0xf897c9b7...76E19E2eE
0.49280547 ETH0.0015929275.66989025
Sweep130440292021-08-17 17:21:321116 days ago1629220892IN
0xf897c9b7...76E19E2eE
0 ETH0.0051600882.19441642
Sweep130275292021-08-15 4:06:121119 days ago1629000372IN
0xf897c9b7...76E19E2eE
0 ETH0.0021378937.78208653
Transfer130275132021-08-15 4:01:581119 days ago1629000118IN
0xf897c9b7...76E19E2eE
3.1523 ETH0.0006360130.21283459
Sweep130243342021-08-14 16:23:361119 days ago1628958216IN
0xf897c9b7...76E19E2eE
0 ETH0.0035551662.84215272
Transfer130243162021-08-14 16:19:441119 days ago1628957984IN
0xf897c9b7...76E19E2eE
0.3 ETH0.001218957.90241988
Sweep57969112018-06-16 3:52:392275 days ago1529121159IN
0xf897c9b7...76E19E2eE
0 ETH0.0024996550
Transfer57968852018-06-16 3:46:542275 days ago1529120814IN
0xf897c9b7...76E19E2eE
6.564 ETH0.000105255
Sweep54132922018-04-10 4:35:552342 days ago1523334955IN
0xf897c9b7...76E19E2eE
0 ETH0.0025028550
Transfer54132512018-04-10 4:25:552342 days ago1523334355IN
0xf897c9b7...76E19E2eE
0.199475 ETH0.000021051

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
135002422021-10-27 15:38:331045 days ago1635349113
0xf897c9b7...76E19E2eE
0.13739575 ETH
133824842021-10-09 4:36:481064 days ago1633754208
0xf897c9b7...76E19E2eE
0.21 ETH
131364712021-09-01 0:11:561102 days ago1630455116
0xf897c9b7...76E19E2eE
0.5013456 ETH
130442122021-08-17 18:08:171116 days ago1629223697
0xf897c9b7...76E19E2eE
0.49280547 ETH
130275292021-08-15 4:06:121119 days ago1629000372
0xf897c9b7...76E19E2eE
3.1523 ETH
130243342021-08-14 16:23:361119 days ago1628958216
0xf897c9b7...76E19E2eE
0.3 ETH
57969112018-06-16 3:52:392275 days ago1529121159
0xf897c9b7...76E19E2eE
6.564 ETH
54132922018-04-10 4:35:552342 days ago1523334955
0xf897c9b7...76E19E2eE
0.199475 ETH
49848552018-01-28 0:30:382414 days ago1517099438  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.