Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PythFeedAdapter
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 800 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: UNLICENSEDpragma solidity ^0.8.13;import {Script, console} from "forge-std/Script.sol";import {IOracle} from "contracts/interfaces/oracles/IOracle.sol";struct Price {// Priceint64 price;// Confidence interval around the priceuint64 conf;// Price exponentint32 expo;// Unix timestamp describing when the price was publisheduint publishTime;}interface IPythFeed {function getPriceUnsafe(bytes32 id) external view returns (Price memory price);}contract PythFeedAdapter is IOracle {IPythFeed public immutable pythFeed;bytes32 public immutable priceId;string public name;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;// 💬 ABOUT// Forge Std's default Script.// 🧩 MODULESimport {console} from "./console.sol";import {console2} from "./console2.sol";import {safeconsole} from "./safeconsole.sol";import {StdChains} from "./StdChains.sol";import {StdCheatsSafe} from "./StdCheats.sol";import {stdJson} from "./StdJson.sol";import {stdMath} from "./StdMath.sol";import {StdStorage, stdStorageSafe} from "./StdStorage.sol";import {StdStyle} from "./StdStyle.sol";import {StdUtils} from "./StdUtils.sol";import {VmSafe} from "./Vm.sol";// 📦 BOILERPLATEimport {ScriptBase} from "./Base.sol";// ⭐️ SCRIPTabstract contract Script is ScriptBase, StdChains, StdCheatsSafe, StdUtils {// Note: IS_SCRIPT() must return true.bool public IS_SCRIPT = true;
12345678910111213// SPDX-License-Identifier: MITpragma solidity ^0.8.27;interface IOracle {function decimals() external view returns (uint8);function latestRoundData()externalviewreturns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);function latestAnswer() external view returns (int256);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.4.22 <0.9.0;library console {address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);function _castLogPayloadViewToPure(function(bytes memory) internal view fnIn) internal pure returns (function(bytes memory) internal pure fnOut) {assembly {fnOut := fnIn}}function _sendLogPayload(bytes memory payload) internal pure {_castLogPayloadViewToPure(_sendLogPayloadView)(payload);}function _sendLogPayloadView(bytes memory payload) private view {uint256 payloadLength = payload.length;address consoleAddress = CONSOLE_ADDRESS;/// @solidity memory-safe-assemblyassembly {let payloadStart := add(payload, 32)let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)}
1234// SPDX-License-Identifier: MITpragma solidity >=0.4.22 <0.9.0;import {console as console2} from "./console.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;/// @author philogy <https://github.com/philogy>/// @dev Code generated automatically by script.library safeconsole {uint256 constant CONSOLE_ADDR = 0x000000000000000000000000000000000000000000636F6e736F6c652e6c6f67;// Credit to [0age](https://twitter.com/z0age/status/1654922202930888704) and [0xdapper](https://github.com/foundry-rs/forge-std/pull/374)// for the view-to-pure log trick.function _sendLogPayload(uint256 offset, uint256 size) private pure {function(uint256, uint256) internal view fnIn = _sendLogPayloadView;function(uint256, uint256) internal pure pureSendLogPayload;/// @solidity memory-safe-assemblyassembly {pureSendLogPayload := fnIn}pureSendLogPayload(offset, size);}function _sendLogPayloadView(uint256 offset, uint256 size) private view {/// @solidity memory-safe-assemblyassembly {pop(staticcall(gas(), CONSOLE_ADDR, offset, size, 0x0, 0x0))}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;import {VmSafe} from "./Vm.sol";/*** StdChains provides information about EVM compatible chains that can be used in scripts/tests.* For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are* identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of* the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the* alias used in this contract, which can be found as the first argument to the* `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function.** There are two main ways to use this contract:* 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or* `setChain(string memory chainAlias, Chain memory chain)`* 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`.** The first time either of those are used, chains are initialized with the default set of RPC URLs.* This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in* `defaultRpcUrls`.** The `setChain` function is straightforward, and it simply saves off the given chain data.** The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say* we want to retrieve the RPC URL for `mainnet`:
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;pragma experimental ABIEncoderV2;import {StdStorage, stdStorage} from "./StdStorage.sol";import {console2} from "./console2.sol";import {Vm} from "./Vm.sol";abstract contract StdCheatsSafe {Vm private constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code")))));uint256 private constant UINT256_MAX =115792089237316195423570985008687907853269984665640564039457584007913129639935;bool private gasMeteringOff;// Data structures to parse Transaction objects from the broadcast artifact// that conform to EIP1559. The Raw structs is what is parsed from the JSON// and then converted to the one that is used by the user for better UX.struct RawTx1559 {string[] arguments;address contractAddress;string contractName;// json value name = function
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.9.0;pragma experimental ABIEncoderV2;import {VmSafe} from "./Vm.sol";// Helpers for parsing and writing JSON files// To parse:// ```// using stdJson for string;// string memory json = vm.readFile("<some_path>");// json.readUint("<json_path>");// ```// To write:// ```// using stdJson for string;// string memory json = "json";// json.serialize("a", uint256(123));// string memory semiFinal = json.serialize("b", string("test"));// string memory finalJson = json.serialize("c", semiFinal);// finalJson.write("<some_path>");// ```library stdJson {VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code")))));
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;library stdMath {int256 private constant INT256_MIN = -57896044618658097711785492504343953926634992332820282019728792003956564819968;function abs(int256 a) internal pure returns (uint256) {// Required or it will fail when `a = type(int256).min`if (a == INT256_MIN) {return 57896044618658097711785492504343953926634992332820282019728792003956564819968;}return uint256(a > 0 ? a : -a);}function delta(uint256 a, uint256 b) internal pure returns (uint256) {return a > b ? a - b : b - a;}function delta(int256 a, int256 b) internal pure returns (uint256) {// a and b are of the same sign// this works thanks to two's complement, the left-most bit is the sign bitif ((a ^ b) > -1) {return delta(abs(a), abs(b));}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;import {Vm} from "./Vm.sol";struct FindData {uint256 slot;uint256 offsetLeft;uint256 offsetRight;bool found;}struct StdStorage {mapping(address => mapping(bytes4 => mapping(bytes32 => FindData))) finds;bytes32[] _keys;bytes4 _sig;uint256 _depth;address _target;bytes32 _set;bool _enable_packed_slots;bytes _calldata;}library stdStorageSafe {event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot);event WARNING_UninitedSlot(address who, uint256 slot);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.4.22 <0.9.0;import {VmSafe} from "./Vm.sol";library StdStyle {VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code")))));string constant RED = "\u001b[91m";string constant GREEN = "\u001b[92m";string constant YELLOW = "\u001b[93m";string constant BLUE = "\u001b[94m";string constant MAGENTA = "\u001b[95m";string constant CYAN = "\u001b[96m";string constant BOLD = "\u001b[1m";string constant DIM = "\u001b[2m";string constant ITALIC = "\u001b[3m";string constant UNDERLINE = "\u001b[4m";string constant INVERSE = "\u001b[7m";string constant RESET = "\u001b[0m";function styleConcat(string memory style, string memory self) private pure returns (string memory) {return string(abi.encodePacked(style, self, RESET));}function red(string memory self) internal pure returns (string memory) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;pragma experimental ABIEncoderV2;import {IMulticall3} from "./interfaces/IMulticall3.sol";import {MockERC20} from "./mocks/MockERC20.sol";import {MockERC721} from "./mocks/MockERC721.sol";import {VmSafe} from "./Vm.sol";abstract contract StdUtils {/*//////////////////////////////////////////////////////////////////////////CONSTANTS//////////////////////////////////////////////////////////////////////////*/IMulticall3 private constant multicall = IMulticall3(0xcA11bde05977b3631167028862bE2a173976CA11);VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code")))));address private constant CONSOLE2_ADDRESS = 0x000000000000000000636F6e736F6c652e6c6f67;uint256 private constant INT256_MIN_ABS =57896044618658097711785492504343953926634992332820282019728792003956564819968;uint256 private constant SECP256K1_ORDER =115792089237316195423570985008687907852837564279074904382605163141518161494337;uint256 private constant UINT256_MAX =115792089237316195423570985008687907853269984665640564039457584007913129639935;// Used by default when deploying with create2, https://github.com/Arachnid/deterministic-deployment-proxy.
1234567891011121314151617181920212223242526// Automatically @generated by scripts/vm.py. Do not modify manually.// SPDX-License-Identifier: MIT OR Apache-2.0pragma solidity >=0.6.2 <0.9.0;pragma experimental ABIEncoderV2;/// The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may/// result in Script simulations differing from on-chain execution. It is recommended to only use/// these cheats in scripts.interface VmSafe {/// A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`.enum CallerMode {// No caller modification is currently active.None,// A one time broadcast triggered by a `vm.broadcast()` call is currently active.Broadcast,// A recurrent broadcast triggered by a `vm.startBroadcast()` call is currently active.RecurrentBroadcast,// A one time prank triggered by a `vm.prank()` call is currently active.Prank,// A recurrent prank triggered by a `vm.startPrank()` call is currently active.RecurrentPrank}/// The kind of account access that occurred.enum AccountAccessKind {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;import {StdStorage} from "./StdStorage.sol";import {Vm, VmSafe} from "./Vm.sol";abstract contract CommonBase {// Cheat code address, 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D.address internal constant VM_ADDRESS = address(uint160(uint256(keccak256("hevm cheat code"))));// console.sol and console2.sol work by executing a staticcall to this address.address internal constant CONSOLE = 0x000000000000000000636F6e736F6c652e6c6f67;// Used when deploying with create2, https://github.com/Arachnid/deterministic-deployment-proxy.address internal constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C;// Default address for tx.origin and msg.sender, 0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38.address internal constant DEFAULT_SENDER = address(uint160(uint256(keccak256("foundry default caller"))));// Address of the test contract, deployed by the DEFAULT_SENDER.address internal constant DEFAULT_TEST_CONTRACT = 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f;// Deterministic deployment address of the Multicall3 contract.address internal constant MULTICALL3_ADDRESS = 0xcA11bde05977b3631167028862bE2a173976CA11;// The order of the secp256k1 curve.uint256 internal constant SECP256K1_ORDER =115792089237316195423570985008687907852837564279074904382605163141518161494337;uint256 internal constant UINT256_MAX =115792089237316195423570985008687907853269984665640564039457584007913129639935;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;pragma experimental ABIEncoderV2;interface IMulticall3 {struct Call {address target;bytes callData;}struct Call3 {address target;bool allowFailure;bytes callData;}struct Call3Value {address target;bool allowFailure;uint256 value;bytes callData;}struct Result {bool success;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;import {IERC20} from "../interfaces/IERC20.sol";/// @notice This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production./// @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.solcontract MockERC20 is IERC20 {/*//////////////////////////////////////////////////////////////METADATA STORAGE//////////////////////////////////////////////////////////////*/string internal _name;string internal _symbol;uint8 internal _decimals;function name() external view override returns (string memory) {return _name;}function symbol() external view override returns (string memory) {return _symbol;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.9.0;import {IERC721Metadata, IERC721TokenReceiver} from "../interfaces/IERC721.sol";/// @notice This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production./// @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.solcontract MockERC721 is IERC721Metadata {/*//////////////////////////////////////////////////////////////METADATA STORAGE/LOGIC//////////////////////////////////////////////////////////////*/string internal _name;string internal _symbol;function name() external view override returns (string memory) {return _name;}function symbol() external view override returns (string memory) {return _symbol;}function tokenURI(uint256 id) public view virtual override returns (string memory) {}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2;/// @dev Interface of the ERC20 standard as defined in the EIP./// @dev This includes the optional name, symbol, and decimals metadata.interface IERC20 {/// @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`).event Transfer(address indexed from, address indexed to, uint256 value);/// @dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`/// is the new allowance.event Approval(address indexed owner, address indexed spender, uint256 value);/// @notice Returns the amount of tokens in existence.function totalSupply() external view returns (uint256);/// @notice Returns the amount of tokens owned by `account`.function balanceOf(address account) external view returns (uint256);/// @notice Moves `amount` tokens from the caller's account to `to`.function transfer(address to, uint256 amount) external returns (bool);/// @notice Returns the remaining number of tokens that `spender` is allowed/// to spend on behalf of `owner`function allowance(address owner, address spender) external view returns (uint256);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2;import "./IERC165.sol";/// @title ERC-721 Non-Fungible Token Standard/// @dev See https://eips.ethereum.org/EIPS/eip-721/// Note: the ERC-165 identifier for this interface is 0x80ac58cd.interface IERC721 is IERC165 {/// @dev This emits when ownership of any NFT changes by any mechanism./// This event emits when NFTs are created (`from` == 0) and destroyed/// (`to` == 0). Exception: during contract creation, any number of NFTs/// may be created and assigned without emitting Transfer. At the time of/// any transfer, the approved address for that NFT (if any) is reset to none.event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);/// @dev This emits when the approved address for an NFT is changed or/// reaffirmed. The zero address indicates there is no approved address./// When a Transfer event emits, this also indicates that the approved/// address for that NFT (if any) is reset to none.event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);/// @dev This emits when an operator is enabled or disabled for an owner./// The operator can manage all NFTs of the owner.event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
123456789101112// SPDX-License-Identifier: MITpragma solidity >=0.6.2;interface IERC165 {/// @notice Query if a contract implements an interface/// @param interfaceID The interface identifier, as specified in ERC-165/// @dev Interface identification is specified in ERC-165. This function/// uses less than 30,000 gas./// @return `true` if the contract implements `interfaceID` and/// `interfaceID` is not 0xffffffff, `false` otherwisefunction supportsInterface(bytes4 interfaceID) external view returns (bool);}
1234567891011121314151617181920212223242526{"remappings": ["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/test/=node_modules/@prb/test/","@nexus/=node_modules/nexus/","forge-std/=lib/forge-std/src/","account-abstraction/=node_modules/account-abstraction/contracts/","@ERC4337/account-abstraction/=node_modules/account-abstraction/","@modulekit/=node_modules/modulekit/src/","sentinellist/=node_modules/sentinellist/src/","solady/=node_modules/solady/src/","@uniswap/v3-periphery/contracts/=node_modules/@uniswap/v3-periphery/contracts/","@uniswap/v3-core/contracts/=node_modules/@uniswap/v3-core/contracts/","@uniswap/swap-router-contracts/contracts/=node_modules/@uniswap/swap-router-contracts/contracts/","solady/src/=node_modules/solady/src/","excessively-safe-call/=node_modules/excessively-safe-call/src/","modulekit/=node_modules/@rhinestone/modulekit/src/","module-bases/=node_modules/module-bases/src/","erc7579/=node_modules/erc7579/src/","kernel/=node_modules/@zerodev/kernel/src/","@safe-global/=node_modules/@safe-global/","solarray/=node_modules/solarray/src/","erc7739Validator/=node_modules/erc7739-validator-base/src/","@biconomy-devx/=node_modules/@biconomy-devx/","@erc7579/=node_modules/@erc7579/","@gnosis.pm/=node_modules/@gnosis.pm/",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"pythFeedAddress","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"bytes32","name":"_priceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidPythFeedAddress","type":"error"},{"inputs":[],"name":"InvalidPythFeedPrecision","type":"error"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pythFeed","outputs":[{"internalType":"contract IPythFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c08060405234610328576107fb803803809161001c828561034e565b83398101906060818303126103285780516001600160a01b03811691908290036103285760208101516001600160401b0381116103285781019083601f830112156103285781516001600160401b0381116102785760405194610089601f8301601f19166020018761034e565b81865260208285010111610328576020815f9282604096018389015e86010152015190801561033f576080816024928252604051928380926396834ad360e01b82528660048301525afa908115610334575f9161029b575b50604060071991015160030b0361028c5760a05280516001600160401b038111610278575f54600181811c9116801561026e575b602082101461025a57601f81116101f8575b50602091601f821160011461019a579181925f9261018f575b50508160011b915f199060031b1c1916175f555b6040516104899081610372823960805181818160a90152818161018401526101f3015260a051818181607d015281816101c701526102980152f35b015190505f80610140565b601f198216925f8052805f20915f5b8581106101e0575083600195106101c8575b505050811b015f55610154565b01515f1960f88460031b161c191690555f80806101bb565b919260206001819286850151815501940192016101a9565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610250575b601f0160051c01905b8181106102455750610127565b5f8155600101610238565b909150819061022f565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610115565b634e487b7160e01b5f52604160045260245ffd5b63104a661d60e21b5f5260045ffd5b90506080813d60801161032c575b816102b66080938361034e565b810103126103285760405190608082016001600160401b038111838210176102785760405280518060070b810361032857825260208101516001600160401b03811681036103285760208301526040810151908160030b8203610328576060916040840152015160608201525f6100e1565b5f80fd5b3d91506102a9565b6040513d5f823e3d90fd5b63e63e109360e01b5f5260045ffd5b601f909101601f19168101906001600160401b038211908210176102785760405256fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146102bb575080633118933414610281578063313ce5671461026657806350d25bcd146101a8578063ca7ef348146101585763feaf968c1461005e575f80fd5b34610154575f366003190112610154576040516396834ad360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526080816024817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165afa80156101495760a0915f9161011a575b506060815160070b910151604051915f8352602083015280604083015260608201525f6080820152f35b61013c915060803d608011610142575b61013481836103d2565b810190610408565b5f6100f0565b503d61012a565b6040513d5f823e3d90fd5b5f80fd5b34610154575f36600319011261015457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610154575f366003190112610154576040516396834ad360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526080816024817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165afa8015610149576020915f91610247575b505160070b604051908152f35b610260915060803d6080116101425761013481836103d2565b8261023a565b34610154575f36600319011261015457602060405160088152f35b34610154575f3660031901126101545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610154575f366003190112610154575f905f54918260011c600184169384156103c8575b6020821085146103b4578184526020840194908115610399575060011461033d575b50906103128160409303826103d2565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061037f57509091508101602001610312610302565b919260018160209254838588010152019101909291610367565b60ff1916855250151560051b82016020019050610312610302565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102e0565b90601f8019910116810190811067ffffffffffffffff8211176103f457604052565b634e487b7160e01b5f52604160045260245ffd5b9081608091031261015457604051906080820182811067ffffffffffffffff8211176103f45760405280518060070b8103610154578252602081015167ffffffffffffffff811681036101545760208301526040810151908160030b8203610154576060916040840152015160608201529056fea164736f6c634300081b000a0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b430000000000000000000000000000000000000000000000000000000000000060f490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d0000000000000000000000000000000000000000000000000000000000000005532f555344000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146102bb575080633118933414610281578063313ce5671461026657806350d25bcd146101a8578063ca7ef348146101585763feaf968c1461005e575f80fd5b34610154575f366003190112610154576040516396834ad360e01b81527ff490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d60048201526080816024817f0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b4373ffffffffffffffffffffffffffffffffffffffff165afa80156101495760a0915f9161011a575b506060815160070b910151604051915f8352602083015280604083015260608201525f6080820152f35b61013c915060803d608011610142575b61013481836103d2565b810190610408565b5f6100f0565b503d61012a565b6040513d5f823e3d90fd5b5f80fd5b34610154575f36600319011261015457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b43168152f35b34610154575f366003190112610154576040516396834ad360e01b81527ff490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d60048201526080816024817f0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b4373ffffffffffffffffffffffffffffffffffffffff165afa8015610149576020915f91610247575b505160070b604051908152f35b610260915060803d6080116101425761013481836103d2565b8261023a565b34610154575f36600319011261015457602060405160088152f35b34610154575f3660031901126101545760206040517ff490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d8152f35b34610154575f366003190112610154575f905f54918260011c600184169384156103c8575b6020821085146103b4578184526020840194908115610399575060011461033d575b50906103128160409303826103d2565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061037f57509091508101602001610312610302565b919260018160209254838588010152019101909291610367565b60ff1916855250151560051b82016020019050610312610302565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102e0565b90601f8019910116810190811067ffffffffffffffff8211176103f457604052565b634e487b7160e01b5f52604160045260245ffd5b9081608091031261015457604051906080820182811067ffffffffffffffff8211176103f45760405280518060070b8103610154578252602081015167ffffffffffffffff811681036101545760208301526040810151908160030b8203610154576060916040840152015160608201529056fea164736f6c634300081b000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b430000000000000000000000000000000000000000000000000000000000000060f490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d0000000000000000000000000000000000000000000000000000000000000005532f555344000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : pythFeedAddress (address): 0x2880aB155794e7179c9eE2e38200202908C17B43
Arg [1] : _name (string): S/USD
Arg [2] : _priceId (bytes32): 0xf490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000002880ab155794e7179c9ee2e38200202908c17b43
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : f490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 532f555344000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.