Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 11537129 | 1437 days ago | IN | 2.8 ETH | 0.003192 | ||||
Transfer | 11537128 | 1437 days ago | IN | 2.82 ETH | 0.001974 | ||||
Transfer | 11537097 | 1437 days ago | IN | 2.8 ETH | 0.00336 | ||||
Transfer | 11537095 | 1437 days ago | IN | 2.8554256 ETH | 0.002226 | ||||
Transfer | 11536957 | 1437 days ago | IN | 2.8576516 ETH | 0.004599 | ||||
Approve | 11502230 | 1443 days ago | IN | 3.5 ETH | 0.00308958 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xDe045Ef9...2b1A8d6b8 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TokenProxy
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-30 */ pragma solidity >=0.4.21 <0.7.0; /// @title Contract to reward overlapping stakes /// @author Marlin /// @notice Use this contract only for testing /// @dev Contract may or may not change in future (depending upon the new slots in proxy-store) contract TokenProxy { bytes32 internal constant IMPLEMENTATION_SLOT = bytes32( uint256(keccak256("eip1967.proxy.implementation")) - 1 ); bytes32 internal constant PROXY_ADMIN_SLOT = bytes32( uint256(keccak256("eip1967.proxy.admin")) - 1 ); constructor(address contractLogic, address proxyAdmin) public { // save the code address bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, contractLogic) } // save the proxy admin slot = PROXY_ADMIN_SLOT; address sender = proxyAdmin; assembly { sstore(slot, sender) } } function updateAdmin(address _newAdmin) public { require( msg.sender == getAdmin(), "Only the current admin should be able to new admin" ); bytes32 slot = PROXY_ADMIN_SLOT; assembly { sstore(slot, _newAdmin) } } /// @author Marlin /// @dev Only admin can update the contract /// @param _newLogic address is the address of the contract that has to updated to function updateLogic(address _newLogic) public { require( msg.sender == getAdmin(), "Only Admin should be able to update the contracts" ); bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, _newLogic) } } /// @author Marlin /// @dev use assembly as contract store slot is manually decided function getAdmin() internal view returns (address result) { bytes32 slot = PROXY_ADMIN_SLOT; assembly { result := sload(slot) } } /// @author Marlin /// @dev add functionality to forward the balance as well. function() external payable { bytes32 slot = IMPLEMENTATION_SLOT; assembly { let contractLogic := sload(slot) calldatacopy(0x0, 0x0, calldatasize()) let success := delegatecall( sub(gas(), 10000), contractLogic, 0x0, calldatasize(), 0, 0 ) let retSz := returndatasize() returndatacopy(0, 0, retSz) switch success case 0 { revert(0, retSz) } default { return(0, retSz) } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"contractLogic","type":"address"},{"internalType":"address","name":"proxyAdmin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"updateAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newLogic","type":"address"}],"name":"updateLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x6080604052600436106100295760003560e01c8063795e617e146100a8578063e2f273bd146100ea575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180543660008037600080366000846127105a03f43d806000803e8180156100a357816000f35b816000fd5b3480156100b457600080fd5b506100e8600480360360208110156100cb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661012a565b005b3480156100f657600080fd5b506100e86004803603602081101561010d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661020c565b6101326102ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806103476031913960400191505060405180910390fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0155565b6102146102ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610297576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806103786032913960400191505060405180910390fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0155565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01549056fe4f6e6c792041646d696e2073686f756c642062652061626c6520746f207570646174652074686520636f6e7472616374734f6e6c79207468652063757272656e742061646d696e2073686f756c642062652061626c6520746f206e65772061646d696ea265627a7a72315820a6f56351dbbc0d0b4182cc0742811aa02a1e1c5ed47f268611b819fad621356764736f6c63430005110032
Deployed Bytecode Sourcemap
253:2541:0:-;;;;;;;;;;;;;;;;;;;;;;;354:41;;;;;;;;;;;;;;;;346:54;;2210:11;;2258:14;2120:12;;2235:38;2476:1;2456;2423:14;2401:3;2369:13;2344:5;2337;2333:17;2302:190;2519:16;2570:5;2567:1;2564;2549:27;2599:7;2624:65;;;;2748:5;2745:1;2738:16;2624:65;2664:5;2661:1;2654:16;1406:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1406:302:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1406:302:0;;;;:::i;:::-;;937:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:300:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;937:300:0;;;;:::i;1406:302::-;1500:10;:8;:10::i;:::-;1486:24;;:10;:24;;;1464:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;354:41;;;;;;;;;;;;;;;;346:54;;1667:23;1652:49::o;937:300::-;1031:10;:8;:10::i;:::-;1017:24;;:10;:24;;;995:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:32;;;;;;;;;;;;;;;;477:45;;1196:23;1181:49::o;1810:175::-;485:32;;;;;;;;;;;;;;;;477:45;;1956:11;;1931:47::o
Swarm Source
bzzr://a6f56351dbbc0d0b4182cc0742811aa02a1e1c5ed47f268611b819fad6213567
Loading...
Loading
Loading...
Loading
OVERVIEW
Marlin is a verifiable computing protocol featuring TEE and ZK-based coprocessors to delegate complex workloads over a decentralized cloud.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.