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 (token == 0x6D24Bfa1A4F68fA62dD7989D8961d1F0C251dC69) {
glyphFraxBalance = payable(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
608060405234801561001057600080fd5b50600060208190527fd5f21532267a747d3234fdbfa9af8660f81a7b55c51d203fa20ac08397bf3dbb80546001600160a01b031990811673fc00000000000000000000000000000000000001179091557fbd7b1be218c6199cd36726a6816081484f6505371dafc38ba2346cf313120cea8054821690557f16068366df820c05856afc69b2840213d1de98305e21388390cea12457687a7e8054821673fc000000000000000000000000000000000000021790557fe92ea3a7d23618e4ecf103107b7e3441d822bee2dabcf8478b8f1182aa4a4e788054821673fc0000000000000000000000000000000000000517905573f70b678fa8779f406d0e608b77e2290a8b4ff1239091527f17b7dd19779e36675f9d2c35a2435ef9900154f54a679f5dbfd245262e29374b805490911673fc000000000000000000000000000000000000081790556105dc806101666000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e6100493660046103ab565b610077565b60405161005b91906104a1565b60405180910390f35b61004e6100723660046103ab565b61034a565b6060815167ffffffffffffffff8111156100935761009361037c565b6040519080825280602002602001820160405280156100bc578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8085166000818152602081815260408083205481517f18160ddd000000000000000000000000000000000000000000000000000000008152915196975089969516949293926318160ddd926004808401939192918290030181865afa15801561013f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016391906104e5565b9050600073ffffffffffffffffffffffffffffffffffffffff8716736d24bfa1a4f68fa62dd7989d8961d1f0c251dc69036101b6575073ffffffffffffffffffffffffffffffffffffffff861631610249565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301528416906370a0823190602401602060405180830381865afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024691906104e5565b90505b60005b865181101561033f5782828673ffffffffffffffffffffffffffffffffffffffff166370a082318a8581518110610285576102856104fe565b60200260200101516040518263ffffffff1660e01b81526004016102c5919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030691906104e5565b610310919061052d565b61031a919061056b565b86828151811061032c5761032c6104fe565b602090810291909101015260010161024c565b505050505092915050565b60605b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037757600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103be57600080fd5b6103c783610353565b915060208084013567ffffffffffffffff808211156103e557600080fd5b818601915086601f8301126103f957600080fd5b81358181111561040b5761040b61037c565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561044e5761044e61037c565b60405291825284820192508381018501918983111561046c57600080fd5b938501935b828510156104915761048285610353565b84529385019392850192610471565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104d9578351835292840192918401916001016104bd565b50909695505050505050565b6000602082840312156104f757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b808202811582820484141761034d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826105a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122014912ab257457f6a484c71188ed91fc73913a581c737f8a9fc3f57a4e5cd7ab764736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c80633ad206cc1461003b578063a2b1600c14610064575b600080fd5b61004e6100493660046103ab565b610077565b60405161005b91906104a1565b60405180910390f35b61004e6100723660046103ab565b61034a565b6060815167ffffffffffffffff8111156100935761009361037c565b6040519080825280602002602001820160405280156100bc578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff8085166000818152602081815260408083205481517f18160ddd000000000000000000000000000000000000000000000000000000008152915196975089969516949293926318160ddd926004808401939192918290030181865afa15801561013f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016391906104e5565b9050600073ffffffffffffffffffffffffffffffffffffffff8716736d24bfa1a4f68fa62dd7989d8961d1f0c251dc69036101b6575073ffffffffffffffffffffffffffffffffffffffff861631610249565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301528416906370a0823190602401602060405180830381865afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024691906104e5565b90505b60005b865181101561033f5782828673ffffffffffffffffffffffffffffffffffffffff166370a082318a8581518110610285576102856104fe565b60200260200101516040518263ffffffff1660e01b81526004016102c5919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b602060405180830381865afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030691906104e5565b610310919061052d565b61031a919061056b565b86828151811061032c5761032c6104fe565b602090810291909101015260010161024c565b505050505092915050565b60605b92915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037757600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156103be57600080fd5b6103c783610353565b915060208084013567ffffffffffffffff808211156103e557600080fd5b818601915086601f8301126103f957600080fd5b81358181111561040b5761040b61037c565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561044e5761044e61037c565b60405291825284820192508381018501918983111561046c57600080fd5b938501935b828510156104915761048285610353565b84529385019392850192610471565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156104d9578351835292840192918401916001016104bd565b50909695505050505050565b6000602082840312156104f757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b808202811582820484141761034d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826105a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122014912ab257457f6a484c71188ed91fc73913a581c737f8a9fc3f57a4e5cd7ab764736f6c63430008170033
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.