More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19786272 | 211 days ago | 0.00085 ETH | ||||
19786272 | 211 days ago | 0.00085 ETH | ||||
19783722 | 211 days ago | 0.00085 ETH | ||||
19783722 | 211 days ago | 0.00085 ETH | ||||
19783710 | 211 days ago | 0.00085 ETH | ||||
19783710 | 211 days ago | 0.00085 ETH | ||||
19783700 | 211 days ago | 0.00085 ETH | ||||
19783700 | 211 days ago | 0.00085 ETH | ||||
19740151 | 217 days ago | 0.00085 ETH | ||||
19740151 | 217 days ago | 0.00085 ETH | ||||
19727074 | 219 days ago | 0.00085 ETH | ||||
19727074 | 219 days ago | 0.00085 ETH | ||||
19727047 | 219 days ago | 0.00085 ETH | ||||
19727047 | 219 days ago | 0.00085 ETH | ||||
19714137 | 221 days ago | 0.00085 ETH | ||||
19714137 | 221 days ago | 0.00085 ETH | ||||
19593278 | 238 days ago | 0.00085 ETH | ||||
19593278 | 238 days ago | 0.00085 ETH | ||||
19586591 | 239 days ago | 0.00085 ETH | ||||
19586591 | 239 days ago | 0.00085 ETH | ||||
19579218 | 240 days ago | 0.00085 ETH | ||||
19579218 | 240 days ago | 0.00085 ETH | ||||
19555021 | 243 days ago | 0.00085 ETH | ||||
19555021 | 243 days ago | 0.00085 ETH | ||||
19552843 | 243 days ago | 0.00085 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x2f981072...eD8238d42 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
SaitaProxy
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.0; import "./interface/IStakeFactory.sol"; contract SaitaProxy { bytes32 private constant proxyOwnerPosition = keccak256("com.saitama.proxy.owner"); bytes32 private constant factory = keccak256("com.saitama.proxy.factory"); constructor(address owner) { setProxyOwner(owner); } function setProxyOwner(address newProxyOwner) private { bytes32 position = proxyOwnerPosition; assembly { sstore(position, newProxyOwner) } } function setFactory(address _factory) public { require(msg.sender == proxyOwner(), "ONLY_OWNER_CAN_CHANGE"); bytes32 position = factory; assembly { sstore(position, _factory) } } function getFactory() public view returns (address _factory) { bytes32 position = factory; assembly { _factory := sload(position) } } function proxyOwner() public view returns (address owner) { bytes32 position = proxyOwnerPosition; assembly { owner := sload(position) } } function implementation() public view returns (address) { return IStakeFactory(getFactory()).impl(); } fallback() external payable { address _impl = implementation(); assembly { let ptr := mload(0x40) // (1) copy incoming call data calldatacopy(ptr, 0, calldatasize()) // (2) forward call to logic contract let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0) let size := returndatasize() // (3) retrieve return data returndatacopy(ptr, 0, size) // (4) forward return data back to caller switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; interface IStakeFactory { function impl() external view returns(address); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getFactory","outputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"view","type":"function"},{"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":"_factory","type":"address"}],"name":"setFactory","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x60806040526004361061003f5760003560e01c8063025313a2146100725780635bb47808146100be5780635c60da1b146100de57806388cc58e4146100f3575b6000610049610127565b905060405136600082376000803683855af43d806000843e81801561006c578184f35b8184fd5b005b34801561007e57600080fd5b507fd47efc17ebc52af071b71bf44b98ebccd2b57fc7031b1177c1247ccdc94544ef545b6040516001600160a01b03909116815260200160405180910390f35b3480156100ca57600080fd5b506100706100d9366004610271565b6101b7565b3480156100ea57600080fd5b506100a2610127565b3480156100ff57600080fd5b507fc8c6f4eb50c7b7d6e532b581488399e2d1778e31c7b9e4e1b1308760e2e7d21f546100a2565b60006101517fc8c6f4eb50c7b7d6e532b581488399e2d1778e31c7b9e4e1b1308760e2e7d21f5490565b6001600160a01b0316638abf60776040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b29190610295565b905090565b7fd47efc17ebc52af071b71bf44b98ebccd2b57fc7031b1177c1247ccdc94544ef546001600160a01b0316336001600160a01b0316146102355760405162461bcd60e51b81526020600482015260156024820152744f4e4c595f4f574e45525f43414e5f4348414e474560581b604482015260640160405180910390fd5b7fc8c6f4eb50c7b7d6e532b581488399e2d1778e31c7b9e4e1b1308760e2e7d21f55565b6001600160a01b038116811461026e57600080fd5b50565b60006020828403121561028357600080fd5b813561028e81610259565b9392505050565b6000602082840312156102a757600080fd5b815161028e8161025956fea2646970667358221220e18fc75339bd7736f9986baaa41920c7b93d9aa576145d1a1fc569e5255e09ec64736f6c63430008120033
Loading...
Loading
Loading...
Loading
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.