Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 675 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register For Dro... | 15062540 | 754 days ago | IN | 0 ETH | 0.00019993 | ||||
Register For Dro... | 13294326 | 1034 days ago | IN | 0 ETH | 0.00071785 | ||||
Resolve Drop | 13240002 | 1043 days ago | IN | 0 ETH | 0.01651315 | ||||
Request VRF | 13239976 | 1043 days ago | IN | 0 ETH | 0.01438271 | ||||
Register For Dro... | 13239542 | 1043 days ago | IN | 0 ETH | 0.00735078 | ||||
Register For Dro... | 13239496 | 1043 days ago | IN | 0 ETH | 0.0207932 | ||||
Register For Dro... | 13239481 | 1043 days ago | IN | 0 ETH | 0.00672304 | ||||
Register For Dro... | 13239348 | 1043 days ago | IN | 0 ETH | 0.00738188 | ||||
Register For Dro... | 13239337 | 1043 days ago | IN | 0 ETH | 0.00703114 | ||||
Register For Dro... | 13239329 | 1043 days ago | IN | 0 ETH | 0.00439081 | ||||
Register For Dro... | 13239301 | 1043 days ago | IN | 0 ETH | 0.00982658 | ||||
Register For Dro... | 13239148 | 1043 days ago | IN | 0 ETH | 0.00371709 | ||||
Register For Dro... | 13239138 | 1043 days ago | IN | 0 ETH | 0.00442643 | ||||
Register For Dro... | 13238239 | 1043 days ago | IN | 0 ETH | 0.00613962 | ||||
Register For Dro... | 13237867 | 1043 days ago | IN | 0 ETH | 0.00908467 | ||||
Register For Dro... | 13237032 | 1043 days ago | IN | 0 ETH | 0.00353063 | ||||
Register For Dro... | 13237021 | 1043 days ago | IN | 0 ETH | 0.009189 | ||||
Register For Dro... | 13236827 | 1043 days ago | IN | 0 ETH | 0.01716989 | ||||
Register For Dro... | 13236364 | 1043 days ago | IN | 0 ETH | 0.01744387 | ||||
Register For Dro... | 13235869 | 1043 days ago | IN | 0 ETH | 0.0029054 | ||||
Register For Dro... | 13235020 | 1044 days ago | IN | 0 ETH | 0.00852586 | ||||
Register For Dro... | 13234420 | 1044 days ago | IN | 0 ETH | 0.00292987 | ||||
Register For Dro... | 13234073 | 1044 days ago | IN | 0 ETH | 0.01455998 | ||||
Register For Dro... | 13233979 | 1044 days ago | IN | 0 ETH | 0.0054078 | ||||
Register For Dro... | 13233948 | 1044 days ago | IN | 0 ETH | 0.00233879 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LameloDrop
Compiler Version
v0.7.5+commit.eb77ed08
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicensed pragma solidity >=0.6.0 <0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/EnumerableSet.sol"; import "./interfaces/IRNG.sol"; contract LameloDrop is Ownable { uint8 constant PoolIds_RED_MARS = 1; uint8 constant PoolIds_BLUE_NEPTUNE = 2; uint8 constant PoolIds_SILVER = 3; mapping(uint8 => mapping(uint16 => uint16)) public participantingIdsPerPool; mapping(uint8 => uint16) public poolCount; mapping(uint16 => uint8) internal tokenData; bytes32 public requestHash; bool public canResolve = false; bool public resolved = false; uint256 public random = 0; bool public hasPrizes = false; // contracts IERC721 public lameloContract; IRNG public rnd; uint256 public startTime; uint256 public endTime; address public winner_address_RED_MARS; address public winner_address_BLUE_NEPTUNE; address public winner_address_SILVER; constructor( address _LBCAddress, address _rndContractAddress, uint256 _startTime, uint256 _endTime ) { lameloContract = IERC721(_LBCAddress); rnd = IRNG(_rndContractAddress); startTime = _startTime; endTime = _endTime; } function onERC721Received( address, // operator address, // from, uint256 receivedTokenId, bytes calldata // data ) external returns (bytes4) { require( msg.sender == address(lameloContract), "Must be lameloContract address" ); if ( receivedTokenId == 498 || receivedTokenId == 499 || receivedTokenId == 500 ) { if ( lameloContract.ownerOf(498) == address(this) && lameloContract.ownerOf(499) == address(this) && lameloContract.ownerOf(500) == address(this) ) { hasPrizes = true; } return this.onERC721Received.selector; } revert("bad token received"); } // 1 - receive token id array uint16[] function registerForDrop(uint16[] calldata tokenIds) public { require(hasPrizes, "Does not have prize tokens"); require(getTimestamp() > startTime, "Not started"); require(getTimestamp() < endTime, "Already ended"); for (uint16 i = 0; i < tokenIds.length; i++) { uint16 thisId = tokenIds[i]; // 1 - check if token was previously used require(!isTokenUsed(thisId), "Already has a ticket"); require(thisId > 500, "Token id must be over 500"); // NO POINT in checking ownership now.. if someone wants to pay someone else's token participation, WHY NOT ? // 2 - check ownership // if (lameloContract.ownerOf(thisId) != msg.sender) { // revert("not owner"); // } // 3 get pool id from token id uint8 poolId = 0; if(500 < thisId && thisId <= 1500 ) { poolId = PoolIds_SILVER; } else if (1500 < thisId && thisId <= 3500 ) { poolId = PoolIds_BLUE_NEPTUNE; } else if (3500 < thisId ) { poolId = PoolIds_RED_MARS; } // 4 - register entry poolCount[poolId]++; participantingIdsPerPool[poolId][poolCount[poolId]] = thisId; // register as used setTokenUsed(thisId); } } function requestVRF() public onlyOwner { require(getTimestamp() > endTime, "Not ended"); requestHash = rnd.requestRandomNumberWithCallback(); } function process(uint256 _random, bytes32 _requestId) public { require(msg.sender == address(rnd), "Unauthorised"); require(requestHash == _requestId, "Unauthorised"); require(!canResolve, "VRF already received"); require(!resolved, "Already resolved"); canResolve = true; random = _random; } function resolveDrop() public onlyOwner { require(canResolve, "NO VRF YET"); require(!resolved, "Already resolved"); require(getTimestamp() > endTime, "Already ended"); // take VRF // add 1 to index so everyone has a chance uint16 _index = uint16(random % poolCount[PoolIds_RED_MARS]) + 1; uint16 winingTokenId = participantingIdsPerPool[PoolIds_RED_MARS][_index]; winner_address_RED_MARS = lameloContract.ownerOf(winingTokenId); random = random >> 8; _index = uint16(random % poolCount[PoolIds_BLUE_NEPTUNE]) + 1; winingTokenId = participantingIdsPerPool[PoolIds_BLUE_NEPTUNE][_index]; winner_address_BLUE_NEPTUNE = lameloContract.ownerOf(winingTokenId); random = random >> 8; _index = uint16(random % poolCount[PoolIds_SILVER]) + 1; winingTokenId = participantingIdsPerPool[PoolIds_SILVER][_index]; winner_address_SILVER = lameloContract.ownerOf(winingTokenId); random = random >> 8; resolved = true; // transfer tokens to new owners lameloContract.transferFrom(address(this), winner_address_RED_MARS, 498); lameloContract.transferFrom(address(this), winner_address_BLUE_NEPTUNE, 499); lameloContract.transferFrom(address(this), winner_address_SILVER, 500); } function recoverTokens() external onlyOwner { require(hasPrizes, "Does not have prize tokens"); require(!canResolve, "VRF already received"); require(!resolved, "Already resolved"); // if shit hits the fan recover stuff // transfer tokens to msg.sender // owner lameloContract.transferFrom(address(this), msg.sender, 500); lameloContract.transferFrom(address(this), msg.sender, 499); lameloContract.transferFrom(address(this), msg.sender, 498); } function isTokenUsed(uint16 _position) public view returns (bool result) { uint16 byteNum = uint16(_position / 8); uint16 bitPos = uint8(_position - byteNum * 8); if (tokenData[byteNum] == 0) return false; return tokenData[byteNum] & (0x01 * 2**bitPos) != 0; } function setTokenUsed(uint16 _position) public { uint16 byteNum = uint16(_position / 8); uint16 bitPos = uint8(_position - byteNum * 8); tokenData[byteNum] = uint8(tokenData[byteNum] | (2**bitPos)); } /// web3 Frontend - VIEW METHODS function getUsedTokenData(uint8 _page, uint16 _perPage) public view returns (uint8[] memory) { _perPage = _perPage / 8; uint16 i = _perPage * _page; uint16 max = i + (_perPage); uint16 j = 0; uint8[] memory retValues; assembly { mstore(retValues, _perPage) } while (i < max) { retValues[j] = tokenData[i]; j++; i++; } assembly { // move pointer to freespace otherwise return calldata gets messed up mstore(0x40, msize()) } return retValues; } function getStats() public view returns ( uint16[3] memory _poolCounts, address[3] memory _winners, uint8[] memory _tokenData ) { _tokenData = getUsedTokenData(0, 10000); _poolCounts = [ poolCount[PoolIds_RED_MARS], poolCount[PoolIds_BLUE_NEPTUNE], poolCount[PoolIds_SILVER] ]; _winners = [ winner_address_RED_MARS, winner_address_BLUE_NEPTUNE, winner_address_SILVER ]; } function getTimestamp() public view virtual returns(uint256) { return block.timestamp; } /// blackhole prevention methods function retrieveERC20(address _tracker, uint256 amount) external onlyOwner { IERC20(_tracker).transfer(msg.sender, amount); } function retrieve721(address _tracker, uint256 id) external onlyOwner { IERC721(_tracker).transferFrom(address(this), msg.sender, id); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.2 <0.8.0; import "../../introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @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); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ``` * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position of the value in the `values` array, plus 1 because index 0 // means a value is not in the set. mapping (bytes32 => uint256) _indexes; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._indexes[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We read and store the value's index to prevent multiple reads from the same storage slot uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. bytes32 lastvalue = set._values[lastIndex]; // Move the last value to the index where the value to delete is set._values[toDeleteIndex] = lastvalue; // Update the index for the moved value set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based // Delete the slot where the moved value was stored set._values.pop(); // Delete the index for the deleted slot delete set._indexes[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } // Bytes32Set struct Bytes32Set { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } /** * @dev Returns the number of values in the set. O(1). */ function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values on the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; abstract contract IRNG { function requestRandomNumber() external virtual returns (bytes32 requestId); function requestRandomNumberWithCallback() external virtual returns (bytes32); function isRequestComplete(bytes32 requestId) external view virtual returns (bool isCompleted); function randomNumber(bytes32 requestId) external view virtual returns (uint256 randomNum); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_LBCAddress","type":"address"},{"internalType":"address","name":"_rndContractAddress","type":"address"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"canResolve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStats","outputs":[{"internalType":"uint16[3]","name":"_poolCounts","type":"uint16[3]"},{"internalType":"address[3]","name":"_winners","type":"address[3]"},{"internalType":"uint8[]","name":"_tokenData","type":"uint8[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_page","type":"uint8"},{"internalType":"uint16","name":"_perPage","type":"uint16"}],"name":"getUsedTokenData","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasPrizes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_position","type":"uint16"}],"name":"isTokenUsed","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lameloContract","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"receivedTokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"participantingIdsPerPool","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"poolCount","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_random","type":"uint256"},{"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"tokenIds","type":"uint16[]"}],"name":"registerForDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestVRF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolveDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tracker","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"retrieve721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tracker","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rnd","outputs":[{"internalType":"contract IRNG","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_position","type":"uint16"}],"name":"setTokenUsed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"winner_address_BLUE_NEPTUNE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winner_address_RED_MARS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winner_address_SILVER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526000600560006101000a81548160ff0219169083151502179055506000600560016101000a81548160ff02191690831515021790555060006006556000600760006101000a81548160ff0219169083151502179055503480156200006757600080fd5b50604051620031ed380380620031ed833981810160405260808110156200008d57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050506000620000ce6200020660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160098190555080600a81905550505050506200020e565b600033905090565b612fcf806200021e6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638da5cb5b11610104578063c937af87116100a2578063ed482c4011610071578063ed482c401461085f578063f2fde38b1461087d578063f3f6a4e2146108c1578063fec1439c146108f3576101da565b8063c937af8714610774578063cb23fb8b146107a8578063cc84e916146107dc578063cda232f9146107e6576101da565b8063ac3791e3116100de578063ac3791e31461066d578063b77f39fe1461068d578063c59bd0f914610697578063c59d4847146106b7576101da565b80638da5cb5b14610594578063a5b3abfb146105c8578063a8e6df4314610616576101da565b80633d64ac9b1161017c5780636a385c041161014b5780636a385c04146104ce578063715018a6146104d857806376d76d3b146104e257806378e9792514610576576101da565b80633d64ac9b146104245780633f6fa6551461045c5780635ec01e4d1461047c57806368f1ea331461049a576101da565b806315649713116101b8578063156497131461036657806317fd1e2f1461039a578063188ec356146103e85780633197cbb614610406576101da565b806307379e57146101df5780630d1bc63114610228578063150b7a0214610270575b600080fd5b61020e600480360360208110156101f557600080fd5b81019080803560ff169060200190929190505050610927565b604051808261ffff16815260200191505060405180910390f35b6102586004803603602081101561023e57600080fd5b81019080803561ffff169060200190929190505050610948565b60405180821515815260200191505060405180910390f35b6103316004803603608081101561028657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b90919293919293905050506109ee565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61036e610e26565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e6600480360360408110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e4c565b005b6103f0610fac565b6040518082815260200191505060405180910390f35b61040e610fb4565b6040518082815260200191505060405180910390f35b61045a6004803603604081101561043a57600080fd5b810190808035906020019092919080359060200190929190505050610fba565b005b610464611220565b60405180821515815260200191505060405180910390f35b610484611233565b6040518082815260200191505060405180910390f35b6104a2611239565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d661125f565b005b6104e0611439565b005b61051f600480360360408110156104f857600080fd5b81019080803560ff169060200190929190803561ffff1690602001909291905050506115a6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610562578082015181840152602081019050610547565b505050509050019250505060405180910390f35b61057e611655565b6040518082815260200191505060405180910390f35b61059c61165b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610614600480360360408110156105de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611684565b005b6106536004803603604081101561062c57600080fd5b81019080803560ff169060200190929190803561ffff1690602001909291905050506117de565b604051808261ffff16815260200191505060405180910390f35b61067561180e565b60405180821515815260200191505060405180910390f35b610695611821565b005b61069f611cbb565b60405180821515815260200191505060405180910390f35b6106bf611cce565b6040518084600360200280838360005b838110156106ea5780820151818401526020810190506106cf565b5050505090500183600360200280838360005b838110156107185780820151818401526020810190506106fd565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b8381101561075e578082015181840152602081019050610743565b5050505090500194505050505060405180910390f35b61077c611ea8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b0611ece565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e4611ef4565b005b61085d600480360360208110156107fc57600080fd5b810190808035906020019064010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184602083028401116401000000008311171561084d57600080fd5b9091929391929390505050612890565b005b610867612c7c565b6040518082815260200191505060405180910390f35b6108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c82565b005b6108f1600480360360208110156108d757600080fd5b81019080803561ffff169060200190929190505050612e74565b005b6108fb612f01565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60026020528060005260406000206000915054906101000a900461ffff1681565b60008060088361ffff168161095957fe5b049050600060088202840360ff1690506000600360008461ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156109a8576000925050506109e9565b60008161ffff1660020a600102600360008561ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff16161415925050505b919050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d757374206265206c616d656c6f436f6e74726163742061646472657373000081525060200191505060405180910390fd5b6101f2841480610ac457506101f384145b80610ad057506101f484145b15610daf573073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f26040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b6157600080fd5b505afa158015610b75573d6000803e3d6000fd5b505050506040513d6020811015610b8b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16148015610c9957503073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f36040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d6020811015610c7057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b8015610d7f57503073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f46040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d6020811015610d5657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b15610da0576001600760006101000a81548160ff0219169083151502179055505b63150b7a0260e01b9050610e1d565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f62616420746f6b656e207265636569766564000000000000000000000000000081525060200191505060405180910390fd5b95945050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e54612f27565b73ffffffffffffffffffffffffffffffffffffffff16610e7261165b565b73ffffffffffffffffffffffffffffffffffffffff1614610efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f6c57600080fd5b505af1158015610f80573d6000803e3d6000fd5b505050506040513d6020811015610f9657600080fd5b8101908080519060200190929190505050505050565b600042905090565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e617574686f7269736564000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600454146110f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e617574686f7269736564000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff1615611177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56524620616c726561647920726563656976656400000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff16156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff021916908315150217905550816006819055505050565b600560019054906101000a900460ff1681565b60065481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611267612f27565b73ffffffffffffffffffffffffffffffffffffffff1661128561165b565b73ffffffffffffffffffffffffffffffffffffffff161461130e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a54611319610fac565b1161138c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f7420656e646564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c532bbac6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113f657600080fd5b505af115801561140a573d6000803e3d6000fd5b505050506040513d602081101561142057600080fd5b8101908080519060200190929190505050600481905550565b611441612f27565b73ffffffffffffffffffffffffffffffffffffffff1661145f61165b565b73ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060088261ffff16816115b657fe5b04915060008360ff168302905060008382019050600060608581525b8261ffff168461ffff16101561164457600360008561ffff1661ffff16815260200190815260200160002060009054906101000a900460ff16818361ffff168151811061161b57fe5b602002602001019060ff16908160ff1681525050818060010192505083806001019450506115d2565b596040528094505050505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61168c612f27565b73ffffffffffffffffffffffffffffffffffffffff166116aa61165b565b73ffffffffffffffffffffffffffffffffffffffff1614611733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b505050505050565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900461ffff1681565b600560009054906101000a900460ff1681565b611829612f27565b73ffffffffffffffffffffffffffffffffffffffff1661184761165b565b73ffffffffffffffffffffffffffffffffffffffff16146118d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760009054906101000a900460ff16611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f446f6573206e6f742068617665207072697a6520746f6b656e7300000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff16156119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56524620616c726561647920726563656976656400000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff1615611a58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f46040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f36040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611bd657600080fd5b505af1158015611bea573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f26040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ca157600080fd5b505af1158015611cb5573d6000803e3d6000fd5b50505050565b600760009054906101000a900460ff1681565b611cd6612f2f565b611cde612f51565b6060611ced60006127106115a6565b9050604051806060016040528060026000600160ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200160026000600260ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200160026000600360ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff1681525092506040518060600160405280600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152509150909192565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611efc612f27565b73ffffffffffffffffffffffffffffffffffffffff16611f1a61165b565b73ffffffffffffffffffffffffffffffffffffffff1614611fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600560009054906101000a900460ff16612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e4f20565246205945540000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff16156120a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b600a546120b3610fac565b11612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920656e6465640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160026000600160ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff166006548161216157fe5b06019050600060016000600160ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b15801561222257600080fd5b505afa158015612236573d6000803e3d6000fd5b505050506040513d602081101561224c57600080fd5b8101908080519060200190929190505050600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c600681905550600160026000600260ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff16600654816122e357fe5b0601915060016000600260ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b1580156123a257600080fd5b505afa1580156123b6573d6000803e3d6000fd5b505050506040513d60208110156123cc57600080fd5b8101908080519060200190929190505050600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c600681905550600160026000600360ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff166006548161246357fe5b0601915060016000600360ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b15801561252257600080fd5b505afa158015612536573d6000803e3d6000fd5b505050506040513d602081101561254c57600080fd5b8101908080519060200190929190505050600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c6006819055506001600560016101000a81548160ff021916908315150217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f26040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561269a57600080fd5b505af11580156126ae573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f36040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561278757600080fd5b505af115801561279b573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f46040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561287457600080fd5b505af1158015612888573d6000803e3d6000fd5b505050505050565b600760009054906101000a900460ff16612912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f446f6573206e6f742068617665207072697a6520746f6b656e7300000000000081525060200191505060405180910390fd5b60095461291d610fac565b11612990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f74207374617274656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600a5461299b610fac565b10612a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920656e6465640000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b828290508161ffff161015612c7757600083838361ffff16818110612a3257fe5b9050602002013561ffff169050612a4881610948565b15612abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f416c7265616479206861732061207469636b657400000000000000000000000081525060200191505060405180910390fd5b6101f48161ffff1611612b36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f546f6b656e206964206d757374206265206f766572203530300000000000000081525060200191505060405180910390fd5b60008161ffff166101f4108015612b5357506105dc8261ffff1611155b15612b615760039050612b9f565b8161ffff166105dc108015612b7c5750610dac8261ffff1611155b15612b8a5760029050612b9e565b8161ffff16610dac1015612b9d57600190505b5b5b600260008260ff1660ff168152602001908152602001600020600081819054906101000a900461ffff168092919060010191906101000a81548161ffff021916908361ffff1602179055505081600160008360ff1660ff1681526020019081526020016000206000600260008560ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550612c6882612e74565b50508080600101915050612a11565b505050565b60045481565b612c8a612f27565b73ffffffffffffffffffffffffffffffffffffffff16612ca861165b565b73ffffffffffffffffffffffffffffffffffffffff1614612d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612f746026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060088261ffff1681612e8457fe5b049050600060088202830360ff1690508061ffff1660020a600360008461ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff1617600360008461ffff1661ffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6040518060600160405280600390602082028036833780820191505090505090565b604051806060016040528060039060208202803683378082019150509050509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220c1c8c760aaff8db6b4c1c178bdee6bb31baec44463bdd0700f779597145c239564736f6c63430007050033000000000000000000000000139b522955d54482e7662927653abb0bfb6f19ba00000000000000000000000072170f577f3b221b3478e09ccd5323445a8460d700000000000000000000000000000000000000000000000000000000611ee270000000000000000000000000000000000000000000000000000000006143cc70
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638da5cb5b11610104578063c937af87116100a2578063ed482c4011610071578063ed482c401461085f578063f2fde38b1461087d578063f3f6a4e2146108c1578063fec1439c146108f3576101da565b8063c937af8714610774578063cb23fb8b146107a8578063cc84e916146107dc578063cda232f9146107e6576101da565b8063ac3791e3116100de578063ac3791e31461066d578063b77f39fe1461068d578063c59bd0f914610697578063c59d4847146106b7576101da565b80638da5cb5b14610594578063a5b3abfb146105c8578063a8e6df4314610616576101da565b80633d64ac9b1161017c5780636a385c041161014b5780636a385c04146104ce578063715018a6146104d857806376d76d3b146104e257806378e9792514610576576101da565b80633d64ac9b146104245780633f6fa6551461045c5780635ec01e4d1461047c57806368f1ea331461049a576101da565b806315649713116101b8578063156497131461036657806317fd1e2f1461039a578063188ec356146103e85780633197cbb614610406576101da565b806307379e57146101df5780630d1bc63114610228578063150b7a0214610270575b600080fd5b61020e600480360360208110156101f557600080fd5b81019080803560ff169060200190929190505050610927565b604051808261ffff16815260200191505060405180910390f35b6102586004803603602081101561023e57600080fd5b81019080803561ffff169060200190929190505050610948565b60405180821515815260200191505060405180910390f35b6103316004803603608081101561028657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b90919293919293905050506109ee565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61036e610e26565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e6600480360360408110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e4c565b005b6103f0610fac565b6040518082815260200191505060405180910390f35b61040e610fb4565b6040518082815260200191505060405180910390f35b61045a6004803603604081101561043a57600080fd5b810190808035906020019092919080359060200190929190505050610fba565b005b610464611220565b60405180821515815260200191505060405180910390f35b610484611233565b6040518082815260200191505060405180910390f35b6104a2611239565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d661125f565b005b6104e0611439565b005b61051f600480360360408110156104f857600080fd5b81019080803560ff169060200190929190803561ffff1690602001909291905050506115a6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610562578082015181840152602081019050610547565b505050509050019250505060405180910390f35b61057e611655565b6040518082815260200191505060405180910390f35b61059c61165b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610614600480360360408110156105de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611684565b005b6106536004803603604081101561062c57600080fd5b81019080803560ff169060200190929190803561ffff1690602001909291905050506117de565b604051808261ffff16815260200191505060405180910390f35b61067561180e565b60405180821515815260200191505060405180910390f35b610695611821565b005b61069f611cbb565b60405180821515815260200191505060405180910390f35b6106bf611cce565b6040518084600360200280838360005b838110156106ea5780820151818401526020810190506106cf565b5050505090500183600360200280838360005b838110156107185780820151818401526020810190506106fd565b5050505090500180602001828103825283818151815260200191508051906020019060200280838360005b8381101561075e578082015181840152602081019050610743565b5050505090500194505050505060405180910390f35b61077c611ea8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b0611ece565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e4611ef4565b005b61085d600480360360208110156107fc57600080fd5b810190808035906020019064010000000081111561081957600080fd5b82018360208201111561082b57600080fd5b8035906020019184602083028401116401000000008311171561084d57600080fd5b9091929391929390505050612890565b005b610867612c7c565b6040518082815260200191505060405180910390f35b6108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c82565b005b6108f1600480360360208110156108d757600080fd5b81019080803561ffff169060200190929190505050612e74565b005b6108fb612f01565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60026020528060005260406000206000915054906101000a900461ffff1681565b60008060088361ffff168161095957fe5b049050600060088202840360ff1690506000600360008461ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156109a8576000925050506109e9565b60008161ffff1660020a600102600360008561ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff16161415925050505b919050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d757374206265206c616d656c6f436f6e74726163742061646472657373000081525060200191505060405180910390fd5b6101f2841480610ac457506101f384145b80610ad057506101f484145b15610daf573073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f26040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b6157600080fd5b505afa158015610b75573d6000803e3d6000fd5b505050506040513d6020811015610b8b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16148015610c9957503073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f36040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d6020811015610c7057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b8015610d7f57503073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6101f46040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d6020811015610d5657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b15610da0576001600760006101000a81548160ff0219169083151502179055505b63150b7a0260e01b9050610e1d565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f62616420746f6b656e207265636569766564000000000000000000000000000081525060200191505060405180910390fd5b95945050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e54612f27565b73ffffffffffffffffffffffffffffffffffffffff16610e7261165b565b73ffffffffffffffffffffffffffffffffffffffff1614610efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f6c57600080fd5b505af1158015610f80573d6000803e3d6000fd5b505050506040513d6020811015610f9657600080fd5b8101908080519060200190929190505050505050565b600042905090565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e617574686f7269736564000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600454146110f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f556e617574686f7269736564000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff1615611177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56524620616c726561647920726563656976656400000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff16156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff021916908315150217905550816006819055505050565b600560019054906101000a900460ff1681565b60065481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611267612f27565b73ffffffffffffffffffffffffffffffffffffffff1661128561165b565b73ffffffffffffffffffffffffffffffffffffffff161461130e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a54611319610fac565b1161138c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f7420656e646564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c532bbac6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113f657600080fd5b505af115801561140a573d6000803e3d6000fd5b505050506040513d602081101561142057600080fd5b8101908080519060200190929190505050600481905550565b611441612f27565b73ffffffffffffffffffffffffffffffffffffffff1661145f61165b565b73ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060088261ffff16816115b657fe5b04915060008360ff168302905060008382019050600060608581525b8261ffff168461ffff16101561164457600360008561ffff1661ffff16815260200190815260200160002060009054906101000a900460ff16818361ffff168151811061161b57fe5b602002602001019060ff16908160ff1681525050818060010192505083806001019450506115d2565b596040528094505050505092915050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61168c612f27565b73ffffffffffffffffffffffffffffffffffffffff166116aa61165b565b73ffffffffffffffffffffffffffffffffffffffff1614611733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b505050505050565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900461ffff1681565b600560009054906101000a900460ff1681565b611829612f27565b73ffffffffffffffffffffffffffffffffffffffff1661184761165b565b73ffffffffffffffffffffffffffffffffffffffff16146118d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760009054906101000a900460ff16611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f446f6573206e6f742068617665207072697a6520746f6b656e7300000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff16156119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56524620616c726561647920726563656976656400000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff1615611a58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f46040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f36040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611bd657600080fd5b505af1158015611bea573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30336101f26040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ca157600080fd5b505af1158015611cb5573d6000803e3d6000fd5b50505050565b600760009054906101000a900460ff1681565b611cd6612f2f565b611cde612f51565b6060611ced60006127106115a6565b9050604051806060016040528060026000600160ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200160026000600260ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200160026000600360ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff1681525092506040518060600160405280600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152509150909192565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611efc612f27565b73ffffffffffffffffffffffffffffffffffffffff16611f1a61165b565b73ffffffffffffffffffffffffffffffffffffffff1614611fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600560009054906101000a900460ff16612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e4f20565246205945540000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560019054906101000a900460ff16156120a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c7265616479207265736f6c7665640000000000000000000000000000000081525060200191505060405180910390fd5b600a546120b3610fac565b11612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920656e6465640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160026000600160ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff166006548161216157fe5b06019050600060016000600160ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b15801561222257600080fd5b505afa158015612236573d6000803e3d6000fd5b505050506040513d602081101561224c57600080fd5b8101908080519060200190929190505050600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c600681905550600160026000600260ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff16600654816122e357fe5b0601915060016000600260ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b1580156123a257600080fd5b505afa1580156123b6573d6000803e3d6000fd5b505050506040513d60208110156123cc57600080fd5b8101908080519060200190929190505050600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c600681905550600160026000600360ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff166006548161246357fe5b0601915060016000600360ff1660ff16815260200190815260200160002060008361ffff1661ffff16815260200190815260200160002060009054906101000a900461ffff169050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e826040518263ffffffff1660e01b8152600401808261ffff16815260200191505060206040518083038186803b15801561252257600080fd5b505afa158015612536573d6000803e3d6000fd5b505050506040513d602081101561254c57600080fd5b8101908080519060200190929190505050600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600654901c6006819055506001600560016101000a81548160ff021916908315150217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f26040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561269a57600080fd5b505af11580156126ae573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f36040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561278757600080fd5b505af115801561279b573d6000803e3d6000fd5b50505050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f46040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561287457600080fd5b505af1158015612888573d6000803e3d6000fd5b505050505050565b600760009054906101000a900460ff16612912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f446f6573206e6f742068617665207072697a6520746f6b656e7300000000000081525060200191505060405180910390fd5b60095461291d610fac565b11612990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f74207374617274656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600a5461299b610fac565b10612a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920656e6465640000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b828290508161ffff161015612c7757600083838361ffff16818110612a3257fe5b9050602002013561ffff169050612a4881610948565b15612abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f416c7265616479206861732061207469636b657400000000000000000000000081525060200191505060405180910390fd5b6101f48161ffff1611612b36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f546f6b656e206964206d757374206265206f766572203530300000000000000081525060200191505060405180910390fd5b60008161ffff166101f4108015612b5357506105dc8261ffff1611155b15612b615760039050612b9f565b8161ffff166105dc108015612b7c5750610dac8261ffff1611155b15612b8a5760029050612b9e565b8161ffff16610dac1015612b9d57600190505b5b5b600260008260ff1660ff168152602001908152602001600020600081819054906101000a900461ffff168092919060010191906101000a81548161ffff021916908361ffff1602179055505081600160008360ff1660ff1681526020019081526020016000206000600260008560ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550612c6882612e74565b50508080600101915050612a11565b505050565b60045481565b612c8a612f27565b73ffffffffffffffffffffffffffffffffffffffff16612ca861165b565b73ffffffffffffffffffffffffffffffffffffffff1614612d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612f746026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060088261ffff1681612e8457fe5b049050600060088202830360ff1690508061ffff1660020a600360008461ffff1661ffff16815260200190815260200160002060009054906101000a900460ff1660ff1617600360008461ffff1661ffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6040518060600160405280600390602082028036833780820191505090505090565b604051806060016040528060039060208202803683378082019150509050509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220c1c8c760aaff8db6b4c1c178bdee6bb31baec44463bdd0700f779597145c239564736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000139b522955d54482e7662927653abb0bfb6f19ba00000000000000000000000072170f577f3b221b3478e09ccd5323445a8460d700000000000000000000000000000000000000000000000000000000611ee270000000000000000000000000000000000000000000000000000000006143cc70
-----Decoded View---------------
Arg [0] : _LBCAddress (address): 0x139B522955D54482E7662927653ABb0bFB6F19BA
Arg [1] : _rndContractAddress (address): 0x72170F577F3B221b3478E09ccD5323445a8460d7
Arg [2] : _startTime (uint256): 1629414000
Arg [3] : _endTime (uint256): 1631833200
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000139b522955d54482e7662927653abb0bfb6f19ba
Arg [1] : 00000000000000000000000072170f577f3b221b3478e09ccd5323445a8460d7
Arg [2] : 00000000000000000000000000000000000000000000000000000000611ee270
Arg [3] : 000000000000000000000000000000000000000000000000000000006143cc70
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.