FRAX Price: $0.86 (+7.77%)

Contract

0x50B2cF5D69c5Bf654Eb8D42105f8ce7A1665898a

Overview

FRAX Balance | FXTL Balance

0 FRAX | 31 FXTL

FRAX Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Age:24H
Reset Filter

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:
VestedBalanceChecker

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;

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

interface IVestedFXS {
    function balanceOfLockedFxs(address _addr) external view returns (uint256 _balanceOfLockedFxs);
}

interface IVestedFPIS {
    function balanceOfLockedFpis(address _addr) external view returns (uint256 _balanceOfLockedFpis);
}

/**
 * @title VestedBalanceChecker
 * @author Frax Finance
 * @notice The VestedBalanceChecker contract is used to retrieve the balances of addresses and tokens.
 */
contract VestedBalanceChecker {
    address constant public VEFXS = 0x007FD070a7E1B0fA1364044a373Ac1339bAD89CF;
    address constant public VEFPIS = 0x437E9F65cA234eCfed12149109587139d435AD35;

    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);

        if (token == VEFXS) {
            IVestedFXS veFXS = IVestedFXS(token);
            for (uint256 i = 0; i < addresses.length; ++i) {
                result[i] = veFXS.balanceOfLockedFxs(addresses[i]);
            }
        } else if (token == VEFPIS) {
            IVestedFPIS veFPIS = IVestedFPIS(token);
            for (uint256 i = 0; i < addresses.length; ++i) {
                result[i] = veFPIS.balanceOfLockedFpis(addresses[i]);
            }
        }
    }
}

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",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"VEFPIS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VEFXS","outputs":[{"internalType":"address","name":"","type":"address"}],"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"}]

608060405234801561001057600080fd5b5061056d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ad206cc146100465780635d883cfc1461006f578063f96c77de146100af575b600080fd5b6100596100543660046103b5565b6100c9565b60405161006691906104ab565b60405180910390f35b61008a73437e9f65ca234ecfed12149109587139d435ad3581565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610066565b61008a727fd070a7e1b0fa1364044a373ac1339bad89cf81565b6060815167ffffffffffffffff8111156100e5576100e5610386565b60405190808252806020026020018201604052801561010e578160200160208202803683370190505b5090507fffffffffffffffffffffffffff802f8f581e4f05ec9bfbb5c8c53ecc6452763173ffffffffffffffffffffffffffffffffffffffff841601610236578260005b835181101561022f578173ffffffffffffffffffffffffffffffffffffffff1663cb3632d1858381518110610189576101896104ef565b60200260200101516040518263ffffffff1660e01b81526004016101c9919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156101e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020a919061051e565b83828151811061021c5761021c6104ef565b6020908102919091010152600101610152565b5050610357565b7fffffffffffffffffffffffffbc81609a35dcb13012edeb6ef6a78ec62bca52cb73ffffffffffffffffffffffffffffffffffffffff841601610357578260005b8351811015610354578173ffffffffffffffffffffffffffffffffffffffff166311ff7f3a8583815181106102ae576102ae6104ef565b60200260200101516040518263ffffffff1660e01b81526004016102ee919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f919061051e565b838281518110610341576103416104ef565b6020908102919091010152600101610277565b50505b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103c857600080fd5b6103d18361035d565b915060208084013567ffffffffffffffff808211156103ef57600080fd5b818601915086601f83011261040357600080fd5b81358181111561041557610415610386565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561045857610458610386565b60405291825284820192508381018501918983111561047657600080fd5b938501935b8285101561049b5761048c8561035d565b8452938501939285019261047b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104e3578351835292840192918401916001016104c7565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561053057600080fd5b505191905056fea2646970667358221220e3de222c8a35e0ce191f456e0036a8bec8d667f0626e44fcd9c7c4cb12eb3f8c64736f6c63430008170033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100415760003560e01c80633ad206cc146100465780635d883cfc1461006f578063f96c77de146100af575b600080fd5b6100596100543660046103b5565b6100c9565b60405161006691906104ab565b60405180910390f35b61008a73437e9f65ca234ecfed12149109587139d435ad3581565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610066565b61008a727fd070a7e1b0fa1364044a373ac1339bad89cf81565b6060815167ffffffffffffffff8111156100e5576100e5610386565b60405190808252806020026020018201604052801561010e578160200160208202803683370190505b5090507fffffffffffffffffffffffffff802f8f581e4f05ec9bfbb5c8c53ecc6452763173ffffffffffffffffffffffffffffffffffffffff841601610236578260005b835181101561022f578173ffffffffffffffffffffffffffffffffffffffff1663cb3632d1858381518110610189576101896104ef565b60200260200101516040518263ffffffff1660e01b81526004016101c9919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156101e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020a919061051e565b83828151811061021c5761021c6104ef565b6020908102919091010152600101610152565b5050610357565b7fffffffffffffffffffffffffbc81609a35dcb13012edeb6ef6a78ec62bca52cb73ffffffffffffffffffffffffffffffffffffffff841601610357578260005b8351811015610354578173ffffffffffffffffffffffffffffffffffffffff166311ff7f3a8583815181106102ae576102ae6104ef565b60200260200101516040518263ffffffff1660e01b81526004016102ee919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f919061051e565b838281518110610341576103416104ef565b6020908102919091010152600101610277565b50505b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103c857600080fd5b6103d18361035d565b915060208084013567ffffffffffffffff808211156103ef57600080fd5b818601915086601f83011261040357600080fd5b81358181111561041557610415610386565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561045857610458610386565b60405291825284820192508381018501918983111561047657600080fd5b938501935b8285101561049b5761048c8561035d565b8452938501939285019261047b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104e3578351835292840192918401916001016104c7565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561053057600080fd5b505191905056fea2646970667358221220e3de222c8a35e0ce191f456e0036a8bec8d667f0626e44fcd9c7c4cb12eb3f8c64736f6c63430008170033

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.