More Info
Private Name Tags
ContractCreator
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 10328152 | 15 hrs ago | IN | 0 S | 0.00402836 | ||||
Claim | 10327751 | 15 hrs ago | IN | 0 S | 0.00551644 | ||||
Catch End Price | 10327622 | 15 hrs ago | IN | 0 S | 0.01054537 | ||||
Set Round Durati... | 10296760 | 18 hrs ago | IN | 0 S | 0.00187236 | ||||
Vote | 10296397 | 18 hrs ago | IN | 0 S | 0.00400884 | ||||
Deposit | 10295887 | 18 hrs ago | IN | 0 S | 0.00584116 | ||||
Start Rounds | 10295732 | 18 hrs ago | IN | 0 S | 0.00823108 | ||||
Set Testnet | 10294637 | 18 hrs ago | IN | 0 S | 0.00187665 | ||||
Update Tomb Plus | 10294080 | 18 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; 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 { 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"); user.engaged = userGlobalDetails[msg.sender].deposited; user.position = position; } function claim() external nonReentrant { uint256 rewards = _rewardsAccByUser(msg.sender); if (rewards == 0) { return; } 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":"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
60806040526001600655610e1060075560326008819055600a55600b805460ff60a01b1916600160a01b1790556064600c55348015603c57600080fd5b506040516115e93803806115e9833981016040819052605991609f565b6001600081905580546001600160a01b039092166001600160a01b0319928316179055600b805490911673c76dfb89ff298145b417d221b2c747d84952e01d17905560cd565b60006020828403121560b057600080fd5b81516001600160a01b038116811460c657600080fd5b9392505050565b61150d806100dc6000396000f3fe608060405234801561001057600080fd5b50600436106101625760003560e01c80638c65c81f116100c8578063cca5fc101161008c578063ef43d65f11610066578063ef43d65f14610347578063f6ed201714610383578063f7cb789a1461039657600080fd5b8063cca5fc1014610324578063d0ebdbe71461032c578063e06c25f81461033f57600080fd5b80638c65c81f146102775780639d1b464a146102ed578063b3f98adc146102f6578063b6b55f2514610309578063bea4dfb51461031c57600080fd5b8063388ca80f1161012a57806362cc26a01161010457806362cc26a01461020557806367e15f1b1461025157806386d31cbc1461026457600080fd5b8063388ca80f146101de5780634e71d92d146101f55780635e7a8dec146101fd57600080fd5b80630b48b678146101675780630b98f9751461019057806318b20071146101a55780632e1a7d4d146101b857806336c92c3f146101cb575b600080fd5b600b5461017b90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6101a361019e366004611284565b61039f565b005b6101a36101b3366004611284565b610471565b6101a36101c6366004611284565b61053e565b6101a36101d9366004611284565b6106a2565b6101e760065481565b604051908152602001610187565b6101a361076f565b6101a361082b565b61023a6102133660046112b2565b60056020908152600092835260408084209091529082529020805460019091015460ff1682565b6040805192835260ff909116602083015201610187565b6101a361025f3660046112de565b610992565b6101a3610272366004611310565b610a7c565b6102bd610285366004611284565b600960205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff1686565b604080519687526020870195909552938501929092526060840152608083015260ff1660a082015260c001610187565b6101e7600c5481565b6101a361030436600461132d565b610b62565b6101a3610317366004611284565b610c03565b6101e7610c78565b6101a3610cfd565b6101a361033a3660046112de565b610e81565b6101a3610f6b565b61036e6103553660046112de565b6004602052600090815260409020805460019091015482565b60408051928352602083019190915201610187565b6101e76103913660046112de565b6110c0565b6101e760075481565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104169190611350565b6001600160a01b0316336001600160a01b03161461046c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b600855565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190611350565b6001600160a01b0316336001600160a01b0316146105395760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600c55565b6105466110d1565b33600090815260046020526040902080548211156105a65760405162461bcd60e51b815260206004820152601460248201527f4e6f7420656e6f756768206465706f73697465640000000000000000000000006044820152606401610463565b336000908152600560209081526040808320600654845290915290206001015460ff16156106165760405162461bcd60e51b815260206004820152601d60248201527f7573657220616c726561647920656e676167656420696e20726f756e640000006044820152606401610463565b8054829003815560025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610693919061136d565b505061069f6001600055565b50565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190611350565b6001600160a01b0316336001600160a01b03161461076a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600755565b6107776110d1565b6000610782336110fb565b905080600003610792575061081f565b60016006546107a191906113a0565b336000818152600460208190526040918290206001019390935560035490516340c10f1960e01b815292830191909152602482018390526001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50505050505b6108296001600055565b565b600654600081815260096020526040902060018101541561088e5760405162461bcd60e51b815260206004820152601360248201527f726f756e6420616c726561647920656e646564000000000000000000000000006044820152606401610463565b80600301544210156108e25760405162461bcd60e51b815260206004820152601360248201527f726f756e64206e6f7420656e64656420796574000000000000000000000000006044820152606401610463565b600b54600160a01b900460ff16610900576108fb610c78565b610904565b600c545b6001820181905581541061091957600261091c565b60015b60058201805460ff191660ff9290921691909117905560068054906000610942836113b3565b90915550506006546000908152600960205260409020600182015481556003820154600282015560075461097690426113cc565b60038201556008546004820155600501805460ff191690555050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a099190611350565b6001600160a01b0316336001600160a01b031614610a5a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af39190611350565b6001600160a01b0316336001600160a01b031614610b445760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600b8054911515600160a01b0260ff60a01b19909216919091179055565b610b6a6110d1565b33600090815260056020908152604080832060065484529091529020600181015460ff1615610bdb5760405162461bcd60e51b815260206004820152601460248201527f7573657220616c726561647920656e67616765640000000000000000000000006044820152606401610463565b3360009081526004602052604081205482556001918201805460ff191660ff85161790555550565b610c0b6110d1565b336000908152600460205260408120805490918391839190610c2e9084906113cc565b909155505060065460018201556002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610650565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf291906113fe565b509195945050505050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190611350565b6001600160a01b0316336001600160a01b031614610dc55760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b6040518060c00160405280600b60149054906101000a900460ff16610df157610dec610c78565b610df5565b600c545b81526020016000815260200142815260200160075442610e1591906113cc565b81526008546020808301919091526000604092830181905260065481526009825282902083518155908301516001820155908201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff191660ff909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef89190611350565b6001600160a01b0316336001600160a01b031614610f495760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe29190611350565b6001600160a01b0316336001600160a01b0316146110335760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b61105960405180604001604052806005815260200164536861726560d81b815250611212565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600581526427aa37b6b160d91b602082015261109e90611212565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006110cb826110fb565b92915050565b6002600054036110f457604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6006546001600160a01b03821660009081526004602052604081206001015490919080820361112e575060009392505050565b6000815b83811015611209576001600160a01b03861660009081526005602081815260408084208585528252808420815180830183528154815260019182015460ff9081168286019081528888526009865296849020845160c08101865281548152938101549584019590955260028501549383019390935260038401546060830152600484015460808301529290930154811660a08401819052935191939116036111ff5760808101518251612710916111e891611450565b6111f29190611467565b6111fc90856113cc565b93505b5050600101611132565b50949350505050565b600154604051633581777360e01b81526000916001600160a01b031690633581777390611243908590600401611489565b602060405180830381865afa158015611260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb9190611350565b60006020828403121561129657600080fd5b5035919050565b6001600160a01b038116811461069f57600080fd5b600080604083850312156112c557600080fd5b82356112d08161129d565b946020939093013593505050565b6000602082840312156112f057600080fd5b81356112fb8161129d565b9392505050565b801515811461069f57600080fd5b60006020828403121561132257600080fd5b81356112fb81611302565b60006020828403121561133f57600080fd5b813560ff811681146112fb57600080fd5b60006020828403121561136257600080fd5b81516112fb8161129d565b60006020828403121561137f57600080fd5b81516112fb81611302565b634e487b7160e01b600052601160045260246000fd5b818103818111156110cb576110cb61138a565b6000600182016113c5576113c561138a565b5060010190565b808201808211156110cb576110cb61138a565b805169ffffffffffffffffffff811681146113f957600080fd5b919050565b600080600080600060a0868803121561141657600080fd5b61141f866113df565b60208701516040880151606089015192975090955093509150611444608087016113df565b90509295509295909350565b80820281158282048414176110cb576110cb61138a565b60008261148457634e487b7160e01b600052601260045260246000fd5b500490565b602081526000825180602084015260005b818110156114b7576020818601810151604086840101520161149a565b506000604082850101526040601f19601f8301168401019150509291505056fea2646970667358221220effbd9c6ef7ef205ef9cb16f3e5699e2a5d685eaf10b9b76f1466cf2a87d32f364736f6c634300081a0033000000000000000000000000c2a92ab68c50c45d5ade521d94141119b2c55d49
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101625760003560e01c80638c65c81f116100c8578063cca5fc101161008c578063ef43d65f11610066578063ef43d65f14610347578063f6ed201714610383578063f7cb789a1461039657600080fd5b8063cca5fc1014610324578063d0ebdbe71461032c578063e06c25f81461033f57600080fd5b80638c65c81f146102775780639d1b464a146102ed578063b3f98adc146102f6578063b6b55f2514610309578063bea4dfb51461031c57600080fd5b8063388ca80f1161012a57806362cc26a01161010457806362cc26a01461020557806367e15f1b1461025157806386d31cbc1461026457600080fd5b8063388ca80f146101de5780634e71d92d146101f55780635e7a8dec146101fd57600080fd5b80630b48b678146101675780630b98f9751461019057806318b20071146101a55780632e1a7d4d146101b857806336c92c3f146101cb575b600080fd5b600b5461017b90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6101a361019e366004611284565b61039f565b005b6101a36101b3366004611284565b610471565b6101a36101c6366004611284565b61053e565b6101a36101d9366004611284565b6106a2565b6101e760065481565b604051908152602001610187565b6101a361076f565b6101a361082b565b61023a6102133660046112b2565b60056020908152600092835260408084209091529082529020805460019091015460ff1682565b6040805192835260ff909116602083015201610187565b6101a361025f3660046112de565b610992565b6101a3610272366004611310565b610a7c565b6102bd610285366004611284565b600960205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff1686565b604080519687526020870195909552938501929092526060840152608083015260ff1660a082015260c001610187565b6101e7600c5481565b6101a361030436600461132d565b610b62565b6101a3610317366004611284565b610c03565b6101e7610c78565b6101a3610cfd565b6101a361033a3660046112de565b610e81565b6101a3610f6b565b61036e6103553660046112de565b6004602052600090815260409020805460019091015482565b60408051928352602083019190915201610187565b6101e76103913660046112de565b6110c0565b6101e760075481565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104169190611350565b6001600160a01b0316336001600160a01b03161461046c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b600855565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190611350565b6001600160a01b0316336001600160a01b0316146105395760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600c55565b6105466110d1565b33600090815260046020526040902080548211156105a65760405162461bcd60e51b815260206004820152601460248201527f4e6f7420656e6f756768206465706f73697465640000000000000000000000006044820152606401610463565b336000908152600560209081526040808320600654845290915290206001015460ff16156106165760405162461bcd60e51b815260206004820152601d60248201527f7573657220616c726561647920656e676167656420696e20726f756e640000006044820152606401610463565b8054829003815560025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610693919061136d565b505061069f6001600055565b50565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190611350565b6001600160a01b0316336001600160a01b03161461076a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600755565b6107776110d1565b6000610782336110fb565b905080600003610792575061081f565b60016006546107a191906113a0565b336000818152600460208190526040918290206001019390935560035490516340c10f1960e01b815292830191909152602482018390526001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50505050505b6108296001600055565b565b600654600081815260096020526040902060018101541561088e5760405162461bcd60e51b815260206004820152601360248201527f726f756e6420616c726561647920656e646564000000000000000000000000006044820152606401610463565b80600301544210156108e25760405162461bcd60e51b815260206004820152601360248201527f726f756e64206e6f7420656e64656420796574000000000000000000000000006044820152606401610463565b600b54600160a01b900460ff16610900576108fb610c78565b610904565b600c545b6001820181905581541061091957600261091c565b60015b60058201805460ff191660ff9290921691909117905560068054906000610942836113b3565b90915550506006546000908152600960205260409020600182015481556003820154600282015560075461097690426113cc565b60038201556008546004820155600501805460ff191690555050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a099190611350565b6001600160a01b0316336001600160a01b031614610a5a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af39190611350565b6001600160a01b0316336001600160a01b031614610b445760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600b8054911515600160a01b0260ff60a01b19909216919091179055565b610b6a6110d1565b33600090815260056020908152604080832060065484529091529020600181015460ff1615610bdb5760405162461bcd60e51b815260206004820152601460248201527f7573657220616c726561647920656e67616765640000000000000000000000006044820152606401610463565b3360009081526004602052604081205482556001918201805460ff191660ff85161790555550565b610c0b6110d1565b336000908152600460205260408120805490918391839190610c2e9084906113cc565b909155505060065460018201556002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610650565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf291906113fe565b509195945050505050565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190611350565b6001600160a01b0316336001600160a01b031614610dc55760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b6040518060c00160405280600b60149054906101000a900460ff16610df157610dec610c78565b610df5565b600c545b81526020016000815260200142815260200160075442610e1591906113cc565b81526008546020808301919091526000604092830181905260065481526009825282902083518155908301516001820155908201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff191660ff909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef89190611350565b6001600160a01b0316336001600160a01b031614610f495760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe29190611350565b6001600160a01b0316336001600160a01b0316146110335760405162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5e995960921b6044820152606401610463565b61105960405180604001604052806005815260200164536861726560d81b815250611212565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600581526427aa37b6b160d91b602082015261109e90611212565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006110cb826110fb565b92915050565b6002600054036110f457604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6006546001600160a01b03821660009081526004602052604081206001015490919080820361112e575060009392505050565b6000815b83811015611209576001600160a01b03861660009081526005602081815260408084208585528252808420815180830183528154815260019182015460ff9081168286019081528888526009865296849020845160c08101865281548152938101549584019590955260028501549383019390935260038401546060830152600484015460808301529290930154811660a08401819052935191939116036111ff5760808101518251612710916111e891611450565b6111f29190611467565b6111fc90856113cc565b93505b5050600101611132565b50949350505050565b600154604051633581777360e01b81526000916001600160a01b031690633581777390611243908590600401611489565b602060405180830381865afa158015611260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb9190611350565b60006020828403121561129657600080fd5b5035919050565b6001600160a01b038116811461069f57600080fd5b600080604083850312156112c557600080fd5b82356112d08161129d565b946020939093013593505050565b6000602082840312156112f057600080fd5b81356112fb8161129d565b9392505050565b801515811461069f57600080fd5b60006020828403121561132257600080fd5b81356112fb81611302565b60006020828403121561133f57600080fd5b813560ff811681146112fb57600080fd5b60006020828403121561136257600080fd5b81516112fb8161129d565b60006020828403121561137f57600080fd5b81516112fb81611302565b634e487b7160e01b600052601160045260246000fd5b818103818111156110cb576110cb61138a565b6000600182016113c5576113c561138a565b5060010190565b808201808211156110cb576110cb61138a565b805169ffffffffffffffffffff811681146113f957600080fd5b919050565b600080600080600060a0868803121561141657600080fd5b61141f866113df565b60208701516040880151606089015192975090955093509150611444608087016113df565b90509295509295909350565b80820281158282048414176110cb576110cb61138a565b60008261148457634e487b7160e01b600052601260045260246000fd5b500490565b602081526000825180602084015260005b818110156114b7576020818601810151604086840101520161149a565b506000604082850101526040601f19601f8301168401019150509291505056fea2646970667358221220effbd9c6ef7ef205ef9cb16f3e5699e2a5d685eaf10b9b76f1466cf2a87d32f364736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c2a92ab68c50c45d5ade521d94141119b2c55d49
-----Decoded View---------------
Arg [0] : _manager (address): 0xc2A92aB68C50C45D5AdE521d94141119b2c55D49
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c2a92ab68c50c45d5ade521d94141119b2c55d49
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.