ETH Price: $2,691.28 (+0.85%)

Contract

0xF70bF4bA754d69ade76aE6C6E91d997FAAC65534
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep All198508632024-05-12 2:07:59171 days ago1715479679IN
0xF70bF4bA...FAAC65534
0 ETH0.000255434
Sweep All176743092023-07-12 1:45:11476 days ago1689126311IN
0xF70bF4bA...FAAC65534
0 ETH0.0007352614.123123
Transfer176657702023-07-10 20:56:11477 days ago1689022571IN
0xF70bF4bA...FAAC65534
0.11 ETH0.0006022828.62585656
Transfer175170972023-06-19 23:37:35498 days ago1687217855IN
0xF70bF4bA...FAAC65534
0.15 ETH0.0002887413.72352893
Transfer173809272023-05-31 19:29:11517 days ago1685561351IN
0xF70bF4bA...FAAC65534
0.11 ETH0.0015270472.57826494
Transfer170622152023-04-16 21:53:47562 days ago1681682027IN
0xF70bF4bA...FAAC65534
0.05 ETH0.0007398635.16476506
Sweep All167937592023-03-09 22:58:11600 days ago1678402691IN
0xF70bF4bA...FAAC65534
0 ETH0.0014235727.34445
Transfer167862752023-03-08 21:42:47601 days ago1678311767IN
0xF70bF4bA...FAAC65534
0.1 ETH0.0006928332.92955399
Transfer163495772023-01-06 18:37:35662 days ago1673030255IN
0xF70bF4bA...FAAC65534
0.1 ETH0.0008716941.43045212
Transfer160159192022-11-21 4:11:47709 days ago1669003907IN
0xF70bF4bA...FAAC65534
0.062 ETH0.0002413311.47041587
Sweep All155574962022-09-18 2:36:11773 days ago1663468571IN
0xF70bF4bA...FAAC65534
0 ETH0.000206413.23234234
Transfer153991582022-08-23 21:58:48798 days ago1661291928IN
0xF70bF4bA...FAAC65534
0.05 ETH0.0003271415.5488315
Transfer149988732022-06-20 21:55:59862 days ago1655762159IN
0xF70bF4bA...FAAC65534
0.05 ETH0.0012839561.02435251
Transfer148376542022-05-24 20:04:25889 days ago1653422665IN
0xF70bF4bA...FAAC65534
0.1 ETH0.0007768136.92084675
Transfer145803452022-04-14 0:25:46930 days ago1649895946IN
0xF70bF4bA...FAAC65534
0.05 ETH0.000647330.76555833
Sweep All145737102022-04-12 23:15:49931 days ago1649805349IN
0xF70bF4bA...FAAC65534
0 ETH0.0012558724.12312312
Transfer143997112022-03-16 20:19:16958 days ago1647461956IN
0xF70bF4bA...FAAC65534
0.1 ETH0.0011648455.3632903
Transfer142074342022-02-15 0:21:04988 days ago1644884464IN
0xF70bF4bA...FAAC65534
0.1 ETH0.0012685860.29413028
Transfer140974432022-01-29 0:32:101005 days ago1643416330IN
0xF70bF4bA...FAAC65534
0.05 ETH0.00374284177.89202513
Transfer139345642022-01-03 20:06:471030 days ago1641240407IN
0xF70bF4bA...FAAC65534
0.1 ETH0.00267441127.11093676
Transfer133946302021-10-11 2:23:451115 days ago1633919025IN
0xF70bF4bA...FAAC65534
0.3 ETH0.0014854370.60035382
Transfer127626982021-07-04 18:40:021213 days ago1625424002IN
0xF70bF4bA...FAAC65534
0.05 ETH0.0003997619
Transfer125526952021-06-02 3:49:101246 days ago1622605750IN
0xF70bF4bA...FAAC65534
0.38038663 ETH0.0005680827

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
176743092023-07-12 1:45:11476 days ago1689126311
0xF70bF4bA...FAAC65534
0.42 ETH
167937592023-03-09 22:58:11600 days ago1678402691
0xF70bF4bA...FAAC65534
0.512 ETH
145737102022-04-12 23:15:49931 days ago1649805349
0xF70bF4bA...FAAC65534
1.08038663 ETH
125521672021-06-02 1:46:241246 days ago1622598384  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xF2f313A4...Fd1BF0dA9
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.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-02-27
*/

pragma solidity ^0.4.24;

contract AbstractSweeper {
    function sweepAll(address token) public returns (bool);

    function() public { revert(); }

    Controller controller;

    constructor(address _controller) public {
        controller = Controller(_controller);
    }

    modifier canSweep() {
        if(msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()){ revert(); }
        if(controller.halted()){ revert(); }
        _;
    }
}

contract Token {
    function balanceOf(address a) public pure returns (uint) {
        (a);
        return 0;
    }

    function transfer(address a, uint val) public pure returns (bool) {
        (a);
        (val);
        return false;
    }
}

contract DefaultSweeper is AbstractSweeper {
    constructor(address controller) AbstractSweeper(controller) public { }

    function sweepAll(address _token) public canSweep returns (bool) {
        bool success = false;
        address destination = controller.destination();

        if(_token != address(0)){
            Token token = Token(_token);
            success = token.transfer(destination, token.balanceOf(this));
        }else{
            success = destination.send(address(this).balance);
        }
        return success;
    }
}

contract UserWallet {
    AbstractSweeperList sweeperList;
    constructor(address _sweeperlist) public {
        sweeperList = AbstractSweeperList(_sweeperlist);
    }

    function() public payable { }

    function tokenFallback(address _from, uint _value, bytes _data) public pure {
        (_from);
        (_value);
        (_data);
    }

    function sweepAll(address _token) public returns (bool) {
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

contract AbstractSweeperList {
    function sweeperOf(address _token) public returns (address);
}

contract Controller is AbstractSweeperList {
    address public owner;
    address public authorizedCaller;

    address public destination;

    bool public halted;

    event NewWalletCreated(address receiver);

    modifier onlyOwner() {
        if(msg.sender != owner){ revert(); }
        _;
    }

    modifier onlyAuthorizedCaller() {
        if(msg.sender != authorizedCaller){ revert(); }
        _;
    }

    modifier onlyAdmins() {
        if(msg.sender != authorizedCaller && msg.sender != owner){ revert(); } 
        _;
    }

    constructor() public {
        owner = msg.sender;
        destination = msg.sender;
        authorizedCaller = msg.sender;
    }

    function setAuthorizedCaller(address _newCaller) public onlyOwner {
        authorizedCaller = _newCaller;
    }

    function setDestination(address _dest) public onlyOwner {
        destination = _dest;
    }

    function setOwner(address _owner) public onlyOwner {
        owner = _owner;
    }

    function newWallet() public onlyAdmins returns (address wallet)  {
        wallet = address(new UserWallet(this));
        emit NewWalletCreated(wallet);
    }

    function halt() public onlyAdmins {
        halted = true;
    }

    function start() public onlyOwner {
        halted = false;
    }

    address public defaultSweeper = address(new DefaultSweeper(this));
    mapping (address => address) sweepers;

    function addSweeper(address _token, address _sweeper) public onlyOwner {
        sweepers[_token] = _sweeper;
    }

    function sweeperOf(address _token) public returns (address) {
        address sweeper = sweepers[_token];
        if(sweeper == 0){ sweeper = defaultSweeper; }
        return sweeper;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"sweepAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

Deployed Bytecode

0x60806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c0ee0b8a811461004d578063c18cfe86146100c3575b005b34801561005957600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261004b94823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506101059650505050505050565b3480156100cf57600080fd5b506100f173ffffffffffffffffffffffffffffffffffffffff6004351661010a565b604080519115158252519081900360200190f35b505050565b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561017f57600080fd5b505af1158015610193573d6000803e3d6000fd5b505050506040513d60208110156101a957600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af49493505050505600a165627a7a72305820ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba10029

Deployed Bytecode Sourcemap

1322:501:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1539:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1539:139:0;;-1:-1:-1;1539:139:0;;-1:-1:-1;;;;;;;1539:139:0;1686:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1686:134:0;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;;;:::o;1686:134::-;1736:4;1760:11;;:29;;;;;;:11;:29;;;;;;;;;:11;;;;;:21;;:29;;;;;;;;;;;;;;1736:4;1760:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;1760:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1760:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1760:29:0;:52;;:42;;;;;1803:8;;;;1760:52;1803:8;;;;1760:52;;;;;;;;;;;;;;;;;;;;;;1686:134;-1:-1:-1;;;;1686:134:0:o

Swarm Source

bzzr://ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba1

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.