ETH Price: $2,762.20 (+4.64%)

Contract

0x798342E1a0f01c5084F28c122F5e391fcd47e4B8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute96940012020-03-18 6:32:391802 days ago1584513159IN
0x798342E1...fcd47e4B8
0 ETH0.001797795
Execute96939922020-03-18 6:29:231802 days ago1584512963IN
0x798342E1...fcd47e4B8
0 ETH0.001803435
Execute93493652020-01-25 6:34:431855 days ago1579934083IN
0x798342E1...fcd47e4B8
2.50848959 ETH0.000187091.2
Execute91223052019-12-17 20:42:351893 days ago1576615355IN
0x798342E1...fcd47e4B8
0 ETH0.003142769
Execute91222722019-12-17 20:34:021893 days ago1576614842IN
0x798342E1...fcd47e4B8
0 ETH0.001874948.8
Execute90467482019-12-04 1:22:371907 days ago1575422557IN
0x798342E1...fcd47e4B8
0 ETH0.000529472
Execute90172662019-11-28 20:10:371912 days ago1574971837IN
0x798342E1...fcd47e4B8
0 ETH0.000673463
Execute89765742019-11-21 21:06:531919 days ago1574370413IN
0x798342E1...fcd47e4B8
0 ETH0.00061592
Execute89764712019-11-21 20:43:171919 days ago1574368997IN
0x798342E1...fcd47e4B8
0 ETH0.000456191.5
Execute89751722019-11-21 15:37:281920 days ago1574350648IN
0x798342E1...fcd47e4B8
0 ETH0.002625915
Execute89684202019-11-20 12:50:361921 days ago1574254236IN
0x798342E1...fcd47e4B8
0 ETH0.000497861.5
Execute89636742019-11-19 17:37:421922 days ago1574185062IN
0x798342E1...fcd47e4B8
0 ETH0.000480451.8
Execute89399742019-11-15 18:32:211926 days ago1573842741IN
0x798342E1...fcd47e4B8
0 ETH0.002276941.5
Execute88237892019-10-27 20:52:421944 days ago1572209562IN
0x798342E1...fcd47e4B8
0 ETH0.00019891
Execute87910042019-10-22 15:15:551950 days ago1571757355IN
0x798342E1...fcd47e4B8
3.7162714 ETH0.000298181.2
Execute87729842019-10-19 19:05:161953 days ago1571511916IN
0x798342E1...fcd47e4B8
1.25921201 ETH0.000298281
Execute87666212019-10-18 19:06:351954 days ago1571425595IN
0x798342E1...fcd47e4B8
0.64214533 ETH0.00030871.1
Execute87598262019-10-17 17:22:461955 days ago1571332966IN
0x798342E1...fcd47e4B8
0 ETH0.000314671.3
Execute87594242019-10-17 15:55:061955 days ago1571327706IN
0x798342E1...fcd47e4B8
0 ETH0.000328791.2
Execute86715602019-10-03 21:10:361968 days ago1570137036IN
0x798342E1...fcd47e4B8
0 ETH0.000532762
Execute86715272019-10-03 21:02:401968 days ago1570136560IN
0x798342E1...fcd47e4B8
4 ETH0.000205661

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
93493652020-01-25 6:34:431855 days ago1579934083
0x798342E1...fcd47e4B8
2.50598545 ETH
93493652020-01-25 6:34:431855 days ago1579934083
0x798342E1...fcd47e4B8
0.00250413 ETH
91223052019-12-17 20:42:351893 days ago1576615355
0x798342E1...fcd47e4B8
2.5 ETH
91223052019-12-17 20:42:351893 days ago1576615355
0x798342E1...fcd47e4B8
2.5 ETH
90467482019-12-04 1:22:371907 days ago1575422557
0x798342E1...fcd47e4B8
1.12189043 ETH
90467482019-12-04 1:22:371907 days ago1575422557
0x798342E1...fcd47e4B8
1.12189043 ETH
89764712019-11-21 20:43:171919 days ago1574368997
0x798342E1...fcd47e4B8
4.00000003 ETH
89764712019-11-21 20:43:171919 days ago1574368997
0x798342E1...fcd47e4B8
4.00000003 ETH
89399742019-11-15 18:32:211926 days ago1573842741
0x798342E1...fcd47e4B8
1.12162125 ETH
89399742019-11-15 18:32:211926 days ago1573842741
0x798342E1...fcd47e4B8
1.12162125 ETH
87910042019-10-22 15:15:551950 days ago1571757355
0x798342E1...fcd47e4B8
0.0303216 ETH
87910042019-10-22 15:15:551950 days ago1571757355
0x798342E1...fcd47e4B8
0.0303216 ETH
87910042019-10-22 15:15:551950 days ago1571757355
0x798342E1...fcd47e4B8
3.7162714 ETH
87729842019-10-19 19:05:161953 days ago1571511916
0x798342E1...fcd47e4B8
0.0088741 ETH
87729842019-10-19 19:05:161953 days ago1571511916
0x798342E1...fcd47e4B8
0.0088741 ETH
87729842019-10-19 19:05:161953 days ago1571511916
0x798342E1...fcd47e4B8
1.25921201 ETH
87666212019-10-18 19:06:351954 days ago1571425595
0x798342E1...fcd47e4B8
0.00702362 ETH
87666212019-10-18 19:06:351954 days ago1571425595
0x798342E1...fcd47e4B8
0.00702362 ETH
87666212019-10-18 19:06:351954 days ago1571425595
0x798342E1...fcd47e4B8
0.64214533 ETH
86715272019-10-03 21:02:401968 days ago1570136560
0x798342E1...fcd47e4B8
4 ETH
86647152019-10-02 19:19:031969 days ago1570043943  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.