1// SPDX-License-Identifier: MIT2pragma solidity ^0.8.18;34import "@rmrk-team/evm-contracts/contracts/RMRK/nestable/RMRKNestable.sol";5import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";67contract RMRKNestableMintable is RMRKNestable, IERC721Receiver {8 uint256 private _counter;910 constructor() RMRKNestable("RMRK", "nesting") {11 _counter = 1;12 }1314 function safeMint(address to) external {15 _safeMint(to, _counter, "");16 _counter++;17 }1819 function mint(address to, uint256 tokenId) external {20 _mint(to, tokenId, "");21 }2223 function nestMint(address to, uint256 tokenId, uint256 destinationId) external {24 _nestMint(to, tokenId, destinationId, "");25 }2627 function nestTransfer(address to, uint256 tokenId, uint256 destinationId) public virtual {28 nestTransferFrom(_msgSender(), to, tokenId, destinationId, "");29 }3031 function transfer(address to, uint256 tokenId) public virtual {32 transferFrom(_msgSender(), to, tokenId);33 }3435 function onERC721Received(36 address _operator,37 address _from,38 uint256 _tokenId,39 bytes calldata _data40 ) external returns (bytes4) {41 return IERC721Receiver.onERC721Received.selector;42 }43}