pragma solidity ^0.8.9;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
contract ValorRune is
ERC721,
ERC721URIStorage,
Ownable,
Pausable,
ReentrancyGuard,
IERC721Receiver
{
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
string private _baseTokenURI = "https://api.valor-fantasy.var-meta.com/api/v1/runes/metadata/";
mapping(address => uint256) public nonces;
address public signerWallet;
uint256 public constant MAX_MINT_PER_TX = 100;
event Minted(address indexed to, uint256 tokenId, string uri);
event Burned(address indexed owner, uint256 tokenId);
event BaseURIChanged(string newBaseURI);