ETH Price: $2,526.04 (-0.97%)

Contract

0x34C671de280761E961dA184782C786149705Ac48
 
Transaction Hash
Method
Block
From
To
0x5375626a185874662023-11-16 22:35:59350 days ago1700174159IN
DSProxy #5,109
0 ETH0.0031179633.81884254
0x5375626a184803902023-11-01 22:59:11365 days ago1698879551IN
DSProxy #5,109
0 ETH0.0035746138.77185944
0x5375626a180962182023-09-09 3:40:11419 days ago1694230811IN
DSProxy #5,109
0 ETH0.001177312.7696027
Execute96583692020-03-12 18:37:471694 days ago1584038267IN
DSProxy #5,109
0.0177 ETH0.0812072457.2
Execute96570512020-03-12 13:49:301695 days ago1584020970IN
DSProxy #5,109
0 ETH0.00864432120
Execute95091352020-02-18 19:56:141717 days ago1582055774IN
DSProxy #5,109
0 ETH0.000360185
Execute94738672020-02-13 9:29:501723 days ago1581586190IN
DSProxy #5,109
0 ETH0.007658166.5
Execute94737602020-02-13 9:02:271723 days ago1581584547IN
DSProxy #5,109
0 ETH0.003506823
Execute94705612020-02-12 21:16:281723 days ago1581542188IN
DSProxy #5,109
0 ETH0.0024022610
Execute94705592020-02-12 21:16:111723 days ago1581542171IN
DSProxy #5,109
0.5 ETH0.000855314.5
Execute94441232020-02-08 19:59:251727 days ago1581191965IN
DSProxy #5,109
0 ETH0.000229341
Execute94350742020-02-07 10:39:181729 days ago1581071958IN
DSProxy #5,109
0 ETH0.0044986612
Execute94292362020-02-06 13:03:541730 days ago1580994234IN
DSProxy #5,109
0 ETH0.0060041116
Execute94278652020-02-06 7:53:421730 days ago1580975622IN
DSProxy #5,109
0 ETH0.004521212
Execute94241572020-02-05 18:13:501730 days ago1580926430IN
DSProxy #5,109
0 ETH0.0037420810
Execute94224382020-02-05 11:46:421731 days ago1580903202IN
DSProxy #5,109
0 ETH0.0037594810
Execute94062032020-02-03 0:04:581733 days ago1580688298IN
DSProxy #5,109
0 ETH0.001034462.2
Execute94024732020-02-02 10:20:331734 days ago1580638833IN
DSProxy #5,109
0 ETH0.000453842
Execute94023952020-02-02 10:06:071734 days ago1580637967IN
DSProxy #5,109
0 ETH0.002353356
Execute93856952020-01-30 20:24:071736 days ago1580415847IN
DSProxy #5,109
0 ETH0.000751292
Execute93736562020-01-28 23:58:191738 days ago1580255899IN
DSProxy #5,109
0 ETH0.002270156
Execute93670392020-01-27 23:34:421739 days ago1580168082IN
DSProxy #5,109
0 ETH0.000902092.4
Execute93587642020-01-26 17:11:071740 days ago1580058667IN
DSProxy #5,109
0 ETH0.001758754.8
Execute93437042020-01-24 9:29:571743 days ago1579858197IN
DSProxy #5,109
0 ETH0.004776769.6
Execute93381542020-01-23 13:14:501744 days ago1579785290IN
DSProxy #5,109
0 ETH0.002728956
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
96594612020-03-12 22:39:011694 days ago1584052741
DSProxy #5,109
0.65815816 ETH
96594612020-03-12 22:39:011694 days ago1584052741
DSProxy #5,109
0.65815816 ETH
96594452020-03-12 22:36:181694 days ago1584052578
DSProxy #5,109
0.57468608 ETH
96594452020-03-12 22:36:181694 days ago1584052578
DSProxy #5,109
0.57468608 ETH
96583692020-03-12 18:37:471694 days ago1584038267
DSProxy #5,109
0.0177 ETH
96556942020-03-12 8:33:351695 days ago1584002015
DSProxy #5,109
1.12840981 ETH
96556942020-03-12 8:33:351695 days ago1584002015
DSProxy #5,109
1.12840981 ETH
96555772020-03-12 8:05:011695 days ago1584000301
DSProxy #5,109
1.12845553 ETH
96555772020-03-12 8:05:011695 days ago1584000301
DSProxy #5,109
1.12845553 ETH
96542332020-03-12 3:03:491695 days ago1583982229
DSProxy #5,109
1.20620073 ETH
96542332020-03-12 3:03:491695 days ago1583982229
DSProxy #5,109
1.20620073 ETH
96525972020-03-11 21:12:131695 days ago1583961133
DSProxy #5,109
0.83555225 ETH
96525972020-03-11 21:12:131695 days ago1583961133
DSProxy #5,109
0.83555225 ETH
96519942020-03-11 19:06:221695 days ago1583953582
DSProxy #5,109
1.06284398 ETH
96519942020-03-11 19:06:221695 days ago1583953582
DSProxy #5,109
1.06284398 ETH
96498412020-03-11 11:03:201696 days ago1583924600
DSProxy #5,109
1.32476302 ETH
96498412020-03-11 11:03:201696 days ago1583924600
DSProxy #5,109
1.32476302 ETH
96463702020-03-10 22:12:311696 days ago1583878351
DSProxy #5,109
1.03382041 ETH
96463702020-03-10 22:12:311696 days ago1583878351
DSProxy #5,109
1.03382041 ETH
96449822020-03-10 17:12:071696 days ago1583860327
DSProxy #5,109
1.14649894 ETH
96449822020-03-10 17:12:071696 days ago1583860327
DSProxy #5,109
1.14649894 ETH
96407052020-03-10 1:15:321697 days ago1583802932
DSProxy #5,109
1.11610549 ETH
96407052020-03-10 1:15:321697 days ago1583802932
DSProxy #5,109
1.11610549 ETH
96382192020-03-09 16:06:271698 days ago1583769987
DSProxy #5,109
1.25629843 ETH
96382192020-03-09 16:06:271698 days ago1583769987
DSProxy #5,109
1.25629843 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 0x007ae0c2f70987f4c17152c40ad9c22b95f2810f.

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.