Latest 25 from a total of 115 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Vote | 25202981 | 3 days ago | IN | 0 HYPE | 0.00006426 | ||||
| Compound | 25200249 | 3 days ago | IN | 0 HYPE | 0.00009947 | ||||
| Claim Bribes Wit... | 25200204 | 3 days ago | IN | 0 HYPE | 0.00008795 | ||||
| Claim Bribes Wit... | 25200202 | 3 days ago | IN | 0 HYPE | 0.00007749 | ||||
| Claim Bribes Wit... | 25200200 | 3 days ago | IN | 0 HYPE | 0.00007658 | ||||
| Claim Bribes Wit... | 25200198 | 3 days ago | IN | 0 HYPE | 0.00008738 | ||||
| Vote | 25195611 | 3 days ago | IN | 0 HYPE | 0.00028796 | ||||
| Vote | 24588194 | 10 days ago | IN | 0 HYPE | 0.00009723 | ||||
| Compound | 24586239 | 10 days ago | IN | 0 HYPE | 0.00000797 | ||||
| Compound | 24586219 | 10 days ago | IN | 0 HYPE | 0.00005262 | ||||
| Claim Bribes Wit... | 24586132 | 10 days ago | IN | 0 HYPE | 0.00006617 | ||||
| Claim Bribes Wit... | 24586130 | 10 days ago | IN | 0 HYPE | 0.00005503 | ||||
| Claim Bribes Wit... | 24586128 | 10 days ago | IN | 0 HYPE | 0.00008297 | ||||
| Claim Bribes Wit... | 24586126 | 10 days ago | IN | 0 HYPE | 0.00006962 | ||||
| Claim Bribes Wit... | 24586124 | 10 days ago | IN | 0 HYPE | 0.0002725 | ||||
| Claim Bribes Wit... | 24586122 | 10 days ago | IN | 0 HYPE | 0.00006955 | ||||
| Claim Bribes Wit... | 24586120 | 10 days ago | IN | 0 HYPE | 0.0001492 | ||||
| Claim Bribes Wit... | 24586120 | 10 days ago | IN | 0 HYPE | 0.00006377 | ||||
| Claim Bribes Wit... | 24585410 | 10 days ago | IN | 0 HYPE | 0.0000992 | ||||
| Claim Bribes Wit... | 24585408 | 10 days ago | IN | 0 HYPE | 0.00013567 | ||||
| Claim Bribes Wit... | 24585406 | 10 days ago | IN | 0 HYPE | 0.00007851 | ||||
| Claim Bribes Wit... | 24585404 | 10 days ago | IN | 0 HYPE | 0.00011571 | ||||
| Claim Bribes Wit... | 24585402 | 10 days ago | IN | 0 HYPE | 0.00012246 | ||||
| Claim Bribes Wit... | 24585400 | 10 days ago | IN | 0 HYPE | 0.00036241 | ||||
| Vote | 24580859 | 10 days ago | IN | 0 HYPE | 0.00037074 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 19535061 | 68 days ago | Contract Creation | 0 HYPE |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StrategyProxy
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 2000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity =0.8.19;
import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol";
import {ICompoundVeNESTManagedNFTStrategyFactory} from "./interfaces/ICompoundVeNESTManagedNFTStrategyFactory.sol";
contract StrategyProxy {
address private immutable factory;
bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
constructor() {
factory = msg.sender;
}
function _getImplementation() internal view returns (address) {
return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
}
function _setImplementation(address newImplementation) private {
StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
}
fallback() external payable {
address impl = ICompoundVeNESTManagedNFTStrategyFactory(factory).strategyImplementation();
require(impl != address(0));
//Just for etherscan compatibility
if (impl != _getImplementation() && msg.sender != (address(0))) {
_setImplementation(impl);
}
assembly {
let ptr := mload(0x40)
calldatacopy(ptr, 0, calldatasize())
let result := delegatecall(gas(), impl, ptr, calldatasize(), 0, 0)
let size := returndatasize()
returndatacopy(ptr, 0, size)
switch result
case 0 {
revert(ptr, size)
}
default {
return(ptr, size)
}
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)
// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.
pragma solidity ^0.8.0;
/**
* @dev Library for reading and writing primitive types to specific storage slots.
*
* Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
* This library helps with reading and writing to such slots without the need for inline assembly.
*
* The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
*
* Example usage to set ERC1967 implementation slot:
* ```solidity
* contract ERC1967 {
* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
*
* function _getImplementation() internal view returns (address) {
* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
* }
*
* function _setImplementation(address newImplementation) internal {
* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
* }
* }
* ```
*
* _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._
* _Available since v4.9 for `string`, `bytes`._
*/
library StorageSlot {
struct AddressSlot {
address value;
}
struct BooleanSlot {
bool value;
}
struct Bytes32Slot {
bytes32 value;
}
struct Uint256Slot {
uint256 value;
}
struct StringSlot {
string value;
}
struct BytesSlot {
bytes value;
}
/**
* @dev Returns an `AddressSlot` with member `value` located at `slot`.
*/
function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `BooleanSlot` with member `value` located at `slot`.
*/
function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
*/
function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Uint256Slot` with member `value` located at `slot`.
*/
function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `StringSlot` with member `value` located at `slot`.
*/
function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `StringSlot` representation of the string storage pointer `store`.
*/
function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := store.slot
}
}
/**
* @dev Returns an `BytesSlot` with member `value` located at `slot`.
*/
function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.
*/
function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {
/// @solidity memory-safe-assembly
assembly {
r.slot := store.slot
}
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;
/**
* @title Interface for the Compound VeNEST Managed NFT Strategy Factory
* @notice This interface outlines the functions and events for a factory responsible for creating and managing strategies and virtual rewarders for Compound VeNEST-managed NFTs.
*/
interface ICompoundVeNESTManagedNFTStrategyFactory {
/**
* @dev Emitted when the address of the Router V2 Path Provider is updated.
*
* @param oldRouterV2PathProvider The address of the previous Router V2 Path Provider.
* @param newRouterV2PathProvider The address of the new Router V2 Path Provider that has been set.
*/
event SetRouterV2PathProvider(address indexed oldRouterV2PathProvider, address indexed newRouterV2PathProvider);
/**
* @dev Emitted when the implementation address for the virtual rewarder is changed.
*
* @param oldImplementation The previous implementation address of the virtual rewarder.
* @param newImplementation The new implementation address of the virtual rewarder that has been set.
*/
event ChangeVirtualRewarderImplementation(address indexed oldImplementation, address indexed newImplementation);
/**
* @dev Emitted when the implementation address for the strategy is changed.
*
* @param oldImplementation The previous implementation address of the strategy.
* @param newImplementation The new implementation address of the strategy that has been set.
*/
event ChangeStrategyImplementation(address indexed oldImplementation, address indexed newImplementation);
/**
* @dev Emitted when a new strategy and its corresponding virtual rewarder are created.
*
* @param strategy The address of the newly created strategy.
* @param virtualRewarder The address of the corresponding virtual rewarder created alongside the strategy.
* @param name The name assigned to the new strategy.
*/
event CreateStrategy(address indexed strategy, address indexed virtualRewarder, string name);
/**
* @notice Returns the current implementation address of the virtual rewarder.
* @return The address of the virtual rewarder implementation.
*/
function virtualRewarderImplementation() external view returns (address);
/**
* @notice Returns the current implementation address of the strategy.
* @return The address of the strategy implementation.
*/
function strategyImplementation() external view returns (address);
/**
* @notice Returns the address of the managed NFT manager associated with the strategies.
* @return The address of the managed NFT manager.
*/
function managedNFTManager() external view returns (address);
/**
* @notice Returns the address of the Router V2 Path Provider used to fetch and calculate
* optimal routes for token transactions within strategies.
* @return The address of the RouterV2PathProvider.
*/
function routerV2PathProvider() external view returns (address);
/**
* @notice Creates a new strategy with a specific name.
* @param name_ The name to assign to the new strategy.
* @return The address of the newly created strategy instance
*/
function createStrategy(string calldata name_) external returns (address);
/**
* @notice Sets a new RouterV2PathProvider.
* @param routerV2PathProvider_ The new address to set
*/
function setRouterV2PathProvider(address routerV2PathProvider_) external;
}{
"evmVersion": "paris",
"viaIR": true,
"optimizer": {
"enabled": true,
"runs": 2000
},
"metadata": {
"bytecodeHash": "none"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]Contract Creation Code
60a080604052346100225733608052610277908161002882396080518160470152f35b600080fdfe60806040527fbd922b1c0000000000000000000000000000000000000000000000000000000060805273ffffffffffffffffffffffffffffffffffffffff60206080600481847f0000000000000000000000000000000000000000000000000000000000000000165afa90811561018f57600091610161575b6100c68183169161008a831515610263565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541673ffffffffffffffffffffffffffffffffffffffff1690565b141580610158575b6100f4575b60008060405192368285378336915af4903d91826000833e156100f257f35bfd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556100d3565b503315156100ce565b905060203d8111610188575b8061017a61018292610194565b608001610205565b90610078565b503d61016d565b610257565b601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101166080016080811067ffffffffffffffff8211176101d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8060209101126102525760805173ffffffffffffffffffffffffffffffffffffffff811681036102525790565b600080fd5b6040513d6000823e3d90fd5b156102525756fea164736f6c6343000813000a
Deployed Bytecode
0x60806040527fbd922b1c0000000000000000000000000000000000000000000000000000000060805273ffffffffffffffffffffffffffffffffffffffff60206080600481847f00000000000000000000000098fe2510dfcadb52431c2a651e1ecfc46196fa87165afa90811561018f57600091610161575b6100c68183169161008a831515610263565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541673ffffffffffffffffffffffffffffffffffffffff1690565b141580610158575b6100f4575b60008060405192368285378336915af4903d91826000833e156100f257f35bfd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556100d3565b503315156100ce565b905060203d8111610188575b8061017a61018292610194565b608001610205565b90610078565b503d61016d565b610257565b601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101166080016080811067ffffffffffffffff8211176101d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8060209101126102525760805173ffffffffffffffffffffffffffffffffffffffff811681036102525790565b600080fd5b6040513d6000823e3d90fd5b156102525756fea164736f6c6343000813000a
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in HYPE
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.