More Info
Private Name Tags
ContractCreator
Latest 21 from a total of 21 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 10589246 | 23 hrs ago | IN | 0 S | 0.00880566 | ||||
Withdraw | 10589059 | 23 hrs ago | IN | 0 S | 0.00282386 | ||||
Catch End Price | 10589040 | 23 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10586296 | 24 hrs ago | IN | 0 S | 0.00401109 | ||||
Catch End Price | 10586172 | 24 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10583932 | 24 hrs ago | IN | 0 S | 0.00401016 | ||||
Catch End Price | 10583908 | 24 hrs ago | IN | 0 S | 0.00961702 | ||||
Deposit | 10583595 | 24 hrs ago | IN | 0 S | 0.00528088 | ||||
Catch End Price | 10579688 | 24 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10578250 | 24 hrs ago | IN | 0 S | 0.00422454 | ||||
Catch End Price | 10578023 | 24 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10576722 | 24 hrs ago | IN | 0 S | 0.00422553 | ||||
Catch End Price | 10575498 | 25 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10568037 | 25 hrs ago | IN | 0 S | 0.00431694 | ||||
Catch End Price | 10567832 | 25 hrs ago | IN | 0 S | 0.00961702 | ||||
Vote | 10560685 | 26 hrs ago | IN | 0 S | 0.00422454 | ||||
Deposit | 10560056 | 26 hrs ago | IN | 0 S | 0.00408019 | ||||
Deposit | 10559613 | 26 hrs ago | IN | 0 S | 0.00668756 | ||||
Start Rounds | 10552793 | 27 hrs ago | IN | 0 S | 0.00730482 | ||||
Set Round Durati... | 10552790 | 27 hrs ago | IN | 0 S | 0.00186873 | ||||
Update Tomb Plus | 10552581 | 27 hrs ago | IN | 0 S | 0.0044633 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Locker
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 500 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.26; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import "./interfaces/IManager.sol"; import "./interfaces/ITsharePlus.sol"; import "./interfaces/IOTombPlus.sol"; contract Locker is ReentrancyGuard { IManager private Manager; ITSharePlus private Share; IOTombPlus private OTomb; uint256 public totalOTombClaimed; struct UserGlobal { uint256 deposited; uint256 lastRoundClaimed; } mapping(address => UserGlobal) public userGlobalDetails; struct UserRound { uint256 engaged; uint8 position; // 0 = unknown, 1 = long, 2 = short } mapping(address => mapping(uint256 => UserRound)) public userRoundsDetails; uint256 public lastRoundId = 1; uint256 public roundDuration = 1 hours; uint256 private _bonus = 50; // 0.5% struct Round { uint256 startPrice; uint256 endPrice; uint256 startTime; uint256 endTime; uint256 bonus; uint8 winningPosition; // 0 = unknown, 1 = long, 2 = short } mapping(uint256 => Round) public rounds; uint256 private _deviationThreshold = 50; // 0.05% AggregatorV3Interface internal dataFeed; constructor(address _manager) { Manager = IManager(_manager); dataFeed = AggregatorV3Interface( 0xc76dFb89fF298145b417d221B2c747d84952e01d ); } modifier onlyOwner() { require(msg.sender == Manager.owner(), "Not Authorized"); _; } function setManager(address _manager) external onlyOwner { Manager = IManager(_manager); } function setDataFeed(address _dataFeed) external onlyOwner { dataFeed = AggregatorV3Interface(_dataFeed); } function setRoundDuration(uint256 _roundDuration) external onlyOwner { roundDuration = _roundDuration; } function setBonus(uint256 __bonus) external onlyOwner { _bonus = __bonus; } function updateTombPlus() external onlyOwner { Share = ITSharePlus(_getContract("Share")); OTomb = IOTombPlus(_getContract("OTomb")); } // TESTNET bool public testnet = true; uint256 public currentPrice = 100; function setTestnet(bool _testnet) external onlyOwner { testnet = _testnet; } function setCurrentPrice(uint256 _currentPrice) external onlyOwner { currentPrice = _currentPrice; } // END TESTNET function startRounds() external onlyOwner { rounds[lastRoundId] = Round({ startPrice: testnet ? currentPrice : uint256(getChainlinkDataFeedLatestAnswer()), endPrice: 0, startTime: block.timestamp, endTime: block.timestamp + roundDuration, bonus: _bonus, winningPosition: 0 }); } function catchEndPrice() external { uint256 roundId = lastRoundId; Round storage round = rounds[roundId]; require(round.endPrice == 0, "round already ended"); require(block.timestamp >= round.endTime, "round not ended yet"); round.endPrice = testnet ? currentPrice : uint256(getChainlinkDataFeedLatestAnswer()); round.winningPosition = round.endPrice > round.startPrice ? 1 : 2; lastRoundId++; Round storage nextRound = rounds[lastRoundId]; nextRound.startPrice = round.endPrice; nextRound.startTime = round.endTime; nextRound.endTime = block.timestamp + roundDuration; nextRound.bonus = _bonus; nextRound.winningPosition = 0; } function deposit(uint256 amount) external nonReentrant { require(rounds[1].startPrice != 0, "not started"); UserGlobal storage userGlobal = userGlobalDetails[msg.sender]; userGlobal.deposited += amount; userGlobal.lastRoundClaimed = lastRoundId; Share.transferFrom(msg.sender, address(this), amount); } function withdraw(uint256 amount) external nonReentrant { UserGlobal storage userGlobal = userGlobalDetails[msg.sender]; require(userGlobal.deposited >= amount, "Not enough deposited"); require(userRoundsDetails[msg.sender][lastRoundId].position == 0, "user already engaged in round"); unchecked { userGlobal.deposited -= amount; } Share.transfer(msg.sender, amount); } function vote(uint8 position) external nonReentrant { UserRound storage user = userRoundsDetails[msg.sender][lastRoundId]; require(user.position == 0, "user already engaged"); require(position == 1 || position == 2, "not a valid choice"); user.engaged = userGlobalDetails[msg.sender].deposited; user.position = position; } function claim() external nonReentrant { uint256 rewards = _rewardsAccByUser(msg.sender); if (rewards == 0) { return; } totalOTombClaimed += rewards; userGlobalDetails[msg.sender].lastRoundClaimed = lastRoundId - 1; OTomb.mint(msg.sender, rewards); } function getChainlinkDataFeedLatestAnswer() public view returns (int) { // prettier-ignore ( /* uint80 roundID */, int answer, /*uint startedAt*/, /*uint timeStamp*/, /*uint80 answeredInRound*/ ) = dataFeed.latestRoundData(); return answer; } function _rewardsAccByUser(address user) private view returns (uint256) { uint256 _currentRoundId = lastRoundId; uint256 _lastRoundClaimed = userGlobalDetails[user].lastRoundClaimed; if (_currentRoundId == _lastRoundClaimed) { return 0; } uint256 sum = 0; for (uint256 i = _lastRoundClaimed; i < _currentRoundId; i++) { UserRound memory _user = userRoundsDetails[user][i]; Round memory round = rounds[i]; if (_user.position == round.winningPosition) { sum += (_user.engaged * round.bonus) / 10000; } } return sum; } function getPendingRewards(address user) external view returns (uint256) { return _rewardsAccByUser(user); } function _getContract( string memory contractName ) internal view returns (address) { return Manager.getContract(contractName); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // solhint-disable-next-line interface-starts-with-i interface AggregatorV3Interface { function decimals() external view returns (uint8); function description() external view returns (string memory); function version() external view returns (uint256); function getRoundData( uint80 _roundId ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.20; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, * consider using {ReentrancyGuardTransient} instead. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.26; interface IManager { function getContract(string memory name) external view returns (address); function owner() external view returns (address); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.26; interface IOTombPlus { function mint(address, uint256) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface ITSharePlus is IERC20 { function WLMint(uint256 amount, address _to) external; function burnFrom(address account, uint256 amount) external; }
{ "optimizer": { "enabled": true, "runs": 500 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"catchEndPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainlinkDataFeedLatestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRoundId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"roundDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rounds","outputs":[{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"endPrice","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"bonus","type":"uint256"},{"internalType":"uint8","name":"winningPosition","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"__bonus","type":"uint256"}],"name":"setBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_currentPrice","type":"uint256"}],"name":"setCurrentPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dataFeed","type":"address"}],"name":"setDataFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundDuration","type":"uint256"}],"name":"setRoundDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_testnet","type":"bool"}],"name":"setTestnet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startRounds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"testnet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOTombClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateTombPlus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userGlobalDetails","outputs":[{"internalType":"uint256","name":"deposited","type":"uint256"},{"internalType":"uint256","name":"lastRoundClaimed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRoundsDetails","outputs":[{"internalType":"uint256","name":"engaged","type":"uint256"},{"internalType":"uint8","name":"position","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"position","type":"uint8"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600755610e1060085560326009819055600b55600c805460ff60a01b1916600160a01b1790556064600d55348015603c57600080fd5b506040516116f43803806116f4833981016040819052605991609f565b6001600081905580546001600160a01b039092166001600160a01b0319928316179055600c805490911673c76dfb89ff298145b417d221b2c747d84952e01d17905560cd565b60006020828403121560b057600080fd5b81516001600160a01b038116811460c657600080fd5b9392505050565b611618806100dc6000396000f3fe608060405234801561001057600080fd5b506004361061017d5760003560e01c806386d31cbc116100e3578063cca5fc101161008c578063ef43d65f11610066578063ef43d65f1461036b578063f6ed2017146103a7578063f7cb789a146103ba57600080fd5b8063cca5fc1014610348578063d0ebdbe714610350578063e06c25f81461036357600080fd5b8063b3f98adc116100bd578063b3f98adc1461031a578063b6b55f251461032d578063bea4dfb51461034057600080fd5b806386d31cbc146102885780638c65c81f1461029b5780639d1b464a1461031157600080fd5b806336c92c3f116101455780635e7a8dec1161011f5780635e7a8dec1461022157806362cc26a01461022957806367e15f1b1461027557600080fd5b806336c92c3f146101fd578063388ca80f146102105780634e71d92d1461021957600080fd5b80630b48b678146101825780630b98f975146101ab57806318b20071146101c05780632e1a7d4d146101d357806333654f07146101e6575b600080fd5b600c5461019690600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6101be6101b936600461138f565b6103c3565b005b6101be6101ce36600461138f565b610495565b6101be6101e136600461138f565b610562565b6101ef60045481565b6040519081526020016101a2565b6101be61020b36600461138f565b6106c6565b6101ef60075481565b6101be610793565b6101be610867565b61025e6102373660046113bd565b60066020908152600092835260408084209091529082529020805460019091015460ff1682565b6040805192835260ff9091166020830152016101a2565b6101be6102833660046113e9565b6109ce565b6101be61029636600461141b565b610ab8565b6102e16102a936600461138f565b600a60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff1686565b604080519687526020870195909552938501929092526060840152608083015260ff1660a082015260c0016101a2565b6101ef600d5481565b6101be610328366004611438565b610b9e565b6101be61033b36600461138f565b610ca0565b6101ef610d7f565b6101be610e04565b6101be61035e3660046113e9565b610f88565b6101be611072565b6103926103793660046113e9565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101a2565b6101ef6103b53660046113e9565b6111c7565b6101ef60085481565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a919061145b565b6001600160a01b0316336001600160a01b0316146104905760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b600955565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c919061145b565b6001600160a01b0316336001600160a01b03161461055d5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600d55565b61056a6111d8565b33600090815260056020526040902080548211156105ca5760405162461bcd60e51b815260206004820152601460248201527f4e6f7420656e6f756768206465706f73697465640000000000000000000000006044820152606401610487565b336000908152600660209081526040808320600754845290915290206001015460ff161561063a5760405162461bcd60e51b815260206004820152601d60248201527f7573657220616c726561647920656e676167656420696e20726f756e640000006044820152606401610487565b8054829003815560025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af1158015610693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b79190611478565b50506106c36001600055565b50565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073d919061145b565b6001600160a01b0316336001600160a01b03161461078e5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600855565b61079b6111d8565b60006107a633611202565b9050806000036107b6575061085b565b80600460008282546107c891906114ab565b90915550506007546107dc906001906114be565b33600081815260056020526040908190206001019290925560035491516340c10f1960e01b81526004810191909152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561084157600080fd5b505af1158015610855573d6000803e3d6000fd5b50505050505b6108656001600055565b565b6007546000818152600a602052604090206001810154156108ca5760405162461bcd60e51b815260206004820152601360248201527f726f756e6420616c726561647920656e646564000000000000000000000000006044820152606401610487565b806003015442101561091e5760405162461bcd60e51b815260206004820152601360248201527f726f756e64206e6f7420656e64656420796574000000000000000000000000006044820152606401610487565b600c54600160a01b900460ff1661093c57610937610d7f565b610940565b600d545b60018201819055815410610955576002610958565b60015b60058201805460ff191660ff929092169190911790556007805490600061097e836114d1565b90915550506007546000908152600a6020526040902060018201548155600382015460028201556008546109b290426114ab565b60038201556009546004820155600501805460ff191690555050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a45919061145b565b6001600160a01b0316336001600160a01b031614610a965760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f919061145b565b6001600160a01b0316336001600160a01b031614610b805760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600c8054911515600160a01b0260ff60a01b19909216919091179055565b610ba66111d8565b33600090815260066020908152604080832060075484529091529020600181015460ff1615610c175760405162461bcd60e51b815260206004820152601460248201527f7573657220616c726561647920656e67616765640000000000000000000000006044820152606401610487565b8160ff1660011480610c2c57508160ff166002145b610c785760405162461bcd60e51b815260206004820152601260248201527f6e6f7420612076616c69642063686f69636500000000000000000000000000006044820152606401610487565b3360009081526005602052604081205482556001918201805460ff191660ff85161790555550565b610ca86111d8565b60016000908152600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7549003610d125760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd081cdd185c9d195960aa1b6044820152606401610487565b336000908152600560205260408120805490918391839190610d359084906114ab565b909155505060075460018201556002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610674565b600080600c60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df99190611509565b509195945050505050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b919061145b565b6001600160a01b0316336001600160a01b031614610ecc5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b6040518060c00160405280600c60149054906101000a900460ff16610ef857610ef3610d7f565b610efc565b600d545b81526020016000815260200142815260200160085442610f1c91906114ab565b8152600954602080830191909152600060409283018190526007548152600a825282902083518155908301516001820155908201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff191660ff909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff919061145b565b6001600160a01b0316336001600160a01b0316146110505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e9919061145b565b6001600160a01b0316336001600160a01b03161461113a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b61116060405180604001604052806005815260200164536861726560d81b81525061131d565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600581526427aa37b6b160d91b60208201526111a59061131d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006111d282611202565b92915050565b6002600054036111fb57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6007546001600160a01b038216600090815260056020526040812060010154909190808203611235575060009392505050565b6000815b83811015611314576001600160a01b03861660009081526006602090815260408083208484528252808320815180830183528154815260019182015460ff908116828601908152878752600a865295849020845160c0810186528154815293810154958401959095526002850154938301939093526003840154606083015260048401546080830152600590930154821660a082018190529351929390929091160361130a5760808101518251612710916112f39161155b565b6112fd9190611572565b61130790856114ab565b93505b5050600101611239565b50949350505050565b600154604051633581777360e01b81526000916001600160a01b03169063358177739061134e908590600401611594565b602060405180830381865afa15801561136b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d2919061145b565b6000602082840312156113a157600080fd5b5035919050565b6001600160a01b03811681146106c357600080fd5b600080604083850312156113d057600080fd5b82356113db816113a8565b946020939093013593505050565b6000602082840312156113fb57600080fd5b8135611406816113a8565b9392505050565b80151581146106c357600080fd5b60006020828403121561142d57600080fd5b81356114068161140d565b60006020828403121561144a57600080fd5b813560ff8116811461140657600080fd5b60006020828403121561146d57600080fd5b8151611406816113a8565b60006020828403121561148a57600080fd5b81516114068161140d565b634e487b7160e01b600052601160045260246000fd5b808201808211156111d2576111d2611495565b818103818111156111d2576111d2611495565b6000600182016114e3576114e3611495565b5060010190565b805169ffffffffffffffffffff8116811461150457600080fd5b919050565b600080600080600060a0868803121561152157600080fd5b61152a866114ea565b6020870151604088015160608901519297509095509350915061154f608087016114ea565b90509295509295909350565b80820281158282048414176111d2576111d2611495565b60008261158f57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000825180602084015260005b818110156115c257602081860181015160408684010152016115a5565b506000604082850101526040601f19601f8301168401019150509291505056fea264697066735822122055a964aa51e41ca334b8b6e0d9b03cc6525cae55a34ce468a54f569ac79dc21064736f6c634300081a0033000000000000000000000000d34853ca6e66ed41f7455a7d406449803565e19d
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061017d5760003560e01c806386d31cbc116100e3578063cca5fc101161008c578063ef43d65f11610066578063ef43d65f1461036b578063f6ed2017146103a7578063f7cb789a146103ba57600080fd5b8063cca5fc1014610348578063d0ebdbe714610350578063e06c25f81461036357600080fd5b8063b3f98adc116100bd578063b3f98adc1461031a578063b6b55f251461032d578063bea4dfb51461034057600080fd5b806386d31cbc146102885780638c65c81f1461029b5780639d1b464a1461031157600080fd5b806336c92c3f116101455780635e7a8dec1161011f5780635e7a8dec1461022157806362cc26a01461022957806367e15f1b1461027557600080fd5b806336c92c3f146101fd578063388ca80f146102105780634e71d92d1461021957600080fd5b80630b48b678146101825780630b98f975146101ab57806318b20071146101c05780632e1a7d4d146101d357806333654f07146101e6575b600080fd5b600c5461019690600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6101be6101b936600461138f565b6103c3565b005b6101be6101ce36600461138f565b610495565b6101be6101e136600461138f565b610562565b6101ef60045481565b6040519081526020016101a2565b6101be61020b36600461138f565b6106c6565b6101ef60075481565b6101be610793565b6101be610867565b61025e6102373660046113bd565b60066020908152600092835260408084209091529082529020805460019091015460ff1682565b6040805192835260ff9091166020830152016101a2565b6101be6102833660046113e9565b6109ce565b6101be61029636600461141b565b610ab8565b6102e16102a936600461138f565b600a60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff1686565b604080519687526020870195909552938501929092526060840152608083015260ff1660a082015260c0016101a2565b6101ef600d5481565b6101be610328366004611438565b610b9e565b6101be61033b36600461138f565b610ca0565b6101ef610d7f565b6101be610e04565b6101be61035e3660046113e9565b610f88565b6101be611072565b6103926103793660046113e9565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101a2565b6101ef6103b53660046113e9565b6111c7565b6101ef60085481565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a919061145b565b6001600160a01b0316336001600160a01b0316146104905760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b600955565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c919061145b565b6001600160a01b0316336001600160a01b03161461055d5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600d55565b61056a6111d8565b33600090815260056020526040902080548211156105ca5760405162461bcd60e51b815260206004820152601460248201527f4e6f7420656e6f756768206465706f73697465640000000000000000000000006044820152606401610487565b336000908152600660209081526040808320600754845290915290206001015460ff161561063a5760405162461bcd60e51b815260206004820152601d60248201527f7573657220616c726561647920656e676167656420696e20726f756e640000006044820152606401610487565b8054829003815560025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af1158015610693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b79190611478565b50506106c36001600055565b50565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073d919061145b565b6001600160a01b0316336001600160a01b03161461078e5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600855565b61079b6111d8565b60006107a633611202565b9050806000036107b6575061085b565b80600460008282546107c891906114ab565b90915550506007546107dc906001906114be565b33600081815260056020526040908190206001019290925560035491516340c10f1960e01b81526004810191909152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561084157600080fd5b505af1158015610855573d6000803e3d6000fd5b50505050505b6108656001600055565b565b6007546000818152600a602052604090206001810154156108ca5760405162461bcd60e51b815260206004820152601360248201527f726f756e6420616c726561647920656e646564000000000000000000000000006044820152606401610487565b806003015442101561091e5760405162461bcd60e51b815260206004820152601360248201527f726f756e64206e6f7420656e64656420796574000000000000000000000000006044820152606401610487565b600c54600160a01b900460ff1661093c57610937610d7f565b610940565b600d545b60018201819055815410610955576002610958565b60015b60058201805460ff191660ff929092169190911790556007805490600061097e836114d1565b90915550506007546000908152600a6020526040902060018201548155600382015460028201556008546109b290426114ab565b60038201556009546004820155600501805460ff191690555050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a45919061145b565b6001600160a01b0316336001600160a01b031614610a965760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f919061145b565b6001600160a01b0316336001600160a01b031614610b805760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600c8054911515600160a01b0260ff60a01b19909216919091179055565b610ba66111d8565b33600090815260066020908152604080832060075484529091529020600181015460ff1615610c175760405162461bcd60e51b815260206004820152601460248201527f7573657220616c726561647920656e67616765640000000000000000000000006044820152606401610487565b8160ff1660011480610c2c57508160ff166002145b610c785760405162461bcd60e51b815260206004820152601260248201527f6e6f7420612076616c69642063686f69636500000000000000000000000000006044820152606401610487565b3360009081526005602052604081205482556001918201805460ff191660ff85161790555550565b610ca86111d8565b60016000908152600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7549003610d125760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd081cdd185c9d195960aa1b6044820152606401610487565b336000908152600560205260408120805490918391839190610d359084906114ab565b909155505060075460018201556002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610674565b600080600c60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df99190611509565b509195945050505050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b919061145b565b6001600160a01b0316336001600160a01b031614610ecc5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b6040518060c00160405280600c60149054906101000a900460ff16610ef857610ef3610d7f565b610efc565b600d545b81526020016000815260200142815260200160085442610f1c91906114ab565b8152600954602080830191909152600060409283018190526007548152600a825282902083518155908301516001820155908201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff191660ff909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff919061145b565b6001600160a01b0316336001600160a01b0316146110505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e9919061145b565b6001600160a01b0316336001600160a01b03161461113a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610487565b61116060405180604001604052806005815260200164536861726560d81b81525061131d565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600581526427aa37b6b160d91b60208201526111a59061131d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006111d282611202565b92915050565b6002600054036111fb57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6007546001600160a01b038216600090815260056020526040812060010154909190808203611235575060009392505050565b6000815b83811015611314576001600160a01b03861660009081526006602090815260408083208484528252808320815180830183528154815260019182015460ff908116828601908152878752600a865295849020845160c0810186528154815293810154958401959095526002850154938301939093526003840154606083015260048401546080830152600590930154821660a082018190529351929390929091160361130a5760808101518251612710916112f39161155b565b6112fd9190611572565b61130790856114ab565b93505b5050600101611239565b50949350505050565b600154604051633581777360e01b81526000916001600160a01b03169063358177739061134e908590600401611594565b602060405180830381865afa15801561136b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d2919061145b565b6000602082840312156113a157600080fd5b5035919050565b6001600160a01b03811681146106c357600080fd5b600080604083850312156113d057600080fd5b82356113db816113a8565b946020939093013593505050565b6000602082840312156113fb57600080fd5b8135611406816113a8565b9392505050565b80151581146106c357600080fd5b60006020828403121561142d57600080fd5b81356114068161140d565b60006020828403121561144a57600080fd5b813560ff8116811461140657600080fd5b60006020828403121561146d57600080fd5b8151611406816113a8565b60006020828403121561148a57600080fd5b81516114068161140d565b634e487b7160e01b600052601160045260246000fd5b808201808211156111d2576111d2611495565b818103818111156111d2576111d2611495565b6000600182016114e3576114e3611495565b5060010190565b805169ffffffffffffffffffff8116811461150457600080fd5b919050565b600080600080600060a0868803121561152157600080fd5b61152a866114ea565b6020870151604088015160608901519297509095509350915061154f608087016114ea565b90509295509295909350565b80820281158282048414176111d2576111d2611495565b60008261158f57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000825180602084015260005b818110156115c257602081860181015160408684010152016115a5565b506000604082850101526040601f19601f8301168401019150509291505056fea264697066735822122055a964aa51e41ca334b8b6e0d9b03cc6525cae55a34ce468a54f569ac79dc21064736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d34853ca6e66ed41f7455a7d406449803565e19d
-----Decoded View---------------
Arg [0] : _manager (address): 0xd34853CA6e66ED41f7455a7d406449803565E19d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d34853ca6e66ed41f7455a7d406449803565e19d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.