More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,827 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 18768100 | 433 days ago | IN | 0 ETH | 0.00046502 | ||||
Exit | 16927029 | 691 days ago | IN | 0 ETH | 0.0005922 | ||||
Exit | 16926079 | 692 days ago | IN | 0 ETH | 0.00056651 | ||||
Exit | 16920675 | 692 days ago | IN | 0 ETH | 0.00072068 | ||||
Exit | 16920655 | 692 days ago | IN | 0 ETH | 0.00070985 | ||||
Exit | 13900463 | 1146 days ago | IN | 0 ETH | 0.00304241 | ||||
Exit | 13817572 | 1158 days ago | IN | 0 ETH | 0.0030275 | ||||
Exit | 13736841 | 1171 days ago | IN | 0 ETH | 0.0094313 | ||||
Exit | 13734029 | 1171 days ago | IN | 0 ETH | 0.00722638 | ||||
Exit | 13720866 | 1174 days ago | IN | 0 ETH | 0.00188472 | ||||
Exit | 13699283 | 1177 days ago | IN | 0 ETH | 0.00201457 | ||||
Exit | 13670620 | 1182 days ago | IN | 0 ETH | 0.00814735 | ||||
Exit | 13659998 | 1183 days ago | IN | 0 ETH | 0.00292328 | ||||
Exit | 13638662 | 1187 days ago | IN | 0 ETH | 0.00607008 | ||||
Exit | 13631217 | 1188 days ago | IN | 0 ETH | 0.02014585 | ||||
Exit | 13628520 | 1188 days ago | IN | 0 ETH | 0.03813248 | ||||
Exit | 13626466 | 1189 days ago | IN | 0 ETH | 0.00955052 | ||||
Enter | 13620460 | 1190 days ago | IN | 0 ETH | 0.02985571 | ||||
Exit | 13620456 | 1190 days ago | IN | 0 ETH | 0.02746841 | ||||
Enter | 13619260 | 1190 days ago | IN | 0 ETH | 0.00972013 | ||||
Exit | 13617003 | 1190 days ago | IN | 0 ETH | 0.00584859 | ||||
Enter | 13615663 | 1190 days ago | IN | 0 ETH | 0.01052662 | ||||
Enter | 13615660 | 1190 days ago | IN | 0 ETH | 0.01259626 | ||||
Enter | 13615660 | 1190 days ago | IN | 0 ETH | 0.01259626 | ||||
Enter | 13615660 | 1190 days ago | IN | 0 ETH | 0.01259626 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
NurseRaid
Compiler Version
v0.8.5+commit.a4f2e591
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.5; import "@openzeppelin/contracts/access/Ownable.sol"; import "./interfaces/INurseRaid.sol"; import "./libraries/MaidPower.sol"; contract NurseRaid is Ownable, MaidPower, INurseRaid { struct Raid { uint256 entranceFee; uint256 nursePart; uint256 maxRewardCount; uint256 duration; uint256 endBlock; } struct Challenger { uint256 enterBlock; IMaids maids; uint256 maidId; } struct MaidEfficacy { uint256 numerator; uint256 denominator; } Raid[] public raids; mapping(uint256 => mapping(address => Challenger)) public challengers; mapping(IMaids => bool) public override isMaidsApproved; IMaidCoin public immutable override maidCoin; IMaidCafe public override maidCafe; INursePart public immutable override nursePart; ICloneNurses public immutable override cloneNurses; IRNG public override rng; MaidEfficacy public override maidEfficacy = MaidEfficacy({numerator: 1, denominator: 1000}); constructor( IMaidCoin _maidCoin, IMaidCafe _maidCafe, INursePart _nursePart, ICloneNurses _cloneNurses, IRNG _rng, address _sushiGirls, address _lingerieGirls ) MaidPower(_sushiGirls, _lingerieGirls) { maidCoin = _maidCoin; maidCafe = _maidCafe; nursePart = _nursePart; cloneNurses = _cloneNurses; rng = _rng; } function changeMaidEfficacy(uint256 _numerator, uint256 _denominator) external onlyOwner { maidEfficacy = MaidEfficacy({numerator: _numerator, denominator: _denominator}); emit ChangeMaidEfficacy(_numerator, _denominator); } function setMaidCafe(IMaidCafe _maidCafe) external onlyOwner { maidCafe = _maidCafe; } function approveMaids(IMaids[] calldata maids) public onlyOwner { for (uint256 i = 0; i < maids.length; i += 1) { isMaidsApproved[maids[i]] = true; } } function disapproveMaids(IMaids[] calldata maids) public onlyOwner { for (uint256 i = 0; i < maids.length; i += 1) { isMaidsApproved[maids[i]] = false; } } modifier onlyApprovedMaids(IMaids maids) { require(address(maids) == address(0) || isMaidsApproved[maids], "NurseRaid: The maids is not approved"); _; } function changeRNG(address addr) external onlyOwner { rng = IRNG(addr); } function raidCount() external view override returns (uint256) { return raids.length; } function create( uint256[] calldata entranceFees, uint256[] calldata _nurseParts, uint256[] calldata maxRewardCounts, uint256[] calldata durations, uint256[] calldata endBlocks ) external override onlyOwner returns (uint256 id) { uint256 length = entranceFees.length; for (uint256 i = 0; i < length; i++) { require(maxRewardCounts[i] < 255, "NurseRaid: Invalid number"); { // scope to avoid stack too deep errors (uint256 nursePartCount, uint256 nurseDestroyReturn, , ) = cloneNurses.nurseTypes(_nurseParts[i]); require( entranceFees[i] >= (nurseDestroyReturn * maxRewardCounts[i]) / nursePartCount, "NurseRaid: Fee should be higher" ); } id = raids.length; raids.push( Raid({ entranceFee: entranceFees[i], nursePart: _nurseParts[i], maxRewardCount: maxRewardCounts[i], duration: durations[i], endBlock: endBlocks[i] }) ); emit Create(id, entranceFees[i], _nurseParts[i], maxRewardCounts[i], durations[i], endBlocks[i]); } } function enter( uint256 id, IMaids maids, uint256 maidId ) public override onlyApprovedMaids(maids) { Raid storage raid = raids[id]; require(block.number < raid.endBlock, "NurseRaid: Raid has ended"); require(challengers[id][msg.sender].enterBlock == 0, "NurseRaid: Raid is in progress"); challengers[id][msg.sender] = Challenger({enterBlock: block.number, maids: maids, maidId: maidId}); if (address(maids) != address(0)) { maids.transferFrom(msg.sender, address(this), maidId); } uint256 _entranceFee = raid.entranceFee; maidCoin.transferFrom(msg.sender, address(this), _entranceFee); uint256 feeToCafe = (_entranceFee * 3) / 1000; _feeTransfer(feeToCafe); maidCoin.burn(_entranceFee - feeToCafe); emit Enter(msg.sender, id, maids, maidId); } function enterWithPermit( uint256 id, IMaids maids, uint256 maidId, uint256 deadline, uint8 v1, bytes32 r1, bytes32 s1, uint8 v2, bytes32 r2, bytes32 s2 ) external override { maidCoin.permit(msg.sender, address(this), raids[id].entranceFee, deadline, v1, r1, s1); if (address(maids) != address(0)) { maids.permit(msg.sender, maidId, deadline, v2, r2, s2); } enter(id, maids, maidId); } function enterWithPermitAll( uint256 id, IMaids maids, uint256 maidId, uint256 deadline, uint8 v1, bytes32 r1, bytes32 s1, uint8 v2, bytes32 r2, bytes32 s2 ) external override { maidCoin.permit(msg.sender, address(this), type(uint256).max, deadline, v1, r1, s1); if (address(maids) != address(0)) { maids.permitAll(msg.sender, address(this), deadline, v2, r2, s2); } enter(id, maids, maidId); } function checkDone(uint256 id) public view override returns (bool) { Raid memory raid = raids[id]; Challenger memory challenger = challengers[id][msg.sender]; return _checkDone(raid.duration, challenger); } function _checkDone(uint256 duration, Challenger memory challenger) internal view returns (bool) { if (address(challenger.maids) == address(0)) { return block.number - challenger.enterBlock >= duration; } else { return block.number - challenger.enterBlock >= duration - ((duration * powerOfMaids(challenger.maids, challenger.maidId) * maidEfficacy.numerator) / maidEfficacy.denominator); } } function exit(uint256[] calldata ids) external override { for (uint256 i = 0; i < ids.length; i++) { Challenger memory challenger = challengers[ids[i]][msg.sender]; require(challenger.enterBlock != 0, "NurseRaid: Not participating in the raid"); Raid storage raid = raids[ids[i]]; if (_checkDone(raid.duration, challenger)) { uint256 rewardCount = _randomReward(ids[i], raid.maxRewardCount, msg.sender); nursePart.mint(msg.sender, raid.nursePart, rewardCount); } if (address(challenger.maids) != address(0)) { challenger.maids.transferFrom(address(this), msg.sender, challenger.maidId); } delete challengers[ids[i]][msg.sender]; emit Exit(msg.sender, ids[i]); } } function _randomReward( uint256 _id, uint256 _maxRewardCount, address sender ) internal returns (uint256 rewardCount) { uint256 totalNumber = 2 * (2**_maxRewardCount - 1); uint256 randomNumber = (rng.generateRandomNumber(_id, sender) % totalNumber) + 1; uint256 ceil; uint256 i = 0; while (randomNumber > ceil) { i += 1; ceil = (2**(_maxRewardCount + 1)) - (2**(_maxRewardCount + 1 - i)); } rewardCount = i; } function _feeTransfer(uint256 feeToCafe) internal { maidCoin.transfer(address(maidCafe), feeToCafe); } }
// SPDX-License-Identifier: MIT pragma solidity ^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 () { 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.5.0; import "./IMaids.sol"; import "./IMaidCoin.sol"; import "./IMaidCafe.sol"; import "./INursePart.sol"; import "./ICloneNurses.sol"; import "./IRNG.sol"; interface INurseRaid { event Create( uint256 indexed id, uint256 entranceFee, uint256 indexed nursePart, uint256 maxRewardCount, uint256 duration, uint256 endBlock ); event Enter(address indexed challenger, uint256 indexed id, IMaids indexed maids, uint256 maidId); event Exit(address indexed challenger, uint256 indexed id); event ChangeMaidEfficacy(uint256 numerator, uint256 denominator); function isMaidsApproved(IMaids maids) external view returns (bool); function maidCoin() external view returns (IMaidCoin); function maidCafe() external view returns (IMaidCafe); function nursePart() external view returns (INursePart); function rng() external view returns (IRNG); function cloneNurses() external view returns (ICloneNurses); function maidEfficacy() external view returns (uint256, uint256); function raidCount() external view returns (uint256); function create( uint256[] calldata entranceFee, uint256[] calldata nursePart, uint256[] calldata maxRewardCount, uint256[] calldata duration, uint256[] calldata endBlock ) external returns (uint256 id); function enter( uint256 id, IMaids maids, uint256 maidId ) external; function enterWithPermit( uint256 id, IMaids maids, uint256 maidId, uint256 deadline, uint8 v1, bytes32 r1, bytes32 s1, uint8 v2, bytes32 r2, bytes32 s2 ) external; function enterWithPermitAll( uint256 id, IMaids maids, uint256 maidId, uint256 deadline, uint8 v1, bytes32 r1, bytes32 s1, uint8 v2, bytes32 r2, bytes32 s2 ) external; function checkDone(uint256 id) external view returns (bool); function exit(uint256[] calldata ids) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.5; import "@openzeppelin/contracts/access/Ownable.sol"; import "../interfaces/IMaids.sol"; import "../interfaces/ISushiGirlsLingerieGIrls.sol"; abstract contract MaidPower is Ownable { uint256 public lpTokenToMaidPower = 1000; //1000 : 1LP(1e18 as wei) => 1Power address public immutable sushiGirls; address public immutable lingerieGirls; event ChangeLPTokenToMaidPower(uint256 value); constructor(address _sushiGirls, address _lingerieGirls) { sushiGirls = _sushiGirls; lingerieGirls = _lingerieGirls; } function changeLPTokenToMaidPower(uint256 value) external onlyOwner { lpTokenToMaidPower = value; emit ChangeLPTokenToMaidPower(value); } function powerOfMaids(IMaids maids, uint256 id) public view returns (uint256) { uint256 originPower; uint256 supportedLPAmount; if (address(maids) == sushiGirls) { (originPower, supportedLPAmount,) = ISushiGirls(sushiGirls).sushiGirls(id); } else if (address(maids) == lingerieGirls) { (originPower, supportedLPAmount,) = ILingerieGirls(lingerieGirls).lingerieGirls(id); } else { (originPower, supportedLPAmount) = maids.powerAndLP(id); } return originPower + (supportedLPAmount * lpTokenToMaidPower) / 1e21; } }
// SPDX-License-Identifier: MIT pragma solidity ^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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol"; import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol"; import "../uniswapv2/interfaces/IUniswapV2Pair.sol"; import "./IMasterChefModule.sol"; interface IMaids is IERC721, IERC721Metadata, IERC721Enumerable, IMasterChefModule { event Support(uint256 indexed id, uint256 lpTokenAmount); event Desupport(uint256 indexed id, uint256 lpTokenAmount); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external view returns (bytes32); function PERMIT_ALL_TYPEHASH() external view returns (bytes32); function MAX_MAID_COUNT() external view returns (uint256); function nonces(uint256 id) external view returns (uint256); function noncesForAll(address owner) external view returns (uint256); function maids(uint256 id) external view returns ( uint256 originPower, uint256 supportedLPTokenAmount, uint256 sushiRewardDebt ); function powerAndLP(uint256 id) external view returns (uint256, uint256); function support(uint256 id, uint256 lpTokenAmount) external; function supportWithPermit( uint256 id, uint256 lpTokenAmount, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function desupport(uint256 id, uint256 lpTokenAmount) external; function claimSushiReward(uint256 id) external; function pendingSushiReward(uint256 id) external view returns (uint256); function permit( address spender, uint256 id, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function permitAll( address owner, address spender, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface IMaidCoin { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function INITIAL_SUPPLY() external pure returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function mint(address to, uint256 amount) external; function burn(uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./IMaidCoin.sol"; interface IMaidCafe { event Enter(address indexed user, uint256 amount); event Leave(address indexed user, uint256 share); function maidCoin() external view returns (IMaidCoin); function enter(uint256 _amount) external; function enterWithPermit( uint256 _amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function leave(uint256 _share) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; interface INursePart is IERC1155 { function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external view returns (bytes32); function nonces(address owner) external view returns (uint256); function mint( address to, uint256 id, uint256 amount ) external; function burn(uint256 id, uint256 amount) external; function permit( address owner, address spender, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol"; import "./ICloneNurseEnumerable.sol"; import "./ISupportable.sol"; import "./INursePart.sol"; import "./IMaidCoin.sol"; import "./ITheMaster.sol"; interface ICloneNurses is IERC721, IERC721Metadata, ICloneNurseEnumerable, ISupportable { event Claim(uint256 indexed id, address indexed claimer, uint256 reward); event ElongateLifetime(uint256 indexed id, uint256 rechargedLifetime, uint256 lastEndBlock, uint256 newEndBlock); function nursePart() external view returns (INursePart); function maidCoin() external view returns (IMaidCoin); function theMaster() external view returns (ITheMaster); function nurseTypes(uint256 typeId) external view returns ( uint256 partCount, uint256 destroyReturn, uint256 power, uint256 lifetime ); function nurseTypeCount() external view returns (uint256); function nurses(uint256 id) external view returns ( uint256 nurseType, uint256 endBlock, uint256 lastClaimedBlock ); function assemble(uint256 nurseType, uint256 parts) external; function assembleWithPermit( uint256 nurseType, uint256 parts, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function elongateLifetime(uint256[] calldata ids, uint256[] calldata parts) external; function destroy(uint256[] calldata ids, uint256[] calldata toIds) external; function claim(uint256[] calldata ids) external; function pendingReward(uint256 id) external view returns (uint256); function findSupportingTo(address supporter) external view returns (address, uint256); function exists(uint256 id) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface IRNG { function generateRandomNumber(uint256 seed, address sender) external returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../../utils/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.8.0; import "../IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional metadata extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Enumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. * Use along with {totalSupply} to enumerate all tokens. */ function tokenByIndex(uint256 index) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "./IMasterChef.sol"; import "../uniswapv2/interfaces/IUniswapV2Pair.sol"; interface IMasterChefModule { function lpToken() external view returns (IUniswapV2Pair); function sushi() external view returns (IERC20); function sushiMasterChef() external view returns (IMasterChef); function masterChefPid() external view returns (uint256); function sushiLastRewardBlock() external view returns (uint256); function accSushiPerShare() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^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.12; pragma experimental ABIEncoderV2; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface IMasterChef { struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. } struct PoolInfo { IERC20 lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. SUSHI to distribute per block. uint256 lastRewardBlock; // Last block number that SUSHI distribution occurs. uint256 accSushiPerShare; // Accumulated SUSHI per share, times 1e12. See below. } function poolInfo(uint256 pid) external view returns (IMasterChef.PoolInfo memory); function userInfo(uint256 pid, address user) external view returns (IMasterChef.UserInfo memory); function pendingSushi(uint256 _pid, address _user) external view returns (uint256); function deposit(uint256 _pid, uint256 _amount) external; function withdraw(uint256 _pid, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^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.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface ICloneNurseEnumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface ISupportable { event SupportTo(address indexed supporter, uint256 indexed to); event ChangeSupportingRoute(uint256 indexed from, uint256 indexed to); event ChangeSupportedPower(uint256 indexed id, int256 power); event TransferSupportingRewards(address indexed supporter, uint256 indexed id, uint256 amounts); function supportingRoute(uint256 id) external view returns (uint256); function supportingTo(address supporter) external view returns (uint256); function supportedPower(uint256 id) external view returns (uint256); function totalRewardsFromSupporters(uint256 id) external view returns (uint256); function setSupportingTo( address supporter, uint256 to, uint256 amounts ) external; function checkSupportingRoute(address supporter) external returns (address, uint256); function changeSupportedPower(address supporter, int256 power) external; function shareRewards( uint256 pending, address supporter, uint8 supportingRatio ) external returns (address nurseOwner, uint256 amountToNurseOwner); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "./IMaidCoin.sol"; import "./IRewardCalculator.sol"; import "./ISupportable.sol"; import "./IMasterChefModule.sol"; interface ITheMaster is IMasterChefModule { event ChangeRewardCalculator(address addr); event Add( uint256 indexed pid, address addr, bool indexed delegate, bool indexed mintable, address supportable, uint8 supportingRatio, uint256 allocPoint ); event Set(uint256 indexed pid, uint256 allocPoint); event Deposit(uint256 indexed userId, uint256 indexed pid, uint256 amount); event Withdraw(uint256 indexed userId, uint256 indexed pid, uint256 amount); event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount); event Support(address indexed supporter, uint256 indexed pid, uint256 amount); event Desupport(address indexed supporter, uint256 indexed pid, uint256 amount); event EmergencyDesupport(address indexed user, uint256 indexed pid, uint256 amount); event SetIsSupporterPool(uint256 indexed pid, bool indexed status); function initialRewardPerBlock() external view returns (uint256); function decreasingInterval() external view returns (uint256); function startBlock() external view returns (uint256); function maidCoin() external view returns (IMaidCoin); function rewardCalculator() external view returns (IRewardCalculator); function poolInfo(uint256 pid) external view returns ( address addr, bool delegate, ISupportable supportable, uint8 supportingRatio, uint256 allocPoint, uint256 lastRewardBlock, uint256 accRewardPerShare, uint256 supply ); function poolCount() external view returns (uint256); function userInfo(uint256 pid, uint256 user) external view returns (uint256 amount, uint256 rewardDebt); function mintableByAddr(address addr) external view returns (bool); function totalAllocPoint() external view returns (uint256); function pendingReward(uint256 pid, uint256 userId) external view returns (uint256); function rewardPerBlock() external view returns (uint256); function changeRewardCalculator(address addr) external; function add( address addr, bool delegate, bool mintable, address supportable, uint8 supportingRatio, uint256 allocPoint ) external; function set(uint256[] calldata pid, uint256[] calldata allocPoint) external; function deposit( uint256 pid, uint256 amount, uint256 userId ) external; function depositWithPermit( uint256 pid, uint256 amount, uint256 userId, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function depositWithPermitMax( uint256 pid, uint256 amount, uint256 userId, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function withdraw( uint256 pid, uint256 amount, uint256 userId ) external; function emergencyWithdraw(uint256 pid) external; function support( uint256 pid, uint256 amount, uint256 supportTo ) external; function supportWithPermit( uint256 pid, uint256 amount, uint256 supportTo, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function supportWithPermitMax( uint256 pid, uint256 amount, uint256 supportTo, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function desupport(uint256 pid, uint256 amount) external; function emergencyDesupport(uint256 pid) external; function mint(address to, uint256 amount) external; function claimSushiReward(uint256 id) external; function pendingSushiReward(uint256 id) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface IRewardCalculator { function rewardPerBlock() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface ISushiGirls { function sushiGirls(uint256 id) external view returns ( uint256 originPower, uint256 supportedLPTokenAmount, uint256 sushiRewardDebt ); } interface ILingerieGirls { function lingerieGirls(uint256 id) external view returns ( uint256 originPower, uint256 supportedLPTokenAmount, uint256 sushiRewardDebt ); }
{ "optimizer": { "enabled": true, "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":"contract IMaidCoin","name":"_maidCoin","type":"address"},{"internalType":"contract IMaidCafe","name":"_maidCafe","type":"address"},{"internalType":"contract INursePart","name":"_nursePart","type":"address"},{"internalType":"contract ICloneNurses","name":"_cloneNurses","type":"address"},{"internalType":"contract IRNG","name":"_rng","type":"address"},{"internalType":"address","name":"_sushiGirls","type":"address"},{"internalType":"address","name":"_lingerieGirls","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ChangeLPTokenToMaidPower","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"numerator","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"ChangeMaidEfficacy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"entranceFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"nursePart","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxRewardCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"contract IMaids","name":"maids","type":"address"},{"indexed":false,"internalType":"uint256","name":"maidId","type":"uint256"}],"name":"Enter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Exit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract IMaids[]","name":"maids","type":"address[]"}],"name":"approveMaids","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"challengers","outputs":[{"internalType":"uint256","name":"enterBlock","type":"uint256"},{"internalType":"contract IMaids","name":"maids","type":"address"},{"internalType":"uint256","name":"maidId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeLPTokenToMaidPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numerator","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"changeMaidEfficacy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"changeRNG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"checkDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cloneNurses","outputs":[{"internalType":"contract ICloneNurses","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"entranceFees","type":"uint256[]"},{"internalType":"uint256[]","name":"_nurseParts","type":"uint256[]"},{"internalType":"uint256[]","name":"maxRewardCounts","type":"uint256[]"},{"internalType":"uint256[]","name":"durations","type":"uint256[]"},{"internalType":"uint256[]","name":"endBlocks","type":"uint256[]"}],"name":"create","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMaids[]","name":"maids","type":"address[]"}],"name":"disapproveMaids","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"contract IMaids","name":"maids","type":"address"},{"internalType":"uint256","name":"maidId","type":"uint256"}],"name":"enter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"contract IMaids","name":"maids","type":"address"},{"internalType":"uint256","name":"maidId","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v1","type":"uint8"},{"internalType":"bytes32","name":"r1","type":"bytes32"},{"internalType":"bytes32","name":"s1","type":"bytes32"},{"internalType":"uint8","name":"v2","type":"uint8"},{"internalType":"bytes32","name":"r2","type":"bytes32"},{"internalType":"bytes32","name":"s2","type":"bytes32"}],"name":"enterWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"contract IMaids","name":"maids","type":"address"},{"internalType":"uint256","name":"maidId","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v1","type":"uint8"},{"internalType":"bytes32","name":"r1","type":"bytes32"},{"internalType":"bytes32","name":"s1","type":"bytes32"},{"internalType":"uint8","name":"v2","type":"uint8"},{"internalType":"bytes32","name":"r2","type":"bytes32"},{"internalType":"bytes32","name":"s2","type":"bytes32"}],"name":"enterWithPermitAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMaids","name":"","type":"address"}],"name":"isMaidsApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lingerieGirls","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTokenToMaidPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maidCafe","outputs":[{"internalType":"contract IMaidCafe","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maidCoin","outputs":[{"internalType":"contract IMaidCoin","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maidEfficacy","outputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nursePart","outputs":[{"internalType":"contract INursePart","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IMaids","name":"maids","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"powerOfMaids","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raidCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"raids","outputs":[{"internalType":"uint256","name":"entranceFee","type":"uint256"},{"internalType":"uint256","name":"nursePart","type":"uint256"},{"internalType":"uint256","name":"maxRewardCount","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rng","outputs":[{"internalType":"contract IRNG","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IMaidCafe","name":"_maidCafe","type":"address"}],"name":"setMaidCafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sushiGirls","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6103e860018181556101606040526101208190526101408290526007556008553480156200002c57600080fd5b506040516200246b3803806200246b8339810160408190526200004f9162000102565b600080546001600160a01b03191633908117825560405184928492918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350606091821b6001600160601b031990811660805290821b811660a05297811b881660c052600580546001600160a01b03199081166001600160a01b03998a161790915595811b881660e0529390931b9095166101005260068054909316931692909217905550620001c69050565b600080600080600080600060e0888a0312156200011e57600080fd5b87516200012b81620001ad565b60208901519097506200013e81620001ad565b60408901519096506200015181620001ad565b60608901519095506200016481620001ad565b60808901519094506200017781620001ad565b60a08901519093506200018a81620001ad565b60c08901519092506200019d81620001ad565b8091505092959891949750929550565b6001600160a01b0381168114620001c357600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c612204620002676000396000818161024a01526108e4015260008181610453015261069601526000818161034d01528181610c1001528181610fd80152818161162e015281816116e20152611b2a0152600081816103150152818161118f01526111dd0152600081816103ba015281816110b3015261110001526122046000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638b14d68511610104578063bab1a195116100a2578063d605787b11610071578063d605787b146104c9578063dda368c6146104dc578063e20ddcac146104ef578063f2fde38b1461050257600080fd5b8063bab1a19514610488578063bd36095a14610490578063c562a684146104a3578063d15d2e43146104b657600080fd5b806396d32cdd116100de57806396d32cdd146104005780639f20ae8314610413578063b24606b81461044e578063b5aa5d751461047557600080fd5b80638b14d685146103b55780638da5cb5b146103dc57806396c52a45146103ed57600080fd5b80634b9b586e11610171578063715018a61161014b578063715018a614610340578063849e5aff146103485780638656b2b31461036f5780638aacfa521461039257600080fd5b80634b9b586e146102aa578063673217a9146103105780636fb49f091461033757600080fd5b806338f65246116101ad57806338f6524614610222578063419ec3071461024557806343c5c285146102845780634b7388e61461029757600080fd5b806318c08f26146101d4578063230eb4fd146101e9578063265bce0a1461020f575b600080fd5b6101e76101e2366004611c32565b610515565b005b6101fc6101f7366004611c74565b610840565b6040519081526020015b60405180910390f35b6101e761021d366004611e4d565b610c0e565b600754600854610230919082565b60408051928352602083019190915201610206565b61026c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610206565b6101e7610292366004611c32565b610d62565b6101e76102a5366004611c32565b610dfe565b6102ed6102b8366004611de5565b600360209081526000928352604080842090915290825290208054600182015460029092015490916001600160a01b03169083565b604080519384526001600160a01b03909216602084015290820152606001610206565b61026c7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc60015481565b6101e7610e9a565b61026c7f000000000000000000000000000000000000000000000000000000000000000081565b61038261037d366004611db3565b610f0e565b6040519015158152602001610206565b6103826103a0366004611c0e565b60046020526000908152604090205460ff1681565b61026c7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661026c565b6101e76103fb366004611e4d565b610fc1565b6101fc61040e366004611d87565b6110ac565b610426610421366004611db3565b6112c8565b604080519586526020860194909452928401919091526060830152608082015260a001610206565b61026c7f000000000000000000000000000000000000000000000000000000000000000081565b6101e7610483366004611ed8565b611309565b6002546101fc565b60055461026c906001600160a01b031681565b6101e76104b1366004611c0e565b61138b565b6101e76104c4366004611e15565b6113d7565b60065461026c906001600160a01b031681565b6101e76104ea366004611db3565b6117b8565b6101e76104fd366004611c0e565b61181d565b6101e7610510366004611c0e565b611869565b60005b8181101561083b57600060036000858585818110610538576105386121a0565b60209081029290920135835250818101929092526040908101600090812033825283528190208151606081018352815480825260018301546001600160a01b0316948201949094526002909101549181019190915291506105f15760405162461bcd60e51b815260206004820152602860248201527f4e75727365526169643a204e6f742070617274696369706174696e6720696e206044820152671d1a19481c985a5960c21b60648201526084015b60405180910390fd5b60006002858585818110610607576106076121a0565b905060200201358154811061061e5761061e6121a0565b9060005260206000209060050201905061063c816003015483611953565b156106fc57600061066a868686818110610658576106586121a0565b905060200201358360020154336119cd565b6001830154604051630ab714fb60e11b81523360048201526024810191909152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063156e29f690606401600060405180830381600087803b1580156106e257600080fd5b505af11580156106f6573d6000803e3d6000fd5b50505050505b60208201516001600160a01b03161561078257602082015160408084015190516323b872dd60e01b815230600482015233602482015260448101919091526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b505050505b60036000868686818110610798576107986121a0565b60209081029290920135835250818101929092526040908101600090812033825290925281208181556001810180546001600160a01b0319169055600201558484848181106107e9576107e96121a0565b90506020020135336001600160a01b03167f22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b29963160405160405180910390a35050808061083390612145565b915050610518565b505050565b600080546001600160a01b0316331461086b5760405162461bcd60e51b81526004016105e890611fc3565b8960005b81811015610bfe5760ff89898381811061088b5761088b6121a0565b90506020020135106108df5760405162461bcd60e51b815260206004820152601960248201527f4e75727365526169643a20496e76616c6964206e756d6265720000000000000060448201526064016105e8565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cd5a146e8e8e86818110610923576109236121a0565b905060200201356040518263ffffffff1660e01b815260040161094891815260200190565b60806040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190611f4c565b505091509150818b8b858181106109b1576109b16121a0565b90506020020135826109c3919061210f565b6109cd9190612010565b8f8f858181106109df576109df6121a0565b905060200201351015610a345760405162461bcd60e51b815260206004820152601f60248201527f4e75727365526169643a204665652073686f756c64206265206869676865720060448201526064016105e8565b5050600280549050925060026040518060a001604052808f8f85818110610a5d57610a5d6121a0565b9050602002013581526020018d8d85818110610a7b57610a7b6121a0565b9050602002013581526020018b8b85818110610a9957610a996121a0565b905060200201358152602001898985818110610ab757610ab76121a0565b905060200201358152602001878785818110610ad557610ad56121a0565b6020908102929092013590925283546001818101865560009586529482902084516005909202019081559083015193810193909355506040810151600283015560608101516003830155608001516004909101558a8a82818110610b3b57610b3b6121a0565b90506020020135837fe67bc7994d282c0fbf31557abeca3bf42c2dc7e627c6aff056739bfd6609b5d68f8f85818110610b7657610b766121a0565b905060200201358c8c86818110610b8f57610b8f6121a0565b905060200201358b8b87818110610ba857610ba86121a0565b905060200201358a8a88818110610bc157610bc16121a0565b604080519687526020878101969096528601939093525091020135606082015260800160405180910390a380610bf681612145565b91505061086f565b50509a9950505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d505accf333060028e81548110610c5257610c526121a0565b9060005260206000209060050201600001548b8b8b8b6040518863ffffffff1660e01b8152600401610c8a9796959493929190611f82565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050506001600160a01b03891615610d4b57604051637ac2ff7b60e01b8152336004820152602481018990526044810188905260ff841660648201526084810183905260a481018290526001600160a01b038a1690637ac2ff7b9060c4015b600060405180830381600087803b158015610d3257600080fd5b505af1158015610d46573d6000803e3d6000fd5b505050505b610d568a8a8a6113d7565b50505050505050505050565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b81526004016105e890611fc3565b60005b8181101561083b57600160046000858585818110610daf57610daf6121a0565b9050602002016020810190610dc49190611c0e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610df7600182611ff8565b9050610d8f565b6000546001600160a01b03163314610e285760405162461bcd60e51b81526004016105e890611fc3565b60005b8181101561083b57600060046000858585818110610e4b57610e4b6121a0565b9050602002016020810190610e609190611c0e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e93600182611ff8565b9050610e2b565b6000546001600160a01b03163314610ec45760405162461bcd60e51b81526004016105e890611fc3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008060028381548110610f2457610f246121a0565b600091825260208083206040805160a0810182526005909402909101805484526001808201548585015260028083015486850152600380840154606080890191825260049095015460808901528b89529086528488203389528652968490208451938401855280548452918201546001600160a01b03169483019490945290920154908201529151909250610fb99082611953565b949350505050565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf9061101b9033903090600019908d908d908d908d90600401611f82565b600060405180830381600087803b15801561103557600080fd5b505af1158015611049573d6000803e3d6000fd5b505050506001600160a01b03891615610d4b5760405163aba0784760e01b81523360048201523060248201526044810188905260ff841660648201526084810183905260a481018290526001600160a01b038a169063aba078479060c401610d18565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141561118d57604051629159f560e01b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690629159f5906024015b60606040518083038186803b15801561114a57600080fd5b505afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190611f1e565b509092509050611291565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141561121457604051633a791c0560e11b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374f2380a90602401611132565b604051633d3b6b2560e11b8152600481018590526001600160a01b03861690637a76d64a90602401604080518083038186803b15801561125357600080fd5b505afa158015611267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128b9190611efa565b90925090505b683635c9adc5dea00000600154826112a9919061210f565b6112b39190612010565b6112bd9083611ff8565b925050505b92915050565b600281815481106112d857600080fd5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909185565b6000546001600160a01b031633146113335760405162461bcd60e51b81526004016105e890611fc3565b60408051808201825283815260209081018390526007849055600883905581518481529081018390527fb8cded0f783883feb28d3a46c16a1394521d97ce9b29f85f4f9979eaf4b32e26910160405180910390a15050565b6000546001600160a01b031633146113b55760405162461bcd60e51b81526004016105e890611fc3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b038116158061140657506001600160a01b03811660009081526004602052604090205460ff165b61145e5760405162461bcd60e51b8152602060048201526024808201527f4e75727365526169643a20546865206d61696473206973206e6f7420617070726044820152631bdd995960e21b60648201526084016105e8565b600060028581548110611473576114736121a0565b90600052602060002090600502019050806004015443106114d65760405162461bcd60e51b815260206004820152601960248201527f4e75727365526169643a20526169642068617320656e6465640000000000000060448201526064016105e8565b60008581526003602090815260408083203384529091529020541561153d5760405162461bcd60e51b815260206004820152601e60248201527f4e75727365526169643a205261696420697320696e2070726f6772657373000060448201526064016105e8565b604080516060810182524381526001600160a01b03868116602080840182815284860189815260008c8152600384528781203382529093529590912093518455516001840180546001600160a01b031916919093161790915591516002909101551561160a576040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b038516906323b872dd90606401600060405180830381600087803b1580156115f157600080fd5b505af1158015611605573d6000803e3d6000fd5b505050505b80546040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b29190611d65565b5060006103e86116c383600361210f565b6116cd9190612010565b90506116d881611b01565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166342966c68611711838561212e565b6040518263ffffffff1660e01b815260040161172f91815260200190565b600060405180830381600087803b15801561174957600080fd5b505af115801561175d573d6000803e3d6000fd5b50505050856001600160a01b031687336001600160a01b03167fdbaee2f8bdfe2e27e53a55ba816b9e0b74c12780d27d142b35023fa491602d61886040516117a791815260200190565b60405180910390a450505050505050565b6000546001600160a01b031633146117e25760405162461bcd60e51b81526004016105e890611fc3565b60018190556040518181527f4cc6f61797d7bcd39a96045b3f7c8cb2feed2fe23d042b62757ab6499b07cf559060200160405180910390a150565b6000546001600160a01b031633146118475760405162461bcd60e51b81526004016105e890611fc3565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118935760405162461bcd60e51b81526004016105e890611fc3565b6001600160a01b0381166118f85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60208101516000906001600160a01b031661197f5781518390611976904361212e565b101590506112c2565b6008546007546020840151604085015161199991906110ac565b6119a3908661210f565b6119ad919061210f565b6119b79190612010565b6119c1908461212e565b8251611976904361212e565b60008060016119dd856002612067565b6119e7919061212e565b6119f290600261210f565b6006546040516344a0a49160e01b8152600481018890526001600160a01b038681166024830152929350600092849216906344a0a49190604401602060405180830381600087803b158015611a4657600080fd5b505af1158015611a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7e9190611dcc565b611a889190612160565b611a93906001611ff8565b90506000805b81831115611af657611aac600182611ff8565b905080611aba886001611ff8565b611ac4919061212e565b611acf906002612067565b611ada886001611ff8565b611ae5906002612067565b611aef919061212e565b9150611a99565b979650505050505050565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb90604401602060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba89190611d65565b5050565b60008083601f840112611bbe57600080fd5b50813567ffffffffffffffff811115611bd657600080fd5b6020830191508360208260051b8501011115611bf157600080fd5b9250929050565b803560ff81168114611c0957600080fd5b919050565b600060208284031215611c2057600080fd5b8135611c2b816121b6565b9392505050565b60008060208385031215611c4557600080fd5b823567ffffffffffffffff811115611c5c57600080fd5b611c6885828601611bac565b90969095509350505050565b60008060008060008060008060008060a08b8d031215611c9357600080fd5b8a3567ffffffffffffffff80821115611cab57600080fd5b611cb78e838f01611bac565b909c509a5060208d0135915080821115611cd057600080fd5b611cdc8e838f01611bac565b909a50985060408d0135915080821115611cf557600080fd5b611d018e838f01611bac565b909850965060608d0135915080821115611d1a57600080fd5b611d268e838f01611bac565b909650945060808d0135915080821115611d3f57600080fd5b50611d4c8d828e01611bac565b915080935050809150509295989b9194979a5092959850565b600060208284031215611d7757600080fd5b81518015158114611c2b57600080fd5b60008060408385031215611d9a57600080fd5b8235611da5816121b6565b946020939093013593505050565b600060208284031215611dc557600080fd5b5035919050565b600060208284031215611dde57600080fd5b5051919050565b60008060408385031215611df857600080fd5b823591506020830135611e0a816121b6565b809150509250929050565b600080600060608486031215611e2a57600080fd5b833592506020840135611e3c816121b6565b929592945050506040919091013590565b6000806000806000806000806000806101408b8d031215611e6d57600080fd5b8a35995060208b0135611e7f816121b6565b985060408b0135975060608b01359650611e9b60808c01611bf8565b955060a08b0135945060c08b01359350611eb760e08c01611bf8565b92506101008b013591506101208b013590509295989b9194979a5092959850565b60008060408385031215611eeb57600080fd5b50508035926020909101359150565b60008060408385031215611f0d57600080fd5b505080516020909101519092909150565b600080600060608486031215611f3357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f6257600080fd5b505082516020840151604085015160609095015191969095509092509050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561200b5761200b612174565b500190565b60008261201f5761201f61218a565b500490565b600181815b8085111561205f57816000190482111561204557612045612174565b8085161561205257918102915b93841c9390800290612029565b509250929050565b6000611c2b838360008261207d575060016112c2565b8161208a575060006112c2565b81600181146120a057600281146120aa576120c6565b60019150506112c2565b60ff8411156120bb576120bb612174565b50506001821b6112c2565b5060208310610133831016604e8410600b84101617156120e9575081810a6112c2565b6120f38383612024565b806000190482111561210757612107612174565b029392505050565b600081600019048311821515161561212957612129612174565b500290565b60008282101561214057612140612174565b500390565b600060001982141561215957612159612174565b5060010190565b60008261216f5761216f61218a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146121cb57600080fd5b5056fea2646970667358221220d58e991a72b8e5c162a60a7016bae3af608388272494f2e8b84e89bb10df0d9564736f6c634300080500330000000000000000000000004af698b479d0098229dc715655c667ceb6cd8433000000000000000000000000d428f1050adc29976d4339b1ec602832034df701000000000000000000000000861f8d5b601054d5109b93d3775cd71c74593f780000000000000000000000005ee657f5426484a777a1fc7abd436dfdb13b1cc3000000000000000000000000b0c63655bb4d89a1392f2ceedf0c9c4f3efeb0f7000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d9000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638b14d68511610104578063bab1a195116100a2578063d605787b11610071578063d605787b146104c9578063dda368c6146104dc578063e20ddcac146104ef578063f2fde38b1461050257600080fd5b8063bab1a19514610488578063bd36095a14610490578063c562a684146104a3578063d15d2e43146104b657600080fd5b806396d32cdd116100de57806396d32cdd146104005780639f20ae8314610413578063b24606b81461044e578063b5aa5d751461047557600080fd5b80638b14d685146103b55780638da5cb5b146103dc57806396c52a45146103ed57600080fd5b80634b9b586e11610171578063715018a61161014b578063715018a614610340578063849e5aff146103485780638656b2b31461036f5780638aacfa521461039257600080fd5b80634b9b586e146102aa578063673217a9146103105780636fb49f091461033757600080fd5b806338f65246116101ad57806338f6524614610222578063419ec3071461024557806343c5c285146102845780634b7388e61461029757600080fd5b806318c08f26146101d4578063230eb4fd146101e9578063265bce0a1461020f575b600080fd5b6101e76101e2366004611c32565b610515565b005b6101fc6101f7366004611c74565b610840565b6040519081526020015b60405180910390f35b6101e761021d366004611e4d565b610c0e565b600754600854610230919082565b60408051928352602083019190915201610206565b61026c7f0000000000000000000000005ee657f5426484a777a1fc7abd436dfdb13b1cc381565b6040516001600160a01b039091168152602001610206565b6101e7610292366004611c32565b610d62565b6101e76102a5366004611c32565b610dfe565b6102ed6102b8366004611de5565b600360209081526000928352604080842090915290825290208054600182015460029092015490916001600160a01b03169083565b604080519384526001600160a01b03909216602084015290820152606001610206565b61026c7f000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c81565b6101fc60015481565b6101e7610e9a565b61026c7f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd843381565b61038261037d366004611db3565b610f0e565b6040519015158152602001610206565b6103826103a0366004611c0e565b60046020526000908152604090205460ff1681565b61026c7f000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d981565b6000546001600160a01b031661026c565b6101e76103fb366004611e4d565b610fc1565b6101fc61040e366004611d87565b6110ac565b610426610421366004611db3565b6112c8565b604080519586526020860194909452928401919091526060830152608082015260a001610206565b61026c7f000000000000000000000000861f8d5b601054d5109b93d3775cd71c74593f7881565b6101e7610483366004611ed8565b611309565b6002546101fc565b60055461026c906001600160a01b031681565b6101e76104b1366004611c0e565b61138b565b6101e76104c4366004611e15565b6113d7565b60065461026c906001600160a01b031681565b6101e76104ea366004611db3565b6117b8565b6101e76104fd366004611c0e565b61181d565b6101e7610510366004611c0e565b611869565b60005b8181101561083b57600060036000858585818110610538576105386121a0565b60209081029290920135835250818101929092526040908101600090812033825283528190208151606081018352815480825260018301546001600160a01b0316948201949094526002909101549181019190915291506105f15760405162461bcd60e51b815260206004820152602860248201527f4e75727365526169643a204e6f742070617274696369706174696e6720696e206044820152671d1a19481c985a5960c21b60648201526084015b60405180910390fd5b60006002858585818110610607576106076121a0565b905060200201358154811061061e5761061e6121a0565b9060005260206000209060050201905061063c816003015483611953565b156106fc57600061066a868686818110610658576106586121a0565b905060200201358360020154336119cd565b6001830154604051630ab714fb60e11b81523360048201526024810191909152604481018290529091507f000000000000000000000000861f8d5b601054d5109b93d3775cd71c74593f786001600160a01b03169063156e29f690606401600060405180830381600087803b1580156106e257600080fd5b505af11580156106f6573d6000803e3d6000fd5b50505050505b60208201516001600160a01b03161561078257602082015160408084015190516323b872dd60e01b815230600482015233602482015260448101919091526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b505050505b60036000868686818110610798576107986121a0565b60209081029290920135835250818101929092526040908101600090812033825290925281208181556001810180546001600160a01b0319169055600201558484848181106107e9576107e96121a0565b90506020020135336001600160a01b03167f22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b29963160405160405180910390a35050808061083390612145565b915050610518565b505050565b600080546001600160a01b0316331461086b5760405162461bcd60e51b81526004016105e890611fc3565b8960005b81811015610bfe5760ff89898381811061088b5761088b6121a0565b90506020020135106108df5760405162461bcd60e51b815260206004820152601960248201527f4e75727365526169643a20496e76616c6964206e756d6265720000000000000060448201526064016105e8565b6000807f0000000000000000000000005ee657f5426484a777a1fc7abd436dfdb13b1cc36001600160a01b031663cd5a146e8e8e86818110610923576109236121a0565b905060200201356040518263ffffffff1660e01b815260040161094891815260200190565b60806040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190611f4c565b505091509150818b8b858181106109b1576109b16121a0565b90506020020135826109c3919061210f565b6109cd9190612010565b8f8f858181106109df576109df6121a0565b905060200201351015610a345760405162461bcd60e51b815260206004820152601f60248201527f4e75727365526169643a204665652073686f756c64206265206869676865720060448201526064016105e8565b5050600280549050925060026040518060a001604052808f8f85818110610a5d57610a5d6121a0565b9050602002013581526020018d8d85818110610a7b57610a7b6121a0565b9050602002013581526020018b8b85818110610a9957610a996121a0565b905060200201358152602001898985818110610ab757610ab76121a0565b905060200201358152602001878785818110610ad557610ad56121a0565b6020908102929092013590925283546001818101865560009586529482902084516005909202019081559083015193810193909355506040810151600283015560608101516003830155608001516004909101558a8a82818110610b3b57610b3b6121a0565b90506020020135837fe67bc7994d282c0fbf31557abeca3bf42c2dc7e627c6aff056739bfd6609b5d68f8f85818110610b7657610b766121a0565b905060200201358c8c86818110610b8f57610b8f6121a0565b905060200201358b8b87818110610ba857610ba86121a0565b905060200201358a8a88818110610bc157610bc16121a0565b604080519687526020878101969096528601939093525091020135606082015260800160405180910390a380610bf681612145565b91505061086f565b50509a9950505050505050505050565b7f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd84336001600160a01b031663d505accf333060028e81548110610c5257610c526121a0565b9060005260206000209060050201600001548b8b8b8b6040518863ffffffff1660e01b8152600401610c8a9796959493929190611f82565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050506001600160a01b03891615610d4b57604051637ac2ff7b60e01b8152336004820152602481018990526044810188905260ff841660648201526084810183905260a481018290526001600160a01b038a1690637ac2ff7b9060c4015b600060405180830381600087803b158015610d3257600080fd5b505af1158015610d46573d6000803e3d6000fd5b505050505b610d568a8a8a6113d7565b50505050505050505050565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b81526004016105e890611fc3565b60005b8181101561083b57600160046000858585818110610daf57610daf6121a0565b9050602002016020810190610dc49190611c0e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610df7600182611ff8565b9050610d8f565b6000546001600160a01b03163314610e285760405162461bcd60e51b81526004016105e890611fc3565b60005b8181101561083b57600060046000858585818110610e4b57610e4b6121a0565b9050602002016020810190610e609190611c0e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e93600182611ff8565b9050610e2b565b6000546001600160a01b03163314610ec45760405162461bcd60e51b81526004016105e890611fc3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008060028381548110610f2457610f246121a0565b600091825260208083206040805160a0810182526005909402909101805484526001808201548585015260028083015486850152600380840154606080890191825260049095015460808901528b89529086528488203389528652968490208451938401855280548452918201546001600160a01b03169483019490945290920154908201529151909250610fb99082611953565b949350505050565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd8433169063d505accf9061101b9033903090600019908d908d908d908d90600401611f82565b600060405180830381600087803b15801561103557600080fd5b505af1158015611049573d6000803e3d6000fd5b505050506001600160a01b03891615610d4b5760405163aba0784760e01b81523360048201523060248201526044810188905260ff841660648201526084810183905260a481018290526001600160a01b038a169063aba078479060c401610d18565b60008060007f000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d96001600160a01b0316856001600160a01b0316141561118d57604051629159f560e01b8152600481018590527f000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d96001600160a01b031690629159f5906024015b60606040518083038186803b15801561114a57600080fd5b505afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190611f1e565b509092509050611291565b7f000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c6001600160a01b0316856001600160a01b0316141561121457604051633a791c0560e11b8152600481018590527f000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c6001600160a01b0316906374f2380a90602401611132565b604051633d3b6b2560e11b8152600481018590526001600160a01b03861690637a76d64a90602401604080518083038186803b15801561125357600080fd5b505afa158015611267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128b9190611efa565b90925090505b683635c9adc5dea00000600154826112a9919061210f565b6112b39190612010565b6112bd9083611ff8565b925050505b92915050565b600281815481106112d857600080fd5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909185565b6000546001600160a01b031633146113335760405162461bcd60e51b81526004016105e890611fc3565b60408051808201825283815260209081018390526007849055600883905581518481529081018390527fb8cded0f783883feb28d3a46c16a1394521d97ce9b29f85f4f9979eaf4b32e26910160405180910390a15050565b6000546001600160a01b031633146113b55760405162461bcd60e51b81526004016105e890611fc3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b038116158061140657506001600160a01b03811660009081526004602052604090205460ff165b61145e5760405162461bcd60e51b8152602060048201526024808201527f4e75727365526169643a20546865206d61696473206973206e6f7420617070726044820152631bdd995960e21b60648201526084016105e8565b600060028581548110611473576114736121a0565b90600052602060002090600502019050806004015443106114d65760405162461bcd60e51b815260206004820152601960248201527f4e75727365526169643a20526169642068617320656e6465640000000000000060448201526064016105e8565b60008581526003602090815260408083203384529091529020541561153d5760405162461bcd60e51b815260206004820152601e60248201527f4e75727365526169643a205261696420697320696e2070726f6772657373000060448201526064016105e8565b604080516060810182524381526001600160a01b03868116602080840182815284860189815260008c8152600384528781203382529093529590912093518455516001840180546001600160a01b031916919093161790915591516002909101551561160a576040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b038516906323b872dd90606401600060405180830381600087803b1580156115f157600080fd5b505af1158015611605573d6000803e3d6000fd5b505050505b80546040516323b872dd60e01b8152336004820152306024820152604481018290527f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd84336001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b29190611d65565b5060006103e86116c383600361210f565b6116cd9190612010565b90506116d881611b01565b6001600160a01b037f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd8433166342966c68611711838561212e565b6040518263ffffffff1660e01b815260040161172f91815260200190565b600060405180830381600087803b15801561174957600080fd5b505af115801561175d573d6000803e3d6000fd5b50505050856001600160a01b031687336001600160a01b03167fdbaee2f8bdfe2e27e53a55ba816b9e0b74c12780d27d142b35023fa491602d61886040516117a791815260200190565b60405180910390a450505050505050565b6000546001600160a01b031633146117e25760405162461bcd60e51b81526004016105e890611fc3565b60018190556040518181527f4cc6f61797d7bcd39a96045b3f7c8cb2feed2fe23d042b62757ab6499b07cf559060200160405180910390a150565b6000546001600160a01b031633146118475760405162461bcd60e51b81526004016105e890611fc3565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118935760405162461bcd60e51b81526004016105e890611fc3565b6001600160a01b0381166118f85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60208101516000906001600160a01b031661197f5781518390611976904361212e565b101590506112c2565b6008546007546020840151604085015161199991906110ac565b6119a3908661210f565b6119ad919061210f565b6119b79190612010565b6119c1908461212e565b8251611976904361212e565b60008060016119dd856002612067565b6119e7919061212e565b6119f290600261210f565b6006546040516344a0a49160e01b8152600481018890526001600160a01b038681166024830152929350600092849216906344a0a49190604401602060405180830381600087803b158015611a4657600080fd5b505af1158015611a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7e9190611dcc565b611a889190612160565b611a93906001611ff8565b90506000805b81831115611af657611aac600182611ff8565b905080611aba886001611ff8565b611ac4919061212e565b611acf906002612067565b611ada886001611ff8565b611ae5906002612067565b611aef919061212e565b9150611a99565b979650505050505050565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f0000000000000000000000004af698b479d0098229dc715655c667ceb6cd84339091169063a9059cbb90604401602060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba89190611d65565b5050565b60008083601f840112611bbe57600080fd5b50813567ffffffffffffffff811115611bd657600080fd5b6020830191508360208260051b8501011115611bf157600080fd5b9250929050565b803560ff81168114611c0957600080fd5b919050565b600060208284031215611c2057600080fd5b8135611c2b816121b6565b9392505050565b60008060208385031215611c4557600080fd5b823567ffffffffffffffff811115611c5c57600080fd5b611c6885828601611bac565b90969095509350505050565b60008060008060008060008060008060a08b8d031215611c9357600080fd5b8a3567ffffffffffffffff80821115611cab57600080fd5b611cb78e838f01611bac565b909c509a5060208d0135915080821115611cd057600080fd5b611cdc8e838f01611bac565b909a50985060408d0135915080821115611cf557600080fd5b611d018e838f01611bac565b909850965060608d0135915080821115611d1a57600080fd5b611d268e838f01611bac565b909650945060808d0135915080821115611d3f57600080fd5b50611d4c8d828e01611bac565b915080935050809150509295989b9194979a5092959850565b600060208284031215611d7757600080fd5b81518015158114611c2b57600080fd5b60008060408385031215611d9a57600080fd5b8235611da5816121b6565b946020939093013593505050565b600060208284031215611dc557600080fd5b5035919050565b600060208284031215611dde57600080fd5b5051919050565b60008060408385031215611df857600080fd5b823591506020830135611e0a816121b6565b809150509250929050565b600080600060608486031215611e2a57600080fd5b833592506020840135611e3c816121b6565b929592945050506040919091013590565b6000806000806000806000806000806101408b8d031215611e6d57600080fd5b8a35995060208b0135611e7f816121b6565b985060408b0135975060608b01359650611e9b60808c01611bf8565b955060a08b0135945060c08b01359350611eb760e08c01611bf8565b92506101008b013591506101208b013590509295989b9194979a5092959850565b60008060408385031215611eeb57600080fd5b50508035926020909101359150565b60008060408385031215611f0d57600080fd5b505080516020909101519092909150565b600080600060608486031215611f3357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f6257600080fd5b505082516020840151604085015160609095015191969095509092509050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561200b5761200b612174565b500190565b60008261201f5761201f61218a565b500490565b600181815b8085111561205f57816000190482111561204557612045612174565b8085161561205257918102915b93841c9390800290612029565b509250929050565b6000611c2b838360008261207d575060016112c2565b8161208a575060006112c2565b81600181146120a057600281146120aa576120c6565b60019150506112c2565b60ff8411156120bb576120bb612174565b50506001821b6112c2565b5060208310610133831016604e8410600b84101617156120e9575081810a6112c2565b6120f38383612024565b806000190482111561210757612107612174565b029392505050565b600081600019048311821515161561212957612129612174565b500290565b60008282101561214057612140612174565b500390565b600060001982141561215957612159612174565b5060010190565b60008261216f5761216f61218a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146121cb57600080fd5b5056fea2646970667358221220d58e991a72b8e5c162a60a7016bae3af608388272494f2e8b84e89bb10df0d9564736f6c63430008050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004af698b479d0098229dc715655c667ceb6cd8433000000000000000000000000d428f1050adc29976d4339b1ec602832034df701000000000000000000000000861f8d5b601054d5109b93d3775cd71c74593f780000000000000000000000005ee657f5426484a777a1fc7abd436dfdb13b1cc3000000000000000000000000b0c63655bb4d89a1392f2ceedf0c9c4f3efeb0f7000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d9000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c
-----Decoded View---------------
Arg [0] : _maidCoin (address): 0x4Af698B479D0098229DC715655c667Ceb6cd8433
Arg [1] : _maidCafe (address): 0xD428F1050AdC29976d4339b1ec602832034dF701
Arg [2] : _nursePart (address): 0x861f8d5b601054D5109B93D3775cd71c74593f78
Arg [3] : _cloneNurses (address): 0x5eE657F5426484A777a1fC7Abd436DfDB13b1cc3
Arg [4] : _rng (address): 0xb0c63655bB4d89a1392F2cEedf0C9c4f3efEb0F7
Arg [5] : _sushiGirls (address): 0xEB3b418e4A4430392Cd57b1356c5B1d2205A56d9
Arg [6] : _lingerieGirls (address): 0x579a60Fbc649d3398F13E0385dBE79b3Ffad757c
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000004af698b479d0098229dc715655c667ceb6cd8433
Arg [1] : 000000000000000000000000d428f1050adc29976d4339b1ec602832034df701
Arg [2] : 000000000000000000000000861f8d5b601054d5109b93d3775cd71c74593f78
Arg [3] : 0000000000000000000000005ee657f5426484a777a1fc7abd436dfdb13b1cc3
Arg [4] : 000000000000000000000000b0c63655bb4d89a1392f2ceedf0c9c4f3efeb0f7
Arg [5] : 000000000000000000000000eb3b418e4a4430392cd57b1356c5b1d2205a56d9
Arg [6] : 000000000000000000000000579a60fbc649d3398f13e0385dbe79b3ffad757c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.