FRAX Price: $0.81 (+0.63%)

Contract

0x81794C33f9c2992ba02a42527FBcC4B538AB9370

Overview

FRAX Balance | FXTL Balance

0 FRAX | 40 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

1 Token Transfer found.

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WFXBBalanceChecker

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 100000 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

// ====================================================================
// |     ______                   _______                             |
// |    / _____________ __  __   / ____(_____  ____ _____  ________   |
// |   / /_  / ___/ __ `| |/_/  / /_  / / __ \/ __ `/ __ \/ ___/ _ \  |
// |  / __/ / /  / /_/ _>  <   / __/ / / / / / /_/ / / / / /__/  __/  |
// | /_/   /_/   \__,_/_/|_|  /_/   /_/_/ /_/\__,_/_/ /_/\___/\___/   |
// |                                                                  |
// ====================================================================
// ======================= WFXBBalanceChecker =========================
// ====================================================================

import { IcvxFXB } from "./interfaces/IcvxFXB.sol";

/**
 * @title WFXBBalanceChecker
 * @author Frax Finance
 * @notice The WFXBBalanceChecker contract is used to retrieve the balances of addresses and tokens.
 */
contract WFXBBalanceChecker {
    constructor() {}

    /**
     * @notice Used to get the token's balance for multiple addresses.
     * @param token Address of the token to check the balance of
     * @param addresses An array of addresses to check the balance of
     * @return result An array of the balances of the addresses
     */
    function tokenBalances(address token, address[] memory addresses) external view returns (uint256[] memory result) {
        result = new uint256[](addresses.length);
        IcvxFXB cvxFXB = IcvxFXB(token);

        for (uint256 i = 0; i < addresses.length; ++i) {
            uint256 userShares = cvxFXB.balanceOf(addresses[i]);

            result[i] = cvxFXB.convertToAssets(userShares);
        }
    }

    /**
     * @notice Used to get the balances of multiple tokens for a single address.
     * @dev This function is only preserved for teh smart contract to maintain the same interface as the original
     *  BalanceChecker, but should not be called as it is hardcoded to simply return an empty array.
     * @param addr Address to check the balance of
     * @param tokens An array of tokens to check the balance of
     * @return result An array of the balances of the tokens
     */
    function addressBalances(address addr, address[] memory tokens) external view returns (uint256[] memory result) {
        uint256[] memory mockReturnValue;

        return mockReturnValue;
    }
}

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

interface IcvxFXB {
    function convertToAssets(uint256 _shares) external view returns (uint256 assets);

    function balanceOf(address account) external view returns (uint256);
}

Settings
{
  "remappings": [
    "frax-std/=lib/frax-standard-solidity/src/",
    "@eth-optimism/=lib/optimism/packages/",
    "lib/optimism/packages/contracts-bedrock:src/=lib/optimism/packages/contracts-bedrock/src/",
    "src/=src/",
    "@openzeppelin-4/=node_modules/@openzeppelin-4/",
    "@openzeppelin-5/=node_modules/@openzeppelin-5/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@rari-capital/=node_modules/@rari-capital/",
    "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/",
    "forge-std/=lib/frax-standard-solidity/lib/forge-std/src/",
    "frax-standard-solidity/=lib/frax-standard-solidity/src/",
    "kontrol-cheatcodes/=lib/optimism/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
    "lib-keccak/=lib/optimism/packages/contracts-bedrock/lib/lib-keccak/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts/",
    "optimism/=lib/optimism/",
    "safe-contracts/=lib/optimism/packages/contracts-bedrock/lib/safe-contracts/contracts/",
    "solady/=lib/optimism/packages/contracts-bedrock/lib/solady/",
    "solidity-bytes-utils/=lib/frax-standard-solidity/lib/solidity-bytes-utils/",
    "solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 100000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"addressBalances","outputs":[{"internalType":"uint256[]","name":"result","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"tokenBalances","outputs":[{"internalType":"uint256[]","name":"result","type":"uint256[]"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610450806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e610049366004610298565b61007a565b60405161005b919061038e565b60405180910390f35b61004e610072366004610298565b606092915050565b6060815167ffffffffffffffff81111561009657610096610269565b6040519080825280602002602001820160405280156100bf578160200160208202803683370190505b5090508260005b83518110156102385760008273ffffffffffffffffffffffffffffffffffffffff166370a082318684815181106100ff576100ff6103d2565b60200260200101516040518263ffffffff1660e01b815260040161013f919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561015c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101809190610401565b6040517f07a2d13a0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff8416906307a2d13a90602401602060405180830381865afa1580156101ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102129190610401565b848381518110610224576102246103d2565b6020908102919091010152506001016100c6565b505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461026457600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156102ab57600080fd5b6102b483610240565b915060208084013567ffffffffffffffff808211156102d257600080fd5b818601915086601f8301126102e657600080fd5b8135818111156102f8576102f8610269565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561033b5761033b610269565b60405291825284820192508381018501918983111561035957600080fd5b938501935b8285101561037e5761036f85610240565b8452938501939285019261035e565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156103c6578351835292840192918401916001016103aa565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561041357600080fd5b505191905056fea2646970667358221220b352f1033ceb408fe5b7541c889c7973e1a0a1e767ce07cb2336ac1bac86920f64736f6c63430008170033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e610049366004610298565b61007a565b60405161005b919061038e565b60405180910390f35b61004e610072366004610298565b606092915050565b6060815167ffffffffffffffff81111561009657610096610269565b6040519080825280602002602001820160405280156100bf578160200160208202803683370190505b5090508260005b83518110156102385760008273ffffffffffffffffffffffffffffffffffffffff166370a082318684815181106100ff576100ff6103d2565b60200260200101516040518263ffffffff1660e01b815260040161013f919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561015c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101809190610401565b6040517f07a2d13a0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff8416906307a2d13a90602401602060405180830381865afa1580156101ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102129190610401565b848381518110610224576102246103d2565b6020908102919091010152506001016100c6565b505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461026457600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156102ab57600080fd5b6102b483610240565b915060208084013567ffffffffffffffff808211156102d257600080fd5b818601915086601f8301126102e657600080fd5b8135818111156102f8576102f8610269565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561033b5761033b610269565b60405291825284820192508381018501918983111561035957600080fd5b938501935b8285101561037e5761036f85610240565b8452938501939285019261035e565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156103c6578351835292840192918401916001016103aa565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561041357600080fd5b505191905056fea2646970667358221220b352f1033ceb408fe5b7541c889c7973e1a0a1e767ce07cb2336ac1bac86920f64736f6c63430008170033

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.