FRAX Price: $0.81 (-0.15%)

Contract

0x2bB6086B62ac65887082f745c621d76d9bba3111

Overview

FRAX Balance | FXTL Balance

0 FRAX | 3 FXTL

FRAX Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

4 Internal Transactions and 1 Token Transfer found.

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
195713832025-04-29 19:04:37271 days ago1745953477
0x2bB6086B...d9bba3111
0 FRAX
195713832025-04-29 19:04:37271 days ago1745953477
0x2bB6086B...d9bba3111
0 FRAX
195713832025-04-29 19:04:37271 days ago1745953477
0x2bB6086B...d9bba3111
0 FRAX
195713832025-04-29 19:04:37271 days ago1745953477
0x2bB6086B...d9bba3111
0 FRAX

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StorageSetterRestricted

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 999999 runs

Other Settings:
london EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import { Storage } from "./Storage.sol";

/// @title StorageSetter
/// @notice A simple contract that only allows clearing slot 0.
///         WARNING: this contract is not safe to be called by untrusted parties.
///         It is only meant as an intermediate step during upgrades.
contract StorageSetterRestricted {
    /// @notice Semantic version.
    /// @custom:semver 1.2.1-beta.2
    string public constant version = "1.2.1-beta.2";

    /// @notice Stores a bytes32 `_value` at `_slot`. Any storage slots that
    ///         are packed should be set through this interface.
    function clearSlotZero() public {
        Storage.setBytes32(bytes32(uint256(0)), bytes32(uint256(0)));
    }

    /// @notice Retrieves a bytes32 value from `_slot`.
    function getBytes32(bytes32 _slot) external view returns (bytes32 value_) {
        value_ = Storage.getBytes32(_slot);
    }

    /// @notice Retrieves a uint256 value from `_slot`.
    function getUint(bytes32 _slot) external view returns (uint256 value_) {
        value_ = Storage.getUint(_slot);
    }

    /// @notice Retrieves an address value from `_slot`.
    function getAddress(bytes32 _slot) external view returns (address addr_) {
        addr_ = Storage.getAddress(_slot);
    }

    /// @notice Retrieves a bool value from `_slot`.
    function getBool(bytes32 _slot) external view returns (bool value_) {
        value_ = Storage.getBool(_slot);
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title Storage
/// @notice Storage handles reading and writing to arbitary storage locations
library Storage {
    /// @notice Returns an address stored in an arbitrary storage slot.
    ///         These storage slots decouple the storage layout from
    ///         solc's automation.
    /// @param _slot The storage slot to retrieve the address from.
    function getAddress(bytes32 _slot) internal view returns (address addr_) {
        assembly {
            addr_ := sload(_slot)
        }
    }

    /// @notice Stores an address in an arbitrary storage slot, `_slot`.
    /// @param _slot The storage slot to store the address in.
    /// @param _address The protocol version to store
    /// @dev WARNING! This function must be used cautiously, as it allows for overwriting addresses
    ///      in arbitrary storage slots.
    function setAddress(bytes32 _slot, address _address) internal {
        assembly {
            sstore(_slot, _address)
        }
    }

    /// @notice Returns a uint256 stored in an arbitrary storage slot.
    ///         These storage slots decouple the storage layout from
    ///         solc's automation.
    /// @param _slot The storage slot to retrieve the address from.
    function getUint(bytes32 _slot) internal view returns (uint256 value_) {
        assembly {
            value_ := sload(_slot)
        }
    }

    /// @notice Stores a value in an arbitrary storage slot, `_slot`.
    /// @param _slot The storage slot to store the uint in.
    /// @param _value The protocol version to store
    /// @dev WARNING! This function must be used cautiously, as it allows for overwriting values
    ///      in arbitrary storage slots.
    function setUint(bytes32 _slot, uint256 _value) internal {
        assembly {
            sstore(_slot, _value)
        }
    }

    /// @notice Returns a bytes32 stored in an arbitrary storage slot.
    ///         These storage slots decouple the storage layout from
    ///         solc's automation.
    /// @param _slot The storage slot to retrieve the address from.
    function getBytes32(bytes32 _slot) internal view returns (bytes32 value_) {
        assembly {
            value_ := sload(_slot)
        }
    }

    /// @notice Stores a bytes32 value in an arbitrary storage slot, `_slot`.
    /// @param _slot The storage slot to store the address in.
    /// @param _value The bytes32 value to store.
    /// @dev WARNING! This function must be used cautiously, as it allows for overwriting values
    ///      in arbitrary storage slots.
    function setBytes32(bytes32 _slot, bytes32 _value) internal {
        assembly {
            sstore(_slot, _value)
        }
    }

    /// @notice Stores a bool value in an arbitrary storage slot, `_slot`.
    /// @param _slot The storage slot to store the bool in.
    /// @param _value The bool value to store
    /// @dev WARNING! This function must be used cautiously, as it allows for overwriting values
    ///      in arbitrary storage slots.
    function setBool(bytes32 _slot, bool _value) internal {
        assembly {
            sstore(_slot, _value)
        }
    }

    /// @notice Returns a bool stored in an arbitrary storage slot.
    /// @param _slot The storage slot to retrieve the bool from.
    function getBool(bytes32 _slot) internal view returns (bool value_) {
        assembly {
            value_ := sload(_slot)
        }
    }
}

Settings
{
  "remappings": [
    "frax-std/=lib/frax-standard-solidity/src/",
    "@fraxtal/=lib/fraxtal/packages/",
    "lib/fraxtal/packages/contracts-bedrock:src/=lib/fraxtal/packages/contracts-bedrock/src/",
    "lib/fraxtal/packages/contracts-bedrock:test/=lib/fraxtal/packages/contracts-bedrock/test/",
    "lib/fraxtal/packages/contracts-bedrock:scripts/=lib/fraxtal/packages/contracts-bedrock/scripts/",
    "lib/fraxtal/packages/contracts-bedrock:@cwia/=lib/fraxtal/packages/contracts-bedrock/lib/clones-with-immutable-args/src/",
    "lib/fraxtal/packages/contracts-bedrock:@openzeppelin/contracts-upgradeable/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/contracts/",
    "lib/fraxtal/packages/contracts-bedrock:@openzeppelin/contracts/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts/contracts/",
    "lib/fraxtal/packages/contracts-bedrock:@rari-capital/solmate/=lib/fraxtal/packages/contracts-bedrock/lib/solmate/",
    "lib/fraxtal/packages/contracts-bedrock:@lib-keccak/=lib/fraxtal/packages/contracts-bedrock/lib/lib-keccak/contracts/lib/",
    "lib/fraxtal/packages/contracts-bedrock:@solady/=lib/fraxtal/packages/contracts-bedrock/lib/solady/src/",
    "lib/fraxtal/packages/contracts-bedrock:solady/=lib/fraxtal/packages/contracts-bedrock/lib/solady/src/",
    "lib/fraxtal/packages/contracts-bedrock:@solmate/=lib/fraxtal/packages/contracts-bedrock/lib/solmate/src/",
    "lib/fraxtal/packages/contracts-bedrock:solmate/=lib/fraxtal/packages/contracts-bedrock/lib/solmate/src/",
    "lib/fraxtal/packages/contracts-bedrock:forge-std/=lib/fraxtal/packages/contracts-bedrock/lib/forge-std/src/",
    "lib/fraxtal/packages/contracts-bedrock:ds-test/=lib/fraxtal/packages/contracts-bedrock/lib/forge-std/lib/ds-test/src/",
    "lib/fraxtal/packages/contracts-bedrock:safe-contracts/=lib/fraxtal/packages/contracts-bedrock/lib/safe-contracts/contracts/",
    "lib/fraxtal/packages/contracts-bedrock:kontrol-cheatcodes/=lib/fraxtal/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
    "@eth-optimism/=lib/optimism/packages/",
    "lib/optimism/packages/contracts-bedrock:src/=lib/optimism/packages/contracts-bedrock/src/",
    "lib/optimism/packages/contracts-bedrock:test/=lib/optimism/packages/contracts-bedrock/test/",
    "lib/optimism/packages/contracts-bedrock:scripts/=lib/optimism/packages/contracts-bedrock/scripts/",
    "lib/optimism/packages/contracts-bedrock:@cwia/=lib/optimism/packages/contracts-bedrock/lib/clones-with-immutable-args/src/",
    "lib/optimism/packages/contracts-bedrock:@openzeppelin/contracts-upgradeable/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/contracts/",
    "lib/optimism/packages/contracts-bedrock:@openzeppelin/contracts/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts/contracts/",
    "lib/optimism/packages/contracts-bedrock:@rari-capital/solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/",
    "lib/optimism/packages/contracts-bedrock:@lib-keccak/=lib/optimism/packages/contracts-bedrock/lib/lib-keccak/contracts/lib/",
    "lib/optimism/packages/contracts-bedrock:@solady/=lib/optimism/packages/contracts-bedrock/lib/solady/src/",
    "lib/optimism/packages/contracts-bedrock:solady/=lib/optimism/packages/contracts-bedrock/lib/solady/src/",
    "lib/optimism/packages/contracts-bedrock:@solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/src/",
    "lib/optimism/packages/contracts-bedrock:solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/src/",
    "lib/optimism/packages/contracts-bedrock:forge-std/=lib/optimism/packages/contracts-bedrock/lib/forge-std/src/",
    "lib/optimism/packages/contracts-bedrock:ds-test/=lib/optimism/packages/contracts-bedrock/lib/forge-std/lib/ds-test/src/",
    "lib/optimism/packages/contracts-bedrock:safe-contracts/=lib/optimism/packages/contracts-bedrock/lib/safe-contracts/contracts/",
    "lib/optimism/packages/contracts-bedrock:kontrol-cheatcodes/=lib/optimism/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
    "src/=src/",
    "@chainlink/=lib/frax-standard-solidity/node_modules/@chainlink/",
    "@openzeppelin-4/=node_modules/@openzeppelin-4/",
    "@openzeppelin-5/=node_modules/@openzeppelin-5/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@rari-capital/=node_modules/@rari-capital/",
    "automate/=lib/fraxtal/packages/contracts-bedrock/lib/automate/contracts/",
    "clones-with-immutable-args/=lib/optimism/packages/contracts-bedrock/lib/clones-with-immutable-args/src/",
    "ds-test/=lib/frax-standard-solidity/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts-v5/lib/erc4626-tests/",
    "forge-std/=lib/frax-standard-solidity/lib/forge-std/src/",
    "frax-standard-solidity/=lib/frax-standard-solidity/src/",
    "fraxtal/=lib/fraxtal/",
    "kontrol-cheatcodes/=lib/fraxtal/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
    "lib-keccak/=lib/fraxtal/packages/contracts-bedrock/lib/lib-keccak/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts-v5/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts-v5/",
    "openzeppelin-contracts/=lib/fraxtal/packages/contracts-bedrock/lib/openzeppelin-contracts/",
    "optimism/=lib/optimism/",
    "prb-test/=lib/fraxtal/packages/contracts-bedrock/lib/automate/lib/prb-test/src/",
    "safe-contracts/=lib/fraxtal/packages/contracts-bedrock/lib/safe-contracts/contracts/",
    "solady-v0.0.245/=lib/fraxtal/packages/contracts-bedrock/lib/solady-v0.0.245/src/",
    "solady/=lib/fraxtal/packages/contracts-bedrock/lib/solady/",
    "solidity-bytes-utils/=lib/frax-standard-solidity/lib/solidity-bytes-utils/",
    "solmate/=lib/fraxtal/packages/contracts-bedrock/lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"name":"clearSlotZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"addr_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"name":"getBool","outputs":[{"internalType":"bool","name":"value_","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"name":"getBytes32","outputs":[{"internalType":"bytes32","name":"value_","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"name":"getUint","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5061021e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806396a090791161005057806396a090791461011b578063a6ed563e14610125578063bd02d0f51461012557600080fd5b806321f8a7211461007757806354fd4d50146100b45780637ae1cfca146100fd575b600080fd5b61008a61008536600461015c565b610141565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f06040518060400160405280600c81526020017f312e322e312d626574612e32000000000000000000000000000000000000000081525081565b6040516100ab9190610175565b61010b61008536600461015c565b60405190151581526020016100ab565b610123610151565b005b61013361008536600461015c565b6040519081526020016100ab565b600061014b825490565b92915050565b61015a60008055565b565b60006020828403121561016e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b818111156101b4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea264697066735822122069c743ef3191c98ebe546897a9be607494e20fe02b0fa57e26f883fd2be310c264736f6c634300080f0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100725760003560e01c806396a090791161005057806396a090791461011b578063a6ed563e14610125578063bd02d0f51461012557600080fd5b806321f8a7211461007757806354fd4d50146100b45780637ae1cfca146100fd575b600080fd5b61008a61008536600461015c565b610141565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f06040518060400160405280600c81526020017f312e322e312d626574612e32000000000000000000000000000000000000000081525081565b6040516100ab9190610175565b61010b61008536600461015c565b60405190151581526020016100ab565b610123610151565b005b61013361008536600461015c565b6040519081526020016100ab565b600061014b825490565b92915050565b61015a60008055565b565b60006020828403121561016e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b818111156101b4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea264697066735822122069c743ef3191c98ebe546897a9be607494e20fe02b0fa57e26f883fd2be310c264736f6c634300080f0033

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

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.