Overview
SOPH Balance
0 SOPH
SOPH Value
-More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
811300 | 24 days ago | Contract Creation | 0 SOPH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
PriceFeeds
Compiler Version
v0.8.26+commit.8a97fa7a
ZkSolc Version
v1.5.6
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; import "contracts/farm/interfaces/IStork.sol"; import "contracts/farm/interfaces/IPriceFeeds.sol"; import "contracts/proxies/Upgradeable2Step.sol"; contract PriceFeeds is IPriceFeeds, Upgradeable2Step { mapping(address => StorkData) public storkData; IStork public immutable stork; constructor(address stork_) { if (stork_ == address(0)) revert ZeroAddress(); stork = IStork(stork_); } function getPrice(address poolToken_) external view returns (uint256) { StorkData storage token0Data = storkData[poolToken_]; if (token0Data.feedType == FeedType.Stork) { // handle stork feed return getStorkPrice(token0Data.feedHash, token0Data.staleSeconds); } else { revert InvalidType(); } } function getStorkPrice(bytes32 feedHash_, uint256 staleSeconds_) public view returns (uint256) { if (feedHash_ == 0) { // price feed not set return 0; } IStork.TemporalNumericValue memory storkValue = stork.getTemporalNumericValueUnsafeV1(feedHash_); if (staleSeconds_ != 0 && block.timestamp > (storkValue.timestampNs / 1000000000) + staleSeconds_) { // stale price return 0; } if (storkValue.quantizedValue <= 0) { // invalid price return 0; } return uint256(uint192(storkValue.quantizedValue)); } // zero feedHash allowed, which would block updates to the pool function setStorkFeedsData(address farmContract, address[] memory poolTokens_, StorkData[] memory poolTokenDatas_) external onlyOwner { if (farmContract == address(0)) { revert ZeroAddress(); } if (poolTokens_.length != poolTokenDatas_.length) { revert CountMismatch(); } (bool success, ) = farmContract.call(abi.encodeWithSignature("massUpdatePools()")); if (!success) { revert InvalidCall(); } for (uint256 i; i < poolTokens_.length; i++) { if (poolTokenDatas_[i].feedType != FeedType.Stork) { revert InvalidType(); } if (poolTokenDatas_[i].staleSeconds == 0) { revert InvalidStaleSeconds(); } StorkData storage tokenData = storkData[poolTokens_[i]]; FeedType currentType = tokenData.feedType; if (currentType == FeedType.Undefined) { tokenData.feedType = poolTokenDatas_[i].feedType; } else { if (poolTokenDatas_[i].feedType != currentType) { // we can't change the FeedType once it is set revert TypeMismatch(); } } tokenData.feedHash = poolTokenDatas_[i].feedHash; tokenData.staleSeconds = poolTokenDatas_[i].staleSeconds; emit SetPriceFeedData(poolTokenDatas_[i].feedType, poolTokenDatas_[i].feedHash, poolTokenDatas_[i].staleSeconds); } } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; interface IStork { struct TemporalNumericValue { // slot 1 // nanosecond level precision timestamp of latest publisher update in batch uint64 timestampNs; // 8 bytes // should be able to hold all necessary numbers (up to 6277101735386680763835789423207666416102355444464034512895) int192 quantizedValue; // 8 bytes } function getTemporalNumericValueV1(bytes32 id) external view returns (TemporalNumericValue memory value); function getTemporalNumericValueUnsafeV1(bytes32 id) external view returns (TemporalNumericValue memory value); }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; interface IPriceFeeds { event SetPriceFeedData(FeedType feedType, bytes32 feedHash, uint256 staleSeconds); error ZeroAddress(); error CountMismatch(); error InvalidCall(); error InvalidType(); error TypeMismatch(); error InvalidStaleSeconds(); enum FeedType { Undefined, Stork } struct StorkData { bytes32 feedHash; uint256 staleSeconds; FeedType feedType; } function getPrice(address poolToken_) external view returns (uint256); function getStorkPrice(bytes32 feedHash_, uint256 staleSeconds_) external view returns (uint256); function setStorkFeedsData(address farmContract, address[] memory poolTokens_, StorkData[] memory poolTokenDatas_) external; }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; import "contracts/access/Ownable2Step.sol"; event ReplaceImplementationStarted(address indexed previousImplementation, address indexed newImplementation); event ReplaceImplementation(address indexed previousImplementation, address indexed newImplementation); error Unauthorized(); contract Upgradeable2Step is Ownable2Step { address public pendingImplementation; address public implementation; constructor() Ownable(msg.sender) {} // called on an inheriting proxy contract function replaceImplementation(address impl_) public onlyOwner { pendingImplementation = impl_; emit ReplaceImplementationStarted(implementation, impl_); } // called from an inheriting implementation contract function acceptImplementation() public { if (msg.sender != pendingImplementation) { revert OwnableUnauthorizedAccount(msg.sender); } emit ReplaceImplementation(implementation, msg.sender); delete pendingImplementation; implementation = msg.sender; } // called on an inheriting implementation contract function becomeImplementation(Upgradeable2Step proxy) public { if (msg.sender != proxy.owner()) { revert Unauthorized(); } proxy.acceptImplementation(); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable2Step.sol) pragma solidity ^0.8.20; import {Ownable} from "contracts/access/Ownable.sol"; /** * @dev Contract module which provides access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is specified at deployment time in the constructor for `Ownable`. This * can later be changed with {transferOwnership} and {acceptOwnership}. * * This module is used through inheritance. It will make available all functions * from parent (Ownable). */ abstract contract Ownable2Step is Ownable { address private _pendingOwner; event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner); /** * @dev Returns the address of the pending owner. */ function pendingOwner() public view virtual returns (address) { return _pendingOwner; } /** * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual override onlyOwner { _pendingOwner = newOwner; emit OwnershipTransferStarted(owner(), newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner. * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual override { delete _pendingOwner; super._transferOwnership(newOwner); } /** * @dev The new owner accepts the ownership transfer. */ function acceptOwnership() public virtual { address sender = _msgSender(); if (pendingOwner() != sender) { revert OwnableUnauthorizedAccount(sender); } _transferOwnership(sender); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "contracts/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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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 v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } }
{ "evmVersion": "shanghai", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "PriceFeeds.sol": {} }, "remappings": [ "@erc721a=./node_modules/erc721a/contracts", "@chainlink=./node_modules/@chainlink/contracts/src/v0.8", "@openzeppelin=./node_modules/@openzeppelin", "OpenZeppelin=C:/Users/tomcb/.brownie/packages/OpenZeppelin", "paulrberg=C:/Users/tomcb/.brownie/packages/paulrberg" ], "metadata": { "appendCBOR": false, "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"stork_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CountMismatch","type":"error"},{"inputs":[],"name":"InvalidCall","type":"error"},{"inputs":[],"name":"InvalidStaleSeconds","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"TypeMismatch","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"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":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ReplaceImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ReplaceImplementationStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum IPriceFeeds.FeedType","name":"feedType","type":"uint8"},{"indexed":false,"internalType":"bytes32","name":"feedHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"staleSeconds","type":"uint256"}],"name":"SetPriceFeedData","type":"event"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Upgradeable2Step","name":"proxy","type":"address"}],"name":"becomeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"poolToken_","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"feedHash_","type":"bytes32"},{"internalType":"uint256","name":"staleSeconds_","type":"uint256"}],"name":"getStorkPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"replaceImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"farmContract","type":"address"},{"internalType":"address[]","name":"poolTokens_","type":"address[]"},{"components":[{"internalType":"bytes32","name":"feedHash","type":"bytes32"},{"internalType":"uint256","name":"staleSeconds","type":"uint256"},{"internalType":"enum IPriceFeeds.FeedType","name":"feedType","type":"uint8"}],"internalType":"struct IPriceFeeds.StorkData[]","name":"poolTokenDatas_","type":"tuple[]"}],"name":"setStorkFeedsData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stork","outputs":[{"internalType":"contract IStork","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"storkData","outputs":[{"internalType":"bytes32","name":"feedHash","type":"bytes32"},{"internalType":"uint256","name":"staleSeconds","type":"uint256"},{"internalType":"enum IPriceFeeds.FeedType","name":"feedType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010001a3143ae7e2682142d05a5adddf8f18e6321c7d195a59e9050037e629e3000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006a2ab154d7c5ba9fdea6d8a0c79818a4463a63f9
Deployed Bytecode
0x000100000000000200060000000000020000006003100270000001570330019700000001002001900000001b0000c13d0000008002000039000000400020043f000000040030008c0000003e0000413d000000000201043b000000e002200270000001610020009c000000400000a13d000001620020009c0000004d0000213d000001680020009c000000b80000213d0000016b0020009c000001450000613d0000016c0020009c0000003e0000c13d0000000001000416000000000001004b0000003e0000c13d000000000100041a000001700000013d0000000002000416000000000002004b0000003e0000c13d0000001f023000390000015802200197000000a002200039000000400020043f0000001f0430018f0000015905300198000000a0025000390000002c0000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000280000c13d000000000004004b000000390000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c0000003e0000413d000000a00100043d0000015a0010009c000000650000a13d000000000100001900000558000104300000016d0020009c0000006d0000a13d0000016e0020009c0000009b0000213d000001710020009c000001160000613d000001720020009c0000003e0000c13d0000000001000416000000000001004b0000003e0000c13d00000003010000390000016f0000013d000001630020009c000000da0000213d000001660020009c0000016b0000613d000001670020009c0000003e0000c13d000000440030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000402100370000000000302043b0000002401100370000000000201043b0000000001030019055604680000040f000000400200043d0000000000120435000001570020009c000001570200804100000040012002100000017f011001c7000005570001042e0000000006000411000000000006004b000000fa0000c13d0000015f01000041000000000010043f000000040000043f00000160010000410000055800010430000001730020009c000001a90000613d000001740020009c000001400000613d000001750020009c0000003e0000c13d000000240030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000401100370000000000101043b0000015a0010009c0000003e0000213d000000000010043f0000000401000039000000200010043f0000000001000414000001570010009c0000015701008041000000c0011002100000018b011001c70000801002000039055605510000040f00000001002001900000003e0000613d000000000101043b0000000202100039000000000202041a000000ff0220018f000000020020008c000001650000813d000000010020008c0000043e0000c13d000000000301041a000000000003004b0000000002000019000002c20000c13d000000400100043d0000000000210435000001570010009c000001570100804100000040011002100000017f011001c7000005570001042e0000016f0020009c000001240000613d000001700020009c0000003e0000c13d0000000001000416000000000001004b0000003e0000c13d0000000101000039000000000201041a0000015a032001970000000006000411000000000063004b000001d60000c13d0000015b02200197000000000021041b000000000100041a0000015b02100197000000000262019f000000000020041b00000000020004140000015a05100197000001570020009c0000015702008041000000c0012002100000015c011001c70000800d0200003900000003030000390000015d040000410000013b0000013d000001690020009c000001740000613d0000016a0020009c0000003e0000c13d000000240030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000401100370000000000601043b0000015a0060009c0000003e0000213d000000000100041a0000015a021001970000000001000411000000000012004b000001e00000c13d0000000201000039000000000201041a0000015b02200197000000000262019f000000000021041b0000000303000039000000000103041a00000000020004140000015a05100197000001570020009c0000015702008041000000c0012002100000015c011001c70000800d0200003900000181040000410000013b0000013d000001640020009c000001940000613d000001650020009c0000003e0000c13d000000240030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000401100370000000000601043b0000015a0060009c0000003e0000213d000000000100041a0000015a011001970000000005000411000000000051004b000001db0000c13d0000000101000039000000000201041a0000015b02200197000000000262019f000000000021041b0000000001000414000001570010009c0000015701008041000000c0011002100000015c011001c70000800d02000039000000030300003900000177040000410000013b0000013d0000000102000039000400000001001d000000000102041a0000015b01100197000000000012041b000000000100041a0000015b02100197000000000262019f000000000020041b00000000020004140000015a05100197000001570020009c0000015702008041000000c0012002100000015c011001c70000800d0200003900000003030000390000015d040000410556054c0000040f000000040100002900000001002001900000003e0000613d0000015a01100198000001cd0000c13d0000019201000041000000000010043f0000017b0100004100000558000104300000000001000416000000000001004b0000003e0000c13d0000000001000412000600000001001d000500000000003d000080050100003900000044030000390000000004000415000000060440008a000000050440021000000194020000410556052e0000040f000001700000013d0000000001000416000000000001004b0000003e0000c13d000000000100041a0000015a021001970000000005000411000000000052004b000001db0000c13d0000000102000039000000000302041a0000015b03300197000000000032041b0000015b01100197000000000010041b0000000001000414000001570010009c0000015701008041000000c0011002100000015c011001c70000800d0200003900000003030000390000015d0400004100000000060000190556054c0000040f00000001002001900000003e0000613d0000000001000019000005570001042e0000000001000416000000000001004b0000003e0000c13d00000002010000390000016f0000013d000000240030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000401100370000000000101043b0000015a0010009c0000003e0000213d000000000010043f0000000401000039000000200010043f0000000001000414000001570010009c0000015701008041000000c0011002100000018b011001c70000801002000039055605510000040f00000001002001900000003e0000613d000000000101043b0000000202100039000000000202041a0000000103100039000000000303041a000000000101041a000000800010043f000000a00030043f000000ff0120018f000000010010008c000002410000a13d0000018d01000041000000000010043f0000002101000039000000040010043f000001600100004100000558000104300000000001000416000000000001004b0000003e0000c13d0000000101000039000000000101041a0000015a01100197000000800010043f0000018001000041000005570001042e000000640030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000402100370000000000202043b0000015a0020009c0000003e0000213d0000002404100370000000000404043b000001820040009c0000003e0000213d0000002305400039000000000035004b0000003e0000813d0000000405400039000000000551034f000000000605043b000001820060009c0000018e0000213d00000005056002100000003f075000390000018307700197000001840070009c000002620000a13d0000018d01000041000000000010043f0000004101000039000000040010043f00000160010000410000055800010430000000240030008c0000003e0000413d0000000002000416000000000002004b0000003e0000c13d0000000401100370000000000101043b0000015a0010009c0000003e0000213d0000015a021001970000017801000041000000800010043f0000000001000414000000040020008c000400000002001d000001e50000c13d0000000003000031000000200030008c00000020040000390000000004034019000002090000013d0000000001000416000000000001004b0000003e0000c13d0000000201000039000000000201041a0000015a012001970000000006000411000000000016004b000001d60000c13d000400000002001d0000000303000039000000000203041a0000000001000414000001570010009c0000015701008041000000c0011002100000015c011001c7000300000002001d0000015a052001970000800d020000390000019f040000410556054c0000040f00000001002001900000003e0000613d00000004010000290000015b011001970000000202000039000000000012041b00000003010000290000015b011001970000000002000411000000000121019f0000000302000039000000000012041b0000000001000019000005570001042e000000800010043f0000014000000443000001600010044300000020010000390000010000100443000000010100003900000120001004430000015e01000041000005570001042e0000017601000041000000000010043f000000040060043f000001600100004100000558000104300000017601000041000000000010043f000000040050043f000001600100004100000558000104300000017602000041000000000020043f000000040010043f00000160010000410000055800010430000001570010009c0000015701008041000000c00110021000000179011001c7055605510000040f000000800a00003900000060031002700000015703300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000001f90000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000001f50000c13d000000000006004b000002060000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000002440000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000003e0000413d000000800100043d0000015a0010009c0000003e0000213d0000000002000411000000000012004b000002be0000c13d0000017c010000410000000000100443000000040100002900000004001004430000000001000414000001570010009c0000015701008041000000c0011002100000017d011001c70000800202000039055605510000040f0000000100200190000003920000613d000000000101043b000000000001004b0000003e0000613d000000400400043d0000017e01000041000000000014043500000000010004140000000402000029000000040020008c0000023c0000613d000001570040009c000001570300004100000000030440190000004003300210000001570010009c0000015701008041000000c001100210000000000131019f0000017b011001c7000400000004001d0556054c0000040f00000004040000290000006003100270000001570030019d0000000100200190000003470000613d00000000010400190000000002000019055604560000040f0000000001000019000005570001042e000000c00010043f0000019301000041000005570001042e0000001f0530018f0000015906300198000000400200043d00000000046200190000024f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000024b0000c13d000000000005004b0000025c0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001570020009c00000157020080410000004002200210000000000112019f00000558000104300000008007700039000000400070043f000000800060043f00000024044000390000000005450019000000000035004b0000003e0000213d000000000006004b000002740000613d000000a006000039000000000741034f000000000707043b0000015a0070009c0000003e0000213d00000000067604360000002004400039000000000054004b0000026c0000413d0000004404100370000000000404043b000001820040009c0000003e0000213d0000002305400039000000000035004b000000000600001900000185060040410000018505500197000000000005004b00000000070000190000018507002041000001850050009c000000000706c019000000000007004b0000003e0000613d0000000405400039000000000551034f000000000605043b000001820060009c0000018e0000213d00000005056002100000003f055000390000018305500197000000400700043d0000000005570019000300000007001d000000000075004b00000000070000390000000107004039000001820050009c0000018e0000213d00000001007001900000018e0000c13d000000400050043f00000003050000290000000005650436000100000005001d000000240440003900000060056000c90000000005450019000000000035004b0000003e0000213d000000000006004b000003540000c13d000000000400041a0000015a054001970000000004000411000000000045004b000003720000c13d0000015a00200198000001120000613d00000003040000290000000004040433000000800500043d000000000045004b000003930000c13d000000400500043d00000004040000390000000004450436000001890600004100000000006404350000018a0050009c0000018e0000213d0000004006500039000000400060043f00000000060504330000000005000414000000040020008c000003990000c13d000000000131034f00000001020000390000000003000031000003a90000013d0000017a01000041000000000010043f0000017b0100004100000558000104300000000101100039000000000101041a000200000001001d000000400200043d00000196010000410000000001120436000300000001001d000400000002001d00000004012000390000000000310435000001940100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001570010009c0000015701008041000000c00110021000000197011001c70000800502000039055605510000040f0000000100200190000003920000613d000000000201043b00000000010004140000015a02200197000000040020008c000002e40000c13d0000000003000031000000400030008c000000400400003900000000040340190000030d0000013d0000000403000029000001570030009c00000157030080410000004003300210000001570010009c0000015701008041000000c001100210000000000131019f00000160011001c7055605510000040f00000060031002700000015703300197000000400030008c000000400400003900000000040340190000001f0640018f00000060074001900000000405700029000002fd0000613d000000000801034f0000000409000029000000008a08043c0000000009a90436000000000059004b000002f90000c13d000000000006004b0000030a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000033b0000613d0000001f01400039000000e00210018f0000000401200029000000000021004b00000000020000390000000102004039000001820010009c0000018e0000213d00000001002001900000018e0000c13d000000400010043f000000400030008c0000003e0000413d0000018a0010009c0000018e0000213d0000004002100039000000400020043f00000004020000290000000003020433000001820030009c0000003e0000213d0000000001310436000400000001001d00000003010000290000000001010433000001980210019700000199041001980000019a050000410000000005006019000000000525019f000000000051004b0000003e0000c13d00000004050000290000000000150435000000020000006b000003770000c13d000000000004004b0000019a030000410000000003006019000000000223019f000001860020009c000003970000213d000000000002004b00000000020000190000019e0210c197000000940000013d0000001f0530018f0000015906300198000000400200043d00000000046200190000024f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003420000c13d0000024f0000013d00000157033001970000001f0530018f0000015906300198000000400200043d00000000046200190000024f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000034f0000c13d0000024f0000013d00000001060000290000000007430049000001860070009c0000003e0000213d000000600070008c0000003e0000413d000000400700043d000001870070009c0000018e0000213d0000006008700039000000400080043f000000000841034f000000000808043b00000000088704360000002009400039000000000991034f000000000909043b00000000009804350000004008400039000000000881034f000000000808043b000000010080008c0000003e0000213d0000004009700039000000000089043500000000067604360000006004400039000000000054004b000003550000413d000002a10000013d0000017601000041000000000010043f000000040040043f0000016001000041000005580001043000000182013001970000019b0210012a000300000002001d000000020020002a000004500000413d0000019c0100004100000000001004430000000001000414000001570010009c0000015701008041000000c0011002100000019d011001c70000800b02000039055605510000040f0000000100200190000003920000613d00000003030000290000000202300029000000000101043b000000000021004b0000000002000019000000940000213d0000000401000029000000000101043300000198021001970000019904100197000003310000013d000000000001042f0000018801000041000000000010043f0000017b0100004100000558000104300000000002000019000000940000013d000001570040009c00000157040080410000004001400210000001570060009c00000157060080410000006003600210000000000113019f000001570050009c0000015705008041000000c003500210000000000131019f0556054c0000040f000000010220018f0000006003100270000001570030019d0000015703300197000000000003004b000003b10000c13d000000000002004b000003d70000c13d0000019101000041000000000010043f0000017b0100004100000558000104300000001f05300039000001a0055001970000003f05500039000001a006500197000000400500043d0000000006650019000000000056004b00000000070000390000000107004039000001820060009c0000018e0000213d00000001007001900000018e0000c13d000000400060043f0000000006350436000001a0043001980000001f0530018f0000000003460019000003c90000613d000000000701034f000000007807043c0000000006860436000000000036004b000003c50000c13d000000000005004b000003ab0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000003ab0000013d000000800100043d000000000001004b0000013e0000613d000400000000001d000000030100002900000000010104330000000402000029000000000021004b000004420000a13d00000005012002100000000104100029000000000204043300000040032000390000000003030433000000010030008c000001650000213d0000043e0000c13d000200000004001d00000020022000390000000002020433000000000002004b000004480000613d000000a00110003900000000010104330000015a01100197000000000010043f0000000401000039000000200010043f0000000001000414000001570010009c0000015701008041000000c0011002100000018b011001c70000801002000039055605510000040f00000001002001900000003e0000613d000000000101043b0000000204100039000000000504041a000000ff0250018f000000010020008c000000010700003900000004060000290000000208000029000001650000213d00000003030000290000000003030433000000000002004b000004140000613d000000000063004b000004420000a13d000000000308043300000040043000390000000004040433000000010040008c000001650000213d000000000024004b00000000020700190000041e0000613d0000044c0000013d000000000063004b000004420000a13d000000000308043300000040023000390000000002020433000000010020008c000001650000213d000001a105500197000000000552019f000000000054041b0000000043030434000000000031041b00000001011000390000000004040433000000000041041b000000400100043d00000040051000390000000000450435000000200410003900000000003404350000000000210435000001570010009c000001570100804100000040011002100000000002000414000001570020009c0000015702008041000000c002200210000000000112019f0000018e011001c70000800d0200003900000000030700190000018f040000410556054c0000040f00000001002001900000003e0000613d0000000402000029000400010020003d000000800100043d000000040010006b000003db0000413d0000013e0000013d0000019501000041000000000010043f0000017b0100004100000558000104300000018d01000041000000000010043f0000003201000039000000040010043f000001600100004100000558000104300000019001000041000000000010043f0000017b0100004100000558000104300000018c01000041000000000010043f0000017b0100004100000558000104300000018d01000041000000000010043f0000001101000039000000040010043f000001600100004100000558000104300000001f02200039000001a0022001970000000001120019000000000021004b00000000020000390000000102004039000001820010009c000004620000213d0000000100200190000004620000c13d000000400010043f000000000001042d0000018d01000041000000000010043f0000004101000039000000040010043f000001600100004100000558000104300003000000000002000000000001004b000004fe0000613d000300000002001d000000400300043d00000196020000410000000002230436000100000002001d000200000003001d00000004023000390000000000120435000001940100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001570010009c0000015701008041000000c00110021000000197011001c70000800502000039055605510000040f0000000100200190000005080000613d000000000201043b00000000010004140000015a02200197000000040020008c0000048d0000c13d0000000003000031000000400030008c000000400400003900000000040340190000000306000029000000020b000029000004b80000013d0000000203000029000001570030009c00000157030080410000004003300210000001570010009c0000015701008041000000c001100210000000000131019f00000160011001c7055605510000040f000000020b00002900000060031002700000015703300197000000400030008c000000400400003900000000040340190000001f0640018f000000600740019000000000057b0019000004a70000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000004a30000c13d000000000006004b000004b40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000005090000613d00000003060000290000001f01400039000000e00210018f0000000001b20019000000000021004b00000000020000390000000102004039000001820010009c000005020000213d0000000100200190000005020000c13d000000400010043f000000400030008c000005000000413d0000018a0010009c000005020000213d0000004002100039000000400020043f00000000030b0433000001820030009c000005000000213d000000000731043600000001010000290000000002010433000001980120019700000199042001980000019a050000410000000005006019000000000515019f000000000052004b000005000000c13d0000000000270435000000000006004b000004f30000613d000200000007001d00000182013001970001019b00100132000000010060002a000005270000413d0000019c0100004100000000001004430000000001000414000001570010009c0000015701008041000000c0011002100000019d011001c70000800b02000039055605510000040f0000000100200190000005080000613d00000001030000290000000302300029000000000101043b000000000021004b00000000010000190000000202000029000004ff0000213d000000000202043300000198012001970000019904200197000000000004004b0000019a030000410000000003006019000000000113019f000001860010009c000004fe0000213d000000000001004b0000000001000019000004ff0000613d0000019e01200197000000000001042d0000000001000019000000000001042d000000000100001900000558000104300000018d01000041000000000010043f0000004101000039000000040010043f00000160010000410000055800010430000000000001042f0000001f0530018f0000015906300198000000400200043d0000000004620019000005140000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005100000c13d000000000005004b000005210000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001570020009c00000157020080410000004002200210000000000121019f00000558000104300000018d01000041000000000010043f0000001101000039000000040010043f00000160010000410000055800010430000000000001042f00000000050100190000000000200443000000050030008c0000053c0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000005340000413d000001570030009c000001570300804100000060013002100000000002000414000001570020009c0000015702008041000000c002200210000000000112019f000001a2011001c70000000002050019055605510000040f00000001002001900000054b0000613d000000000101043b000000000001042d000000000001042f0000054f002104210000000102000039000000000001042d0000000002000019000000000001042d00000554002104230000000102000039000000000001042d0000000002000019000000000001042d0000055600000432000005570001042e000005580001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000800000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000084027d8a00000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000eaac8c3100000000000000000000000000000000000000000000000000000000eaac8c3200000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000e9bed19000000000000000000000000000000000000000000000000000000000b3f7fba800000000000000000000000000000000000000000000000000000000b3f7fba900000000000000000000000000000000000000000000000000000000d69efdc50000000000000000000000000000000000000000000000000000000084027d8b000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000005515f7f500000000000000000000000000000000000000000000000000000000715018a500000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000005515f7f6000000000000000000000000000000000000000000000000000000005c60da1b0000000000000000000000000000000000000000000000000000000015ba56e500000000000000000000000000000000000000000000000000000000396f7b230000000000000000000000000000000000000000000000000000000041976e09118cdaa70000000000000000000000000000000000000000000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008da5cb5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000080000000000000000082b429000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000015ba56e5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000080000000000000000067f679e13fe9dca16f3079221965ec41838cb8881cbc0f440bc13507c6b214c2000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff9fea0f556200000000000000000000000000000000000000000000000000000000630b5ba100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf0200000000000000000000000000000000000040000000000000000000000000b4902a13000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000060000000000000000000000000e82515954ebf83e49996275d95a95d2caf3df34fe78e66ba3ddb0aabc42c3987824664d400000000000000000000000000000000000000000000000000000000ae962d4e00000000000000000000000000000000000000000000000000000000d92e233d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000800000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32eb968846100000000000000000000000000000000000000000000000000000000f69058c100000000000000000000000000000000000000000000000000000000020000020000000000000000000000000000004400000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000800000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9aca00796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffeb7a7d62743daf8cf4055aea544d0a89e2011279ed4105567d010759e6fa4de2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000200000200000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006a2ab154d7c5ba9fdea6d8a0c79818a4463a63f9
-----Decoded View---------------
Arg [0] : stork_ (address): 0x6a2ab154d7c5Ba9fdea6d8A0C79818A4463a63f9
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006a2ab154d7c5ba9fdea6d8a0c79818a4463a63f9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
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.