Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers.
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
|||
|---|---|---|---|---|---|---|---|---|
| Decimals | 24484699 | 5 days ago | 0 ETH | |||||
| Latest Round Dat... | 24484699 | 5 days ago | 0 ETH | |||||
| Peek | 24484699 | 5 days ago | 0 ETH | |||||
| Decimals | 24460775 | 8 days ago | 0 ETH | |||||
| Latest Round Dat... | 24460775 | 8 days ago | 0 ETH | |||||
| Peek | 24460775 | 8 days ago | 0 ETH | |||||
| Decimals | 24420315 | 14 days ago | 0 ETH | |||||
| Latest Round Dat... | 24420315 | 14 days ago | 0 ETH | |||||
| Peek | 24420315 | 14 days ago | 0 ETH | |||||
| Decimals | 24391159 | 18 days ago | 0 ETH | |||||
| Latest Round Dat... | 24391159 | 18 days ago | 0 ETH | |||||
| Peek | 24391159 | 18 days ago | 0 ETH | |||||
| Decimals | 24369685 | 21 days ago | 0 ETH | |||||
| Latest Round Dat... | 24369685 | 21 days ago | 0 ETH | |||||
| Peek | 24369685 | 21 days ago | 0 ETH | |||||
| Decimals | 24348359 | 24 days ago | 0 ETH | |||||
| Latest Round Dat... | 24348359 | 24 days ago | 0 ETH | |||||
| Peek | 24348359 | 24 days ago | 0 ETH | |||||
| Decimals | 24325574 | 27 days ago | 0 ETH | |||||
| Latest Round Dat... | 24325574 | 27 days ago | 0 ETH | |||||
| Peek | 24325574 | 27 days ago | 0 ETH | |||||
| Decimals | 24297535 | 31 days ago | 0 ETH | |||||
| Latest Round Dat... | 24297535 | 31 days ago | 0 ETH | |||||
| Peek | 24297535 | 31 days ago | 0 ETH | |||||
| Decimals | 24276046 | 34 days ago | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xd51f1c64...32bc672b8 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ChainlinkOracleFeed
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
No with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.26;
import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
import {OracleFeed} from "./OracleFeed.sol";
import {Errors} from "../libraries/Errors.sol";
/// @title ChainlinkOracleFeed
/// @author luoyhang003
/// @notice Oracle adapter that integrates with Chainlink price feeds.
/// @dev Inherits from the abstract OracleFeed contract and implements the
/// peek function by querying a Chainlink AggregatorV3Interface.
contract ChainlinkOracleFeed is OracleFeed {
/*//////////////////////////////////////////////////////////////////////////
STATE VARIABLES
//////////////////////////////////////////////////////////////////////////*/
/// @notice Chainlink price feed contract (AggregatorV3Interface).
/// @dev Immutable after deployment to ensure oracle integrity.
AggregatorV3Interface public immutable priceFeed;
/*//////////////////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////////////////*/
/// @notice Deploys the Chainlink oracle feed wrapper.
/// @param _token The address of the token this oracle is associated with.
/// @param _name A human-readable name for this oracle feed.
/// @param _priceFeed The address of the Chainlink AggregatorV3 price feed.
constructor(
address _token,
string memory _name,
address _priceFeed
) OracleFeed(_token, _name) {
if (_priceFeed == address(0)) revert Errors.ZeroAddress();
priceFeed = AggregatorV3Interface(_priceFeed);
}
/*//////////////////////////////////////////////////////////////////////////
VIEW FUNCTIONS
//////////////////////////////////////////////////////////////////////////*/
/// @notice Returns the latest price from the Chainlink feed, normalized to 18 decimals.
/// @dev Performs several safety checks:
/// - Ensures the returned price is positive.
/// - Ensures the round is not stale.
/// - Ensures the round data is complete and not from the future.
/// - Adjusts decimals from the Chainlink feed to a standard 18-decimal format.
/// @return price_ The latest valid price, scaled to 18 decimals.
function peek() external view override returns (uint256 price_) {
(
uint80 roundId,
int256 answer,
,
uint256 updatedAt,
uint80 answeredInRound
) = priceFeed.latestRoundData();
if (answer <= 0) revert Errors.InvalidPrice();
if (answeredInRound < roundId) revert Errors.StalePrice();
if (updatedAt == 0 || updatedAt > block.timestamp)
revert Errors.IncompleteRound();
uint8 decimals = priceFeed.decimals();
// Convert int256 to uint256 after validation, and normalize to 18 decimals
if (decimals > 18) {
// scale down
return uint256(answer) / (10 ** (decimals - 18));
} else {
// scale up
return uint256(answer) * (10 ** (18 - decimals));
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// solhint-disable-next-line interface-starts-with-i
interface AggregatorV3Interface {
function decimals() external view returns (uint8);
function description() external view returns (string memory);
function version() external view returns (uint256);
function getRoundData(
uint80 _roundId
) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
function latestRoundData()
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.26;
/// @title OracleFeed
/// @author luoyhang003
/// @notice Abstract contract for oracle price feeds. Provides a standard interface
/// for retrieving asset prices.
/// @dev This contract is meant to be inherited by specific oracle implementations
/// that define the logic for fetching asset prices.
abstract contract OracleFeed {
/*//////////////////////////////////////////////////////////////////////////
STATE VARIABLES
//////////////////////////////////////////////////////////////////////////*/
/// @notice The token address associated with this oracle feed.
/// @dev Immutable after deployment to ensure the oracle is tied to a specific token.
address public immutable token;
/// @notice The human-readable name of the oracle feed.
/// @dev Can be used for UI or off-chain identification purposes.
string public name;
/*//////////////////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////////////////*/
/// @notice Sets the token address and feed name during deployment.
/// @param _token The address of the token this oracle is associated with.
/// @param _name The descriptive name for this oracle feed.
constructor(address _token, string memory _name) {
token = _token;
name = _name;
}
/*//////////////////////////////////////////////////////////////////////////
VIEW FUNCTIONS
//////////////////////////////////////////////////////////////////////////*/
/// @notice Returns the current price of the specified asset.
/// @dev Implementations must override this function to provide actual price logic.
/// @return price_ The price of the asset with 18 decimals of precision.
function peek() external view virtual returns (uint256 price_);
}// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.26;
/// @title Errors Library
/// @author luoyhang003
/// @notice Centralized custom errors for all contracts in the protocol.
/// @dev Each error saves gas compared to revert strings. The @dev comment
/// also includes the corresponding 4-byte selector for debugging
/// and off-chain tooling.
library Errors {
/*//////////////////////////////////////////////////////////////////////////
GENERAL
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when array lengths do not match or are zero.
/// @dev Selector: 0x9d89020a
error InvalidArrayLength();
/// @notice Thrown when a provided address is zero.
/// @dev Selector: 0xd92e233d
error ZeroAddress();
/// @notice Thrown when a provided amount is zero.
/// @dev Selector: 0x1f2a2005
error ZeroAmount();
/// @notice Thrown when an index is out of bounds.
/// @dev Selector: 0x4e23d035
error IndexOutOfBounds();
/// @notice Thrown when a user is not whitelisted but tries to interact.
/// @dev Selector: 0x2ba75b25
error UserNotWhitelisted();
/// @notice Thrown when a token has invalid decimals (e.g., >18).
/// @dev Selector: 0xd25598a0
error InvalidDecimals();
/// @notice Thrown when an asset is not supported.
/// @dev Selector: 0x24a01144
error UnsupportedAsset();
/// @notice Thrown when trying to add an already added asset.
/// @dev Selector: 0x5ed26801
error AssetAlreadyAdded();
/// @notice Thrown when trying to remove an asset that was already removed.
/// @dev Selector: 0x422afd8f
error AssetAlreadyRemoved();
/// @notice Thrown when a common token address conflict with the vault token address.
/// @dev Selector: 0x8a7ea521
error ConflictiveToken();
/// @notice Thrown when an array is reach to the length limit.
/// @dev Selector: 0x951becfa
error ExceedArrayLengthLimit();
/*//////////////////////////////////////////////////////////////////////////
Token.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when transfer is attempted by/for a blacklisted address.
/// @dev Selector: 0x6554e8c5
error TransferBlacklisted();
/*//////////////////////////////////////////////////////////////////////////
DepositVault.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when deposits are paused.
/// @dev Selector: 0x35edea30
error DepositPaused();
/// @notice Thrown when a deposit exceeds per-token deposit cap.
/// @dev Selector: 0xcc60dc5b
error ExceedTokenDepositCap();
/// @notice Thrown when a deposit exceeds global deposit cap.
/// @dev Selector: 0x5054f250
error ExceedTotalDepositCap();
/// @notice Thrown when minting results in zero shares.
/// @dev Selector: 0x1d31001e
error MintZeroShare();
/// @notice Thrown when attempting to deposit zero assets.
/// @dev Selector: 0xd69b89cc
error DepositZeroAsset();
/// @notice Thrown when the oracle for an asset is invalid or missing.
/// @dev Selector: 0x9589a27d
error InvalidOracle();
/*//////////////////////////////////////////////////////////////////////////
WithdrawController.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when withdrawals are paused.
/// @dev Selector: 0xe0a39803
error WithdrawPaused();
/// @notice Thrown when attempting to request withdrawal of zero shares.
/// @dev Selector: 0xef9c351b
error RequestZeroShare();
/// @notice Thrown when a withdrawal receipt has invalid status for the operation.
/// @dev Selector: 0x3bb3ba88
error InvalidReceiptStatus();
/// @notice Thrown when a caller is not the original withdrawal requester.
/// @dev Selector: 0xe39da59e
error NotRequester();
/// @notice Thrown when a caller is blacklisted.
/// @dev Selector: 0x473250af
error UserBlacklisted();
/*//////////////////////////////////////////////////////////////////////////
AssetsRouter.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when a recipient is already added.
/// @dev Selector: 0xce2c4eb3
error RecipientAlreadyAdded();
/// @notice Thrown when a recipient is already removed.
/// @dev Selector: 0x1c7dcc84
error RecipientAlreadyRemoved();
/// @notice Thrown when attempting to set auto-route to its current state.
/// @dev Selector: 0xdf2e473d
error InvalidRouteEnabledStatus();
/// @notice Thrown when a non-registered recipient is used.
/// @dev Selector: 0xf29851db
error NotRouterRecipient();
/// @notice Thrown when attempting to remove the currently active recipient.
/// @dev Selector: 0xa453bd1b
error RemoveActiveRouter();
/// @notice Thrown when attempting to manual route the asstes when auto route is enabled.
/// @dev Selector: 0x92d56bf7
error AutoRouteEnabled();
/// @notice Thrown when setting the same router address.
/// @dev Selector: 0x23b920b6
error SameRouterAddress();
/*//////////////////////////////////////////////////////////////////////////
AccessRegistry.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when trying to blacklist an already blacklisted user.
/// @dev Selector: 0xf53de75f
error AlreadyBlacklisted();
/// @notice Thrown when trying to whitelist an already whitelisted user.
/// @dev Selector: 0xb73e95e1
error AlreadyWhitelisted();
/// @notice Reverts when the requested state matches the current state.
/// @dev Selector: 0x3fbc93f3
error AlreadyInSameState();
/*//////////////////////////////////////////////////////////////////////////
OracleRegister.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when an oracle is already registered for an asset.
/// @dev Selector: 0x652a449e
error OracleAlreadyAdded();
/// @notice Thrown when an oracle does not exist for an asset.
/// @dev Selector: 0x4dca4f7d
error OracleNotExist();
/// @notice Thrown when price deviation exceeds maximum allowed.
/// @dev Selector: 0x8774ad87
error ExceedMaxDeviation();
/// @notice Thrown when price updates are attempted too frequently.
/// @dev Selector: 0x8f46908a
error PriceUpdateTooFrequent();
/// @notice Thrown when a price validity period has expired.
/// @dev Selector: 0x7c9d063a
error PriceValidityExpired();
/// @notice Thrown when a price is zero.
/// @dev Selector: 0x10256287
error InvalidZeroPrice();
/*//////////////////////////////////////////////////////////////////////////
ParamRegister.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when tolerance basis points exceed maximum deviation.
/// @dev Selector: 0xb8d855e2
error ExceedMaxDeviationBps();
/// @notice Thrown when price update interval is invalid.
/// @dev Selector: 0xfff67f52
error InvalidPriceUpdateInterval();
/// @notice Thrown when price validity duration exceeds allowed maximum.
/// @dev Selector: 0x6eca7e24
error PriceMaxValidityExceeded();
/// @notice Thrown when mint fee rate exceeds maximum allowed.
/// @dev Selector: 0x8f59faf8
error ExceedMaxMintFeeRate();
/// @notice Thrown when redeem fee rate exceeds maximum allowed.
/// @dev Selector: 0x86871089
error ExceedMaxRedeemFeeRate();
/*//////////////////////////////////////////////////////////////////////////
ChainlinkOracleFeed.sol
//////////////////////////////////////////////////////////////////////////*/
/// @notice Thrown when a reported price is invalid.
/// @dev Selector: 0x00bfc921
error InvalidPrice();
/// @notice Thrown when a reported price is stale.
/// @dev Selector: 0x19abf40e
error StalePrice();
/// @notice Thrown when a Chainlink round is incomplete.
/// @dev Selector: 0x8ad52bdd
error IncompleteRound();
}{
"remappings": [
"@uniswap/v3-periphery/contracts/=lib/v3-periphery/contracts/",
"@chainlink/contracts/src/v0.8/=lib/chainlink-evm/contracts/src/v0.8/shared/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"chainlink-evm/=lib/chainlink-evm/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"v3-periphery/=lib/v3-periphery/contracts/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": false
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IncompleteRound","type":"error"},{"inputs":[],"name":"InvalidPrice","type":"error"},{"inputs":[],"name":"StalePrice","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"peek","outputs":[{"internalType":"uint256","name":"price_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
0x60c060405234801561000f575f80fd5b50604051611044380380611044833981810160405281019061003191906102c0565b82828173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050805f90816100759190610539565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100dd576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505050610608565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101538261012a565b9050919050565b61016381610149565b811461016d575f80fd5b50565b5f8151905061017e8161015a565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101d28261018c565b810181811067ffffffffffffffff821117156101f1576101f061019c565b5b80604052505050565b5f610203610119565b905061020f82826101c9565b919050565b5f67ffffffffffffffff82111561022e5761022d61019c565b5b6102378261018c565b9050602081019050919050565b8281835e5f83830152505050565b5f61026461025f84610214565b6101fa565b9050828152602081018484840111156102805761027f610188565b5b61028b848285610244565b509392505050565b5f82601f8301126102a7576102a6610184565b5b81516102b7848260208601610252565b91505092915050565b5f805f606084860312156102d7576102d6610122565b5b5f6102e486828701610170565b935050602084015167ffffffffffffffff81111561030557610304610126565b5b61031186828701610293565b925050604061032286828701610170565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061037a57607f821691505b60208210810361038d5761038c610336565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103b4565b6103f986836103b4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61043d61043861043384610411565b61041a565b610411565b9050919050565b5f819050919050565b61045683610423565b61046a61046282610444565b8484546103c0565b825550505050565b5f90565b61047e610472565b61048981848461044d565b505050565b5b818110156104ac576104a15f82610476565b60018101905061048f565b5050565b601f8211156104f1576104c281610393565b6104cb846103a5565b810160208510156104da578190505b6104ee6104e6856103a5565b83018261048e565b50505b505050565b5f82821c905092915050565b5f6105115f19846008026104f6565b1980831691505092915050565b5f6105298383610502565b9150826002028217905092915050565b6105428261032c565b67ffffffffffffffff81111561055b5761055a61019c565b5b6105658254610363565b6105708282856104b0565b5f60209050601f8311600181146105a1575f841561058f578287015190505b610599858261051e565b865550610600565b601f1984166105af86610393565b5f5b828110156105d6578489015182556001820191506020850194506020810190506105b1565b868310156105f357848901516105ef601f891682610502565b8355505b6001600288020188555050505b505050505050565b60805160a051610a0d6106375f395f8181610158015281816102bd01526103b701525f6103db0152610a0d5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806306fdde031461004e57806359e02dd71461006c578063741bef1a1461008a578063fc0c546a146100a8575b5f80fd5b6100566100c6565b604051610063919061046d565b60405180910390f35b610074610151565b60405161008191906104a5565b60405180910390f35b6100926103b5565b60405161009f9190610538565b60405180910390f35b6100b06103d9565b6040516100bd9190610571565b60405180910390f35b5f80546100d2906105b7565b80601f01602080910402602001604051908101604052809291908181526020018280546100fe906105b7565b80156101495780601f1061012057610100808354040283529160200191610149565b820191905f5260205f20905b81548152906001019060200180831161012c57829003601f168201915b505050505081565b5f805f805f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e39190610687565b9450945050935093505f8313610224576040517ebfc92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8369ffffffffffffffffffff168169ffffffffffffffffffff161015610276576040517f19abf40e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82148061028357504282115b156102ba576040517f8ad52bdd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610324573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103489190610734565b905060128160ff16111561038657601281610363919061078c565b600a61036f91906108ef565b8461037a9190610966565b955050505050506103b2565b806012610393919061078c565b600a61039f91906108ef565b846103aa9190610996565b955050505050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61043f826103fd565b6104498185610407565b9350610459818560208601610417565b61046281610425565b840191505092915050565b5f6020820190508181035f8301526104858184610435565b905092915050565b5f819050919050565b61049f8161048d565b82525050565b5f6020820190506104b85f830184610496565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6105006104fb6104f6846104be565b6104dd565b6104be565b9050919050565b5f610511826104e6565b9050919050565b5f61052282610507565b9050919050565b61053281610518565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f61055b826104be565b9050919050565b61056b81610551565b82525050565b5f6020820190506105845f830184610562565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806105ce57607f821691505b6020821081036105e1576105e061058a565b5b50919050565b5f80fd5b5f69ffffffffffffffffffff82169050919050565b610609816105eb565b8114610613575f80fd5b50565b5f8151905061062481610600565b92915050565b5f819050919050565b61063c8161062a565b8114610646575f80fd5b50565b5f8151905061065781610633565b92915050565b6106668161048d565b8114610670575f80fd5b50565b5f815190506106818161065d565b92915050565b5f805f805f60a086880312156106a05761069f6105e7565b5b5f6106ad88828901610616565b95505060206106be88828901610649565b94505060406106cf88828901610673565b93505060606106e088828901610673565b92505060806106f188828901610616565b9150509295509295909350565b5f60ff82169050919050565b610713816106fe565b811461071d575f80fd5b50565b5f8151905061072e8161070a565b92915050565b5f60208284031215610749576107486105e7565b5b5f61075684828501610720565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610796826106fe565b91506107a1836106fe565b9250828203905060ff8111156107ba576107b961075f565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115610815578086048111156107f1576107f061075f565b5b60018516156108005780820291505b808102905061080e856107c0565b94506107d5565b94509492505050565b5f8261082d57600190506108e8565b8161083a575f90506108e8565b8160018114610850576002811461085a57610889565b60019150506108e8565b60ff84111561086c5761086b61075f565b5b8360020a9150848211156108835761088261075f565b5b506108e8565b5060208310610133831016604e8410600b84101617156108be5782820a9050838111156108b9576108b861075f565b5b6108e8565b6108cb84848460016107cc565b925090508184048111156108e2576108e161075f565b5b81810290505b9392505050565b5f6108f98261048d565b9150610904836106fe565b92506109317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461081e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109708261048d565b915061097b8361048d565b92508261098b5761098a610939565b5b828204905092915050565b5f6109a08261048d565b91506109ab8361048d565b92508282026109b98161048d565b915082820484148315176109d0576109cf61075f565b5b509291505056fea2646970667358221220c054752d87359e5a84a4905ddf85350e4d73bfb142e2f7aa898800fc57a056b664736f6c634300081a0033000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000600000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f60000000000000000000000000000000000000000000000000000000000000017436861696e6c696e6b20555344432f5553442046656564000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806306fdde031461004e57806359e02dd71461006c578063741bef1a1461008a578063fc0c546a146100a8575b5f80fd5b6100566100c6565b604051610063919061046d565b60405180910390f35b610074610151565b60405161008191906104a5565b60405180910390f35b6100926103b5565b60405161009f9190610538565b60405180910390f35b6100b06103d9565b6040516100bd9190610571565b60405180910390f35b5f80546100d2906105b7565b80601f01602080910402602001604051908101604052809291908181526020018280546100fe906105b7565b80156101495780601f1061012057610100808354040283529160200191610149565b820191905f5260205f20905b81548152906001019060200180831161012c57829003601f168201915b505050505081565b5f805f805f7f0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e39190610687565b9450945050935093505f8313610224576040517ebfc92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8369ffffffffffffffffffff168169ffffffffffffffffffff161015610276576040517f19abf40e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82148061028357504282115b156102ba576040517f8ad52bdd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610324573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103489190610734565b905060128160ff16111561038657601281610363919061078c565b600a61036f91906108ef565b8461037a9190610966565b955050505050506103b2565b806012610393919061078c565b600a61039f91906108ef565b846103aa9190610996565b955050505050505b90565b7f0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f681565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61043f826103fd565b6104498185610407565b9350610459818560208601610417565b61046281610425565b840191505092915050565b5f6020820190508181035f8301526104858184610435565b905092915050565b5f819050919050565b61049f8161048d565b82525050565b5f6020820190506104b85f830184610496565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6105006104fb6104f6846104be565b6104dd565b6104be565b9050919050565b5f610511826104e6565b9050919050565b5f61052282610507565b9050919050565b61053281610518565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f61055b826104be565b9050919050565b61056b81610551565b82525050565b5f6020820190506105845f830184610562565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806105ce57607f821691505b6020821081036105e1576105e061058a565b5b50919050565b5f80fd5b5f69ffffffffffffffffffff82169050919050565b610609816105eb565b8114610613575f80fd5b50565b5f8151905061062481610600565b92915050565b5f819050919050565b61063c8161062a565b8114610646575f80fd5b50565b5f8151905061065781610633565b92915050565b6106668161048d565b8114610670575f80fd5b50565b5f815190506106818161065d565b92915050565b5f805f805f60a086880312156106a05761069f6105e7565b5b5f6106ad88828901610616565b95505060206106be88828901610649565b94505060406106cf88828901610673565b93505060606106e088828901610673565b92505060806106f188828901610616565b9150509295509295909350565b5f60ff82169050919050565b610713816106fe565b811461071d575f80fd5b50565b5f8151905061072e8161070a565b92915050565b5f60208284031215610749576107486105e7565b5b5f61075684828501610720565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610796826106fe565b91506107a1836106fe565b9250828203905060ff8111156107ba576107b961075f565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115610815578086048111156107f1576107f061075f565b5b60018516156108005780820291505b808102905061080e856107c0565b94506107d5565b94509492505050565b5f8261082d57600190506108e8565b8161083a575f90506108e8565b8160018114610850576002811461085a57610889565b60019150506108e8565b60ff84111561086c5761086b61075f565b5b8360020a9150848211156108835761088261075f565b5b506108e8565b5060208310610133831016604e8410600b84101617156108be5782820a9050838111156108b9576108b861075f565b5b6108e8565b6108cb84848460016107cc565b925090508184048111156108e2576108e161075f565b5b81810290505b9392505050565b5f6108f98261048d565b9150610904836106fe565b92506109317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461081e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109708261048d565b915061097b8361048d565b92508261098b5761098a610939565b5b828204905092915050565b5f6109a08261048d565b91506109ab8361048d565b92508282026109b98161048d565b915082820484148315176109d0576109cf61075f565b5b509291505056fea2646970667358221220c054752d87359e5a84a4905ddf85350e4d73bfb142e2f7aa898800fc57a056b664736f6c634300081a0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 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.