More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Sell Token For L... | 11717693 | 1181 days ago | IN | 0 ETH | 0.00179844 | ||||
Sell Token For L... | 11717685 | 1181 days ago | IN | 0 ETH | 0.00269454 | ||||
Fund DAO | 11717594 | 1181 days ago | IN | 0 ETH | 0.0034799 | ||||
Sell Token For L... | 11397161 | 1230 days ago | IN | 0 ETH | 0.00141322 | ||||
Sell Token For L... | 11065746 | 1281 days ago | IN | 0 ETH | 0.00326865 | ||||
Update Settings | 11058938 | 1282 days ago | IN | 0 ETH | 0.00161452 | ||||
Fund DAO | 10097047 | 1431 days ago | IN | 0 ETH | 0.00479512 | ||||
Update Settings | 10097047 | 1431 days ago | IN | 0 ETH | 0.00168608 | ||||
Sell Token For L... | 10097047 | 1431 days ago | IN | 0 ETH | 0.00188364 | ||||
Update Settings | 10097000 | 1431 days ago | IN | 0 ETH | 0.00091275 | ||||
Sell Token For L... | 9988486 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988472 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988464 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988461 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988459 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988444 | 1447 days ago | IN | 0 ETH | 0.00033173 | ||||
Sell Token For L... | 9988418 | 1447 days ago | IN | 0 ETH | 0.00033165 | ||||
Sell Token For L... | 9971411 | 1450 days ago | IN | 0 ETH | 0.00132706 | ||||
Sell Token For L... | 9971391 | 1450 days ago | IN | 0 ETH | 0.00110577 | ||||
Sell Token For L... | 9970591 | 1450 days ago | IN | 0 ETH | 0.00145961 | ||||
Sell Token For L... | 9968420 | 1450 days ago | IN | 0 ETH | 0.00165865 | ||||
Sell Token For L... | 9967870 | 1451 days ago | IN | 0 ETH | 0.00165865 | ||||
Sell Token For L... | 9967798 | 1451 days ago | IN | 0 ETH | 0.00135014 | ||||
Claim Ownership | 9711108 | 1490 days ago | IN | 0 ETH | 0.00010964 | ||||
Transfer Ownersh... | 9644944 | 1500 days ago | IN | 0 ETH | 0.00026587 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
11717693 | 1181 days ago | 0.2222478 ETH | ||||
11063851 | 1281 days ago | 0.2222479 ETH | ||||
11057691 | 1282 days ago | 0.1871502 ETH | ||||
11057257 | 1282 days ago | 0.1871502 ETH | ||||
11050672 | 1283 days ago | 0.2799067 ETH | ||||
11050632 | 1283 days ago | 0.2799067 ETH | ||||
11044162 | 1284 days ago | 0.231285 ETH | ||||
11044142 | 1284 days ago | 0.231285 ETH | ||||
11043989 | 1284 days ago | 0.1352313 ETH | ||||
11043925 | 1284 days ago | 0.1352313 ETH | ||||
11040266 | 1285 days ago | 0.1613545 ETH | ||||
11040121 | 1285 days ago | 0.1613545 ETH | ||||
11035569 | 1285 days ago | 0.2319985 ETH | ||||
11034530 | 1286 days ago | 0.2319985 ETH | ||||
11021188 | 1288 days ago | 0.18968364 ETH | ||||
11020533 | 1288 days ago | 0.1285431 ETH | ||||
11010911 | 1289 days ago | 0.06114054 ETH | ||||
11006321 | 1290 days ago | 0.176167 ETH | ||||
11005675 | 1290 days ago | 0.176167 ETH | ||||
10997882 | 1291 days ago | 0.14547447 ETH | ||||
10997863 | 1291 days ago | 0.07521639 ETH | ||||
10994767 | 1292 days ago | 0.00197094 ETH | ||||
10994562 | 1292 days ago | 0.06828714 ETH | ||||
10988691 | 1293 days ago | 0.28899733 ETH | ||||
10988653 | 1293 days ago | 0.00000006 ETH |
Loading...
Loading
Contract Name:
ProtocolFeeVault
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-10 */ /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.5.11; /// @title ERC20 Token Interface /// @dev see https://github.com/ethereum/EIPs/issues/20 /// @author Daniel Wang - <[email protected]> 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); } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Utility Functions for addresses /// @author Daniel Wang - <[email protected]> /// @author Brecht Devos - <[email protected]> library AddressUtil { using AddressUtil for *; function isContract( address addr ) internal view returns (bool) { uint32 size; assembly { size := extcodesize(addr) } return (size > 0); } function toPayable( address addr ) internal pure returns (address payable) { return address(uint160(addr)); } // Works like address.send but with a customizable gas limit // Make sure your code is safe for reentrancy when using this function! function sendETH( address to, uint amount, uint gasLimit ) internal returns (bool success) { if (amount == 0) { return true; } address payable recipient = to.toPayable(); /* solium-disable-next-line */ (success, ) = recipient.call.value(amount).gas(gasLimit)(""); } // Works like address.transfer but with a customizable gas limit // Make sure your code is safe for reentrancy when using this function! function sendETHAndVerify( address to, uint amount, uint gasLimit ) internal returns (bool success) { success = to.sendETH(amount, gasLimit); require(success, "TRANSFER_FAILURE"); } } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Burnable ERC20 Token Interface /// @author Brecht Devos - <[email protected]> contract BurnableERC20 is ERC20 { function burn( uint value ) public returns (bool); function burnFrom( address from, uint value ) public returns (bool); } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Ownable /// @author Brecht Devos - <[email protected]> /// @dev The Ownable contract has an owner address, and provides basic /// authorization control functions, this simplifies the implementation of /// "user permissions". contract Ownable { address public owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /// @dev The Ownable constructor sets the original `owner` of the contract /// to the sender. constructor() public { owner = msg.sender; } /// @dev Throws if called by any account other than the owner. modifier onlyOwner() { require(msg.sender == owner, "UNAUTHORIZED"); _; } /// @dev Allows the current owner to transfer control of the contract to a /// new owner. /// @param newOwner The address to transfer ownership to. 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); } } /// @title Claimable /// @author Brecht Devos - <[email protected]> /// @dev Extension for the Ownable contract, where the ownership needs /// to be claimed. This allows the new owner to accept the transfer. contract Claimable is Ownable { address public pendingOwner; /// @dev Modifier throws if called by any account other than the pendingOwner. modifier onlyPendingOwner() { require(msg.sender == pendingOwner, "UNAUTHORIZED"); _; } /// @dev Allows the current owner to set the pendingOwner address. /// @param newOwner The address to transfer ownership to. function transferOwnership( address newOwner ) public onlyOwner { require(newOwner != address(0) && newOwner != owner, "INVALID_ADDRESS"); pendingOwner = newOwner; } /// @dev Allows the pendingOwner address to finalize the transfer. function claimOwnership() public onlyPendingOwner { emit OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title ERC20 safe transfer /// @dev see https://github.com/sec-bit/badERC20Fix /// @author Brecht Devos - <[email protected]> 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) { // A transfer is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) // bytes4(keccak256("transfer(address,uint)")) = 0xa9059cbb 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) { // A transferFrom is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) // bytes4(keccak256("transferFrom(address,address,uint)")) = 0x23b872dd 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) { // A transfer/transferFrom is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) if (success) { assembly { switch returndatasize() // Non-standard ERC20: nothing is returned so if 'call' was successful we assume the transfer succeeded case 0 { success := 1 } // Standard ERC20: a single boolean value is returned which needs to be true case 32 { returndatacopy(0, 0, 32) success := mload(0) } // None of the above: not successful default { success := 0 } } } return success; } } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Utility Functions for uint /// @author Daniel Wang - <[email protected]> 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); } } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title ReentrancyGuard /// @author Brecht Devos - <[email protected]> /// @dev Exposes a modifier that guards a function against reentrancy /// Changing the value of the same storage value multiple times in a transaction /// is cheap (starting from Istanbul) so there is no need to minimize /// the number of times the value is changed contract ReentrancyGuard { //The default value must be 0 in order to work behind a proxy. uint private _guardValue; // Use this modifier on a function to prevent reentrancy modifier nonReentrant() { // Check if the guard value has its original value require(_guardValue == 0, "REENTRANCY"); // Set the value to something else _guardValue = 1; // Function body _; // Set the value back _guardValue = 0; } } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title IProtocolFeeVault /// @dev This smart contract manages the distribution of protocol fees. /// Tokens other than LRC will be sold by TokenSeller, /// If no TokenSeller is set, the tokens or Ether will be sent to the owner /// to sell them for LRC by other means such as using a centralized exchange. /// For LRC token, 70% of them can be withdrawn to the UserStakingPool contract /// to reward LRC stakers; 20% of them can be withdrawn to the Loopring DAO, /// and the remaining 10% can be burned to reduce LRC's total supply. 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); /// @dev Sets depdending contract address. All these addresses can be zero. /// @param _userStakingPoolAddress The address of the user staking pool. /// @param _tokenSellerAddress The address of the token seller. /// @param _daoAddress The address of the DAO contract. function updateSettings( address _userStakingPoolAddress, address _tokenSellerAddress, address _daoAddress ) external; /// @dev Claims LRC as staking reward to the IUserStakingPool contract. /// Note that this function can only be called by /// the IUserStakingPool contract. /// /// @param amount The amount of LRC to be claimed. function claimStakingReward(uint amount) external; /// @dev Withdraws LRC to DAO and in the meanwhile burn some LRC according to /// the predefined percentages. function fundDAO() external; /// @dev Sells a non-LRC token or Ether to LRC. If no TokenSeller is set, /// the tokens or Ether will be sent to the owner. /// @param token The token or ether (0x0) to sell. /// @param amount THe amout of token/ether to sell. function sellTokenForLRC( address token, uint amount ) external; /// @dev Returns some global stats regarding fees. /// @return accumulatedFees The accumulated amount of LRC protocol fees. /// @return accumulatedBurn The accumulated amount of LRC to burn. /// @return accumulatedDAOFund The accumulated amount of LRC as developer pool. /// @return accumulatedReward The accumulated amount of LRC as staking reward. /// @return remainingFees The remaining amount of LRC protocol fees. /// @return remainingBurn The remaining amount of LRC to burn. /// @return remainingDAOFund The remaining amount of LRC as developer pool. /// @return remainingReward The remaining amount of LRC as staking reward. function getProtocolFeeStats() public view returns ( uint accumulatedFees, uint accumulatedBurn, uint accumulatedDAOFund, uint accumulatedReward, uint remainingFees, uint remainingBurn, uint remainingDAOFund, uint remainingReward ); } /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title ITokenSeller /// @dev Use this contract to sell tokenS for as many tokenB. /// @author Daniel Wang - <[email protected]> contract ITokenSeller { /// @dev Sells all tokenS for tokenB /// @param tokenS The token or Ether (0x0) to sell. /// @param tokenB The token to buy. /// @return success True if success, false otherwise. function sellToken( address tokenS, address tokenB ) external payable returns (bool success); } /// @title An Implementation of IProtocolFeeVault. /// @author Daniel Wang - <[email protected]> contract ProtocolFeeVault is Claimable, ReentrancyGuard, IProtocolFeeVault { using AddressUtil for address; using AddressUtil for address payable; using ERC20SafeTransfer for address; using MathUint for uint; constructor(address _lrcAddress) Claimable() public { require(_lrcAddress != address(0), "ZERO_ADDRESS"); lrcAddress = _lrcAddress; } function() external payable { } function updateSettings( address _userStakingPoolAddress, address _tokenSellerAddress, address _daoAddress ) external nonReentrant onlyOwner { require( userStakingPoolAddress != _userStakingPoolAddress || tokenSellerAddress != _tokenSellerAddress || daoAddress != _daoAddress, "SAME_ADDRESSES" ); userStakingPoolAddress = _userStakingPoolAddress; tokenSellerAddress = _tokenSellerAddress; daoAddress = _daoAddress; emit SettingsUpdated(now); } function claimStakingReward( uint amount ) external nonReentrant { require(amount > 0, "ZERO_VALUE"); require(msg.sender == userStakingPoolAddress, "UNAUTHORIZED"); lrcAddress.safeTransferAndVerify(userStakingPoolAddress, amount); claimedReward = claimedReward.add(amount); emit LRCClaimed(amount); } function fundDAO() external nonReentrant { uint amountDAO; uint amountBurn; (, , , , , amountBurn, amountDAO, ) = getProtocolFeeStats(); address recipient = daoAddress == address(0) ? owner : daoAddress; if (amountDAO > 0) { lrcAddress.safeTransferAndVerify(recipient, amountDAO); } if (amountBurn > 0) { require(BurnableERC20(lrcAddress).burn(amountBurn), "BURN_FAILURE"); } claimedBurn = claimedBurn.add(amountBurn); claimedDAOFund = claimedDAOFund.add(amountDAO); emit DAOFunded(amountDAO, amountBurn); } function sellTokenForLRC( address token, uint amount ) external nonReentrant { require(amount > 0, "ZERO_AMOUNT"); require(token != lrcAddress, "PROHIBITED"); address recipient = tokenSellerAddress == address(0) ? owner : tokenSellerAddress; if (token == address(0)) { recipient.sendETHAndVerify(amount, gasleft()); } else { token.safeTransferAndVerify(recipient, amount); } require( tokenSellerAddress == address(0) || ITokenSeller(tokenSellerAddress).sellToken(token, lrcAddress), "SELL_FAILURE" ); emit TokenSold(token, amount); } function getProtocolFeeStats() public view returns ( uint accumulatedFees, uint accumulatedBurn, uint accumulatedDAOFund, uint accumulatedReward, uint remainingFees, uint remainingBurn, uint remainingDAOFund, uint remainingReward ) { remainingFees = ERC20(lrcAddress).balanceOf(address(this)); accumulatedFees = remainingFees.add(claimedReward).add(claimedDAOFund).add(claimedBurn); accumulatedReward = accumulatedFees.mul(REWARD_PERCENTAGE) / 100; accumulatedDAOFund = accumulatedFees.mul(DAO_PERDENTAGE) / 100; accumulatedBurn = accumulatedFees.sub(accumulatedReward).sub(accumulatedDAOFund); remainingReward = accumulatedReward.sub(claimedReward); remainingDAOFund = accumulatedDAOFund.sub(claimedDAOFund); remainingBurn = accumulatedBurn.sub(claimedBurn); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_lrcAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountDAO","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBurn","type":"uint256"}],"name":"DAOFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LRCClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"SettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenSold","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DAO_PERDENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REWARD_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimStakingReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"fundDAO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getProtocolFeeStats","outputs":[{"internalType":"uint256","name":"accumulatedFees","type":"uint256"},{"internalType":"uint256","name":"accumulatedBurn","type":"uint256"},{"internalType":"uint256","name":"accumulatedDAOFund","type":"uint256"},{"internalType":"uint256","name":"accumulatedReward","type":"uint256"},{"internalType":"uint256","name":"remainingFees","type":"uint256"},{"internalType":"uint256","name":"remainingBurn","type":"uint256"},{"internalType":"uint256","name":"remainingDAOFund","type":"uint256"},{"internalType":"uint256","name":"remainingReward","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":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellTokenForLRC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSellerAddress","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"},{"constant":false,"inputs":[{"internalType":"address","name":"_userStakingPoolAddress","type":"address"},{"internalType":"address","name":"_tokenSellerAddress","type":"address"},{"internalType":"address","name":"_daoAddress","type":"address"}],"name":"updateSettings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"userStakingPoolAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516112f93803806112f98339818101604052602081101561003357600080fd5b5051600080546001600160a01b031916331790556001600160a01b038116610091576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055611239806100c06000396000f3fe6080604052600436106100f35760003560e01c806368b79c321161008a578063e30c397811610059578063e30c3978146102c9578063e3fe4764146102de578063f2fde38b146102f3578063fc72b1ed14610326576100f3565b806368b79c3214610263578063715018a61461028a5780638da5cb5b1461029f578063a0cea6c0146102b4576100f3565b80633d6cf722116100c65780633d6cf722146101df5780634e71e0c8146101f457806357aabe9114610209578063611633791461024e576100f3565b80632131c68c146100f5578063239cd4a4146101265780632a7bf6bf14610150578063365a906c14610189575b005b34801561010157600080fd5b5061010a61033b565b604080516001600160a01b039092168252519081900360200190f35b34801561013257600080fd5b506100f36004803603602081101561014957600080fd5b503561034a565b34801561015c57600080fd5b506100f36004803603604081101561017357600080fd5b506001600160a01b038135169060200135610492565b34801561019557600080fd5b5061019e610711565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b3480156101eb57600080fd5b5061010a610891565b34801561020057600080fd5b506100f36108a0565b34801561021557600080fd5b506100f36004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013582169160409091013516610952565b34801561025a57600080fd5b506100f3610ae7565b34801561026f57600080fd5b50610278610ccd565b60408051918252519081900360200190f35b34801561029657600080fd5b506100f3610cd2565b3480156102ab57600080fd5b5061010a610d6a565b3480156102c057600080fd5b5061010a610d79565b3480156102d557600080fd5b5061010a610d88565b3480156102ea57600080fd5b5061010a610d97565b3480156102ff57600080fd5b506100f36004803603602081101561031657600080fd5b50356001600160a01b0316610da6565b34801561033257600080fd5b50610278610e7f565b6006546001600160a01b031681565b6002541561038c576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b6001600255806103d0576040805162461bcd60e51b815260206004820152600a6024820152695a45524f5f56414c554560b01b604482015290519081900360640190fd5b6003546001600160a01b0316331461041e576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600354600454610441916001600160a01b0391821691168363ffffffff610e8416565b600754610454908263ffffffff610e9516565b6007556040805182815290517faf9f8e373f3b94eb4c733ac25dd927271dc24febef9ae82f0868502653fdb65c9181900360200190a1506000600255565b600254156104d4576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025580610519576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6004546001600160a01b0383811691161415610569576040805162461bcd60e51b815260206004820152600a602482015269141493d212509255115160b21b604482015290519081900360640190fd5b6005546000906001600160a01b03161561058e576005546001600160a01b031661059b565b6000546001600160a01b03165b90506001600160a01b0383166105cd576105c7825a6001600160a01b038416919063ffffffff610ee216565b506105e7565b6105e76001600160a01b038416828463ffffffff610e8416565b6005546001600160a01b031615806106835750600554600480546040805163dc42f97160e01b81526001600160a01b0388811694820194909452918316602483015251919092169163dc42f9719160448083019260209291908290030181600087803b15801561065657600080fd5b505af115801561066a573d6000803e3d6000fd5b505050506040513d602081101561068057600080fd5b50515b6106c3576040805162461bcd60e51b815260206004820152600c60248201526b53454c4c5f4641494c55524560a01b604482015290519081900360640190fd5b604080516001600160a01b03851681526020810184905281517ffe2ff4cf36ff7d2c2b06eb960897ee0d76d9c3e58da12feb7b93e86b226dd344929181900390910190a15050600060025550565b600080600080600080600080600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b50516009546008546007549296506107e4926107d891908290899063ffffffff610e9516565b9063ffffffff610e9516565b975060646107f989604663ffffffff610f4c16565b8161080057fe5b049450606461081689601463ffffffff610f4c16565b8161081d57fe5b049550610840866108348a8863ffffffff610fa416565b9063ffffffff610fa416565b965061085760075486610fa490919063ffffffff16565b905061086e60085487610fa490919063ffffffff16565b915061088560095488610fa490919063ffffffff16565b92509091929394959697565b6004546001600160a01b031681565b6001546001600160a01b031633146108ee576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60025415610994576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016002556000546001600160a01b031633146109e7576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6003546001600160a01b038481169116141580610a1257506005546001600160a01b03838116911614155b80610a2b57506006546001600160a01b03828116911614155b610a6d576040805162461bcd60e51b815260206004820152600e60248201526d53414d455f41444452455353455360901b604482015290519081900360640190fd5b600380546001600160a01b038086166001600160a01b0319928316179092556005805485841690831617905560068054928416929091169190911790556040805142815290517f4b804a0bfbdc2639203b93035be561d86f65f52b7e14984f95ec9d298cafccac9181900360200190a15050600060025550565b60025415610b29576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b6001600255600080610b39610711565b50600654909850909650600095506001600160a01b0316159350610b6c92505050576006546001600160a01b0316610b79565b6000546001600160a01b03165b90508215610b9e57600454610b9e906001600160a01b0316828563ffffffff610e8416565b8115610c5c576004805460408051630852cd8d60e31b8152928301859052516001600160a01b03909116916342966c689160248083019260209291908290030181600087803b158015610bf057600080fd5b505af1158015610c04573d6000803e3d6000fd5b505050506040513d6020811015610c1a57600080fd5b5051610c5c576040805162461bcd60e51b815260206004820152600c60248201526b4255524e5f4641494c55524560a01b604482015290519081900360640190fd5b600954610c6f908363ffffffff610e9516565b600955600854610c85908463ffffffff610e9516565b600855604080518481526020810184905281517ff5deee3dde315bb684736ad09d95603ad754fe04704f5a2f0719216a09dac68d929181900390910190a15050600060025550565b601481565b6000546001600160a01b03163314610d20576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031681565b6003546001600160a01b031681565b6001546001600160a01b031681565b6005546001600160a01b031681565b6000546001600160a01b03163314610df4576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001600160a01b03811615801590610e1a57506000546001600160a01b03828116911614155b610e5d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b604681565b610e908383835a610ff1565b505050565b81810182811015610edc576040805162461bcd60e51b815260206004820152600c60248201526b4144445f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b6000610efe6001600160a01b038516848463ffffffff61104716565b905080610f45576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b9392505050565b818102821580610f64575081838281610f6157fe5b04145b610edc576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b600082821115610feb576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b50900390565b610ffd848484846110ca565b611041576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b50505050565b60008261105657506001610f45565b600061106a856001600160a01b03166111c6565b6040519091506001600160a01b03821690849086906000818181858888f193505050503d80600081146110b9576040519150601f19603f3d011682016040523d82523d6000602084013e6110be565b606091505b50909695505050505050565b604080516001600160a01b038086166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485938a16928792869282918083835b602083106111465780518252601f199092019160209182019101611127565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d80600081146111a9576040519150601f19603f3d011682016040523d82523d6000602084013e6111ae565b606091505b505090506111bb816111c9565b979650505050505050565b90565b60008115611200573d80156111e957602081146111f257600092506111fe565b600192506111fe565b60206000803e60005192505b505b509056fea265627a7a72315820d6c666379e3205e991bbc18c9be175a4567af7fe2545e38a306418a201e40b3b64736f6c63430005100032000000000000000000000000bbbbca6a901c926f240b89eacb641d8aec7aeafd
Deployed Bytecode
0x6080604052600436106100f35760003560e01c806368b79c321161008a578063e30c397811610059578063e30c3978146102c9578063e3fe4764146102de578063f2fde38b146102f3578063fc72b1ed14610326576100f3565b806368b79c3214610263578063715018a61461028a5780638da5cb5b1461029f578063a0cea6c0146102b4576100f3565b80633d6cf722116100c65780633d6cf722146101df5780634e71e0c8146101f457806357aabe9114610209578063611633791461024e576100f3565b80632131c68c146100f5578063239cd4a4146101265780632a7bf6bf14610150578063365a906c14610189575b005b34801561010157600080fd5b5061010a61033b565b604080516001600160a01b039092168252519081900360200190f35b34801561013257600080fd5b506100f36004803603602081101561014957600080fd5b503561034a565b34801561015c57600080fd5b506100f36004803603604081101561017357600080fd5b506001600160a01b038135169060200135610492565b34801561019557600080fd5b5061019e610711565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b3480156101eb57600080fd5b5061010a610891565b34801561020057600080fd5b506100f36108a0565b34801561021557600080fd5b506100f36004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013582169160409091013516610952565b34801561025a57600080fd5b506100f3610ae7565b34801561026f57600080fd5b50610278610ccd565b60408051918252519081900360200190f35b34801561029657600080fd5b506100f3610cd2565b3480156102ab57600080fd5b5061010a610d6a565b3480156102c057600080fd5b5061010a610d79565b3480156102d557600080fd5b5061010a610d88565b3480156102ea57600080fd5b5061010a610d97565b3480156102ff57600080fd5b506100f36004803603602081101561031657600080fd5b50356001600160a01b0316610da6565b34801561033257600080fd5b50610278610e7f565b6006546001600160a01b031681565b6002541561038c576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b6001600255806103d0576040805162461bcd60e51b815260206004820152600a6024820152695a45524f5f56414c554560b01b604482015290519081900360640190fd5b6003546001600160a01b0316331461041e576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600354600454610441916001600160a01b0391821691168363ffffffff610e8416565b600754610454908263ffffffff610e9516565b6007556040805182815290517faf9f8e373f3b94eb4c733ac25dd927271dc24febef9ae82f0868502653fdb65c9181900360200190a1506000600255565b600254156104d4576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b600160025580610519576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6004546001600160a01b0383811691161415610569576040805162461bcd60e51b815260206004820152600a602482015269141493d212509255115160b21b604482015290519081900360640190fd5b6005546000906001600160a01b03161561058e576005546001600160a01b031661059b565b6000546001600160a01b03165b90506001600160a01b0383166105cd576105c7825a6001600160a01b038416919063ffffffff610ee216565b506105e7565b6105e76001600160a01b038416828463ffffffff610e8416565b6005546001600160a01b031615806106835750600554600480546040805163dc42f97160e01b81526001600160a01b0388811694820194909452918316602483015251919092169163dc42f9719160448083019260209291908290030181600087803b15801561065657600080fd5b505af115801561066a573d6000803e3d6000fd5b505050506040513d602081101561068057600080fd5b50515b6106c3576040805162461bcd60e51b815260206004820152600c60248201526b53454c4c5f4641494c55524560a01b604482015290519081900360640190fd5b604080516001600160a01b03851681526020810184905281517ffe2ff4cf36ff7d2c2b06eb960897ee0d76d9c3e58da12feb7b93e86b226dd344929181900390910190a15050600060025550565b600080600080600080600080600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b50516009546008546007549296506107e4926107d891908290899063ffffffff610e9516565b9063ffffffff610e9516565b975060646107f989604663ffffffff610f4c16565b8161080057fe5b049450606461081689601463ffffffff610f4c16565b8161081d57fe5b049550610840866108348a8863ffffffff610fa416565b9063ffffffff610fa416565b965061085760075486610fa490919063ffffffff16565b905061086e60085487610fa490919063ffffffff16565b915061088560095488610fa490919063ffffffff16565b92509091929394959697565b6004546001600160a01b031681565b6001546001600160a01b031633146108ee576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60025415610994576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016002556000546001600160a01b031633146109e7576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6003546001600160a01b038481169116141580610a1257506005546001600160a01b03838116911614155b80610a2b57506006546001600160a01b03828116911614155b610a6d576040805162461bcd60e51b815260206004820152600e60248201526d53414d455f41444452455353455360901b604482015290519081900360640190fd5b600380546001600160a01b038086166001600160a01b0319928316179092556005805485841690831617905560068054928416929091169190911790556040805142815290517f4b804a0bfbdc2639203b93035be561d86f65f52b7e14984f95ec9d298cafccac9181900360200190a15050600060025550565b60025415610b29576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b6001600255600080610b39610711565b50600654909850909650600095506001600160a01b0316159350610b6c92505050576006546001600160a01b0316610b79565b6000546001600160a01b03165b90508215610b9e57600454610b9e906001600160a01b0316828563ffffffff610e8416565b8115610c5c576004805460408051630852cd8d60e31b8152928301859052516001600160a01b03909116916342966c689160248083019260209291908290030181600087803b158015610bf057600080fd5b505af1158015610c04573d6000803e3d6000fd5b505050506040513d6020811015610c1a57600080fd5b5051610c5c576040805162461bcd60e51b815260206004820152600c60248201526b4255524e5f4641494c55524560a01b604482015290519081900360640190fd5b600954610c6f908363ffffffff610e9516565b600955600854610c85908463ffffffff610e9516565b600855604080518481526020810184905281517ff5deee3dde315bb684736ad09d95603ad754fe04704f5a2f0719216a09dac68d929181900390910190a15050600060025550565b601481565b6000546001600160a01b03163314610d20576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031681565b6003546001600160a01b031681565b6001546001600160a01b031681565b6005546001600160a01b031681565b6000546001600160a01b03163314610df4576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001600160a01b03811615801590610e1a57506000546001600160a01b03828116911614155b610e5d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b604681565b610e908383835a610ff1565b505050565b81810182811015610edc576040805162461bcd60e51b815260206004820152600c60248201526b4144445f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b6000610efe6001600160a01b038516848463ffffffff61104716565b905080610f45576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b9392505050565b818102821580610f64575081838281610f6157fe5b04145b610edc576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b600082821115610feb576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b50900390565b610ffd848484846110ca565b611041576040805162461bcd60e51b815260206004820152601060248201526f5452414e534645525f4641494c55524560801b604482015290519081900360640190fd5b50505050565b60008261105657506001610f45565b600061106a856001600160a01b03166111c6565b6040519091506001600160a01b03821690849086906000818181858888f193505050503d80600081146110b9576040519150601f19603f3d011682016040523d82523d6000602084013e6110be565b606091505b50909695505050505050565b604080516001600160a01b038086166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485938a16928792869282918083835b602083106111465780518252601f199092019160209182019101611127565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d80600081146111a9576040519150601f19603f3d011682016040523d82523d6000602084013e6111ae565b606091505b505090506111bb816111c9565b979650505050505050565b90565b60008115611200573d80156111e957602081146111f257600092506111fe565b600192506111fe565b60206000803e60005192505b505b509056fea265627a7a72315820d6c666379e3205e991bbc18c9be175a4567af7fe2545e38a306418a201e40b3b64736f6c63430005100032
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
Deployed Bytecode Sourcemap
23313:3936:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19425:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19425:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;19425:25:0;;;;;;;;;;;;;;24429:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24429:391:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24429:391:0;;:::i;25506:745::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25506:745:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;25506:745:0;;;;;;;;:::i;26259:987::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26259:987:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19353:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19353:25:0;;;:::i;8948:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8948:205:0;;;:::i;23797:624::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23797:624:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23797:624:0;;;;;;;;;;;;;;;;;;;:::i;24828:670::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24828:670:0;;;:::i;19252:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19252:48:0;;;:::i;:::-;;;;;;;;;;;;;;;;7837:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7837:161:0;;;:::i;6898:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6898:20:0;;;:::i;19309:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19309:37:0;;;:::i;8266:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8266:27:0;;;:::i;19385:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19385:33:0;;;:::i;8639:229::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8639:229:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8639:229:0;-1:-1:-1;;;;;8639:229:0;;:::i;19197:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19197:48:0;;;:::i;19425:25::-;;;-1:-1:-1;;;;;19425:25:0;;:::o;24429:391::-;17745:11;;:16;17737:39;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;;;;17847:1;17833:11;:15;24554:10;24546:33;;;;;-1:-1:-1;;;24546:33:0;;;;;;;;;;;;-1:-1:-1;;;24546:33:0;;;;;;;;;;;;;;;24612:22;;-1:-1:-1;;;;;24612:22:0;24598:10;:36;24590:61;;;;;-1:-1:-1;;;24590:61:0;;;;;;;;;;;;-1:-1:-1;;;24590:61:0;;;;;;;;;;;;;;;24695:22;;24662:10;;:64;;-1:-1:-1;;;;;24662:10:0;;;;24695:22;24719:6;24662:64;:32;:64;:::i;:::-;24753:13;;:25;;24771:6;24753:25;:17;:25;:::i;:::-;24737:13;:41;24794:18;;;;;;;;;;;;;;;;;-1:-1:-1;17946:1:0;17932:11;:15;24429:391::o;25506:745::-;17745:11;;:16;17737:39;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;;;;17847:1;17833:11;:15;25655:10;25647:34;;;;;-1:-1:-1;;;25647:34:0;;;;;;;;;;;;-1:-1:-1;;;25647:34:0;;;;;;;;;;;;;;;25709:10;;-1:-1:-1;;;;;25700:19:0;;;25709:10;;25700:19;;25692:42;;;;;-1:-1:-1;;;25692:42:0;;;;;;;;;;;;-1:-1:-1;;;25692:42:0;;;;;;;;;;;;;;;25767:18;;25747:17;;-1:-1:-1;;;;;25767:18:0;:32;:61;;25810:18;;-1:-1:-1;;;;;25810:18:0;25767:61;;;25802:5;;-1:-1:-1;;;;;25802:5:0;25767:61;25747:81;-1:-1:-1;;;;;;25845:19:0;;25841:176;;25881:45;25908:6;25916:9;-1:-1:-1;;;;;25881:26:0;;;:45;;:26;:45;:::i;:::-;;25841:176;;;25959:46;-1:-1:-1;;;;;25959:27:0;;25987:9;25998:6;25959:46;:27;:46;:::i;:::-;26051:18;;-1:-1:-1;;;;;26051:18:0;:32;;:110;;-1:-1:-1;26113:18:0;;26150:10;;;26100:61;;;-1:-1:-1;;;26100:61:0;;-1:-1:-1;;;;;26100:61:0;;;;;;;;;;26150:10;;;26100:61;;;;;26113:18;;;;;26100:42;;:61;;;;;;;;;;;;;;26113:18;;26100:61;;;5:2:-1;;;;30:1;27;20:12;5:2;26100:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26100:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26100:61:0;26051:110;26029:172;;;;;-1:-1:-1;;;26029:172:0;;;;;;;;;;;;-1:-1:-1;;;26029:172:0;;;;;;;;;;;;;;;26219:24;;;-1:-1:-1;;;;;26219:24:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17946:1:0;17932:11;:15;-1:-1:-1;25506:745:0:o;26259:987::-;26352:20;26387;26422:23;26460:22;26497:18;26530;26563:21;26599:20;26669:10;;;;;;;;;-1:-1:-1;;;;;26669:10:0;-1:-1:-1;;;;;26663:27:0;;26699:4;26663:42;;;;;;;;;;;;;-1:-1:-1;;;;;26663:42:0;-1:-1:-1;;;;;26663:42:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26663:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26663:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26663:42:0;26791:11;;26771:14;;26752:13;;26663:42;;-1:-1:-1;26734:69:0;;:52;;26771:14;26734:52;;26663:42;;26734:32;:17;:32;:::i;:::-;:36;:52;:36;:52;:::i;:69::-;26716:87;-1:-1:-1;26877:3:0;26836:38;26716:87;19243:2;26836:38;:19;:38;:::i;:::-;:44;;;;;;;-1:-1:-1;26950:3:0;26912:35;:15;19298:2;26912:35;:19;:35;:::i;:::-;:41;;;;;;;-1:-1:-1;26982:62:0;26912:41;26982:38;:15;27002:17;26982:38;:19;:38;:::i;:::-;:42;:62;:42;:62;:::i;:::-;26964:80;;27075:36;27097:13;;27075:17;:21;;:36;;;;:::i;:::-;27057:54;;27141:38;27164:14;;27141:18;:22;;:38;;;;:::i;:::-;27122:57;;27206:32;27226:11;;27206:15;:19;;:32;;;;:::i;:::-;27190:48;;26259:987;;;;;;;;:::o;19353:25::-;;;-1:-1:-1;;;;;19353:25:0;;:::o;8948:205::-;8447:12;;-1:-1:-1;;;;;8447:12:0;8433:10;:26;8425:51;;;;;-1:-1:-1;;;8425:51:0;;;;;;;;;;;;-1:-1:-1;;;8425:51:0;;;;;;;;;;;;;;;9065:12;;;9058:5;;9037:41;;-1:-1:-1;;;;;9065:12:0;;;;9058:5;;;;9037:41;;;9097:12;;;;9089:20;;-1:-1:-1;;;;;;9089:20:0;;;-1:-1:-1;;;;;9097:12:0;;9089:20;;;;9120:25;;;8948:205::o;23797:624::-;17745:11;;:16;17737:39;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;;;;17847:1;17833:11;:15;7360:5;;-1:-1:-1;;;;;7360:5:0;7346:10;:19;7338:44;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;;;;24039:22;;-1:-1:-1;;;;;24039:49:0;;;:22;;:49;;;:107;;-1:-1:-1;24105:18:0;;-1:-1:-1;;;;;24105:41:0;;;:18;;:41;;24039:107;:149;;;-1:-1:-1;24163:10:0;;-1:-1:-1;;;;;24163:25:0;;;:10;;:25;;24039:149;24017:213;;;;;-1:-1:-1;;;24017:213:0;;;;;;;;;;;;-1:-1:-1;;;24017:213:0;;;;;;;;;;;;;;;24241:22;:48;;-1:-1:-1;;;;;24241:48:0;;;-1:-1:-1;;;;;;24241:48:0;;;;;;;24300:18;:40;;;;;;;;;;;24351:10;:24;;;;;;;;;;;;;;;24393:20;;;24409:3;24393:20;;;;;;;;;;;;;-1:-1:-1;;17946:1:0;17932:11;:15;-1:-1:-1;23797:624:0:o;24828:670::-;17745:11;;:16;17737:39;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;-1:-1:-1;;;17737:39:0;;;;;;;;;;;;;;;17847:1;17833:11;:15;24903:14;;24992:21;:19;:21::i;:::-;-1:-1:-1;25046:10:0;;24954:59;;-1:-1:-1;24954:59:0;;-1:-1:-1;25026:17:0;;-1:-1:-1;;;;;;25046:10:0;:24;;-1:-1:-1;25046:45:0;;-1:-1:-1;;;25046:45:0;25081:10;;-1:-1:-1;;;;;25081:10:0;25046:45;;;25073:5;;-1:-1:-1;;;;;25073:5:0;25046:45;25026:65;-1:-1:-1;25108:13:0;;25104:100;;25138:10;;:54;;-1:-1:-1;;;;;25138:10:0;25171:9;25182;25138:54;:32;:54;:::i;:::-;25220:14;;25216:114;;25273:10;;;25259:42;;;-1:-1:-1;;;25259:42:0;;;;;;;;;-1:-1:-1;;;;;25273:10:0;;;;25259:30;;:42;;;;;;;;;;;;;;25273:10;;25259:42;;;5:2:-1;;;;30:1;27;20:12;5:2;25259:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25259:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25259:42:0;25251:67;;;;;-1:-1:-1;;;25251:67:0;;;;;;;;;;;;-1:-1:-1;;;25251:67:0;;;;;;;;;;;;;;;25356:11;;:27;;25372:10;25356:27;:15;:27;:::i;:::-;25342:11;:41;25411:14;;:29;;25430:9;25411:29;:18;:29;:::i;:::-;25394:14;:46;25458:32;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17946:1:0;17932:11;:15;-1:-1:-1;24828:670:0:o;19252:48::-;19298:2;19252:48;:::o;7837:161::-;7360:5;;-1:-1:-1;;;;;7360:5:0;7346:10;:19;7338:44;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;;;;7958:1;7943:5;;7922:39;;-1:-1:-1;;;;;7943:5:0;;;;7922:39;;7958:1;;7922:39;7988:1;7972:18;;-1:-1:-1;;;;;;7972:18:0;;;7837:161::o;6898:20::-;;;-1:-1:-1;;;;;6898:20:0;;:::o;19309:37::-;;;-1:-1:-1;;;;;19309:37:0;;:::o;8266:27::-;;;-1:-1:-1;;;;;8266:27:0;;:::o;19385:33::-;;;-1:-1:-1;;;;;19385:33:0;;:::o;8639:229::-;7360:5;;-1:-1:-1;;;;;7360:5:0;7346:10;:19;7338:44;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;-1:-1:-1;;;7338:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8763:22:0;;;;;;:43;;-1:-1:-1;8801:5:0;;-1:-1:-1;;;;;8789:17:0;;;8801:5;;8789:17;;8763:43;8755:71;;;;;-1:-1:-1;;;8755:71:0;;;;;;;;;;;;-1:-1:-1;;;8755:71:0;;;;;;;;;;;;;;;8837:12;:23;;-1:-1:-1;;;;;;8837:23:0;-1:-1:-1;;;;;8837:23:0;;;;;;;;;;8639:229::o;19197:48::-;19243:2;19197:48;:::o;9960:278::-;10105:125;10153:5;10173:2;10190:5;10210:9;10105:33;:125::i;:::-;9960:278;;;:::o;15931:191::-;16067:5;;;16091:6;;;;16083:31;;;;;-1:-1:-1;;;16083:31:0;;;;;;;;;;;;-1:-1:-1;;;16083:31:0;;;;;;;;;;;;;;;15931:191;;;;:::o;4108:269::-;4254:12;4294:28;-1:-1:-1;;;;;4294:10:0;;4305:6;4313:8;4294:28;:10;:28;:::i;:::-;4284:38;;4341:7;4333:36;;;;;-1:-1:-1;;;4333:36:0;;;;;;;;;;;;-1:-1:-1;;;4333:36:0;;;;;;;;;;;;;;;4108:269;;;;;:::o;15517:205::-;15653:5;;;15677:6;;;:20;;;15696:1;15691;15687;:5;;;;;;:10;15677:20;15669:45;;;;;-1:-1:-1;;;15669:45:0;;;;;;;;;;;;-1:-1:-1;;;15669:45:0;;;;;;;;;;;;;;15730:193;15838:4;15873:1;15868;:6;;15860:32;;;;;-1:-1:-1;;;15860:32:0;;;;;;;;;;;;-1:-1:-1;;;15860:32:0;;;;;;;;;;;;;;;-1:-1:-1;15910:5:0;;;15730:193::o;10545:310::-;10751:52;10776:5;10783:2;10787:5;10794:8;10751:24;:52::i;:::-;10729:118;;;;;-1:-1:-1;;;10729:118:0;;;;;;;;;;;;-1:-1:-1;;;10729:118:0;;;;;;;;;;;;;;;10545:310;;;;:::o;3560:393::-;3697:12;3731:11;3727:55;;-1:-1:-1;3766:4:0;3759:11;;3727:55;3792:25;3820:14;:2;-1:-1:-1;;;;;3820:12:0;;:14::i;:::-;3899:46;;3792:42;;-1:-1:-1;;;;;;3899:14:0;;;3932:8;;3920:6;;3899:46;;;;3920:6;3899:14;3932:8;3899:46;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;-1:-1;3885:60:0;;3560:393;-1:-1:-1;;;;;;3560:393:0:o;10863:796::-;11441:103;;;-1:-1:-1;;;;;11441:103:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11441:103:0;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;11574:34:0;;;;11040:4;;;;11574:10;;;11589:8;;11441:103;;11574:34;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11574:34:0;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;11555:53:0;;;11626:25;11643:7;11626:16;:25::i;:::-;11619:32;10863:796;-1:-1:-1;;;;;;;10863:796:0:o;3236:173::-;3395:4;3236:173::o;13643:1127::-;13753:4;14076:7;14072:666;;;14135:16;14290:61;;;;14468:2;14463:115;;;;14692:1;14681:12;;14128:584;;14290:61;14331:1;14320:12;;14290:61;;14463:115;14515:2;14512:1;14509;14494:24;14557:1;14551:8;14540:19;;14128:584;;14109:618;-1:-1:-1;14755:7:0;13643:1127::o
Swarm Source
bzzr://d6c666379e3205e991bbc18c9be175a4567af7fe2545e38a306418a201e40b3b
Loading...
Loading
Loading...
Loading
OVERVIEW
The Fee Vault for Loopring Protocol (both v1 and v2)
[ 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.