ETH Price: $2,620.09 (+0.03%)

Contract

0x1E23110442A3e03EC981933D5E4dE5e5E1f21f61
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute196517072024-04-14 5:31:47185 days ago1713072707IN
DSProxy #155,370
0 ETH0.0018368810.75077589
Execute183716522023-10-17 17:42:35365 days ago1697564555IN
DSProxy #155,370
0 ETH0.0019646112.01560935
Execute183716342023-10-17 17:38:59365 days ago1697564339IN
DSProxy #155,370
0 ETH0.0018773710.98774374
Execute181732062023-09-19 23:22:35393 days ago1695165755IN
DSProxy #155,370
0 ETH0.0019668211.51124464
Execute181449812023-09-15 23:52:23397 days ago1694821943IN
DSProxy #155,370
0 ETH0.001924568.37095844
Execute181425812023-09-15 15:44:23397 days ago1694792663IN
DSProxy #155,370
0 ETH0.0039899617.34142453
Execute181282902023-09-13 15:31:23399 days ago1694619083IN
DSProxy #155,370
0 ETH0.0055304123.95891394
Execute180962712023-09-09 3:50:47403 days ago1694231447IN
DSProxy #155,370
0 ETH0.0023247710.09404261
Execute180825262023-09-07 5:40:11405 days ago1694065211IN
DSProxy #155,370
0 ETH0.0017802610.02879402
Execute180598422023-09-04 1:29:23409 days ago1693790963IN
DSProxy #155,370
0 ETH0.0018175910.63788244
Execute177962312023-07-29 4:11:47445 days ago1690603907IN
DSProxy #155,370
0 ETH0.0035639615.47449645
Execute174576102023-06-11 14:58:11493 days ago1686495491IN
DSProxy #155,370
0 ETH0.0025445915.56050947
Execute174557522023-06-11 8:41:23493 days ago1686472883IN
DSProxy #155,370
0 ETH0.0030855717.69342891
Execute174557232023-06-11 8:35:23493 days ago1686472523IN
DSProxy #155,370
0 ETH0.0031352517.66190206
Execute174555882023-06-11 8:07:59493 days ago1686470879IN
DSProxy #155,370
0 ETH0.0033979119.1415468
Execute169447302023-03-31 4:12:23565 days ago1680235943IN
DSProxy #155,370
0 ETH0.0049897623.44834927
Execute168665952023-03-20 4:46:23576 days ago1679287583IN
DSProxy #155,370
0 ETH0.0032313514.06190384
Execute166543352023-02-18 8:28:47606 days ago1676708927IN
DSProxy #155,370
0 ETH0.0052593122.88699613
Execute166542312023-02-18 8:07:35606 days ago1676707655IN
DSProxy #155,370
50 ETH0.0045218127.6002898
Execute164515042023-01-21 0:09:23635 days ago1674259763IN
DSProxy #155,370
0 ETH0.0042866124.14791089
Execute160990282022-12-02 18:51:11684 days ago1670007071IN
DSProxy #155,370
0 ETH0.0025313611.92132481
Execute160990212022-12-02 18:49:47684 days ago1670006987IN
DSProxy #155,370
0 ETH0.0024415911.45213447
Execute159407172022-11-10 16:09:35706 days ago1668096575IN
DSProxy #155,370
0 ETH0.0394411636.37906476
Execute159407052022-11-10 16:07:11706 days ago1668096431IN
DSProxy #155,370
0 ETH0.0319432438.82318121
Execute159354362022-11-09 22:26:47707 days ago1668032807IN
DSProxy #155,370
0 ETH0.08725637106.37764848
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
180825262023-09-07 5:40:11405 days ago1694065211
DSProxy #155,370
5 ETH
180825262023-09-07 5:40:11405 days ago1694065211
DSProxy #155,370
5 ETH
174557232023-06-11 8:35:23493 days ago1686472523
DSProxy #155,370
8 ETH
174557232023-06-11 8:35:23493 days ago1686472523
DSProxy #155,370
8 ETH
174555882023-06-11 8:07:59493 days ago1686470879
DSProxy #155,370
15 ETH
174555882023-06-11 8:07:59493 days ago1686470879
DSProxy #155,370
15 ETH
166542312023-02-18 8:07:35606 days ago1676707655
DSProxy #155,370
50 ETH
164515042023-01-21 0:09:23635 days ago1674259763
DSProxy #155,370
5 ETH
164515042023-01-21 0:09:23635 days ago1674259763
DSProxy #155,370
5 ETH
155659732022-09-19 7:07:11758 days ago1663571231
DSProxy #155,370
14.3 ETH
154967972022-09-08 13:16:56769 days ago1662643016
DSProxy #155,370
37 ETH
154967972022-09-08 13:16:56769 days ago1662643016
DSProxy #155,370
37 ETH
149869672022-06-18 20:32:59851 days ago1655584379
DSProxy #155,370
12 ETH
149656452022-06-15 4:36:54854 days ago1655267814
DSProxy #155,370
19 ETH
148847472022-06-01 12:20:49868 days ago1654086049
DSProxy #155,370
31 ETH
148465272022-05-26 6:42:51874 days ago1653547371
DSProxy #155,370
45.92 ETH
148465272022-05-26 6:42:51874 days ago1653547371
DSProxy #155,370
45.92 ETH
147684582022-05-13 16:31:19887 days ago1652459479
DSProxy #155,370
15 ETH
143554942022-03-09 23:07:46952 days ago1646867266
DSProxy #155,370
35 ETH
140244702022-01-17 17:44:301003 days ago1642441470
DSProxy #155,370
50 ETH
126875972021-06-23 1:47:391211 days ago1624412859
DSProxy #155,370
15 ETH
125115212021-05-26 18:13:021239 days ago1622052782
DSProxy #155,370
20 ETH
125115212021-05-26 18:13:021239 days ago1622052782
DSProxy #155,370
20 ETH
124882492021-05-23 3:51:241242 days ago1621741884
DSProxy #155,370
79 ETH
124882492021-05-23 3:51:241242 days ago1621741884
DSProxy #155,370
79 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
DSProxy

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-06
*/

// proxy.sol - execute actions atomically through the proxy's identity

// Copyright (C) 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

pragma solidity ^0.4.23;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    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);

        _;
    }
}

// DSProxy
// Allows code execution using a persistant identity This can be very
// useful to execute a sequence of atomic actions. Since the owner of
// the proxy can be changed, this allows for dynamic ownership models
// i.e. a multisig
contract DSProxy is DSAuth, DSNote {
    DSProxyCache public cache;  // global cache for contracts

    constructor(address _cacheAddr) public {
        require(setCache(_cacheAddr));
    }

    function() public payable {
    }

    // use the proxy to execute calldata _data on contract _code
    function execute(bytes _code, bytes _data)
        public
        payable
        returns (address target, bytes32 response)
    {
        target = cache.read(_code);
        if (target == 0x0) {
            // deploy contract & store its address in cache
            target = cache.write(_code);
        }

        response = execute(target, _data);
    }

    function execute(address _target, bytes _data)
        public
        auth
        note
        payable
        returns (bytes32 response)
    {
        require(_target != 0x0);

        // call contract in current context
        assembly {
            let succeeded := delegatecall(sub(gas, 5000), _target, add(_data, 0x20), mload(_data), 0, 32)
            response := mload(0)      // load delegatecall output
            switch iszero(succeeded)
            case 1 {
                // throw if delegatecall failed
                revert(0, 0)
            }
        }
    }

    //set new cache
    function setCache(address _cacheAddr)
        public
        auth
        note
        returns (bool)
    {
        require(_cacheAddr != 0x0);        // invalid cache address
        cache = DSProxyCache(_cacheAddr);  // overwrite cache
        return true;
    }
}

// DSProxyFactory
// This factory deploys new proxy instances through build()
// Deployed proxy addresses are logged
contract DSProxyFactory {
    event Created(address indexed sender, address indexed owner, address proxy, address cache);
    mapping(address=>bool) public isProxy;
    DSProxyCache public cache = new DSProxyCache();

    // deploys a new proxy instance
    // sets owner of proxy to caller
    function build() public returns (DSProxy proxy) {
        proxy = build(msg.sender);
    }

    // deploys a new proxy instance
    // sets custom owner of proxy
    function build(address owner) public returns (DSProxy proxy) {
        proxy = new DSProxy(cache);
        emit Created(msg.sender, owner, address(proxy), address(cache));
        proxy.setOwner(owner);
        isProxy[proxy] = true;
    }
}

// DSProxyCache
// This global cache stores addresses of contracts previously deployed
// by a proxy. This saves gas from repeat deployment of the same
// contracts and eliminates blockchain bloat.

// By default, all proxies deployed from the same factory store
// contracts in the same cache. The cache a proxy instance uses can be
// changed.  The cache uses the sha3 hash of a contract's bytecode to
// lookup the address
contract DSProxyCache {
    mapping(bytes32 => address) cache;

    function read(bytes _code) public view returns (address) {
        bytes32 hash = keccak256(_code);
        return cache[hash];
    }

    function write(bytes _code) public returns (address target) {
        assembly {
            target := create(0, add(_code, 0x20), mload(_code))
            switch iszero(extcodesize(target))
            case 1 {
                // throw if contract failed to deploy
                revert(0, 0)
            }
        }
        bytes32 hash = keccak256(_code);
        cache[hash] = target;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"response","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_code","type":"bytes"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"target","type":"address"},{"name":"response","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"cache","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cacheAddr","type":"address"}],"name":"setCache","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_cacheAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"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":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Deployed Bytecode

0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029

Swarm Source

bzzr://e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The proxy contract address for 0xd9353d77e35329bf6f609f5f8eccc84dda8d6c5b.

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.