Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VestedBalanceChecker
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 100000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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]);
}
}
}
}{
"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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
608060405234801561001057600080fd5b5061056d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ad206cc146100465780635d883cfc1461006f578063f96c77de146100af575b600080fd5b6100596100543660046103b5565b6100c9565b60405161006691906104ab565b60405180910390f35b61008a73437e9f65ca234ecfed12149109587139d435ad3581565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610066565b61008a727fd070a7e1b0fa1364044a373ac1339bad89cf81565b6060815167ffffffffffffffff8111156100e5576100e5610386565b60405190808252806020026020018201604052801561010e578160200160208202803683370190505b5090507fffffffffffffffffffffffffff802f8f581e4f05ec9bfbb5c8c53ecc6452763173ffffffffffffffffffffffffffffffffffffffff841601610236578260005b835181101561022f578173ffffffffffffffffffffffffffffffffffffffff1663cb3632d1858381518110610189576101896104ef565b60200260200101516040518263ffffffff1660e01b81526004016101c9919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156101e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020a919061051e565b83828151811061021c5761021c6104ef565b6020908102919091010152600101610152565b5050610357565b7fffffffffffffffffffffffffbc81609a35dcb13012edeb6ef6a78ec62bca52cb73ffffffffffffffffffffffffffffffffffffffff841601610357578260005b8351811015610354578173ffffffffffffffffffffffffffffffffffffffff166311ff7f3a8583815181106102ae576102ae6104ef565b60200260200101516040518263ffffffff1660e01b81526004016102ee919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f919061051e565b838281518110610341576103416104ef565b6020908102919091010152600101610277565b50505b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103c857600080fd5b6103d18361035d565b915060208084013567ffffffffffffffff808211156103ef57600080fd5b818601915086601f83011261040357600080fd5b81358181111561041557610415610386565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561045857610458610386565b60405291825284820192508381018501918983111561047657600080fd5b938501935b8285101561049b5761048c8561035d565b8452938501939285019261047b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104e3578351835292840192918401916001016104c7565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561053057600080fd5b505191905056fea2646970667358221220e3de222c8a35e0ce191f456e0036a8bec8d667f0626e44fcd9c7c4cb12eb3f8c64736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c80633ad206cc146100465780635d883cfc1461006f578063f96c77de146100af575b600080fd5b6100596100543660046103b5565b6100c9565b60405161006691906104ab565b60405180910390f35b61008a73437e9f65ca234ecfed12149109587139d435ad3581565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610066565b61008a727fd070a7e1b0fa1364044a373ac1339bad89cf81565b6060815167ffffffffffffffff8111156100e5576100e5610386565b60405190808252806020026020018201604052801561010e578160200160208202803683370190505b5090507fffffffffffffffffffffffffff802f8f581e4f05ec9bfbb5c8c53ecc6452763173ffffffffffffffffffffffffffffffffffffffff841601610236578260005b835181101561022f578173ffffffffffffffffffffffffffffffffffffffff1663cb3632d1858381518110610189576101896104ef565b60200260200101516040518263ffffffff1660e01b81526004016101c9919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156101e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020a919061051e565b83828151811061021c5761021c6104ef565b6020908102919091010152600101610152565b5050610357565b7fffffffffffffffffffffffffbc81609a35dcb13012edeb6ef6a78ec62bca52cb73ffffffffffffffffffffffffffffffffffffffff841601610357578260005b8351811015610354578173ffffffffffffffffffffffffffffffffffffffff166311ff7f3a8583815181106102ae576102ae6104ef565b60200260200101516040518263ffffffff1660e01b81526004016102ee919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f919061051e565b838281518110610341576103416104ef565b6020908102919091010152600101610277565b50505b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103c857600080fd5b6103d18361035d565b915060208084013567ffffffffffffffff808211156103ef57600080fd5b818601915086601f83011261040357600080fd5b81358181111561041557610415610386565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561045857610458610386565b60405291825284820192508381018501918983111561047657600080fd5b938501935b8285101561049b5761048c8561035d565b8452938501939285019261047b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104e3578351835292840192918401916001016104c7565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561053057600080fd5b505191905056fea2646970667358221220e3de222c8a35e0ce191f456e0036a8bec8d667f0626e44fcd9c7c4cb12eb3f8c64736f6c63430008170033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.