Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SwapPoolOracle
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
contract SwapPoolOracle is Ownable {
// Operator address that can update prices
address operator;
// Maximum duration for which a price is considered fresh
uint32 public maxStaleDuration = 3600; // 1 hour in seconds
// Mapping from token address to price data
mapping(address => PriceData) public priceInfo;
struct PriceData {
uint224 price;
uint32 timestamp;
}
event PriceUpdated(address indexed token, uint224 price);
modifier onlyOperator() {
require(msg.sender == operator, "SwapPoolOracle: Caller is not the operator");
_;
}
constructor() Ownable() {
operator = msg.sender; // Set the deployer as the initial operator
}
function setPrice(address token, uint224 price) public onlyOperator {
require(token != address(0), "SwapPoolOracle: Invalid token address");
priceInfo[token] = PriceData(price, uint32(block.timestamp));
emit PriceUpdated(token, price);
}
function setPrices(address[] calldata tokens, uint224[] calldata prices) external onlyOperator {
require(tokens.length == prices.length, "SwapPoolOracle: Mismatched input lengths");
for (uint256 i = 0; i < tokens.length; i++) {
setPrice(tokens[i], prices[i]);
}
}
function getPrice(address token) public view returns (uint256 price) {
PriceData storage priceData = priceInfo[token];
price = priceData.price;
require(priceData.timestamp==0 || block.timestamp - priceData.timestamp < maxStaleDuration, "SwapPoolOracle: Stale price data");
}
function getPrices(address[] calldata tokens) external view returns (uint256[] memory prices) {
prices = new uint256[](tokens.length);
for (uint256 i = 0; i < tokens.length; i++) {
prices[i] = getPrice(tokens[i]);
}
}
function isPriceStale(address token) external view returns (bool) {
PriceData storage priceData = priceInfo[token];
return block.timestamp - priceData.timestamp >= maxStaleDuration;
}
function setMaxStaleDuration(uint32 duration) external onlyOwner {
require(duration > 0, "SwapPoolOracle: Duration must be greater than zero");
maxStaleDuration = duration;
}
function setOperator(address newOperator) external onlyOwner {
require(newOperator != address(0), "SwapPoolOracle: Invalid operator address");
operator = newOperator;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"remappings": [
"frax-std/=node_modules/frax-standard-solidity/src/",
"@prb/test/=node_modules/@prb/test/",
"forge-std/=node_modules/forge-std/src/",
"ds-test/=node_modules/ds-test/src/",
"@uniswap/=node_modules/@uniswap/",
"@openzeppelin/=node_modules/@openzeppelin/",
"dev-fraxswap/=node_modules/dev-fraxswap/",
"frax-standard-solidity/=node_modules/frax-standard-solidity/",
"solidity-bytes-utils/=node_modules/solidity-bytes-utils/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "none",
"appendCBOR": false
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "shanghai",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint224","name":"price","type":"uint224"}],"name":"PriceUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getPrices","outputs":[{"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"isPriceStale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxStaleDuration","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"priceInfo","outputs":[{"internalType":"uint224","name":"price","type":"uint224"},{"internalType":"uint32","name":"timestamp","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"setMaxStaleDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint224","name":"price","type":"uint224"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint224[]","name":"prices","type":"uint224[]"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052610e10600160146101000a81548163ffffffff021916908363ffffffff160217905550348015610032575f80fd5b5061004f61004461009460201b60201c565b61009b60201b60201c565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061015c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611637806101695f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638fb5a4821161006f5780638fb5a4821461018b5780639a2a7b7d146101bb578063b3ab15fb146101d7578063b4ced716146101f3578063dd71acc11461020f578063f2fde38b1461022d576100b2565b806317fdb62f146100b657806341976e09146100e65780636d048d5314610116578063715018a6146101475780638da5cb5b146101515780638f4697951461016f575b5f80fd5b6100d060048036038101906100cb9190610c60565b610249565b6040516100dd9190610ca5565b60405180910390f35b61010060048036038101906100fb9190610c60565b6102d2565b60405161010d9190610cd6565b60405180910390f35b610130600480360381019061012b9190610c60565b610405565b60405161013e929190610d43565b60405180910390f35b61014f61045b565b005b61015961046e565b6040516101669190610d79565b60405180910390f35b61018960048036038101906101849190610e48565b610495565b005b6101a560048036038101906101a09190610ec6565b6105eb565b6040516101b29190610fc8565b60405180910390f35b6101d560048036038101906101d09190611012565b6106b1565b005b6101f160048036038101906101ec9190610c60565b6108f3565b005b61020d6004803603810190610208919061107a565b6109ac565b005b610217610a20565b60405161022491906110a5565b60405180910390f35b61024760048036038101906102429190610c60565b610a36565b005b5f8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050600160149054906101000a900463ffffffff1663ffffffff16815f01601c9054906101000a900463ffffffff1663ffffffff16426102c891906110eb565b1015915050919050565b5f8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050805f015f9054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1691505f815f01601c9054906101000a900463ffffffff1663ffffffff1614806103c05750600160149054906101000a900463ffffffff1663ffffffff16815f01601c9054906101000a900463ffffffff1663ffffffff16426103be91906110eb565b105b6103ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f690611178565b60405180910390fd5b50919050565b6002602052805f5260405f205f91509050805f015f9054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690805f01601c9054906101000a900463ffffffff16905082565b610463610ab8565b61046c5f610b36565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611206565b60405180910390fd5b81819050848490501461056c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056390611294565b60405180910390fd5b5f5b848490508110156105e4576105d185858381811061058f5761058e6112b2565b5b90506020020160208101906105a49190610c60565b8484848181106105b7576105b66112b2565b5b90506020020160208101906105cc91906112df565b6106b1565b80806105dc9061130a565b91505061056e565b5050505050565b60608282905067ffffffffffffffff81111561060a57610609611351565b5b6040519080825280602002602001820160405280156106385781602001602082028036833780820191505090505b5090505f5b838390508110156106aa5761067884848381811061065e5761065d6112b2565b5b90506020020160208101906106739190610c60565b6102d2565b82828151811061068b5761068a6112b2565b5b60200260200101818152505080806106a29061130a565b91505061063d565b5092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790611206565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a5906113ee565b60405180910390fd5b6040518060400160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020014263ffffffff1681525060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f01601c6101000a81548163ffffffff021916908363ffffffff1602179055509050508173ffffffffffffffffffffffffffffffffffffffff167fad435add05fa84ac1a1874b69bc4e8f8101f56cad85a504f8ea79c7ec482dcb5826040516108e7919061140c565b60405180910390a25050565b6108fb610ab8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090611495565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b4610ab8565b5f8163ffffffff16116109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390611523565b60405180910390fd5b80600160146101000a81548163ffffffff021916908363ffffffff16021790555050565b600160149054906101000a900463ffffffff1681565b610a3e610ab8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa3906115b1565b60405180910390fd5b610ab581610b36565b50565b610ac0610bf7565b73ffffffffffffffffffffffffffffffffffffffff16610ade61046e565b73ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90611619565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c2f82610c06565b9050919050565b610c3f81610c25565b8114610c49575f80fd5b50565b5f81359050610c5a81610c36565b92915050565b5f60208284031215610c7557610c74610bfe565b5b5f610c8284828501610c4c565b91505092915050565b5f8115159050919050565b610c9f81610c8b565b82525050565b5f602082019050610cb85f830184610c96565b92915050565b5f819050919050565b610cd081610cbe565b82525050565b5f602082019050610ce95f830184610cc7565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b610d1f81610cef565b82525050565b5f63ffffffff82169050919050565b610d3d81610d25565b82525050565b5f604082019050610d565f830185610d16565b610d636020830184610d34565b9392505050565b610d7381610c25565b82525050565b5f602082019050610d8c5f830184610d6a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610db357610db2610d92565b5b8235905067ffffffffffffffff811115610dd057610dcf610d96565b5b602083019150836020820283011115610dec57610deb610d9a565b5b9250929050565b5f8083601f840112610e0857610e07610d92565b5b8235905067ffffffffffffffff811115610e2557610e24610d96565b5b602083019150836020820283011115610e4157610e40610d9a565b5b9250929050565b5f805f8060408587031215610e6057610e5f610bfe565b5b5f85013567ffffffffffffffff811115610e7d57610e7c610c02565b5b610e8987828801610d9e565b9450945050602085013567ffffffffffffffff811115610eac57610eab610c02565b5b610eb887828801610df3565b925092505092959194509250565b5f8060208385031215610edc57610edb610bfe565b5b5f83013567ffffffffffffffff811115610ef957610ef8610c02565b5b610f0585828601610d9e565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610f4381610cbe565b82525050565b5f610f548383610f3a565b60208301905092915050565b5f602082019050919050565b5f610f7682610f11565b610f808185610f1b565b9350610f8b83610f2b565b805f5b83811015610fbb578151610fa28882610f49565b9750610fad83610f60565b925050600181019050610f8e565b5085935050505092915050565b5f6020820190508181035f830152610fe08184610f6c565b905092915050565b610ff181610cef565b8114610ffb575f80fd5b50565b5f8135905061100c81610fe8565b92915050565b5f806040838503121561102857611027610bfe565b5b5f61103585828601610c4c565b925050602061104685828601610ffe565b9150509250929050565b61105981610d25565b8114611063575f80fd5b50565b5f8135905061107481611050565b92915050565b5f6020828403121561108f5761108e610bfe565b5b5f61109c84828501611066565b91505092915050565b5f6020820190506110b85f830184610d34565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110f582610cbe565b915061110083610cbe565b9250828203905081811115611118576111176110be565b5b92915050565b5f82825260208201905092915050565b7f53776170506f6f6c4f7261636c653a205374616c6520707269636520646174615f82015250565b5f61116260208361111e565b915061116d8261112e565b602082019050919050565b5f6020820190508181035f83015261118f81611156565b9050919050565b7f53776170506f6f6c4f7261636c653a2043616c6c6572206973206e6f742074685f8201527f65206f70657261746f7200000000000000000000000000000000000000000000602082015250565b5f6111f0602a8361111e565b91506111fb82611196565b604082019050919050565b5f6020820190508181035f83015261121d816111e4565b9050919050565b7f53776170506f6f6c4f7261636c653a204d69736d61746368656420696e7075745f8201527f206c656e67746873000000000000000000000000000000000000000000000000602082015250565b5f61127e60288361111e565b915061128982611224565b604082019050919050565b5f6020820190508181035f8301526112ab81611272565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082840312156112f4576112f3610bfe565b5b5f61130184828501610ffe565b91505092915050565b5f61131482610cbe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611346576113456110be565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f53776170506f6f6c4f7261636c653a20496e76616c696420746f6b656e2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6113d860258361111e565b91506113e38261137e565b604082019050919050565b5f6020820190508181035f830152611405816113cc565b9050919050565b5f60208201905061141f5f830184610d16565b92915050565b7f53776170506f6f6c4f7261636c653a20496e76616c6964206f70657261746f725f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f61147f60288361111e565b915061148a82611425565b604082019050919050565b5f6020820190508181035f8301526114ac81611473565b9050919050565b7f53776170506f6f6c4f7261636c653a204475726174696f6e206d7573742062655f8201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b5f61150d60328361111e565b9150611518826114b3565b604082019050919050565b5f6020820190508181035f83015261153a81611501565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61159b60268361111e565b91506115a682611541565b604082019050919050565b5f6020820190508181035f8301526115c88161158f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61160360208361111e565b915061160e826115cf565b602082019050919050565b5f6020820190508181035f830152611630816115f7565b905091905056
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638fb5a4821161006f5780638fb5a4821461018b5780639a2a7b7d146101bb578063b3ab15fb146101d7578063b4ced716146101f3578063dd71acc11461020f578063f2fde38b1461022d576100b2565b806317fdb62f146100b657806341976e09146100e65780636d048d5314610116578063715018a6146101475780638da5cb5b146101515780638f4697951461016f575b5f80fd5b6100d060048036038101906100cb9190610c60565b610249565b6040516100dd9190610ca5565b60405180910390f35b61010060048036038101906100fb9190610c60565b6102d2565b60405161010d9190610cd6565b60405180910390f35b610130600480360381019061012b9190610c60565b610405565b60405161013e929190610d43565b60405180910390f35b61014f61045b565b005b61015961046e565b6040516101669190610d79565b60405180910390f35b61018960048036038101906101849190610e48565b610495565b005b6101a560048036038101906101a09190610ec6565b6105eb565b6040516101b29190610fc8565b60405180910390f35b6101d560048036038101906101d09190611012565b6106b1565b005b6101f160048036038101906101ec9190610c60565b6108f3565b005b61020d6004803603810190610208919061107a565b6109ac565b005b610217610a20565b60405161022491906110a5565b60405180910390f35b61024760048036038101906102429190610c60565b610a36565b005b5f8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050600160149054906101000a900463ffffffff1663ffffffff16815f01601c9054906101000a900463ffffffff1663ffffffff16426102c891906110eb565b1015915050919050565b5f8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050805f015f9054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1691505f815f01601c9054906101000a900463ffffffff1663ffffffff1614806103c05750600160149054906101000a900463ffffffff1663ffffffff16815f01601c9054906101000a900463ffffffff1663ffffffff16426103be91906110eb565b105b6103ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f690611178565b60405180910390fd5b50919050565b6002602052805f5260405f205f91509050805f015f9054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690805f01601c9054906101000a900463ffffffff16905082565b610463610ab8565b61046c5f610b36565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611206565b60405180910390fd5b81819050848490501461056c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056390611294565b60405180910390fd5b5f5b848490508110156105e4576105d185858381811061058f5761058e6112b2565b5b90506020020160208101906105a49190610c60565b8484848181106105b7576105b66112b2565b5b90506020020160208101906105cc91906112df565b6106b1565b80806105dc9061130a565b91505061056e565b5050505050565b60608282905067ffffffffffffffff81111561060a57610609611351565b5b6040519080825280602002602001820160405280156106385781602001602082028036833780820191505090505b5090505f5b838390508110156106aa5761067884848381811061065e5761065d6112b2565b5b90506020020160208101906106739190610c60565b6102d2565b82828151811061068b5761068a6112b2565b5b60200260200101818152505080806106a29061130a565b91505061063d565b5092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790611206565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a5906113ee565b60405180910390fd5b6040518060400160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020014263ffffffff1681525060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f01601c6101000a81548163ffffffff021916908363ffffffff1602179055509050508173ffffffffffffffffffffffffffffffffffffffff167fad435add05fa84ac1a1874b69bc4e8f8101f56cad85a504f8ea79c7ec482dcb5826040516108e7919061140c565b60405180910390a25050565b6108fb610ab8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090611495565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b4610ab8565b5f8163ffffffff16116109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390611523565b60405180910390fd5b80600160146101000a81548163ffffffff021916908363ffffffff16021790555050565b600160149054906101000a900463ffffffff1681565b610a3e610ab8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa3906115b1565b60405180910390fd5b610ab581610b36565b50565b610ac0610bf7565b73ffffffffffffffffffffffffffffffffffffffff16610ade61046e565b73ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90611619565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c2f82610c06565b9050919050565b610c3f81610c25565b8114610c49575f80fd5b50565b5f81359050610c5a81610c36565b92915050565b5f60208284031215610c7557610c74610bfe565b5b5f610c8284828501610c4c565b91505092915050565b5f8115159050919050565b610c9f81610c8b565b82525050565b5f602082019050610cb85f830184610c96565b92915050565b5f819050919050565b610cd081610cbe565b82525050565b5f602082019050610ce95f830184610cc7565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b610d1f81610cef565b82525050565b5f63ffffffff82169050919050565b610d3d81610d25565b82525050565b5f604082019050610d565f830185610d16565b610d636020830184610d34565b9392505050565b610d7381610c25565b82525050565b5f602082019050610d8c5f830184610d6a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610db357610db2610d92565b5b8235905067ffffffffffffffff811115610dd057610dcf610d96565b5b602083019150836020820283011115610dec57610deb610d9a565b5b9250929050565b5f8083601f840112610e0857610e07610d92565b5b8235905067ffffffffffffffff811115610e2557610e24610d96565b5b602083019150836020820283011115610e4157610e40610d9a565b5b9250929050565b5f805f8060408587031215610e6057610e5f610bfe565b5b5f85013567ffffffffffffffff811115610e7d57610e7c610c02565b5b610e8987828801610d9e565b9450945050602085013567ffffffffffffffff811115610eac57610eab610c02565b5b610eb887828801610df3565b925092505092959194509250565b5f8060208385031215610edc57610edb610bfe565b5b5f83013567ffffffffffffffff811115610ef957610ef8610c02565b5b610f0585828601610d9e565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610f4381610cbe565b82525050565b5f610f548383610f3a565b60208301905092915050565b5f602082019050919050565b5f610f7682610f11565b610f808185610f1b565b9350610f8b83610f2b565b805f5b83811015610fbb578151610fa28882610f49565b9750610fad83610f60565b925050600181019050610f8e565b5085935050505092915050565b5f6020820190508181035f830152610fe08184610f6c565b905092915050565b610ff181610cef565b8114610ffb575f80fd5b50565b5f8135905061100c81610fe8565b92915050565b5f806040838503121561102857611027610bfe565b5b5f61103585828601610c4c565b925050602061104685828601610ffe565b9150509250929050565b61105981610d25565b8114611063575f80fd5b50565b5f8135905061107481611050565b92915050565b5f6020828403121561108f5761108e610bfe565b5b5f61109c84828501611066565b91505092915050565b5f6020820190506110b85f830184610d34565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110f582610cbe565b915061110083610cbe565b9250828203905081811115611118576111176110be565b5b92915050565b5f82825260208201905092915050565b7f53776170506f6f6c4f7261636c653a205374616c6520707269636520646174615f82015250565b5f61116260208361111e565b915061116d8261112e565b602082019050919050565b5f6020820190508181035f83015261118f81611156565b9050919050565b7f53776170506f6f6c4f7261636c653a2043616c6c6572206973206e6f742074685f8201527f65206f70657261746f7200000000000000000000000000000000000000000000602082015250565b5f6111f0602a8361111e565b91506111fb82611196565b604082019050919050565b5f6020820190508181035f83015261121d816111e4565b9050919050565b7f53776170506f6f6c4f7261636c653a204d69736d61746368656420696e7075745f8201527f206c656e67746873000000000000000000000000000000000000000000000000602082015250565b5f61127e60288361111e565b915061128982611224565b604082019050919050565b5f6020820190508181035f8301526112ab81611272565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082840312156112f4576112f3610bfe565b5b5f61130184828501610ffe565b91505092915050565b5f61131482610cbe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611346576113456110be565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f53776170506f6f6c4f7261636c653a20496e76616c696420746f6b656e2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6113d860258361111e565b91506113e38261137e565b604082019050919050565b5f6020820190508181035f830152611405816113cc565b9050919050565b5f60208201905061141f5f830184610d16565b92915050565b7f53776170506f6f6c4f7261636c653a20496e76616c6964206f70657261746f725f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f61147f60288361111e565b915061148a82611425565b604082019050919050565b5f6020820190508181035f8301526114ac81611473565b9050919050565b7f53776170506f6f6c4f7261636c653a204475726174696f6e206d7573742062655f8201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b5f61150d60328361111e565b9150611518826114b3565b604082019050919050565b5f6020820190508181035f83015261153a81611501565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61159b60268361111e565b91506115a682611541565b604082019050919050565b5f6020820190508181035f8301526115c88161158f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61160360208361111e565b915061160e826115cf565b602082019050919050565b5f6020820190508181035f830152611630816115f7565b905091905056
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.