Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,052 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 19820539 | 146 days ago | IN | 0 ETH | 0.0004484 | ||||
Withdraw | 19596422 | 177 days ago | IN | 0 ETH | 0.00097035 | ||||
Withdraw | 19501835 | 191 days ago | IN | 0 ETH | 0.00136932 | ||||
Withdraw | 19453587 | 198 days ago | IN | 0 ETH | 0.00216742 | ||||
Withdraw | 18831624 | 285 days ago | IN | 0 ETH | 0.00299007 | ||||
Stake | 18762487 | 294 days ago | IN | 0 ETH | 0.00287196 | ||||
Withdraw | 18656505 | 309 days ago | IN | 0 ETH | 0.00377424 | ||||
Withdraw | 18521207 | 328 days ago | IN | 0 ETH | 0.0026043 | ||||
Withdraw | 18295891 | 360 days ago | IN | 0 ETH | 0.00051535 | ||||
Withdraw | 18295882 | 360 days ago | IN | 0 ETH | 0.00055205 | ||||
Withdraw | 18295882 | 360 days ago | IN | 0 ETH | 0.00055205 | ||||
Withdraw | 18295841 | 360 days ago | IN | 0 ETH | 0.00077227 | ||||
Claim | 18196505 | 374 days ago | IN | 0 ETH | 0.00032997 | ||||
Withdraw | 18196481 | 374 days ago | IN | 0 ETH | 0.00049726 | ||||
Withdraw | 17959368 | 407 days ago | IN | 0 ETH | 0.00078138 | ||||
Withdraw | 17867523 | 420 days ago | IN | 0 ETH | 0.00139857 | ||||
Withdraw | 17676124 | 447 days ago | IN | 0 ETH | 0.00047177 | ||||
Withdraw | 17615329 | 455 days ago | IN | 0 ETH | 0.00152107 | ||||
Withdraw | 17439417 | 480 days ago | IN | 0 ETH | 0.00130024 | ||||
Withdraw | 17326361 | 496 days ago | IN | 0 ETH | 0.00253152 | ||||
Stake | 16964136 | 547 days ago | IN | 0 ETH | 0.00203802 | ||||
Withdraw | 16962135 | 547 days ago | IN | 0 ETH | 0.00139957 | ||||
Stake | 16895111 | 557 days ago | IN | 0 ETH | 0.00143113 | ||||
Stake | 16671148 | 588 days ago | IN | 0 ETH | 0.00652352 | ||||
Withdraw | 16481421 | 615 days ago | IN | 0 ETH | 0.0011259 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
UserStakingPool
Compiler Version
v0.5.11+commit.c082d0b4
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-11-20 */ /** Author: Loopring Foundation (Loopring Project Ltd) */ pragma solidity ^0.5.11; contract Ownable { address public owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner, "UNAUTHORIZED"); _; } function transferOwnership( address newOwner ) public onlyOwner { require(newOwner != address(0), "ZERO_ADDRESS"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } } contract Claimable is Ownable { address public pendingOwner; modifier onlyPendingOwner() { require(msg.sender == pendingOwner, "UNAUTHORIZED"); _; } function transferOwnership( address newOwner ) public onlyOwner { require(newOwner != address(0) && newOwner != owner, "INVALID_ADDRESS"); pendingOwner = newOwner; } function claimOwnership() public onlyPendingOwner { emit OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } contract ERC20 { function totalSupply() public view returns (uint); function balanceOf( address who ) public view returns (uint); function allowance( address owner, address spender ) public view returns (uint); function transfer( address to, uint value ) public returns (bool); function transferFrom( address from, address to, uint value ) public returns (bool); function approve( address spender, uint value ) public returns (bool); } library ERC20SafeTransfer { function safeTransferAndVerify( address token, address to, uint value ) internal { safeTransferWithGasLimitAndVerify( token, to, value, gasleft() ); } function safeTransfer( address token, address to, uint value ) internal returns (bool) { return safeTransferWithGasLimit( token, to, value, gasleft() ); } function safeTransferWithGasLimitAndVerify( address token, address to, uint value, uint gasLimit ) internal { require( safeTransferWithGasLimit(token, to, value, gasLimit), "TRANSFER_FAILURE" ); } function safeTransferWithGasLimit( address token, address to, uint value, uint gasLimit ) internal returns (bool) { bytes memory callData = abi.encodeWithSelector( bytes4(0xa9059cbb), to, value ); (bool success, ) = token.call.gas(gasLimit)(callData); return checkReturnValue(success); } function safeTransferFromAndVerify( address token, address from, address to, uint value ) internal { safeTransferFromWithGasLimitAndVerify( token, from, to, value, gasleft() ); } function safeTransferFrom( address token, address from, address to, uint value ) internal returns (bool) { return safeTransferFromWithGasLimit( token, from, to, value, gasleft() ); } function safeTransferFromWithGasLimitAndVerify( address token, address from, address to, uint value, uint gasLimit ) internal { bool result = safeTransferFromWithGasLimit( token, from, to, value, gasLimit ); require(result, "TRANSFER_FAILURE"); } function safeTransferFromWithGasLimit( address token, address from, address to, uint value, uint gasLimit ) internal returns (bool) { bytes memory callData = abi.encodeWithSelector( bytes4(0x23b872dd), from, to, value ); (bool success, ) = token.call.gas(gasLimit)(callData); return checkReturnValue(success); } function checkReturnValue( bool success ) internal pure returns (bool) { if (success) { assembly { switch returndatasize() case 0 { success := 1 } case 32 { returndatacopy(0, 0, 32) success := mload(0) } default { success := 0 } } } return success; } } library MathUint { function mul( uint a, uint b ) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b, "MUL_OVERFLOW"); } function sub( uint a, uint b ) internal pure returns (uint) { require(b <= a, "SUB_UNDERFLOW"); return a - b; } function add( uint a, uint b ) internal pure returns (uint c) { c = a + b; require(c >= a, "ADD_OVERFLOW"); } function decodeFloat( uint f ) internal pure returns (uint value) { uint numBitsMantissa = 23; uint exponent = f >> numBitsMantissa; uint mantissa = f & ((1 << numBitsMantissa) - 1); value = mantissa * (10 ** exponent); } } contract ReentrancyGuard { uint private _guardValue; modifier nonReentrant() { require(_guardValue == 0, "REENTRANCY"); _guardValue = 1; _; _guardValue = 0; } } contract IProtocolFeeVault { uint public constant REWARD_PERCENTAGE = 70; uint public constant DAO_PERDENTAGE = 20; address public userStakingPoolAddress; address public lrcAddress; address public tokenSellerAddress; address public daoAddress; uint claimedReward; uint claimedDAOFund; uint claimedBurn; event LRCClaimed(uint amount); event DAOFunded(uint amountDAO, uint amountBurn); event TokenSold(address token, uint amount); event SettingsUpdated(uint time); function updateSettings( address _userStakingPoolAddress, address _tokenSellerAddress, address _daoAddress ) external; function claimStakingReward(uint amount) external; function fundDAO() external; function sellTokenForLRC( address token, uint amount ) external; function getProtocolFeeStats() public view returns ( uint accumulatedFees, uint accumulatedBurn, uint accumulatedDAOFund, uint accumulatedReward, uint remainingFees, uint remainingBurn, uint remainingDAOFund, uint remainingReward ); } contract IUserStakingPool { uint public constant MIN_CLAIM_DELAY = 90 days; uint public constant MIN_WITHDRAW_DELAY = 90 days; address public lrcAddress; address public protocolFeeVaultAddress; uint public numAddresses; event ProtocolFeeVaultChanged (address feeVaultAddress); event LRCStaked (address indexed user, uint amount); event LRCWithdrawn (address indexed user, uint amount); event LRCRewarded (address indexed user, uint amount); function setProtocolFeeVault(address _protocolFeeVaultAddress) external; function getTotalStaking() public view returns (uint); function getUserStaking(address user) public view returns ( uint withdrawalWaitTime, uint rewardWaitTime, uint balance, uint pendingReward ); function stake(uint amount) external; function withdraw(uint amount) external; function claim() external returns (uint claimedAmount); } contract UserStakingPool is Claimable, ReentrancyGuard, IUserStakingPool { using ERC20SafeTransfer for address; using MathUint for uint; struct Staking { uint balance; uint64 depositedAt; uint64 claimedAt; } Staking public total; mapping (address => Staking) public stakings; constructor(address _lrcAddress) Claimable() public { require(_lrcAddress != address(0), "ZERO_ADDRESS"); lrcAddress = _lrcAddress; } function setProtocolFeeVault(address _protocolFeeVaultAddress) external nonReentrant onlyOwner { protocolFeeVaultAddress = _protocolFeeVaultAddress; emit ProtocolFeeVaultChanged(protocolFeeVaultAddress); } function getTotalStaking() public view returns (uint) { return total.balance; } function getUserStaking(address user) public view returns ( uint withdrawalWaitTime, uint rewardWaitTime, uint balance, uint pendingReward ) { withdrawalWaitTime = getUserWithdrawalWaitTime(user); rewardWaitTime = getUserClaimWaitTime(user); balance = stakings[user].balance; (, , pendingReward) = getUserPendingReward(user); } function stake(uint amount) external nonReentrant { require(amount > 0, "ZERO_VALUE"); lrcAddress.safeTransferFromAndVerify(msg.sender, address(this), amount); Staking storage user = stakings[msg.sender]; if (user.balance == 0) { numAddresses += 1; } uint balance = user.balance.add(amount); user.depositedAt = uint64( user.balance .mul(user.depositedAt) .add(amount.mul(now)) / balance ); user.claimedAt = uint64( user.balance .mul(user.claimedAt) .add(amount.mul(now)) / balance ); user.balance = balance; balance = total.balance.add(amount); total.claimedAt = uint64( total.balance .mul(total.claimedAt) .add(amount.mul(now)) / balance ); total.balance = balance; emit LRCStaked(msg.sender, amount); } function withdraw(uint amount) external nonReentrant { require(getUserWithdrawalWaitTime(msg.sender) == 0, "NEED_TO_WAIT"); if (protocolFeeVaultAddress != address(0) && getUserClaimWaitTime(msg.sender) == 0) { claimReward(); } Staking storage user = stakings[msg.sender]; uint _amount = (amount == 0 || amount > user.balance) ? user.balance : amount; require(_amount > 0, "ZERO_BALANCE"); total.balance = total.balance.sub(_amount); user.balance = user.balance.sub(_amount); if (user.balance == 0) { numAddresses -= 1; delete stakings[msg.sender]; } lrcAddress.safeTransferAndVerify(msg.sender, _amount); emit LRCWithdrawn(msg.sender, _amount); } function claim() external nonReentrant returns (uint claimedAmount) { return claimReward(); } function claimReward() private returns (uint claimedAmount) { require(protocolFeeVaultAddress != address(0), "ZERO_ADDRESS"); require(getUserClaimWaitTime(msg.sender) == 0, "NEED_TO_WAIT"); uint totalPoints; uint userPoints; (totalPoints, userPoints, claimedAmount) = getUserPendingReward(msg.sender); if (claimedAmount > 0) { IProtocolFeeVault(protocolFeeVaultAddress).claimStakingReward(claimedAmount); total.balance = total.balance.add(claimedAmount); total.claimedAt = uint64( now.sub(totalPoints.sub(userPoints) / total.balance) ); Staking storage user = stakings[msg.sender]; user.balance = user.balance.add(claimedAmount); user.claimedAt = uint64(now); } emit LRCRewarded(msg.sender, claimedAmount); } function getUserWithdrawalWaitTime(address user) private view returns (uint) { uint depositedAt = stakings[user].depositedAt; if (depositedAt == 0) { return MIN_WITHDRAW_DELAY; } else { uint time = depositedAt + MIN_WITHDRAW_DELAY; return (time <= now) ? 0 : time.sub(now); } } function getUserClaimWaitTime(address user) private view returns (uint) { uint claimedAt = stakings[user].claimedAt; if (claimedAt == 0) { return MIN_CLAIM_DELAY; } else { uint time = stakings[user].claimedAt + MIN_CLAIM_DELAY; return (time <= now) ? 0 : time.sub(now); } } function getUserPendingReward(address user) private view returns ( uint totalPoints, uint userPoints, uint pendingReward ) { Staking storage staking = stakings[user]; totalPoints = total.balance.mul(now.sub(total.claimedAt).add(1)); userPoints = staking.balance.mul(now.sub(staking.claimedAt)); if (totalPoints < userPoints) { userPoints = totalPoints; } if (protocolFeeVaultAddress != address(0) && totalPoints != 0 && userPoints != 0) { (, , , , , , , pendingReward) = IProtocolFeeVault( protocolFeeVaultAddress ).getProtocolFeeStats(); pendingReward = pendingReward.mul(userPoints) / totalPoints; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserStaking","outputs":[{"internalType":"uint256","name":"withdrawalWaitTime","type":"uint256"},{"internalType":"uint256","name":"rewardWaitTime","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"pendingReward","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint64","name":"depositedAt","type":"uint64"},{"internalType":"uint64","name":"claimedAt","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numAddresses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lrcAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[{"internalType":"uint256","name":"claimedAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_CLAIM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_protocolFeeVaultAddress","type":"address"}],"name":"setProtocolFeeVault","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MIN_WITHDRAW_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"protocolFeeVaultAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakings","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint64","name":"depositedAt","type":"uint64"},{"internalType":"uint64","name":"claimedAt","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lrcAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeVaultAddress","type":"address"}],"name":"ProtocolFeeVaultChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LRCStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LRCWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LRCRewarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516114e43803806114e48339818101604052602081101561003357600080fd5b5051600080546001600160a01b031916331790556001600160a01b0381166100bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f414444524553530000000000000000000000000000000000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556113f9806100eb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063ae15943911610071578063ae1594391461020c578063c730eca414610267578063dc6e13e11461026f578063e30c397814610295578063f2fde38b1461029d57610116565b8063715018a61461021457806388e95c471461021c5780638da5cb5b14610242578063a694fc3a1461024a57610116565b80633d6cf722116100e95780633d6cf722146101d05780634e71d92d146101f45780634e71e0c8146101fc57806358d575451461020457806361605b921461020c57610116565b80630c0fd5491461011b5780632ddbd13a146101675780632e1a7d4d146101975780632f8646d6146101b6575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b03166102c3565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61016f610312565b604080519384526001600160401b039283166020850152911682820152519081900360600190f35b6101b4600480360360208110156101ad57600080fd5b503561032f565b005b6101be610522565b60408051918252519081900360200190f35b6101d8610528565b604080516001600160a01b039092168252519081900360200190f35b6101be610537565b6101b4610594565b6101be610646565b6101be61064c565b6101b4610653565b6101b46004803603602081101561023257600080fd5b50356001600160a01b03166106eb565b6101d86107df565b6101b46004803603602081101561026057600080fd5b50356107ee565b6101d8610a52565b61016f6004803603602081101561028557600080fd5b50356001600160a01b0316610a61565b6101d8610a8e565b6101b4600480360360208110156102b357600080fd5b50356001600160a01b0316610a9d565b6000806000806102d285610b76565b93506102dd85610bdc565b6001600160a01b038616600090815260086020526040902054909350915061030485610c63565b959794965092949392505050565b6006546007546001600160401b0380821691600160401b90041683565b60025415610371576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025561037f33610b76565b156103c0576040805162461bcd60e51b815260206004820152600c60248201526b1391515117d513d7d5d0525560a21b604482015290519081900360640190fd5b6004546001600160a01b0316158015906103e057506103de33610bdc565b155b156103ef576103ed610dbc565b505b3360009081526008602052604081209082158061040c5750815483115b6104165782610419565b81545b90506000811161045f576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f42414c414e434560a01b604482015290519081900360640190fd5b600654610472908263ffffffff610fc516565b6006558154610487908263ffffffff610fc516565b8083556104c5576005805460001901905533600090815260086020526040812090815560010180546fffffffffffffffffffffffffffffffff191690555b6003546104e2906001600160a01b0316338363ffffffff61101716565b60408051828152905133917f2958029af76592f61d851f6d7c7456b3d9ae7536e7dc715c408fe02cd06c4651919081900360200190a25050600060025550565b60055481565b6003546001600160a01b031681565b600060025460001461057d576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025561058a610dbc565b9050600060025590565b6001546001600160a01b031633146105e2576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60065490565b6276a70081565b6000546001600160a01b031633146106a1576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6002541561072d576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016002556000546001600160a01b03163314610780576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fb3b08642421ba31da9df792b3dbe9f52ff071894103ba3b1c4317b2daf33736c916020908290030190a1506000600255565b6000546001600160a01b031681565b60025415610830576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025580610874576040805162461bcd60e51b815260206004820152600a6024820152695a45524f5f56414c554560b01b604482015290519081900360640190fd5b600354610892906001600160a01b031633308463ffffffff61102816565b33600090815260086020526040902080546108b1576005805460010190555b80546000906108c6908463ffffffff61103b16565b9050806109076108dc854263ffffffff61108216565b600185015485546108fb916001600160401b031663ffffffff61108216565b9063ffffffff61103b16565b8161090e57fe5b60018401805467ffffffffffffffff1916929091046001600160401b0316919091179055806109606109408542611082565b600185015485546108fb91600160401b90046001600160401b0316611082565b8161096757fe5b60018401805467ffffffffffffffff60401b1916600160401b939092046001600160401b0316929092021790558082556006546109a4908461103b565b9050806109d96109ba854263ffffffff61108216565b6007546006546108fb91600160401b90046001600160401b0316611082565b816109e057fe5b600780546001600160401b039390920492909216600160401b0267ffffffffffffffff60401b19909116179055600681905560408051848152905133917f7bcf38427a7f7fc25e271d30f03522e51794ec2ba24df0703481c2b7222ced4e919081900360200190a25050600060025550565b6004546001600160a01b031681565b600860205260009081526040902080546001909101546001600160401b0380821691600160401b90041683565b6001546001600160a01b031681565b6000546001600160a01b03163314610aeb576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001600160a01b03811615801590610b1157506000546001600160a01b03828116911614155b610b54576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600860205260408120600101546001600160401b031680610bac576276a700915050610bd7565b6276a700810142811115610bcf57610bca814263ffffffff610fc516565b610bd2565b60005b925050505b919050565b6001600160a01b038116600090815260086020526040812060010154600160401b90046001600160401b031680610c19576276a700915050610bd7565b6001600160a01b0383166000908152600860205260409020600101546001600160401b03600160401b909104166276a7000142811115610bcf57610bca814263ffffffff610fc516565b6001600160a01b038116600090815260086020526040812060075482918291610cb790610ca8906001906108fb904290600160401b90046001600160401b0316610fc5565b6006549063ffffffff61108216565b6001820154909450610cec90610cde904290600160401b90046001600160401b0316610fc5565b82549063ffffffff61108216565b925082841015610cfa578392505b6004546001600160a01b031615801590610d1357508315155b8015610d1e57508215155b15610db4576004805460408051630d96a41b60e21b815290516001600160a01b039092169263365a906c92828201926101009290829003018186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d610100811015610d9157600080fd5b5060e00151915083610da9838563ffffffff61108216565b81610db057fe5b0491505b509193909250565b6004546000906001600160a01b0316610e0b576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b610e1433610bdc565b15610e55576040805162461bcd60e51b815260206004820152600c60248201526b1391515117d513d7d5d0525560a21b604482015290519081900360640190fd5b600080610e6133610c63565b945090925090508215610f8a5760048054604080516308e7352960e21b8152928301869052516001600160a01b039091169163239cd4a491602480830192600092919082900301818387803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b5050600654610ee5925090508463ffffffff61103b16565b6006819055610f1490610efe848463ffffffff610fc516565b81610f0557fe5b4291900463ffffffff610fc516565b600780546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790553360009081526008602052604090208054610f61908563ffffffff61103b16565b8155600101805467ffffffffffffffff60401b1916600160401b426001600160401b0316021790555b60408051848152905133917ffaa4a7e6a2ecb2217533f3081ad082d42261efe260c8842dd32a5ebb72011b78919081900360200190a2505090565b60008282111561100c576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b508082035b92915050565b6110238383835a6110da565b505050565b611035848484845a61112a565b50505050565b81810182811015611011576040805162461bcd60e51b815260206004820152600c60248201526b4144445f4f564552464c4f5760a01b604482015290519081900360640190fd5b81810282158061109a57508183828161109757fe5b04145b611011576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b6110e684848484611188565b611035576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b60006111398686868686611284565b905080611180576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038086166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485938a16928792869282918083835b602083106112045780518252601f1990920191602091820191016111e5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611267576040519150601f19603f3d011682016040523d82523d6000602084013e61126c565b606091505b5050905061127981611389565b979650505050505050565b604080516001600160a01b0380871660248301528086166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1781529251825160009485938b16928792869282918083835b602083106113085780518252601f1990920191602091820191016112e9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d806000811461136b576040519150601f19603f3d011682016040523d82523d6000602084013e611370565b606091505b5050905061137d81611389565b98975050505050505050565b600081156113c0573d80156113a957602081146113b257600092506113be565b600192506113be565b60206000803e60005192505b505b509056fea265627a7a723158203a8d4f4a474e4e4cf5f39ea7846c3a11c33125afc08eae8ed969ba8bfb4f4f7b64736f6c634300050b0032000000000000000000000000bbbbca6a901c926f240b89eacb641d8aec7aeafd
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063ae15943911610071578063ae1594391461020c578063c730eca414610267578063dc6e13e11461026f578063e30c397814610295578063f2fde38b1461029d57610116565b8063715018a61461021457806388e95c471461021c5780638da5cb5b14610242578063a694fc3a1461024a57610116565b80633d6cf722116100e95780633d6cf722146101d05780634e71d92d146101f45780634e71e0c8146101fc57806358d575451461020457806361605b921461020c57610116565b80630c0fd5491461011b5780632ddbd13a146101675780632e1a7d4d146101975780632f8646d6146101b6575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b03166102c3565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61016f610312565b604080519384526001600160401b039283166020850152911682820152519081900360600190f35b6101b4600480360360208110156101ad57600080fd5b503561032f565b005b6101be610522565b60408051918252519081900360200190f35b6101d8610528565b604080516001600160a01b039092168252519081900360200190f35b6101be610537565b6101b4610594565b6101be610646565b6101be61064c565b6101b4610653565b6101b46004803603602081101561023257600080fd5b50356001600160a01b03166106eb565b6101d86107df565b6101b46004803603602081101561026057600080fd5b50356107ee565b6101d8610a52565b61016f6004803603602081101561028557600080fd5b50356001600160a01b0316610a61565b6101d8610a8e565b6101b4600480360360208110156102b357600080fd5b50356001600160a01b0316610a9d565b6000806000806102d285610b76565b93506102dd85610bdc565b6001600160a01b038616600090815260086020526040902054909350915061030485610c63565b959794965092949392505050565b6006546007546001600160401b0380821691600160401b90041683565b60025415610371576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025561037f33610b76565b156103c0576040805162461bcd60e51b815260206004820152600c60248201526b1391515117d513d7d5d0525560a21b604482015290519081900360640190fd5b6004546001600160a01b0316158015906103e057506103de33610bdc565b155b156103ef576103ed610dbc565b505b3360009081526008602052604081209082158061040c5750815483115b6104165782610419565b81545b90506000811161045f576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f42414c414e434560a01b604482015290519081900360640190fd5b600654610472908263ffffffff610fc516565b6006558154610487908263ffffffff610fc516565b8083556104c5576005805460001901905533600090815260086020526040812090815560010180546fffffffffffffffffffffffffffffffff191690555b6003546104e2906001600160a01b0316338363ffffffff61101716565b60408051828152905133917f2958029af76592f61d851f6d7c7456b3d9ae7536e7dc715c408fe02cd06c4651919081900360200190a25050600060025550565b60055481565b6003546001600160a01b031681565b600060025460001461057d576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025561058a610dbc565b9050600060025590565b6001546001600160a01b031633146105e2576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60065490565b6276a70081565b6000546001600160a01b031633146106a1576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6002541561072d576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016002556000546001600160a01b03163314610780576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fb3b08642421ba31da9df792b3dbe9f52ff071894103ba3b1c4317b2daf33736c916020908290030190a1506000600255565b6000546001600160a01b031681565b60025415610830576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025580610874576040805162461bcd60e51b815260206004820152600a6024820152695a45524f5f56414c554560b01b604482015290519081900360640190fd5b600354610892906001600160a01b031633308463ffffffff61102816565b33600090815260086020526040902080546108b1576005805460010190555b80546000906108c6908463ffffffff61103b16565b9050806109076108dc854263ffffffff61108216565b600185015485546108fb916001600160401b031663ffffffff61108216565b9063ffffffff61103b16565b8161090e57fe5b60018401805467ffffffffffffffff1916929091046001600160401b0316919091179055806109606109408542611082565b600185015485546108fb91600160401b90046001600160401b0316611082565b8161096757fe5b60018401805467ffffffffffffffff60401b1916600160401b939092046001600160401b0316929092021790558082556006546109a4908461103b565b9050806109d96109ba854263ffffffff61108216565b6007546006546108fb91600160401b90046001600160401b0316611082565b816109e057fe5b600780546001600160401b039390920492909216600160401b0267ffffffffffffffff60401b19909116179055600681905560408051848152905133917f7bcf38427a7f7fc25e271d30f03522e51794ec2ba24df0703481c2b7222ced4e919081900360200190a25050600060025550565b6004546001600160a01b031681565b600860205260009081526040902080546001909101546001600160401b0380821691600160401b90041683565b6001546001600160a01b031681565b6000546001600160a01b03163314610aeb576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001600160a01b03811615801590610b1157506000546001600160a01b03828116911614155b610b54576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600860205260408120600101546001600160401b031680610bac576276a700915050610bd7565b6276a700810142811115610bcf57610bca814263ffffffff610fc516565b610bd2565b60005b925050505b919050565b6001600160a01b038116600090815260086020526040812060010154600160401b90046001600160401b031680610c19576276a700915050610bd7565b6001600160a01b0383166000908152600860205260409020600101546001600160401b03600160401b909104166276a7000142811115610bcf57610bca814263ffffffff610fc516565b6001600160a01b038116600090815260086020526040812060075482918291610cb790610ca8906001906108fb904290600160401b90046001600160401b0316610fc5565b6006549063ffffffff61108216565b6001820154909450610cec90610cde904290600160401b90046001600160401b0316610fc5565b82549063ffffffff61108216565b925082841015610cfa578392505b6004546001600160a01b031615801590610d1357508315155b8015610d1e57508215155b15610db4576004805460408051630d96a41b60e21b815290516001600160a01b039092169263365a906c92828201926101009290829003018186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d610100811015610d9157600080fd5b5060e00151915083610da9838563ffffffff61108216565b81610db057fe5b0491505b509193909250565b6004546000906001600160a01b0316610e0b576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b610e1433610bdc565b15610e55576040805162461bcd60e51b815260206004820152600c60248201526b1391515117d513d7d5d0525560a21b604482015290519081900360640190fd5b600080610e6133610c63565b945090925090508215610f8a5760048054604080516308e7352960e21b8152928301869052516001600160a01b039091169163239cd4a491602480830192600092919082900301818387803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b5050600654610ee5925090508463ffffffff61103b16565b6006819055610f1490610efe848463ffffffff610fc516565b81610f0557fe5b4291900463ffffffff610fc516565b600780546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790553360009081526008602052604090208054610f61908563ffffffff61103b16565b8155600101805467ffffffffffffffff60401b1916600160401b426001600160401b0316021790555b60408051848152905133917ffaa4a7e6a2ecb2217533f3081ad082d42261efe260c8842dd32a5ebb72011b78919081900360200190a2505090565b60008282111561100c576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b508082035b92915050565b6110238383835a6110da565b505050565b611035848484845a61112a565b50505050565b81810182811015611011576040805162461bcd60e51b815260206004820152600c60248201526b4144445f4f564552464c4f5760a01b604482015290519081900360640190fd5b81810282158061109a57508183828161109757fe5b04145b611011576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b6110e684848484611188565b611035576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b60006111398686868686611284565b905080611180576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038086166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485938a16928792869282918083835b602083106112045780518252601f1990920191602091820191016111e5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611267576040519150601f19603f3d011682016040523d82523d6000602084013e61126c565b606091505b5050905061127981611389565b979650505050505050565b604080516001600160a01b0380871660248301528086166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1781529251825160009485938b16928792869282918083835b602083106113085780518252601f1990920191602091820191016112e9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d806000811461136b576040519150601f19603f3d011682016040523d82523d6000602084013e611370565b606091505b5050905061137d81611389565b98975050505050505050565b600081156113c0573d80156113a957602081146113b257600092506113be565b600192506113be565b60206000803e60005192505b505b509056fea265627a7a723158203a8d4f4a474e4e4cf5f39ea7846c3a11c33125afc08eae8ed969ba8bfb4f4f7b64736f6c634300050b0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bbbbca6a901c926f240b89eacb641d8aec7aeafd
-----Decoded View---------------
Arg [0] : _lrcAddress (address): 0xBBbbCA6A901c926F240b89EacB641d8Aec7AEafD
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bbbbca6a901c926f240b89eacb641d8aec7aeafd
Swarm Source
bzzr://3a8d4f4a474e4e4cf5f39ea7846c3a11c33125afc08eae8ed969ba8bfb4f4f7b
Loading...
Loading
Loading...
Loading
OVERVIEW
The address for Loopring's user staking pool.Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.139239 | 635,843.792 | $88,534.25 |
Loading...
Loading
[ 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.