Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Cross-Chain Transactions
Loading...
Loading
Contract Name:
GlyphDepositBalanceChecker
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;
// ====================================================================
// | ______ _______ |
// | / _____________ __ __ / ____(_____ ____ _____ ________ |
// | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
// | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
// | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
// | |
// ====================================================================
// ================== GlyphDepositBalanceChecker ======================
// ====================================================================
interface IGlyphToken {
function balanceOf(address user) external view returns (uint256);
function totalSupply() external view returns (uint256);
}
/**
* @title GlyphDepositBalanceChecker
* @author Frax Finance
* @notice The GlyphDepositBalanceChecker contract is used to retrieve the balances of addresses and tokens.
*/
contract GlyphDepositBalanceChecker {
mapping (address glyphToken => address fraxToken) private glyphToFraxToken;
constructor() {
glyphToFraxToken[0x5E76562a265Aa595AD7377b11d17Cb0237970F20] = 0xFc00000000000000000000000000000000000001; // glyphFRAX => FRAX
glyphToFraxToken[0x6D24Bfa1A4F68fA62dD7989D8961d1F0C251dC69] = address(0); // glyphfrxETH => frxETH
glyphToFraxToken[0x471e51c7DAA092c07d1Fd75BAE492f3d76813620] = 0xFc00000000000000000000000000000000000002; // glyphFXS => FXS
glyphToFraxToken[0xa6DD2773131e040e62E5a37482337536d7d00FB3] = 0xFC00000000000000000000000000000000000005; // glyphsfrxETH => sfrxETH
glyphToFraxToken[0xF70b678FA8779F406D0e608B77E2290a8b4ff123] = 0xfc00000000000000000000000000000000000008; // glyphsFRAX => sFRAX
}
/**
* @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);
IGlyphToken glyphToken = IGlyphToken(token);
IGlyphToken fraxToken = IGlyphToken(glyphToFraxToken[token]);
uint256 glyphTotalSupply = glyphToken.totalSupply();
uint256 glyphFraxBalance;
if (address(fraxToken) == address(0)) {
glyphFraxBalance = token.balance;
} else {
glyphFraxBalance = fraxToken.balanceOf(token);
}
for (uint256 i = 0; i < addresses.length; ++i) {
result[i] = glyphToken.balanceOf(addresses[i]) * glyphFraxBalance / glyphTotalSupply;
}
}
/**
* @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;
}
}{
"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":[{"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"}]Contract Creation Code
608060405234801561001057600080fd5b50600060208190527fd5f21532267a747d3234fdbfa9af8660f81a7b55c51d203fa20ac08397bf3dbb80546001600160a01b031990811673fc00000000000000000000000000000000000001179091557fbd7b1be218c6199cd36726a6816081484f6505371dafc38ba2346cf313120cea8054821690557f16068366df820c05856afc69b2840213d1de98305e21388390cea12457687a7e8054821673fc000000000000000000000000000000000000021790557fe92ea3a7d23618e4ecf103107b7e3441d822bee2dabcf8478b8f1182aa4a4e788054821673fc0000000000000000000000000000000000000517905573f70b678fa8779f406d0e608b77e2290a8b4ff1239091527f17b7dd19779e36675f9d2c35a2435ef9900154f54a679f5dbfd245262e29374b805490911673fc000000000000000000000000000000000000081790556105c6806101666000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e610049366004610395565b610077565b60405161005b919061048b565b60405180910390f35b61004e610072366004610395565b610334565b6060815167ffffffffffffffff81111561009357610093610366565b6040519080825280602002602001820160405280156100bc578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8085166000818152602081815260408083205481517f18160ddd000000000000000000000000000000000000000000000000000000008152915196975089969516949293926318160ddd926004808401939192918290030181865afa15801561013f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016391906104cf565b9050600073ffffffffffffffffffffffffffffffffffffffff83166101a0575073ffffffffffffffffffffffffffffffffffffffff861631610233565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301528416906370a0823190602401602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023091906104cf565b90505b60005b86518110156103295782828673ffffffffffffffffffffffffffffffffffffffff166370a082318a858151811061026f5761026f6104e8565b60200260200101516040518263ffffffff1660e01b81526004016102af919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906104cf565b6102fa9190610517565b6103049190610555565b868281518110610316576103166104e8565b6020908102919091010152600101610236565b505050505092915050565b60605b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103a857600080fd5b6103b18361033d565b915060208084013567ffffffffffffffff808211156103cf57600080fd5b818601915086601f8301126103e357600080fd5b8135818111156103f5576103f5610366565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561043857610438610366565b60405291825284820192508381018501918983111561045657600080fd5b938501935b8285101561047b5761046c8561033d565b8452938501939285019261045b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104c3578351835292840192918401916001016104a7565b50909695505050505050565b6000602082840312156104e157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082028115828204841417610337577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008261058b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212203b47e7aa5e3bf3cf984d58a2e0154427b6168470ceb6a05a189cb443e8e58eee64736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e610049366004610395565b610077565b60405161005b919061048b565b60405180910390f35b61004e610072366004610395565b610334565b6060815167ffffffffffffffff81111561009357610093610366565b6040519080825280602002602001820160405280156100bc578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8085166000818152602081815260408083205481517f18160ddd000000000000000000000000000000000000000000000000000000008152915196975089969516949293926318160ddd926004808401939192918290030181865afa15801561013f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016391906104cf565b9050600073ffffffffffffffffffffffffffffffffffffffff83166101a0575073ffffffffffffffffffffffffffffffffffffffff861631610233565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301528416906370a0823190602401602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023091906104cf565b90505b60005b86518110156103295782828673ffffffffffffffffffffffffffffffffffffffff166370a082318a858151811061026f5761026f6104e8565b60200260200101516040518263ffffffff1660e01b81526004016102af919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f091906104cf565b6102fa9190610517565b6103049190610555565b868281518110610316576103166104e8565b6020908102919091010152600101610236565b505050505092915050565b60605b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103a857600080fd5b6103b18361033d565b915060208084013567ffffffffffffffff808211156103cf57600080fd5b818601915086601f8301126103e357600080fd5b8135818111156103f5576103f5610366565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561043857610438610366565b60405291825284820192508381018501918983111561045657600080fd5b938501935b8285101561047b5761046c8561033d565b8452938501939285019261045b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104c3578351835292840192918401916001016104a7565b50909695505050505050565b6000602082840312156104e157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082028115828204841417610337577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008261058b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212203b47e7aa5e3bf3cf984d58a2e0154427b6168470ceb6a05a189cb443e8e58eee64736f6c63430008170033
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.