ETH Price: $2,930.14 (-0.78%)

Contract

0x89C781AC363FAE8daA9aA19B00dFbCd2edEEE43d

More Info

Private Name Tags

Transaction Hash
Block
From
To
Transfer1671086892024-01-04 19:54:59751 days ago1704398099IN
0x89C781AC...2edEEE43d
0.11 ETH0.000040.1
Transfer1671085512024-01-04 19:54:23751 days ago1704398063IN
0x89C781AC...2edEEE43d
0.03149649 ETH0.000039690.1
Transfer1591795732023-12-11 21:42:41775 days ago1702330961IN
0x89C781AC...2edEEE43d
0.001 ETH0.000056350.1

Latest 3 internal transactions

Parent Transaction Hash Block From To
1671098922024-01-04 20:00:19751 days ago1704398419
0x89C781AC...2edEEE43d
0.12 ETH
1591812102023-12-11 21:50:32775 days ago1702331432
0x89C781AC...2edEEE43d
0.00072367 ETH
1591812102023-12-11 21:50:32775 days ago1702331432  Contract Creation0 ETH

Loading...
Loading

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

Contract Name:
Proxy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

/**
 * @title Proxy // This is the user's Smart Account
 * @notice Basic proxy that delegates all calls to a fixed implementation contract.
 * @dev    Implementation address is stored in the slot defined by the Proxy's address
 */
contract Proxy {
    // To be compatible with 4337 not yet deployed network users can have the same address
    function setImpl(address _implementation) external {
        require(
            _implementation != address(0),
            "Invalid implementation address"
        );
        address oldImplementation;
        assembly {
            oldImplementation := sload(address())
        }
        require(oldImplementation == address(0), "Implementation already set");
        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(address(), _implementation)
        }
    }

    fallback() external payable {
        address target;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            target := sload(address())
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), target, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"setImpl","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405234801561001057600080fd5b50610180806100206000396000f3fe60806040526004361061001e5760003560e01c8063691bd2ae14610046575b30543660008037600080366000845af43d6000803e80801561003f573d6000f35b3d6000fd5b005b34801561005257600080fd5b5061004461006136600461011a565b6001600160a01b0381166100bc5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e2061646472657373000060448201526064015b60405180910390fd5b30546001600160a01b038116156101155760405162461bcd60e51b815260206004820152601a60248201527f496d706c656d656e746174696f6e20616c72656164792073657400000000000060448201526064016100b3565b503055565b60006020828403121561012c57600080fd5b81356001600160a01b038116811461014357600080fd5b939250505056fea26469706673582212207efdfc2f5463e8adb0681461b14417ea7c7651a6359421a66c154326fef5e45d64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061001e5760003560e01c8063691bd2ae14610046575b30543660008037600080366000845af43d6000803e80801561003f573d6000f35b3d6000fd5b005b34801561005257600080fd5b5061004461006136600461011a565b6001600160a01b0381166100bc5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e2061646472657373000060448201526064015b60405180910390fd5b30546001600160a01b038116156101155760405162461bcd60e51b815260206004820152601a60248201527f496d706c656d656e746174696f6e20616c72656164792073657400000000000060448201526064016100b3565b503055565b60006020828403121561012c57600080fd5b81356001600160a01b038116811461014357600080fd5b939250505056fea26469706673582212207efdfc2f5463e8adb0681461b14417ea7c7651a6359421a66c154326fef5e45d64736f6c63430008110033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.