More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 209 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deliver Liquidit... | 106103613 | 533 days ago | IN | 0 ETH | 0.000016612982 | ||||
Claim Velo Rewar... | 106103607 | 533 days ago | IN | 0 ETH | 0.000017023926 | ||||
Claim Velo Rewar... | 105879563 | 538 days ago | IN | 0 ETH | 0.000029853551 | ||||
Claim Velo Rewar... | 105594230 | 545 days ago | IN | 0 ETH | 0.000023838042 | ||||
Claim Velo Rewar... | 105283652 | 552 days ago | IN | 0 ETH | 0.000030370422 | ||||
Claim Velo Rewar... | 103377152 | 559 days ago | IN | 0 ETH | 0.000157148262 | ||||
Claim Velo Rewar... | 103376421 | 559 days ago | IN | 0 ETH | 0.000125599107 | ||||
Claim Velo Rewar... | 101158862 | 566 days ago | IN | 0 ETH | 0.000212101963 | ||||
Claim Velo Rewar... | 99054975 | 574 days ago | IN | 0 ETH | 0.000240785711 | ||||
Claim Velo Rewar... | 97222081 | 581 days ago | IN | 0 ETH | 0.000316777139 | ||||
Claim Velo Rewar... | 96124092 | 587 days ago | IN | 0 ETH | 0.000297216413 | ||||
Claim Velo Rewar... | 94409441 | 595 days ago | IN | 0 ETH | 0.00013061076 | ||||
Claim Velo Rewar... | 92235671 | 601 days ago | IN | 0 ETH | 0.000259654585 | ||||
Claim Velo Rewar... | 89515673 | 608 days ago | IN | 0 ETH | 0.000101526619 | ||||
Claim Velo Rewar... | 86524174 | 615 days ago | IN | 0 ETH | 0.000129869396 | ||||
Claim Velo Rewar... | 84605532 | 622 days ago | IN | 0 ETH | 0.000108784578 | ||||
Claim Velo Rewar... | 82977068 | 629 days ago | IN | 0 ETH | 0.000103898695 | ||||
Claim Velo Rewar... | 82948884 | 629 days ago | IN | 0 ETH | 0.000153125102 | ||||
Claim Velo Rewar... | 81133466 | 636 days ago | IN | 0 ETH | 0.000138396397 | ||||
Claim Velo Rewar... | 79318725 | 643 days ago | IN | 0 ETH | 0.000222552607 | ||||
Claim Velo Rewar... | 78015759 | 650 days ago | IN | 0 ETH | 0.000216140518 | ||||
Claim Velo Rewar... | 76019352 | 657 days ago | IN | 0 ETH | 0.000209655772 | ||||
Claim Velo Rewar... | 74515673 | 664 days ago | IN | 0 ETH | 0.000184687232 | ||||
Claim Velo Rewar... | 72967087 | 671 days ago | IN | 0 ETH | 0.000184850175 | ||||
Claim Velo Rewar... | 71663082 | 678 days ago | IN | 0 ETH | 0.000074692246 |
Latest 15 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
106103613 | 533 days ago | 0 ETH | ||||
106103613 | 533 days ago | 0 ETH | ||||
106103613 | 533 days ago | 0 ETH | ||||
106103607 | 533 days ago | 0 ETH | ||||
106103607 | 533 days ago | 0 ETH | ||||
106103607 | 533 days ago | 0 ETH | ||||
105879563 | 538 days ago | 0 ETH | ||||
105879563 | 538 days ago | 0 ETH | ||||
105879563 | 538 days ago | 0 ETH | ||||
105594230 | 545 days ago | 0 ETH | ||||
105594230 | 545 days ago | 0 ETH | ||||
105594230 | 545 days ago | 0 ETH | ||||
105283652 | 552 days ago | 0 ETH | ||||
105283652 | 552 days ago | 0 ETH | ||||
105283652 | 552 days ago | 0 ETH |
Loading...
Loading
Contract Name:
LiquidityGenerator
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; import './interfaces/IERC20.sol'; import './interfaces/IOwnedDistributor.sol'; import './interfaces/IVelodromeGauge.sol'; import './interfaces/IVelodromePairFactory.sol'; import './interfaces/IVelodromeRouter.sol'; import './interfaces/IVelodromeVoter.sol'; import './libraries/SafeMath.sol'; import './libraries/SafeToken.sol'; contract LiquidityGenerator { using SafeMath for uint256; using SafeToken for address; struct ConstuctorParams { address admin_; address sonne_; address usdc_; address velo_; address router0_; address voter_; address reservesManager_; address distributor_; address bonusDistributor_; uint256 periodBegin_; uint256 periodDuration_; uint256 bonusDuration_; } uint256 public constant lockDuration = 6 * 30 * 24 * 60 * 60; // 6 months address public immutable admin; address public immutable sonne; address public immutable usdc; address public immutable velo; address public immutable router0; address public immutable voter; address public immutable distributor; address public immutable bonusDistributor; uint256 public immutable periodBegin; uint256 public immutable periodEnd; uint256 public immutable bonusEnd; uint256 public unlockTimestamp; bool public finalized = false; bool public delivered = false; address public reservesManager; // Generated velodrome addresses address public immutable pair0; address public immutable gauge; event Finalized(uint256 amountSonne, uint256 amountUSDC); event Deposit( address indexed sender, uint256 amount, uint256 distributorTotalShares, uint256 bonusDistributorTotalShares, uint256 newShares, uint256 newBonusShares ); event PostponeUnlockTimestamp( uint256 prevUnlockTimestamp, uint256 unlockTimestamp ); event Delivered(uint256 amountPair0); event VeloRewardClaimed(uint256 amountVelo); constructor(ConstuctorParams memory params_) { require( params_.periodDuration_ > 0, 'LiquidityGenerator: INVALID_PERIOD_DURATION' ); require( params_.bonusDuration_ > 0 && params_.bonusDuration_ <= params_.periodDuration_, 'LiquidityGenerator: INVALID_BONUS_DURATION' ); admin = params_.admin_; sonne = params_.sonne_; usdc = params_.usdc_; velo = params_.velo_; router0 = params_.router0_; voter = params_.voter_; reservesManager = params_.reservesManager_; distributor = params_.distributor_; bonusDistributor = params_.bonusDistributor_; periodBegin = params_.periodBegin_; periodEnd = params_.periodBegin_.add(params_.periodDuration_); bonusEnd = params_.periodBegin_.add(params_.bonusDuration_); address _pair0 = _createPair( params_.router0_, params_.sonne_, params_.usdc_ ); address _gauge = _createGauge(params_.voter_, _pair0); pair0 = _pair0; gauge = _gauge; } function distributorTotalShares() public view returns (uint256 totalShares) { return IOwnedDistributor(distributor).totalShares(); } function bonusDistributorTotalShares() public view returns (uint256 totalShares) { return IOwnedDistributor(bonusDistributor).totalShares(); } function distributorRecipients(address account) public view returns ( uint256 shares, uint256 lastShareIndex, uint256 credit ) { return IOwnedDistributor(distributor).recipients(account); } function bonusDistributorRecipients(address account) public view returns ( uint256 shares, uint256 lastShareIndex, uint256 credit ) { return IOwnedDistributor(bonusDistributor).recipients(account); } function setReserveManager(address reserveManager_) external { require(msg.sender == admin, 'LiquidityGenerator: FORBIDDEN'); require( reserveManager_ != address(0), 'LiquidityGenerator: INVALID_ADDRESS' ); reservesManager = reserveManager_; } function postponeUnlockTimestamp(uint256 newUnlockTimestamp) public { require(msg.sender == admin, 'LiquidityGenerator: UNAUTHORIZED'); require( newUnlockTimestamp > unlockTimestamp, 'LiquidityGenerator: INVALID_UNLOCK_TIMESTAMP' ); uint256 prevUnlockTimestamp = unlockTimestamp; unlockTimestamp = newUnlockTimestamp; emit PostponeUnlockTimestamp(prevUnlockTimestamp, unlockTimestamp); } function deliverLiquidityToReservesManager() public { require(msg.sender == admin, 'LiquidityGenerator: UNAUTHORIZED'); require(!delivered, 'LiquidityGenerator: ALREADY_DELIVERED'); require(finalized, 'LiquidityGenerator: NOT_FINALIZED'); uint256 blockTimestamp = getBlockTimestamp(); require( blockTimestamp >= unlockTimestamp, 'LiquidityGenerator: STILL_LOCKED' ); IVelodromeGauge(gauge).withdrawAll(); uint256 _amountPair0 = pair0.myBalance(); pair0.safeTransfer(reservesManager, _amountPair0); delivered = true; emit Delivered(_amountPair0); } function claimVeloRewards() public { require(msg.sender == admin, 'LiquidityGenerator: UNAUTHORIZED'); require(finalized, 'LiquidityGenerator: NOT_FINALIZED'); address[] memory tokens = new address[](1); tokens[0] = velo; IVelodromeGauge(gauge).getReward(address(this), tokens); uint256 _amountVelo = velo.myBalance(); velo.safeTransfer(reservesManager, _amountVelo); emit VeloRewardClaimed(_amountVelo); } function finalize() public { require(!finalized, 'LiquidityGenerator: FINALIZED'); uint256 blockTimestamp = getBlockTimestamp(); require(blockTimestamp >= periodEnd, 'LiquidityGenerator: TOO_SOON'); uint256 _amountSonne = sonne.myBalance(); uint256 _amountUSDC = usdc.myBalance(); sonne.safeApprove(router0, _amountSonne); usdc.safeApprove(router0, _amountUSDC); IVelodromeRouter(router0).addLiquidity( sonne, usdc, false, _amountSonne, _amountUSDC, _amountSonne, _amountUSDC, address(this), blockTimestamp ); uint256 _amountPair0 = pair0.myBalance(); pair0.safeApprove(gauge, _amountPair0); IVelodromeGauge(gauge).deposit(_amountPair0, 0); unlockTimestamp = blockTimestamp.add(lockDuration); finalized = true; emit Finalized(_amountSonne, _amountUSDC); } function deposit(uint256 amountUSDC) external payable { uint256 blockTimestamp = getBlockTimestamp(); require(blockTimestamp >= periodBegin, 'LiquidityGenerator: TOO_SOON'); require(blockTimestamp < periodEnd, 'LiquidityGenerator: TOO_LATE'); require(amountUSDC >= 1e7, 'LiquidityGenerator: INVALID_VALUE'); // minimum 10 USDC // Pull usdc to this contract usdc.safeTransferFrom(msg.sender, address(this), amountUSDC); (uint256 _prevSharesBonus, , ) = IOwnedDistributor(bonusDistributor) .recipients(msg.sender); uint256 _newSharesBonus = _prevSharesBonus; if (blockTimestamp < bonusEnd) { _newSharesBonus = _prevSharesBonus.add(amountUSDC); IOwnedDistributor(bonusDistributor).editRecipient( msg.sender, _newSharesBonus ); } (uint256 _prevShares, , ) = IOwnedDistributor(distributor).recipients( msg.sender ); uint256 _newShares = _prevShares.add(amountUSDC); IOwnedDistributor(distributor).editRecipient(msg.sender, _newShares); emit Deposit( msg.sender, amountUSDC, distributorTotalShares(), bonusDistributorTotalShares(), _newShares, _newSharesBonus ); } receive() external payable { revert('LiquidityGenerator: BAD_CALL'); } function getBlockTimestamp() public view virtual returns (uint256) { return block.timestamp; } function _createPair( address router_, address sonne_, address usdc_ ) internal returns (address) { address _veloPairFactory = IVelodromeRouter(router_).factory(); address _pair = IVelodromePairFactory(_veloPairFactory).getPair( sonne_, usdc_, false ); if (_pair != address(0)) return _pair; _pair = IVelodromePairFactory(_veloPairFactory).createPair( sonne, usdc, false ); return _pair; } function _createGauge(address voter_, address pair0_) internal returns (address) { address _gauge = IVelodromeVoter(voter_).gauges(pair0_); if (_gauge != address(0)) return _gauge; _gauge = IVelodromeVoter(voter_).createGauge(pair0_); return _gauge; } }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IERC20 { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IOwnedDistributor { function totalShares() external view returns (uint256); function recipients(address) external view returns ( uint256 shares, uint256 lastShareIndex, uint256 credit ); function editRecipient(address account, uint256 shares) external; }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IVelodromeGauge { function deposit(uint256 amount, uint256 tokenId) external; function withdrawAll() external; function withdraw(uint256 amount) external; function balanceOf(address account) external view returns (uint256); function getReward(address account, address[] calldata tokens) external; }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IVelodromePairFactory { function createPair( address tokenA, address tokenB, bool stable ) external returns (address pair); function getPair( address tokenA, address tokenB, bool stable ) external view returns (address pair); }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IVelodromeRouter { function factory() external pure returns (address); function addLiquidity( address tokenA, address tokenB, bool stable, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, bool stable, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); }
//SPDX-License-Identifier: UNLICENSED pragma solidity >=0.5.0; interface IVelodromeVoter { function gauges(address _pool) external view returns (address); function claimable(address _gauge) external view returns (uint256); function createGauge(address _pool) external returns (address); function whitelist(address token) external; function distribute(address _gauge) external; function vote( uint256 tokenId, address[] calldata _poolVote, uint256[] calldata _weights ) external; function votes(uint256 _tokenId, address _pool) external view returns (uint256); }
//SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol // Subject to the MIT license. /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction underflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, errorMessage); return c; } /** * @dev Returns the integer division of two unsigned integers. * Reverts on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. * Reverts with custom message on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
//SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; interface ERC20Interface { function balanceOf(address user) external view returns (uint256); } library SafeToken { function myBalance(address token) internal view returns (uint256) { return ERC20Interface(token).balanceOf(address(this)); } function balanceOf(address token, address user) internal view returns (uint256) { return ERC20Interface(token).balanceOf(user); } function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), '!safeApprove'); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), '!safeTransfer'); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), '!safeTransferFrom'); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, '!safeTransferETH'); } }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"components":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"sonne_","type":"address"},{"internalType":"address","name":"usdc_","type":"address"},{"internalType":"address","name":"velo_","type":"address"},{"internalType":"address","name":"router0_","type":"address"},{"internalType":"address","name":"voter_","type":"address"},{"internalType":"address","name":"reservesManager_","type":"address"},{"internalType":"address","name":"distributor_","type":"address"},{"internalType":"address","name":"bonusDistributor_","type":"address"},{"internalType":"uint256","name":"periodBegin_","type":"uint256"},{"internalType":"uint256","name":"periodDuration_","type":"uint256"},{"internalType":"uint256","name":"bonusDuration_","type":"uint256"}],"internalType":"struct LiquidityGenerator.ConstuctorParams","name":"params_","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountPair0","type":"uint256"}],"name":"Delivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"distributorTotalShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bonusDistributorTotalShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBonusShares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountSonne","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountUSDC","type":"uint256"}],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevUnlockTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTimestamp","type":"uint256"}],"name":"PostponeUnlockTimestamp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountVelo","type":"uint256"}],"name":"VeloRewardClaimed","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonusDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"bonusDistributorRecipients","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"lastShareIndex","type":"uint256"},{"internalType":"uint256","name":"credit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonusDistributorTotalShares","outputs":[{"internalType":"uint256","name":"totalShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonusEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimVeloRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deliverLiquidityToReservesManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delivered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountUSDC","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"distributorRecipients","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"lastShareIndex","type":"uint256"},{"internalType":"uint256","name":"credit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributorTotalShares","outputs":[{"internalType":"uint256","name":"totalShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodBegin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newUnlockTimestamp","type":"uint256"}],"name":"postponeUnlockTimestamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reservesManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"reserveManager_","type":"address"}],"name":"setReserveManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sonne","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"velo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6102206040526001805461ffff191690553480156200001d57600080fd5b506040516200257f3803806200257f833981016040819052620000409162000567565b600081610140015111620000af5760405162461bcd60e51b815260206004820152602b60248201527f4c697175696469747947656e657261746f723a20494e56414c49445f5045524960448201526a27a22fa22aa920aa24a7a760a91b60648201526084015b60405180910390fd5b6000816101600151118015620000cf575080610140015181610160015111155b620001305760405162461bcd60e51b815260206004820152602a60248201527f4c697175696469747947656e657261746f723a20494e56414c49445f424f4e5560448201526929afa22aa920aa24a7a760b11b6064820152608401620000a6565b80516001600160a01b039081166080908152602080840151831660a09081526040850151841660c09081526060860151851660e09081529386015185166101009081529186015185166101209081529086015160018054918716620100000262010000600160b01b03199092169190911790559285015184166101409081529085015190931661016052908301805161018052918301519151620001df9290916200177162000262821b17901c565b6101a052610160810151610120820151620002069162000262602090811b6200177117901c565b6101c0526080810151602082015160408301516000926200022992909162000279565b90506000620002438360a00151836200040f60201b60201c565b6001600160a01b039283166101e05290911661020052506200069a9050565b600062000270828462000655565b90505b92915050565b600080846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e191906200067c565b6040516306801cc360e41b81526001600160a01b0386811660048301528581166024830152600060448301819052929350831690636801cc3090606401602060405180830381865afa1580156200033c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036291906200067c565b90506001600160a01b038116156200037e579150620004089050565b60a05160c0516040516320b7f73960e21b81526001600160a01b039283166004820152908216602482015260006044820152908316906382dfdce4906064016020604051808303816000875af1158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040391906200067c565b925050505b9392505050565b60405163b9a09fd560e01b81526001600160a01b038281166004830152600091829185169063b9a09fd590602401602060405180830381865afa1580156200045b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048191906200067c565b90506001600160a01b038116156200049b57905062000273565b6040516352fa180f60e11b81526001600160a01b03848116600483015285169063a5f4301e906024016020604051808303816000875af1158015620004e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050a91906200067c565b949350505050565b60405161018081016001600160401b03811182821017156200054457634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200056257600080fd5b919050565b600061018082840312156200057b57600080fd5b6200058562000512565b62000590836200054a565b8152620005a0602084016200054a565b6020820152620005b3604084016200054a565b6040820152620005c6606084016200054a565b6060820152620005d9608084016200054a565b6080820152620005ec60a084016200054a565b60a0820152620005ff60c084016200054a565b60c08201526200061260e084016200054a565b60e0820152610100620006278185016200054a565b9082015261012083810151908201526101408084015190820152610160928301519281019290925250919050565b600082198211156200067757634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200068f57600080fd5b62000270826200054a565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051611d456200083a60003960008181610493015281816107da01528181610c5501528181610c97015261160801526000818161062a015281816108520152818161089301528181610bf70152610c330152600081816103f601526111db01526000818161035f0152818161096501526110480152600081816102700152610fd80152600081816104dd01528181610d8501528181610f790152818161115f015261122a01526000818161056d01528181610e04015281816112a70152818161134b01526117400152600061031601526000818161065e01528181610a6e01528181610ac20152610b7f01526000818161044a015281816115b10152818161167a01526116bb0152600081816102e201528181610a1001528181610aa001528181610b26015261111f0152600081816105a1015281816109da01528181610a4c0152610afe015260008181610692015281816106bf01528181610e940152818161142a015261152e0152611d456000f3fe6080604052600436106101c65760003560e01c8063a4fa00e0116100f7578063bfe1092811610095578063ea988b5911610064578063ea988b59146105f8578063f05663a614610618578063f6bcd63a1461064c578063f851a4401461068057600080fd5b8063bfe109281461055b578063c0c2ae501461058f578063df7da754146105c3578063e80aff84146105e357600080fd5b8063b04c1e02116100d1578063b04c1e02146104cb578063b3f05b97146104ff578063b6b55f2514610529578063bbdfbfba1461053c57600080fd5b8063a4fa00e01461046c578063a6f19c8414610481578063aa082a9d146104b557600080fd5b8063506ec0951161016457806384d572b41161013e57806384d572b4146103cf5780638bc85b03146103e45780638be1ff39146104185780638c7c53ce1461043857600080fd5b8063506ec0951461034d57806366082ffc14610381578063796b89b9146103bc57600080fd5b8063345ef941116101a0578063345ef941146102925780633e413bee146102d057806346c96aac146103045780634bb278f31461033857600080fd5b8063045544431461021d57806324054e4a146102475780632c995cae1461025e57600080fd5b366102185760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a204241445f43414c4c0000000060448201526064015b60405180910390fd5b600080fd5b34801561022957600080fd5b5061023462ed4e0081565b6040519081526020015b60405180910390f35b34801561025357600080fd5b5061025c6106b4565b005b34801561026a57600080fd5b506102347f000000000000000000000000000000000000000000000000000000000000000081565b34801561029e57600080fd5b506001546102b8906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b3480156102dc57600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561031057600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561034457600080fd5b5061025c61090f565b34801561035957600080fd5b506102347f000000000000000000000000000000000000000000000000000000000000000081565b34801561038d57600080fd5b506103a161039c366004611b1b565b610d5f565b6040805193845260208401929092529082015260600161023e565b3480156103c857600080fd5b5042610234565b3480156103db57600080fd5b50610234610e00565b3480156103f057600080fd5b506102347f000000000000000000000000000000000000000000000000000000000000000081565b34801561042457600080fd5b5061025c610433366004611b44565b610e89565b34801561044457600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561047857600080fd5b50610234610f75565b34801561048d57600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c157600080fd5b5061023460005481565b3480156104d757600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561050b57600080fd5b506001546105199060ff1681565b604051901515815260200161023e565b61025c610537366004611b44565b610fd5565b34801561054857600080fd5b5060015461051990610100900460ff1681565b34801561056757600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b57600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cf57600080fd5b5061025c6105de366004611b1b565b61141f565b3480156105ef57600080fd5b5061025c611523565b34801561060457600080fd5b506103a1610613366004611b1b565b61171a565b34801561062457600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561068c57600080fd5b506102b87f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106fc5760405162461bcd60e51b815260040161020f90611b5d565b600154610100900460ff16156107625760405162461bcd60e51b815260206004820152602560248201527f4c697175696469747947656e657261746f723a20414c52454144595f44454c49604482015264159154915160da1b606482015260840161020f565b60015460ff166107845760405162461bcd60e51b815260040161020f90611b92565b60005442908110156107d85760405162461bcd60e51b815260206004820181905260248201527f4c697175696469747947656e657261746f723a205354494c4c5f4c4f434b4544604482015260640161020f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561083357600080fd5b505af1158015610847573d6000803e3d6000fd5b50505050600061087f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611784565b6001549091506108c2906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169162010000900416836117f5565b6001805461ff0019166101001790556040517ffcc296b8bdd64e3f1d1faadef50cb2d6550f645316330fe57cb1dd7e0612ead0906109039083815260200190565b60405180910390a15050565b60015460ff16156109625760405162461bcd60e51b815260206004820152601d60248201527f4c697175696469747947656e657261746f723a2046494e414c495a4544000000604482015260640161020f565b427f00000000000000000000000000000000000000000000000000000000000000008110156109d35760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f534f4f4e00000000604482015260640161020f565b6000610a077f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611784565b90506000610a3d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611784565b9050610a936001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084611900565b610ae76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083611900565b604051635a47ddc360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000008116602483015260006044830152606482018490526084820183905260a4820184905260c482018390523060e483015261010482018590527f00000000000000000000000000000000000000000000000000000000000000001690635a47ddc390610124016060604051808303816000875af1158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611bd3565b5050506000610c247f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611784565b9050610c7a6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083611900565b604051631c57762b60e31b815260048101829052600060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e2bbb15890604401600060405180830381600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b50505050610d1162ed4e008561177190919063ffffffff16565b6000556001805460ff19168117905560408051848152602081018490527fb968440accd1ce5fa60b00de8bb8d8487eb2fda3c3701fb30fea3f69aa910a48910160405180910390a150505050565b6040516375c1018960e11b81526001600160a01b038281166004830152600091829182917f00000000000000000000000000000000000000000000000000000000000000009091169063eb820312906024015b606060405180830381865afa158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df39190611bd3565b9250925092509193909250565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633a98ef396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e849190611c01565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ed15760405162461bcd60e51b815260040161020f90611b5d565b6000548111610f375760405162461bcd60e51b815260206004820152602c60248201527f4c697175696469747947656e657261746f723a20494e56414c49445f554e4c4f60448201526b0434b5f54494d455354414d560a41b606482015260840161020f565b600080549082905560408051828152602081018490527fe3d6cde4e8f25cec5cc1b915261e33581a4bf2cf7e2aa87985f471cc52fa0f819101610903565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633a98ef396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b427f00000000000000000000000000000000000000000000000000000000000000008110156110465760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f534f4f4e00000000604482015260640161020f565b7f000000000000000000000000000000000000000000000000000000000000000081106110b55760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f4c41544500000000604482015260640161020f565b629896808210156111125760405162461bcd60e51b815260206004820152602160248201527f4c697175696469747947656e657261746f723a20494e56414c49445f56414c556044820152604560f81b606482015260840161020f565b6111476001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611a03565b6040516375c1018960e11b81523360048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eb82031290602401606060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190611bd3565b509091508190507f000000000000000000000000000000000000000000000000000000000000000083101561128f5761120b8285611771565b6040516304674a9360e41b8152336004820152602481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634674a93090604401600060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505050505b6040516375c1018960e11b81523360048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eb82031290602401606060405180830381865afa1580156112f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131a9190611bd3565b509091506000905061132c8287611771565b6040516304674a9360e41b8152336004820152602481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634674a93090604401600060405180830381600087803b15801561139757600080fd5b505af11580156113ab573d6000803e3d6000fd5b50505050336001600160a01b03167ff943cf10ef4d1e3239f4716ddecdf546e8ba8ab0e41deafd9a71a99936827e45876113e3610e00565b6113eb610f75565b60408051938452602084019290925290820152606081018490526080810186905260a00160405180910390a2505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114975760405162461bcd60e51b815260206004820152601d60248201527f4c697175696469747947656e657261746f723a20464f5242494444454e000000604482015260640161020f565b6001600160a01b0381166114f95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747947656e657261746f723a20494e56414c49445f4144445260448201526245535360e81b606482015260840161020f565b600180546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461156b5760405162461bcd60e51b815260040161020f90611b5d565b60015460ff1661158d5760405162461bcd60e51b815260040161020f90611b92565b604080516001808252818301909252600091602080830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106115e3576115e3611c1a565b6001600160a01b0392831660209182029290920101526040516331279d3d60e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906331279d3d906116419030908590600401611c30565b600060405180830381600087803b15801561165b57600080fd5b505af115801561166f573d6000803e3d6000fd5b5050505060006116a77f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611784565b6001549091506116ea906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169162010000900416836117f5565b6040518181527f3d284dc4d07f3beab8dfa65cda1155635b168cf80a24413d3b617e385ac1720390602001610903565b6040516375c1018960e11b81526001600160a01b038281166004830152600091829182917f00000000000000000000000000000000000000000000000000000000000000009091169063eb82031290602401610db2565b600061177d8284611c8c565b9392505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190611c01565b92915050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916118519190611cb2565b6000604051808303816000865af19150503d806000811461188e576040519150601f19603f3d011682016040523d82523d6000602084013e611893565b606091505b50915091508180156118bd5750805115806118bd5750808060200190518101906118bd9190611ced565b6118f95760405162461bcd60e51b815260206004820152600d60248201526c10b9b0b332aa3930b739b332b960991b604482015260640161020f565b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161195c9190611cb2565b6000604051808303816000865af19150503d8060008114611999576040519150601f19603f3d011682016040523d82523d6000602084013e61199e565b606091505b50915091508180156119c85750805115806119c85750808060200190518101906119c89190611ced565b6118f95760405162461bcd60e51b815260206004820152600c60248201526b2173616665417070726f766560a01b604482015260640161020f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611a679190611cb2565b6000604051808303816000865af19150503d8060008114611aa4576040519150601f19603f3d011682016040523d82523d6000602084013e611aa9565b606091505b5091509150818015611ad3575080511580611ad3575080806020019051810190611ad39190611ced565b611b135760405162461bcd60e51b815260206004820152601160248201527021736166655472616e7366657246726f6d60781b604482015260640161020f565b505050505050565b600060208284031215611b2d57600080fd5b81356001600160a01b038116811461177d57600080fd5b600060208284031215611b5657600080fd5b5035919050565b6020808252818101527f4c697175696469747947656e657261746f723a20554e415554484f52495a4544604082015260600190565b60208082526021908201527f4c697175696469747947656e657261746f723a204e4f545f46494e414c495a456040820152601160fa1b606082015260800190565b600080600060608486031215611be857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c1357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015611c7e578551851683529483019491830191600101611c60565b509098975050505050505050565b60008219821115611cad57634e487b7160e01b600052601160045260246000fd5b500190565b6000825160005b81811015611cd35760208186018101518583015201611cb9565b81811115611ce2576000828501525b509190910192915050565b600060208284031215611cff57600080fd5b8151801515811461177d57600080fdfea26469706673582212207d6cef60d0d96fcf17b52329c8ddaee08a155fc8958e5b516b41fafd9a3b584064736f6c634300080a0033000000000000000000000000fb59ce8986943163f14c590755b29db2998f23220000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f00000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c316070000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a050000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f00000000000000000000000009236cff45047dbee6b921e00704bed6d6b8cf7e000000000000000000000000201ecb1c439f92afd5df5d399e195f73b01bb0f30000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc50000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b1000000000000000000000000000000000000000000000000000000006330c150000000000000000000000000000000000000000000000000000000000003f4800000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode
0x6080604052600436106101c65760003560e01c8063a4fa00e0116100f7578063bfe1092811610095578063ea988b5911610064578063ea988b59146105f8578063f05663a614610618578063f6bcd63a1461064c578063f851a4401461068057600080fd5b8063bfe109281461055b578063c0c2ae501461058f578063df7da754146105c3578063e80aff84146105e357600080fd5b8063b04c1e02116100d1578063b04c1e02146104cb578063b3f05b97146104ff578063b6b55f2514610529578063bbdfbfba1461053c57600080fd5b8063a4fa00e01461046c578063a6f19c8414610481578063aa082a9d146104b557600080fd5b8063506ec0951161016457806384d572b41161013e57806384d572b4146103cf5780638bc85b03146103e45780638be1ff39146104185780638c7c53ce1461043857600080fd5b8063506ec0951461034d57806366082ffc14610381578063796b89b9146103bc57600080fd5b8063345ef941116101a0578063345ef941146102925780633e413bee146102d057806346c96aac146103045780634bb278f31461033857600080fd5b8063045544431461021d57806324054e4a146102475780632c995cae1461025e57600080fd5b366102185760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a204241445f43414c4c0000000060448201526064015b60405180910390fd5b600080fd5b34801561022957600080fd5b5061023462ed4e0081565b6040519081526020015b60405180910390f35b34801561025357600080fd5b5061025c6106b4565b005b34801561026a57600080fd5b506102347f000000000000000000000000000000000000000000000000000000006330c15081565b34801561029e57600080fd5b506001546102b8906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b3480156102dc57600080fd5b506102b87f0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c3160781565b34801561031057600080fd5b506102b87f00000000000000000000000009236cff45047dbee6b921e00704bed6d6b8cf7e81565b34801561034457600080fd5b5061025c61090f565b34801561035957600080fd5b506102347f000000000000000000000000000000000000000000000000000000006334b5d081565b34801561038d57600080fd5b506103a161039c366004611b1b565b610d5f565b6040805193845260208401929092529082015260600161023e565b3480156103c857600080fd5b5042610234565b3480156103db57600080fd5b50610234610e00565b3480156103f057600080fd5b506102347f00000000000000000000000000000000000000000000000000000000633212d081565b34801561042457600080fd5b5061025c610433366004611b44565b610e89565b34801561044457600080fd5b506102b87f0000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a0581565b34801561047857600080fd5b50610234610f75565b34801561048d57600080fd5b506102b87f0000000000000000000000003786d4419d6b4a902607ceb2bb319bb336735df881565b3480156104c157600080fd5b5061023460005481565b3480156104d757600080fd5b506102b87f0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b181565b34801561050b57600080fd5b506001546105199060ff1681565b604051901515815260200161023e565b61025c610537366004611b44565b610fd5565b34801561054857600080fd5b5060015461051990610100900460ff1681565b34801561056757600080fd5b506102b87f0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc581565b34801561059b57600080fd5b506102b87f0000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f081565b3480156105cf57600080fd5b5061025c6105de366004611b1b565b61141f565b3480156105ef57600080fd5b5061025c611523565b34801561060457600080fd5b506103a1610613366004611b1b565b61171a565b34801561062457600080fd5b506102b87f000000000000000000000000c899c4d73ed8df2ead1543ab915888b0bf7d57a281565b34801561065857600080fd5b506102b87f0000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f81565b34801561068c57600080fd5b506102b87f000000000000000000000000fb59ce8986943163f14c590755b29db2998f232281565b336001600160a01b037f000000000000000000000000fb59ce8986943163f14c590755b29db2998f232216146106fc5760405162461bcd60e51b815260040161020f90611b5d565b600154610100900460ff16156107625760405162461bcd60e51b815260206004820152602560248201527f4c697175696469747947656e657261746f723a20414c52454144595f44454c49604482015264159154915160da1b606482015260840161020f565b60015460ff166107845760405162461bcd60e51b815260040161020f90611b92565b60005442908110156107d85760405162461bcd60e51b815260206004820181905260248201527f4c697175696469747947656e657261746f723a205354494c4c5f4c4f434b4544604482015260640161020f565b7f0000000000000000000000003786d4419d6b4a902607ceb2bb319bb336735df86001600160a01b031663853828b66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561083357600080fd5b505af1158015610847573d6000803e3d6000fd5b50505050600061087f7f000000000000000000000000c899c4d73ed8df2ead1543ab915888b0bf7d57a26001600160a01b0316611784565b6001549091506108c2906001600160a01b037f000000000000000000000000c899c4d73ed8df2ead1543ab915888b0bf7d57a281169162010000900416836117f5565b6001805461ff0019166101001790556040517ffcc296b8bdd64e3f1d1faadef50cb2d6550f645316330fe57cb1dd7e0612ead0906109039083815260200190565b60405180910390a15050565b60015460ff16156109625760405162461bcd60e51b815260206004820152601d60248201527f4c697175696469747947656e657261746f723a2046494e414c495a4544000000604482015260640161020f565b427f000000000000000000000000000000000000000000000000000000006334b5d08110156109d35760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f534f4f4e00000000604482015260640161020f565b6000610a077f0000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f06001600160a01b0316611784565b90506000610a3d7f0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c316076001600160a01b0316611784565b9050610a936001600160a01b037f0000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f0167f0000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f84611900565b610ae76001600160a01b037f0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607167f0000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f83611900565b604051635a47ddc360e01b81526001600160a01b037f0000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f0811660048301527f0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c316078116602483015260006044830152606482018490526084820183905260a4820184905260c482018390523060e483015261010482018590527f0000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f1690635a47ddc390610124016060604051808303816000875af1158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611bd3565b5050506000610c247f000000000000000000000000c899c4d73ed8df2ead1543ab915888b0bf7d57a26001600160a01b0316611784565b9050610c7a6001600160a01b037f000000000000000000000000c899c4d73ed8df2ead1543ab915888b0bf7d57a2167f0000000000000000000000003786d4419d6b4a902607ceb2bb319bb336735df883611900565b604051631c57762b60e31b815260048101829052600060248201527f0000000000000000000000003786d4419d6b4a902607ceb2bb319bb336735df86001600160a01b03169063e2bbb15890604401600060405180830381600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b50505050610d1162ed4e008561177190919063ffffffff16565b6000556001805460ff19168117905560408051848152602081018490527fb968440accd1ce5fa60b00de8bb8d8487eb2fda3c3701fb30fea3f69aa910a48910160405180910390a150505050565b6040516375c1018960e11b81526001600160a01b038281166004830152600091829182917f0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b19091169063eb820312906024015b606060405180830381865afa158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df39190611bd3565b9250925092509193909250565b60007f0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc56001600160a01b0316633a98ef396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e849190611c01565b905090565b336001600160a01b037f000000000000000000000000fb59ce8986943163f14c590755b29db2998f23221614610ed15760405162461bcd60e51b815260040161020f90611b5d565b6000548111610f375760405162461bcd60e51b815260206004820152602c60248201527f4c697175696469747947656e657261746f723a20494e56414c49445f554e4c4f60448201526b0434b5f54494d455354414d560a41b606482015260840161020f565b600080549082905560408051828152602081018490527fe3d6cde4e8f25cec5cc1b915261e33581a4bf2cf7e2aa87985f471cc52fa0f819101610903565b60007f0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b16001600160a01b0316633a98ef396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d6000803e3d6000fd5b427f000000000000000000000000000000000000000000000000000000006330c1508110156110465760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f534f4f4e00000000604482015260640161020f565b7f000000000000000000000000000000000000000000000000000000006334b5d081106110b55760405162461bcd60e51b815260206004820152601c60248201527f4c697175696469747947656e657261746f723a20544f4f5f4c41544500000000604482015260640161020f565b629896808210156111125760405162461bcd60e51b815260206004820152602160248201527f4c697175696469747947656e657261746f723a20494e56414c49445f56414c556044820152604560f81b606482015260840161020f565b6111476001600160a01b037f0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c3160716333085611a03565b6040516375c1018960e11b81523360048201526000907f0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b16001600160a01b03169063eb82031290602401606060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190611bd3565b509091508190507f00000000000000000000000000000000000000000000000000000000633212d083101561128f5761120b8285611771565b6040516304674a9360e41b8152336004820152602481018290529091507f0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b16001600160a01b031690634674a93090604401600060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505050505b6040516375c1018960e11b81523360048201526000907f0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc56001600160a01b03169063eb82031290602401606060405180830381865afa1580156112f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131a9190611bd3565b509091506000905061132c8287611771565b6040516304674a9360e41b8152336004820152602481018290529091507f0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc56001600160a01b031690634674a93090604401600060405180830381600087803b15801561139757600080fd5b505af11580156113ab573d6000803e3d6000fd5b50505050336001600160a01b03167ff943cf10ef4d1e3239f4716ddecdf546e8ba8ab0e41deafd9a71a99936827e45876113e3610e00565b6113eb610f75565b60408051938452602084019290925290820152606081018490526080810186905260a00160405180910390a2505050505050565b336001600160a01b037f000000000000000000000000fb59ce8986943163f14c590755b29db2998f232216146114975760405162461bcd60e51b815260206004820152601d60248201527f4c697175696469747947656e657261746f723a20464f5242494444454e000000604482015260640161020f565b6001600160a01b0381166114f95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747947656e657261746f723a20494e56414c49445f4144445260448201526245535360e81b606482015260840161020f565b600180546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b336001600160a01b037f000000000000000000000000fb59ce8986943163f14c590755b29db2998f2322161461156b5760405162461bcd60e51b815260040161020f90611b5d565b60015460ff1661158d5760405162461bcd60e51b815260040161020f90611b92565b604080516001808252818301909252600091602080830190803683370190505090507f0000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a05816000815181106115e3576115e3611c1a565b6001600160a01b0392831660209182029290920101526040516331279d3d60e01b81527f0000000000000000000000003786d4419d6b4a902607ceb2bb319bb336735df8909116906331279d3d906116419030908590600401611c30565b600060405180830381600087803b15801561165b57600080fd5b505af115801561166f573d6000803e3d6000fd5b5050505060006116a77f0000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a056001600160a01b0316611784565b6001549091506116ea906001600160a01b037f0000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a0581169162010000900416836117f5565b6040518181527f3d284dc4d07f3beab8dfa65cda1155635b168cf80a24413d3b617e385ac1720390602001610903565b6040516375c1018960e11b81526001600160a01b038281166004830152600091829182917f0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc59091169063eb82031290602401610db2565b600061177d8284611c8c565b9392505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190611c01565b92915050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916118519190611cb2565b6000604051808303816000865af19150503d806000811461188e576040519150601f19603f3d011682016040523d82523d6000602084013e611893565b606091505b50915091508180156118bd5750805115806118bd5750808060200190518101906118bd9190611ced565b6118f95760405162461bcd60e51b815260206004820152600d60248201526c10b9b0b332aa3930b739b332b960991b604482015260640161020f565b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161195c9190611cb2565b6000604051808303816000865af19150503d8060008114611999576040519150601f19603f3d011682016040523d82523d6000602084013e61199e565b606091505b50915091508180156119c85750805115806119c85750808060200190518101906119c89190611ced565b6118f95760405162461bcd60e51b815260206004820152600c60248201526b2173616665417070726f766560a01b604482015260640161020f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611a679190611cb2565b6000604051808303816000865af19150503d8060008114611aa4576040519150601f19603f3d011682016040523d82523d6000602084013e611aa9565b606091505b5091509150818015611ad3575080511580611ad3575080806020019051810190611ad39190611ced565b611b135760405162461bcd60e51b815260206004820152601160248201527021736166655472616e7366657246726f6d60781b604482015260640161020f565b505050505050565b600060208284031215611b2d57600080fd5b81356001600160a01b038116811461177d57600080fd5b600060208284031215611b5657600080fd5b5035919050565b6020808252818101527f4c697175696469747947656e657261746f723a20554e415554484f52495a4544604082015260600190565b60208082526021908201527f4c697175696469747947656e657261746f723a204e4f545f46494e414c495a456040820152601160fa1b606082015260800190565b600080600060608486031215611be857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c1357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015611c7e578551851683529483019491830191600101611c60565b509098975050505050505050565b60008219821115611cad57634e487b7160e01b600052601160045260246000fd5b500190565b6000825160005b81811015611cd35760208186018101518583015201611cb9565b81811115611ce2576000828501525b509190910192915050565b600060208284031215611cff57600080fd5b8151801515811461177d57600080fdfea26469706673582212207d6cef60d0d96fcf17b52329c8ddaee08a155fc8958e5b516b41fafd9a3b584064736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fb59ce8986943163f14c590755b29db2998f23220000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f00000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c316070000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a050000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f00000000000000000000000009236cff45047dbee6b921e00704bed6d6b8cf7e000000000000000000000000201ecb1c439f92afd5df5d399e195f73b01bb0f30000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc50000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b1000000000000000000000000000000000000000000000000000000006330c150000000000000000000000000000000000000000000000000000000000003f4800000000000000000000000000000000000000000000000000000000000015180
-----Decoded View---------------
Arg [0] : params_ (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 000000000000000000000000fb59ce8986943163f14c590755b29db2998f2322
Arg [1] : 0000000000000000000000001db2466d9f5e10d7090e7152b68d62703a2245f0
Arg [2] : 0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607
Arg [3] : 0000000000000000000000003c8b650257cfb5f272f799f5e2b4e65093a11a05
Arg [4] : 0000000000000000000000009c12939390052919af3155f41bf4160fd3666a6f
Arg [5] : 00000000000000000000000009236cff45047dbee6b921e00704bed6d6b8cf7e
Arg [6] : 000000000000000000000000201ecb1c439f92afd5df5d399e195f73b01bb0f3
Arg [7] : 0000000000000000000000002ba86032e601e001aeb0069efff824bcf699ffc5
Arg [8] : 0000000000000000000000009eff321ddf8ab509c8c65f7e57289258e9c169b1
Arg [9] : 000000000000000000000000000000000000000000000000000000006330c150
Arg [10] : 000000000000000000000000000000000000000000000000000000000003f480
Arg [11] : 0000000000000000000000000000000000000000000000000000000000015180
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.