ETH Price: $3,136.29 (-4.23%)

Contract

0xd2bBbb9CEaaCf72B6E89F98925C3d98dE6a96818
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute87168562019-10-10 23:09:551861 days ago1570748995IN
0xd2bBbb9C...dE6a96818
0 ETH0.000457331
Execute87168542019-10-10 23:08:261861 days ago1570748906IN
0xd2bBbb9C...dE6a96818
0 ETH0.000201991
Execute87168472019-10-10 23:07:061861 days ago1570748826IN
0xd2bBbb9C...dE6a96818
0 ETH0.000409391
Execute87168302019-10-10 23:03:441861 days ago1570748624IN
0xd2bBbb9C...dE6a96818
0 ETH0.000285511
Execute87168202019-10-10 23:01:521861 days ago1570748512IN
0xd2bBbb9C...dE6a96818
0 ETH0.000687341
Execute87167622019-10-10 22:50:571861 days ago1570747857IN
0xd2bBbb9C...dE6a96818
0 ETH0.000310681
Execute87167282019-10-10 22:45:191861 days ago1570747519IN
0xd2bBbb9C...dE6a96818
0 ETH0.000299091
Execute87166752019-10-10 22:31:191861 days ago1570746679IN
0xd2bBbb9C...dE6a96818
0 ETH0.00029961
Execute87166402019-10-10 22:24:171861 days ago1570746257IN
0xd2bBbb9C...dE6a96818
0 ETH0.000052551
Execute87166402019-10-10 22:24:171861 days ago1570746257IN
0xd2bBbb9C...dE6a96818
0 ETH0.000052551
Execute87166382019-10-10 22:23:361861 days ago1570746216IN
0xd2bBbb9C...dE6a96818
0 ETH0.000584571
Execute87166332019-10-10 22:21:581861 days ago1570746118IN
0xd2bBbb9C...dE6a96818
0 ETH0.000299471
Execute87166202019-10-10 22:18:061861 days ago1570745886IN
0xd2bBbb9C...dE6a96818
0 ETH0.000286691
Execute87164432019-10-10 21:36:221861 days ago1570743382IN
0xd2bBbb9C...dE6a96818
0 ETH0.000270741
Execute87163542019-10-10 21:14:461861 days ago1570742086IN
0xd2bBbb9C...dE6a96818
0 ETH0.000175731
Execute87163322019-10-10 21:10:121861 days ago1570741812IN
0xd2bBbb9C...dE6a96818
0 ETH0.000774381
Execute87163122019-10-10 21:05:021861 days ago1570741502IN
0xd2bBbb9C...dE6a96818
0 ETH0.000725571
Execute87163032019-10-10 21:02:511861 days ago1570741371IN
0xd2bBbb9C...dE6a96818
0.03 ETH0.000176711
Execute87123792019-10-10 6:14:031862 days ago1570688043IN
0xd2bBbb9C...dE6a96818
0 ETH0.001914872
Execute87123682019-10-10 6:11:231862 days ago1570687883IN
0xd2bBbb9C...dE6a96818
0 ETH0.000741512
Execute87122132019-10-10 5:36:281862 days ago1570685788IN
0xd2bBbb9C...dE6a96818
0 ETH0.000180141.1
Execute87121912019-10-10 5:31:071862 days ago1570685467IN
0xd2bBbb9C...dE6a96818
0.075 ETH0.000233261.32
Execute87118302019-10-10 4:05:521862 days ago1570680352IN
0xd2bBbb9C...dE6a96818
0 ETH0.000283161
Execute87118102019-10-10 4:02:281862 days ago1570680148IN
0xd2bBbb9C...dE6a96818
0 ETH0.001806347.5625
Execute87090452019-10-09 17:38:241863 days ago1570642704IN
0xd2bBbb9C...dE6a96818
0 ETH0.000252791
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
87168562019-10-10 23:09:551861 days ago1570748995
0xd2bBbb9C...dE6a96818
0.08137443 ETH
87168562019-10-10 23:09:551861 days ago1570748995
0xd2bBbb9C...dE6a96818
0.08137443 ETH
87168542019-10-10 23:08:261861 days ago1570748906
0xd2bBbb9C...dE6a96818
0.02 ETH
87168542019-10-10 23:08:261861 days ago1570748906
0xd2bBbb9C...dE6a96818
0.02 ETH
87163322019-10-10 21:10:121861 days ago1570741812
0xd2bBbb9C...dE6a96818
2 wei
87163122019-10-10 21:05:021861 days ago1570741502
0xd2bBbb9C...dE6a96818
0.02 ETH
87163122019-10-10 21:05:021861 days ago1570741502
0xd2bBbb9C...dE6a96818
0.02 ETH
87163032019-10-10 21:02:511861 days ago1570741371
0xd2bBbb9C...dE6a96818
0.03 ETH
87123792019-10-10 6:14:031862 days ago1570688043
0xd2bBbb9C...dE6a96818
0.01037443 ETH
87123792019-10-10 6:14:031862 days ago1570688043
0xd2bBbb9C...dE6a96818
0.01037443 ETH
87121912019-10-10 5:31:071862 days ago1570685467
0xd2bBbb9C...dE6a96818
0.075 ETH
87118102019-10-10 4:02:281862 days ago1570680148
0xd2bBbb9C...dE6a96818
0.012 ETH
87118102019-10-10 4:02:281862 days ago1570680148
0xd2bBbb9C...dE6a96818
0.012 ETH
87090372019-10-09 17:36:321863 days ago1570642592
0xd2bBbb9C...dE6a96818
0.012 ETH
87088972019-10-09 17:04:501863 days ago1570640690
0xd2bBbb9C...dE6a96818
0.006 ETH
87088672019-10-09 16:58:571863 days ago1570640337  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5D4a9452...b2E9d13dB
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UserWallet

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-07
*/

pragma solidity ^0.5.2;

/**
 * @title RegistryInterface Interface 
 */
interface RegistryInterface {
    function logic(address logicAddr) external view returns (bool);
    function record(address currentOwner, address nextOwner) external;
}


/**
 * @title Address Registry Record
 */
contract AddressRecord {

    /**
     * @dev address registry of system, logic and wallet addresses
     */
    address public registry;

    /**
     * @dev Throws if the logic is not authorised
     */
    modifier logicAuth(address logicAddr) {
        require(logicAddr != address(0), "logic-proxy-address-required");
        require(RegistryInterface(registry).logic(logicAddr), "logic-not-authorised");
        _;
    }

}


/**
 * @title User Auth
 */
contract UserAuth is AddressRecord {

    event LogSetOwner(address indexed owner);
    address public owner;

    /**
     * @dev Throws if not called by owner or contract itself
     */
    modifier auth {
        require(isAuth(msg.sender), "permission-denied");
        _;
    }

    /**
     * @dev sets new owner
     */
    function setOwner(address nextOwner) public auth {
        RegistryInterface(registry).record(owner, nextOwner);
        owner = nextOwner;
        emit LogSetOwner(nextOwner);
    }

    /**
     * @dev checks if called by owner or contract itself
     * @param src is the address initiating the call
     */
    function isAuth(address src) public view returns (bool) {
        if (src == owner) {
            return true;
        } else if (src == address(this)) {
            return true;
        }
        return false;
    }
}


/**
 * @dev logging the execute events
 */
contract UserNote {
    event LogNote(
        bytes4 indexed sig,
        address indexed guy,
        bytes32 indexed foo,
        bytes32 bar,
        uint wad,
        bytes fax
    );

    modifier note {
        bytes32 foo;
        bytes32 bar;
        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }
        emit LogNote(
            msg.sig, 
            msg.sender, 
            foo, 
            bar, 
            msg.value,
            msg.data
        );
        _;
    }
}


/**
 * @title User Owned Contract Wallet
 */
contract UserWallet is UserAuth, UserNote {

    event LogExecute(address target, uint srcNum, uint sessionNum);

    /**
     * @dev sets the "address registry", owner's last activity, owner's active period and initial owner
     */
    constructor() public {
        registry = msg.sender;
        owner = msg.sender;
    }

    function() external payable {}

    /**
     * @dev Execute authorised calls via delegate call
     * @param _target logic proxy address
     * @param _data delegate call data
     * @param _src to find the source
     * @param _session to find the session
     */
    function execute(
        address _target,
        bytes memory _data,
        uint _src,
        uint _session
    ) 
        public
        payable
        note
        auth
        logicAuth(_target)
        returns (bytes memory response)
    {
        emit LogExecute(
            _target,
            _src,
            _session
        );
        
        // call contract in current context
        assembly {
            let succeeded := delegatecall(sub(gas, 5000), _target, add(_data, 0x20), mload(_data), 0, 0)
            let size := returndatasize

            response := mload(0x40)
            mstore(0x40, add(response, and(add(add(size, 0x20), 0x1f), not(0x1f))))
            mstore(response, size)
            returndatacopy(add(response, 0x20), 0, size)

            switch iszero(succeeded)
                case 1 {
                    // throw if delegatecall failed
                    revert(add(response, 0x20), size)
                }
        }
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"nextOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"isAuth","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_data","type":"bytes"},{"name":"_src","type":"uint256"},{"name":"_session","type":"uint256"}],"name":"execute","outputs":[{"name":"response","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"srcNum","type":"uint256"},{"indexed":false,"name":"sessionNum","type":"uint256"}],"name":"LogExecute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":false,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Deployed Bytecode

0x608060405260043610610067576000357c01000000000000000000000000000000000000000000000000000000009004806313af4035146100695780632520e7ff146100ba5780637b103999146101235780638da5cb5b1461017a578063f3541901146101d1575b005b34801561007557600080fd5b506100b86004803603602081101561008c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610339565b005b3480156100c657600080fd5b50610109600480360360208110156100dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b604051808215151515815260200191505060405180910390f35b34801561012f57600080fd5b5061013861060f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018657600080fd5b5061018f610634565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102be600480360360808110156101e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561022457600080fd5b82018360208201111561023657600080fd5b8035906020019184600183028401116401000000008311171561025857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019092919050505061065a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61034233610567565b15156103b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2d64656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339035d56600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b5050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105c8576001905061060a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610605576001905061060a565b600090505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008060043591506024359050813373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f644843f351d3fba4abcd60109eaff9f54bac8fb8ccf0bab941009c21df21cf31843460003660405180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a461074233610567565b15156107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2d64656e69656400000000000000000000000000000081525060200191505060405180910390fd5b86600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f6c6f6769632d70726f78792d616464726573732d72657175697265640000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311390441826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561091657600080fd5b505afa15801561092a573d6000803e3d6000fd5b505050506040513d602081101561094057600080fd5b810190808051906020019092919050505015156109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6c6f6769632d6e6f742d617574686f726973656400000000000000000000000081525060200191505060405180910390fd5b7fbd37415aaf130f9a169d66bc22d669b6a5aa55f384e7b41d105714eb8277b341888787604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1600080885160208a018b6113885a03f43d6040519550601f19601f6020830101168601604052808652806000602088013e811560018114610a7857610a7f565b8160208801fd5b50505050505094935050505056fea165627a7a72305820a70df5c3d70f52cf6a410ed7bf147d9052fbab8b4e98568082f924a8dd7f63c90029

Swarm Source

bzzr://a70df5c3d70f52cf6a410ed7bf147d9052fbab8b4e98568082f924a8dd7f63c9

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.