ETH Price: $3,555.17 (+6.86%)

Contract

0xe71a8ddCad4a950a1bbea58a301F62B5337eCB5c
 
Transaction Hash
Method
Block
From
To
Upgrade To202317082024-07-04 7:38:35146 days ago1720078715IN
0xe71a8ddC...5337eCB5c
0 ETH0.000160775.49749111
Unstake202106162024-07-01 8:56:35149 days ago1719824195IN
0xe71a8ddC...5337eCB5c
0 ETH0.000520423.98687663
Unstake202076442024-06-30 22:58:59149 days ago1719788339IN
0xe71a8ddC...5337eCB5c
0 ETH0.000597584.57762373
Unstake202055032024-06-30 15:49:35150 days ago1719762575IN
0xe71a8ddC...5337eCB5c
0 ETH0.000491863.76777816
Unstake202020172024-06-30 4:09:11150 days ago1719720551IN
0xe71a8ddC...5337eCB5c
0 ETH0.000212521.62813394
Unstake201981922024-06-29 15:19:47151 days ago1719674387IN
0xe71a8ddC...5337eCB5c
0 ETH0.000515133.94606559
Unstake201933112024-06-28 22:56:47151 days ago1719615407IN
0xe71a8ddC...5337eCB5c
0 ETH0.000340452.21259768
Safe Transfer Fr...201844732024-06-27 17:19:35152 days ago1719508775IN
0xe71a8ddC...5337eCB5c
0 ETH0.002880730.48361273
Unstake201797212024-06-27 1:24:59153 days ago1719451499IN
0xe71a8ddC...5337eCB5c
0 ETH0.000575024.40483589
Unstake201786862024-06-26 21:56:47153 days ago1719439007IN
0xe71a8ddC...5337eCB5c
0 ETH0.000672895.15456292
Unstake201782332024-06-26 20:25:59153 days ago1719433559IN
0xe71a8ddC...5337eCB5c
0 ETH0.0015690512.01932054
Unstake201777662024-06-26 18:51:23153 days ago1719427883IN
0xe71a8ddC...5337eCB5c
0 ETH0.001106347.19007559
Transfer From201777152024-06-26 18:41:11153 days ago1719427271IN
0xe71a8ddC...5337eCB5c
0 ETH0.000651797.33991443
Unstake201776042024-06-26 18:18:35153 days ago1719425915IN
0xe71a8ddC...5337eCB5c
0 ETH0.000843177.21498677
Unstake201775862024-06-26 18:14:59153 days ago1719425699IN
0xe71a8ddC...5337eCB5c
0 ETH0.000815367.50963902
Safe Transfer Fr...201769072024-06-26 15:57:59154 days ago1719417479IN
0xe71a8ddC...5337eCB5c
0 ETH0.0010822211.45215005
Unstake201761202024-06-26 13:19:47154 days ago1719407987IN
0xe71a8ddC...5337eCB5c
0 ETH0.000777385.9549631
Unstake201747232024-06-26 8:39:35154 days ago1719391175IN
0xe71a8ddC...5337eCB5c
0 ETH0.000516823.95899052
Set Approval For...201744832024-06-26 7:51:11154 days ago1719388271IN
0xe71a8ddC...5337eCB5c
0 ETH0.000120612.35101804
Safe Transfer Fr...201741072024-06-26 6:35:23154 days ago1719383723IN
0xe71a8ddC...5337eCB5c
0 ETH0.000166341.760264
Unstake201741032024-06-26 6:34:35154 days ago1719383675IN
0xe71a8ddC...5337eCB5c
0 ETH0.000268952.06042412
Unstake201730992024-06-26 3:13:23154 days ago1719371603IN
0xe71a8ddC...5337eCB5c
0 ETH0.00033392.55776369
Set Approval For...201642092024-06-24 21:24:59155 days ago1719264299IN
0xe71a8ddC...5337eCB5c
0 ETH0.000393027.67311933
Unstake200029812024-06-02 8:35:59178 days ago1717317359IN
0xe71a8ddC...5337eCB5c
0 ETH0.001351465.29446275
Unstake199899612024-05-31 12:58:11180 days ago1717160291IN
0xe71a8ddC...5337eCB5c
0 ETH0.001917514.68857277
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnstructuredProxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

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

// File: @openzeppelin/contracts/proxy/Proxy.sol



pragma solidity ^0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive() external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {}
}

// File: contracts/Proxy.sol


pragma solidity ^0.8.4;


contract UnstructuredProxy is Proxy {
    
    // Storage position of the address of the current implementation
    bytes32 private constant implementationPosition = 
        keccak256("org.smartdefi.implementation.address");
    
    // Storage position of the owner of the contract
    bytes32 private constant proxyOwnerPosition = 
        keccak256("org.smartdefi.proxy.owner");
    
    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyProxyOwner() {
        require (msg.sender == proxyOwner(), "Not Proxy owner");
        _;
    }
    
    /**
    * @dev the constructor sets owner
    */
    constructor() {
        _setUpgradeabilityOwner(msg.sender);
    }

    /**
     * @dev Allows the current owner to transfer ownership
     * @param _newOwner The address to transfer ownership to
     */
    function transferProxyOwnership(address _newOwner) 
        public onlyProxyOwner 
    {
        require(_newOwner != address(0));
        _setUpgradeabilityOwner(_newOwner);
    }
    
    /**
     * @dev Allows the proxy owner to upgrade the implementation
     * @param _impl address of the new implementation
     */
    function upgradeTo(address _impl) 
        public onlyProxyOwner
    {
        _upgradeTo(_impl);
    }
    
    /**
     * @dev Tells the address of the current implementation
     * @return impl address of the current implementation
     */
    function _implementation()
        internal
        view
        override
        returns (address impl)
    {
        bytes32 position = implementationPosition;
        assembly {
            impl := sload(position)
        }
    }

    function implementation() external view returns (address) {
        return _implementation();
    }
    
    /**
     * @dev Tells the address of the owner
     * @return owner the address of the owner
     */
    function proxyOwner() public view returns (address owner) {
        bytes32 position = proxyOwnerPosition;
        assembly {
            owner := sload(position)
        }
    }
    
    /**
     * @dev Sets the address of the current implementation
     * @param _newImplementation address of the new implementation
     */
    function _setImplementation(address _newImplementation) 
        internal 
    {
        bytes32 position = implementationPosition;
        assembly {
            sstore(position, _newImplementation)
        }
    }
    
    /**
     * @dev Upgrades the implementation address
     * @param _newImplementation address of the new implementation
     */
    function _upgradeTo(address _newImplementation) internal {
        address currentImplementation = _implementation();
        require(currentImplementation != _newImplementation);
        _setImplementation(_newImplementation);
    }
    
    /**
     * @dev Sets the address of the owner
     */
    function _setUpgradeabilityOwner(address _newProxyOwner) 
        internal 
    {
        bytes32 position = proxyOwnerPosition;
        assembly {
            sstore(position, _newProxyOwner)
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_impl","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506100203361002560201b60201c565b610051565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b610504806100606000396000f3fe6080604052600436106100435760003560e01c8063025313a21461005c5780633659cfe6146100875780635c60da1b146100b0578063f1739cae146100db57610052565b3661005257610050610104565b005b61005a610104565b005b34801561006857600080fd5b5061007161011e565b60405161007e919061040b565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906103ac565b61014c565b005b3480156100bc57600080fd5b506100c56101cd565b6040516100d2919061040b565b60405180910390f35b3480156100e757600080fd5b5061010260048036038101906100fd91906103ac565b6101dc565b005b61010c610297565b61011c610117610299565b6102c7565b565b6000807f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb9050805491505090565b61015461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b890610426565b60405180910390fd5b6101ca816102ed565b50565b60006101d7610299565b905090565b6101e461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024890610426565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561028b57600080fd5b6102948161033f565b50565b565b6000807ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae9050805491505090565b3660008037600080366000845af43d6000803e80600081146102e8573d6000f35b3d6000fd5b60006102f7610299565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561033257600080fd5b61033b8261036b565b5050565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b60007ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae90508181555050565b6000813590506103a6816104b7565b92915050565b6000602082840312156103c2576103c1610489565b5b60006103d084828501610397565b91505092915050565b6103e281610457565b82525050565b60006103f5600f83610446565b91506104008261048e565b602082019050919050565b600060208201905061042060008301846103d9565b92915050565b6000602082019050818103600083015261043f816103e8565b9050919050565b600082825260208201905092915050565b600061046282610469565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f4e6f742050726f7879206f776e65720000000000000000000000000000000000600082015250565b6104c081610457565b81146104cb57600080fd5b5056fea2646970667358221220da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100435760003560e01c8063025313a21461005c5780633659cfe6146100875780635c60da1b146100b0578063f1739cae146100db57610052565b3661005257610050610104565b005b61005a610104565b005b34801561006857600080fd5b5061007161011e565b60405161007e919061040b565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906103ac565b61014c565b005b3480156100bc57600080fd5b506100c56101cd565b6040516100d2919061040b565b60405180910390f35b3480156100e757600080fd5b5061010260048036038101906100fd91906103ac565b6101dc565b005b61010c610297565b61011c610117610299565b6102c7565b565b6000807f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb9050805491505090565b61015461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b890610426565b60405180910390fd5b6101ca816102ed565b50565b60006101d7610299565b905090565b6101e461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024890610426565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561028b57600080fd5b6102948161033f565b50565b565b6000807ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae9050805491505090565b3660008037600080366000845af43d6000803e80600081146102e8573d6000f35b3d6000fd5b60006102f7610299565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561033257600080fd5b61033b8261036b565b5050565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b60007ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae90508181555050565b6000813590506103a6816104b7565b92915050565b6000602082840312156103c2576103c1610489565b5b60006103d084828501610397565b91505092915050565b6103e281610457565b82525050565b60006103f5600f83610446565b91506104008261048e565b602082019050919050565b600060208201905061042060008301846103d9565b92915050565b6000602082019050818103600083015261043f816103e8565b9050919050565b600082825260208201905092915050565b600061046282610469565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f4e6f742050726f7879206f776e65720000000000000000000000000000000000600082015250565b6104c081610457565b81146104cb57600080fd5b5056fea2646970667358221220da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a464736f6c63430008070033

Deployed Bytecode Sourcemap

3352:3184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2928:11;:9;:11::i;:::-;3352:3184;;2697:11;:9;:11::i;:::-;3352:3184;5298:183;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4569:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5076:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4233:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2334:113;2383:17;:15;:17::i;:::-;2411:28;2421:17;:15;:17::i;:::-;2411:9;:28::i;:::-;2334:113::o;5298:183::-;5341:13;5367:16;3703:38;5367:37;;5454:8;5448:15;5439:24;;5424:50;5298:183;:::o;4569:107::-;3897:12;:10;:12::i;:::-;3883:26;;:10;:26;;;3874:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4651:17:::1;4662:5;4651:10;:17::i;:::-;4569:107:::0;:::o;5076:101::-;5125:7;5152:17;:15;:17::i;:::-;5145:24;;5076:101;:::o;4233:185::-;3897:12;:10;:12::i;:::-;3883:26;;:10;:26;;;3874:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4362:1:::1;4341:23;;:9;:23;;;;4333:32;;;::::0;::::1;;4376:34;4400:9;4376:23;:34::i;:::-;4233:185:::0;:::o;3236:46::-;:::o;4826:242::-;4921:12;4951:16;3531:49;4951:41;;5041:8;5035:15;5027:23;;5012:49;4826:242;:::o;924:918::-;1267:14;1264:1;1261;1248:34;1485:1;1482;1466:14;1463:1;1447:14;1440:5;1427:60;1564:16;1561:1;1558;1543:38;1604:6;1678:1;1673:68;;;;1792:16;1789:1;1782:27;1673:68;1709:16;1706:1;1699:27;6008:237;6076:29;6108:17;:15;:17::i;:::-;6076:49;;6169:18;6144:43;;:21;:43;;;;6136:52;;;;;;6199:38;6218:18;6199;:38::i;:::-;6065:180;6008:237;:::o;6318:215::-;6411:16;3703:38;6411:37;;6500:14;6490:8;6483:32;6468:58;6318:215;:::o;5639:222::-;5731:16;3531:49;5731:41;;5824:18;5814:8;5807:36;5792:62;5639:222;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:366::-;753:3;774:67;838:2;833:3;774:67;:::i;:::-;767:74;;850:93;939:3;850:93;:::i;:::-;968:2;963:3;959:12;952:19;;611:366;;;:::o;983:222::-;1076:4;1114:2;1103:9;1099:18;1091:26;;1127:71;1195:1;1184:9;1180:17;1171:6;1127:71;:::i;:::-;983:222;;;;:::o;1211:419::-;1377:4;1415:2;1404:9;1400:18;1392:26;;1464:9;1458:4;1454:20;1450:1;1439:9;1435:17;1428:47;1492:131;1618:4;1492:131;:::i;:::-;1484:139;;1211:419;;;:::o;1717:169::-;1801:11;1835:6;1830:3;1823:19;1875:4;1870:3;1866:14;1851:29;;1717:169;;;;:::o;1892:96::-;1929:7;1958:24;1976:5;1958:24;:::i;:::-;1947:35;;1892:96;;;:::o;1994:126::-;2031:7;2071:42;2064:5;2060:54;2049:65;;1994:126;;;:::o;2249:117::-;2358:1;2355;2348:12;2372:165;2512:17;2508:1;2500:6;2496:14;2489:41;2372:165;:::o;2543:122::-;2616:24;2634:5;2616:24;:::i;:::-;2609:5;2606:35;2596:63;;2655:1;2652;2645:12;2596:63;2543:122;:::o

Swarm Source

ipfs://da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a4

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  ]

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.