ETH Price: $3,160.29 (-1.05%)
 

Overview

ETH Balance

0.21324062 ETH

Eth Value

$673.90 (@ $3,160.29/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer182894372023-10-06 5:40:35479 days ago1696570835IN
0x327fA530...Ecc9b8735
0.21324062 ETH0.000245458.10553787
Sweep121275922021-03-28 12:27:041401 days ago1616934424IN
0x327fA530...Ecc9b8735
0 ETH0.02148399330
Transfer121275762021-03-28 12:22:391401 days ago1616934159IN
0x327fA530...Ecc9b8735
0.94 ETH0.003799144
Sweep121151832021-03-26 14:31:201403 days ago1616769080IN
0x327fA530...Ecc9b8735
0 ETH0.02356728362
Transfer121151562021-03-26 14:25:131403 days ago1616768713IN
0x327fA530...Ecc9b8735
0.94 ETH0.00440579167
Sweep121110282021-03-25 23:13:061404 days ago1616713986IN
0x327fA530...Ecc9b8735
0 ETH0.02356728362
Transfer121110182021-03-25 23:10:081404 days ago1616713808IN
0x327fA530...Ecc9b8735
0.94 ETH0.00461685175
Sweep121049942021-03-25 0:53:321405 days ago1616633612IN
0x327fA530...Ecc9b8735
0 ETH0.02356728362
Transfer121049852021-03-25 0:50:331405 days ago1616633433IN
0x327fA530...Ecc9b8735
0.94 ETH0.00580404220
Sweep120949502021-03-23 11:49:451406 days ago1616500185IN
0x327fA530...Ecc9b8735
0 ETH0.01731739266
Transfer120949412021-03-23 11:48:011406 days ago1616500081IN
0x327fA530...Ecc9b8735
0.96 ETH0.00465642176.5
Sweep120849102021-03-21 22:37:591408 days ago1616366279IN
0x327fA530...Ecc9b8735
0 ETH0.02539017390
Transfer120849042021-03-21 22:36:271408 days ago1616366187IN
0x327fA530...Ecc9b8735
0.96 ETH0.00572489217
Sweep120812972021-03-21 9:24:131408 days ago1616318653IN
0x327fA530...Ecc9b8735
0 ETH0.01406224216
Transfer120812842021-03-21 9:22:001408 days ago1616318520IN
0x327fA530...Ecc9b8735
0.96 ETH0.00377262143.00000134
Sweep120694022021-03-19 13:17:321410 days ago1616159852IN
0x327fA530...Ecc9b8735
0 ETH0.01757781270
Transfer120693762021-03-19 13:13:291410 days ago1616159609IN
0x327fA530...Ecc9b8735
0.94 ETH0.00477514181
Sweep120613182021-03-18 7:38:411411 days ago1616053121IN
0x327fA530...Ecc9b8735
0 ETH0.01901007292
Transfer120613132021-03-18 7:36:501411 days ago1616053010IN
0x327fA530...Ecc9b8735
0.96 ETH0.00498619189
Sweep120547592021-03-17 7:15:121412 days ago1615965312IN
0x327fA530...Ecc9b8735
0 ETH0.01887987290
Transfer120547522021-03-17 7:12:301412 days ago1615965150IN
0x327fA530...Ecc9b8735
0.96 ETH0.0048279183.00000145
Sweep120489482021-03-16 9:51:491413 days ago1615888309IN
0x327fA530...Ecc9b8735
0 ETH0.02057254316
Transfer120489412021-03-16 9:49:231413 days ago1615888163IN
0x327fA530...Ecc9b8735
0.98 ETH0.00464323176.00000145
Sweep120460352021-03-15 23:00:211414 days ago1615849221IN
0x327fA530...Ecc9b8735
0 ETH0.02291625352
Transfer120460262021-03-15 22:58:341414 days ago1615849114IN
0x327fA530...Ecc9b8735
0.96 ETH0.00546107207
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
121275922021-03-28 12:27:041401 days ago1616934424
0x327fA530...Ecc9b8735
0.94 ETH
121151832021-03-26 14:31:201403 days ago1616769080
0x327fA530...Ecc9b8735
0.94 ETH
121110282021-03-25 23:13:061404 days ago1616713986
0x327fA530...Ecc9b8735
0.94 ETH
121049942021-03-25 0:53:321405 days ago1616633612
0x327fA530...Ecc9b8735
0.94 ETH
120949502021-03-23 11:49:451406 days ago1616500185
0x327fA530...Ecc9b8735
0.96 ETH
120849102021-03-21 22:37:591408 days ago1616366279
0x327fA530...Ecc9b8735
0.96 ETH
120812972021-03-21 9:24:131408 days ago1616318653
0x327fA530...Ecc9b8735
0.96 ETH
120694022021-03-19 13:17:321410 days ago1616159852
0x327fA530...Ecc9b8735
0.94 ETH
120613182021-03-18 7:38:411411 days ago1616053121
0x327fA530...Ecc9b8735
0.96 ETH
120547592021-03-17 7:15:121412 days ago1615965312
0x327fA530...Ecc9b8735
0.96 ETH
120489482021-03-16 9:51:491413 days ago1615888309
0x327fA530...Ecc9b8735
0.98 ETH
120460352021-03-15 23:00:211414 days ago1615849221
0x327fA530...Ecc9b8735
0.96 ETH
120396922021-03-14 23:22:531415 days ago1615764173
0x327fA530...Ecc9b8735
0.95 ETH
120348262021-03-14 5:37:041415 days ago1615700224
0x327fA530...Ecc9b8735
0.96 ETH
120240432021-03-12 13:53:171417 days ago1615557197
0x327fA530...Ecc9b8735
0.96 ETH
120216572021-03-12 4:49:441417 days ago1615524584
0x327fA530...Ecc9b8735
0.96 ETH
120201932021-03-11 23:18:571418 days ago1615504737
0x327fA530...Ecc9b8735
0.96 ETH
120160822021-03-11 8:02:541418 days ago1615449774
0x327fA530...Ecc9b8735
0.95 ETH
120141592021-03-11 0:45:381419 days ago1615423538
0x327fA530...Ecc9b8735
1 ETH
120129502021-03-10 20:27:351419 days ago1615408055
0x327fA530...Ecc9b8735
1 ETH
120075742021-03-10 0:39:201420 days ago1615336760
0x327fA530...Ecc9b8735
1.62641137 ETH
120063672021-03-09 20:05:131420 days ago1615320313
0x327fA530...Ecc9b8735
1 ETH
120035002021-03-09 9:25:541420 days ago1615281954
0x327fA530...Ecc9b8735
0.79 ETH
120029372021-03-09 7:22:051420 days ago1615274525
0x327fA530...Ecc9b8735
0.68914754 ETH
120021612021-03-09 4:29:141420 days ago1615264154
0x327fA530...Ecc9b8735
1.5707182 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x26Ad77C3...6b233e3d5
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.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-10-04
*/

/**
 * verified by 3esmit
*/

/**
 * Allows to create contracts which would be able to receive ETH and tokens.
 * Contract will help to detect ETH deposits faster.
 * Contract idea was borrowed from Bittrex.
 * Version: 2
 * */

pragma solidity 0.4.25;


contract Owned {
    address public owner1;
    address public owner2;

    modifier onlyOwner {
        require(msg.sender != address(0));
        require(msg.sender == owner1 || msg.sender == owner2, "Only owner.");
        _;
    }

    constructor() internal {
        owner1 = msg.sender;
    }

    function setOwner1(address _address) public onlyOwner {
        require(_address != address(0));
        owner1 = _address;
    }

    function setOwner2(address _address) public onlyOwner {
        require(_address != address(0));
        owner2 = _address;
    }
}


contract RequiringAuthorization is Owned {
    Casino public casino;
    bool public casinoAuthorized;
    mapping(address => bool) public authorized;

    modifier onlyAuthorized {
        require(authorized[msg.sender] || casinoAuthorized && casino.authorized(msg.sender), "Caller is not authorized.");
        _;
    }

    constructor(address _casino) internal {
        authorized[msg.sender] = true;
        casino = Casino(_casino);
        casinoAuthorized = true;
    }

    function authorize(address _address) public onlyOwner {
        authorized[_address] = true;
    }

    function deauthorize(address _address) public onlyOwner {
        authorized[_address] = false;
    }

    function authorizeCasino() public onlyOwner {
        casinoAuthorized = true;
    }

    function deauthorizeCasino() public onlyOwner {
        casinoAuthorized = false;
    }

    function setCasino(address _casino) public onlyOwner {
        casino = Casino(_casino);
    }
}


contract WalletController is RequiringAuthorization {
    address public destination;
    address public defaultSweeper = address(new DefaultSweeper(address(this)));
    bool public halted = false;

    mapping(address => address) public sweepers;
    mapping(address => bool) public wallets;

    event EthDeposit(address _from, address _to, uint _amount);
    event WalletCreated(address _address);
    event Sweeped(address _from, address _to, address _token, uint _amount);

    modifier onlyWallet {
        require(wallets[msg.sender], "Caller must be user wallet.");
        _;
    }

    constructor(address _casino) public RequiringAuthorization(_casino) {
        destination = msg.sender;
    }

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

    function createWallet() public {
        address wallet = address(new UserWallet(this));
        wallets[wallet] = true;
        emit WalletCreated(wallet);
    }

    function createWallets(uint count) public {
        for (uint i = 0; i < count; i++) {
            createWallet();
        }
    }

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

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

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

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

    function logEthDeposit(address _from, address _to, uint _amount) public onlyWallet {
        emit EthDeposit(_from, _to, _amount);
    }

    function logSweep(address _from, address _to, address _token, uint _amount) public {
        emit Sweeped(_from, _to, _token, _amount);
    }
}


contract UserWallet {
    WalletController private controller;

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

    function () public payable {
        controller.logEthDeposit(msg.sender, address(this), msg.value);
    }

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

    function sweep(address _token, uint _amount) public returns (bool) {
        (_amount);
        return controller.sweeperOf(_token).delegatecall(msg.data);
    }
}


contract AbstractSweeper {
    WalletController public controller;

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

    function () public { revert("Contract does not accept ETH."); }

    function sweep(address token, uint amount) public returns (bool);

    modifier canSweep() {
        if (!(controller.authorized(msg.sender) || controller.casinoAuthorized() && controller.casino().authorized(msg.sender))) revert("Caller is not authorized to sweep.");
        if (controller.halted()) revert("Contract is halted.");
        _;
    }
}


contract DefaultSweeper is AbstractSweeper {

    constructor (address controller) public AbstractSweeper(controller) {}

    function sweep(address _token, uint _amount) public 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 > address(this).balance) {
                return false;
            }
            success = destination.send(amountInWei);
        }

        if (success) {
            controller.logSweep(this, destination, _token, _amount);
        }
        return success;
    }
}


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 Casino {
    mapping(address => bool) public authorized;
}

Contract Security Audit

Contract ABI

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

Deployed Bytecode

0x60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a981146100de578063c0ee0b8a14610123575b60008054604080517f3128012a000000000000000000000000000000000000000000000000000000008152336004820152306024820152346044820152905173ffffffffffffffffffffffffffffffffffffffff90921692633128012a9260648084019382900301818387803b1580156100c457600080fd5b505af11580156100d8573d6000803e3d6000fd5b50505050005b3480156100ea57600080fd5b5061010f73ffffffffffffffffffffffffffffffffffffffff6004351660243561019b565b604080519115158252519081900360200190f35b34801561012f57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261019994823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506102829650505050505050565b005b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561021057600080fd5b505af1158015610224573d6000803e3d6000fd5b505050506040513d602081101561023a57600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af495945050505050565b5050505600a165627a7a72305820670b3401d94aec68ef3bdcca24e917d0bcb5bf05491f1d1c1d0f59cf6c11fae60029

Deployed Bytecode Sourcemap

3828:611:0:-;;;;;;;;;;;;;;;;;;;;;;;;;4047:10;;;:62;;;;;;4072:10;4047:62;;;;4092:4;4047:62;;;;4099:9;4047:62;;;;;;:10;;;;;:24;;:62;;;;;;;;;;:10;;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;4047:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4047:62:0;;;;3828:611;4272:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4272:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4125:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4125:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4125:139:0;;-1:-1:-1;4125:139:0;;-1:-1:-1;;;;;;;4125:139:0;;;4272:164;4333:4;4377:10;;:28;;;;;;:10;:28;;;;;;;;;:10;;;;;:20;;:28;;;;;;;;;;;;;;4333:4;4377:10;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;4377:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4377:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4377:28:0;:51;;:41;;;;;4419:8;;;;4377:51;4419:8;;;;4377:51;;;;;;;;;;;;;;;;;;;;;;4272:164;-1:-1:-1;;;;;4272:164:0:o;4125:139::-;;;;:::o

Swarm Source

bzzr://670b3401d94aec68ef3bdcca24e917d0bcb5bf05491f1d1c1d0f59cf6c11fae6

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.