Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake Locked Cur... | 21933461 | 2 days ago | IN | 0 ETH | 0.0021516 | ||||
Withdraw Locked ... | 21933329 | 2 days ago | IN | 0 ETH | 0.00269342 | ||||
Stake Locked Cur... | 21559809 | 54 days ago | IN | 0 ETH | 0.01788816 | ||||
Lock Additional ... | 21425839 | 73 days ago | IN | 0 ETH | 0.01566393 | ||||
Lock Additional ... | 21421444 | 73 days ago | IN | 0 ETH | 0.01015045 | ||||
Lock Additional ... | 21402138 | 76 days ago | IN | 0 ETH | 0.01232839 | ||||
Stake Locked Cur... | 21401698 | 76 days ago | IN | 0 ETH | 0.01526876 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21401674 | 76 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Minimal Proxy Contract for 0x7d54c53e6940e88a7ac1970490dafbbf85d982f4
Contract Name:
StakingProxyConvex
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.10;import "./interfaces/ICurveConvex.sol";import "./interfaces/IConvexWrapperV2.sol";import "./StakingProxyBase.sol";import "./interfaces/IFraxFarmERC20_V2.sol";import '@openzeppelin/contracts/security/ReentrancyGuard.sol';contract StakingProxyConvex is StakingProxyBase, ReentrancyGuard{using SafeERC20 for IERC20;address public constant poolRegistry = address(0x7413bFC877B5573E29f964d572f421554d8EDF86);address public constant convexCurveBooster = address(0xF403C135812408BFbE8713b5A23a04b3D48AAE31);address public constant crv = address(0xD533a949740bb3306d119CC777fa900bA034cd52);address public constant cvx = address(0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B);address public curveLpToken;address public convexDepositToken;constructor() {}function vaultType() external pure override returns(VaultType){
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.10;interface IRewards{struct EarnedData {address token;uint256 amount;}function initialize(uint256 _pid, bool _startActive) external;function addReward(address _rewardsToken, address _distributor) external;function approveRewardDistributor(address _rewardsToken,address _distributor,bool _approved) external;function deposit(address _owner, uint256 _amount) external;function withdraw(address _owner, uint256 _amount) external;function getReward(address _forward) external;function notifyRewardAmount(address _rewardsToken, uint256 _reward) external;function balanceOf(address account) external view returns (uint256);function claimableRewards(address _account) external view returns(EarnedData[] memory userRewards);function rewardTokens(uint256 _rid) external view returns (address);function rewardTokenLength() external view returns(uint256);function active() external view returns(bool);}
12345678910111213141516171819202122// SPDX-License-Identifier: MITpragma solidity 0.8.10;interface IProxyVault {enum VaultType{Erc20Basic,UniV3,Convex,Erc20Joint}function initialize(address _owner, address _stakingAddress, address _stakingToken, address _rewardsAddress) external;function usingProxy() external returns(address);function owner() external returns(address);function stakingAddress() external returns(address);function rewards() external returns(address);function getReward() external;function getReward(bool _claim) external;function getReward(bool _claim, address[] calldata _rewardTokenList) external;function earned() external returns (address[] memory token_addresses, uint256[] memory total_earned);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.8.0;interface IFraxFarmERC20_V2 {struct LockedStake {bytes32 kek_id;uint256 start_timestamp;uint256 liquidity;uint256 ending_timestamp;uint256 lock_multiplier; // 6 decimals of precision. 1x = 1000000}function owner() external view returns (address);function stakingToken() external view returns (address);function fraxPerLPToken() external view returns (uint256);function calcCurCombinedWeight(address account) external viewreturns (uint256 old_combined_weight,uint256 new_vefxs_multiplier,uint256 new_combined_weight);function lockedStakesOf(address account) external view returns (LockedStake[] memory);function lockedStakesOfLength(address account) external view returns (uint256);function lockAdditional(bytes32 kek_id, uint256 addl_liq) external;function lockLonger(bytes32 kek_id, uint256 new_ending_ts) external;
1234567891011121314// SPDX-License-Identifier: MITpragma solidity >=0.8.0;interface IFraxFarmBase{function totalLiquidityLocked() external view returns (uint256);function lockedLiquidityOf(address account) external view returns (uint256);function toggleValidVeFXSProxy(address proxy_address) external;function proxyToggleStaker(address staker_address) external;function stakerSetVeFXSProxy(address proxy_address) external;function getReward(address destination_address) external returns (uint256[] memory);}
123456789101112// SPDX-License-Identifier: MITpragma solidity 0.8.10;interface IFeeRegistry{function cvxfxsIncentive() external view returns(uint256);function cvxIncentive() external view returns(uint256);function platformIncentive() external view returns(uint256);function totalFees() external view returns(uint256);function maxFees() external view returns(uint256);function feeDeposit() external view returns(address);function getFeeDepositor(address _from) external view returns(address);}
123456789// SPDX-License-Identifier: MITpragma solidity 0.8.10;interface ICurveConvex {function earmarkRewards(uint256 _pid) external returns(bool);function earmarkFees() external returns(bool);function poolInfo(uint256 _pid) external returns(address _lptoken, address _token, address _gauge, address _crvRewards, address _stash, bool_shutdown);function deposit(uint256 _pid, uint256 _amount, bool _stake) external returns(bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.10;interface IConvexWrapperV2{struct EarnedData {address token;uint256 amount;}struct RewardType {address reward_token;address reward_pool;uint128 reward_integral;uint128 reward_remaining;}function distroContract() external view returns(address distro);function collateralVault() external view returns(address vault);function convexPoolId() external view returns(uint256 _poolId);function curveToken() external view returns(address);function convexToken() external view returns(address);function rewardRedirect(address _account) external view returns(address);function balanceOf(address _account) external view returns(uint256);function totalBalanceOf(address _account) external view returns(uint256);function deposit(uint256 _amount, address _to) external;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.10;import "./interfaces/IProxyVault.sol";import "./interfaces/IFeeRegistry.sol";import "./interfaces/IFraxFarmBase.sol";import "./interfaces/IRewards.sol";import '@openzeppelin/contracts/token/ERC20/IERC20.sol';import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';contract StakingProxyBase is IProxyVault{using SafeERC20 for IERC20;address public constant fxs = address(0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0);address public constant vefxsProxy = address(0x59CFCD384746ec3035299D90782Be065e466800B);address public constant feeRegistry = address(0xC9aCB83ADa68413a6Aa57007BC720EE2E2b3C46D); //fee registryaddress public owner; //owner of the vaultaddress public stakingAddress; //farming contractaddress public stakingToken; //farming tokenaddress public rewards; //extra rewards on convexaddress public usingProxy; //address of proxy being useduint256 public constant FEE_DENOMINATOR = 10000;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*/function isContract(address account) internal view returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "../IERC20.sol";import "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using Address for address;function safeTransfer(IERC20 token,address to,uint256 value) internal {_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Returns the amount of tokens in existence.*/function totalSupply() external view returns (uint256);/*** @dev Returns the amount of tokens owned by `account`.*/function balanceOf(address account) external view returns (uint256);/*** @dev Moves `amount` tokens from the caller's account to `recipient`.** Returns a boolean value indicating whether the operation succeeded.** Emits a {Transfer} event.*/function transfer(address recipient, uint256 amount) external returns (bool);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write// back. This is the compiler's defense against contract upgrades and// pointer aliasing, and it cannot be disabled.
123456789101112131415161718192021{"remappings": [],"optimizer": {"enabled": true,"runs": 200},"evmVersion": "london","libraries": {},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsAddress","type":"address"}],"name":"changeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkpointRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"convexCurveBooster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"convexDepositToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"crv","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"curveLpToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cvx","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earned","outputs":[{"internalType":"address[]","name":"token_addresses","type":"address[]"},{"internalType":"uint256[]","name":"total_earned","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fxs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_claim","type":"bool"},{"internalType":"address[]","name":"_rewardTokenList","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_claim","type":"bool"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_stakingAddress","type":"address"},{"internalType":"address","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_rewardsAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"},{"internalType":"uint256","name":"_addl_liq","type":"uint256"}],"name":"lockAdditional","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"},{"internalType":"uint256","name":"_addl_liq","type":"uint256"}],"name":"lockAdditionalConvexToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"},{"internalType":"uint256","name":"_addl_liq","type":"uint256"}],"name":"lockAdditionalCurveLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"},{"internalType":"uint256","name":"new_ending_ts","type":"uint256"}],"name":"lockLonger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"setVeFXSProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_secs","type":"uint256"}],"name":"stakeLocked","outputs":[{"internalType":"bytes32","name":"kek_id","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_secs","type":"uint256"}],"name":"stakeLockedConvexToken","outputs":[{"internalType":"bytes32","name":"kek_id","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_secs","type":"uint256"}],"name":"stakeLockedCurveLp","outputs":[{"internalType":"bytes32","name":"kek_id","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usingProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultType","outputs":[{"internalType":"enum IProxyVault.VaultType","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"vaultVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"vefxsProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"}],"name":"withdrawLocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_kek_id","type":"bytes32"}],"name":"withdrawLockedAndUnwrap","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.