Module RateLimitNFT

Source
Expand description

Generated by the following Solidity interface…

library IDiamond {
    type FacetCutAction is uint8;
    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }
}

library IDiamondLoupe {
    struct Facet {
        address facetAddress;
        bytes4[] functionSelectors;
    }
}

library LibRateLimitNFTStorage {
    struct RateLimit {
        uint256 requestsPerKilosecond;
        uint256 expiresAt;
    }
}

interface RateLimitNFT {
    error CallerNotOwner();
    error CannotAddFunctionToDiamondThatAlreadyExists(bytes4 _selector);
    error CannotAddSelectorsToZeroAddress(bytes4[] _selectors);
    error CannotRemoveFunctionThatDoesNotExist(bytes4 _selector);
    error CannotRemoveImmutableFunction(bytes4 _selector);
    error CannotReplaceFunctionThatDoesNotExists(bytes4 _selector);
    error CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(bytes4 _selector);
    error CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[] _selectors);
    error CannotReplaceImmutableFunction(bytes4 _selector);
    error IncorrectFacetCutAction(uint8 _action);
    error InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata);
    error NoBytecodeAtAddress(address _contractAddress, string _message);
    error NoSelectorsProvidedForFacetForCut(address _facetAddress);
    error NotContractOwner(address _user, address _contractOwner);
    error RemoveFacetAddressMustBeZeroAddress(address _facetAddress);

    event AdditionalRequestsPerKilosecondCostSet(uint256 newAdditionalRequestsPerKilosecondCost);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    event DiamondCut(IDiamond.FacetCut[] _diamondCut, address _init, bytes _calldata);
    event FreeMintSignerSet(address indexed newFreeMintSigner);
    event FreeRequestsPerRateLimitWindowSet(uint256 newFreeRequestsPerRateLimitWindow);
    event Initialized(uint8 version);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event RLIHolderRateLimitWindowSecondsSet(uint256 newRLIHolderRateLimitWindowSeconds);
    event RateLimitWindowSecondsSet(uint256 newRateLimitWindowSeconds);
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Withdrew(uint256 amount);

    function RLIHolderRateLimitWindowSeconds() external view returns (uint256);
    function additionalRequestsPerKilosecondCost() external view returns (uint256);
    function approve(address to, uint256 tokenId) external;
    function balanceOf(address owner) external view returns (uint256);
    function burn(uint256 tokenId) external;
    function calculateCost(uint256 requestsPerKilosecond, uint256 expiresAt) external view returns (uint256);
    function calculateRequestsPerKilosecond(uint256 payingAmount, uint256 expiresAt) external view returns (uint256);
    function capacity(uint256 tokenId) external view returns (LibRateLimitNFTStorage.RateLimit memory);
    function checkBelowMaxRequestsPerKilosecond(uint256 requestedRequestsPerKilosecond) external view returns (bool);
    function currentSoldRequestsPerKilosecond() external view returns (uint256);
    function defaultRateLimitWindowSeconds() external view returns (uint256);
    function diamondCut(IDiamond.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata) external;
    function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
    function facetAddresses() external view returns (address[] memory facetAddresses_);
    function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory _facetFunctionSelectors);
    function facets() external view returns (IDiamondLoupe.Facet[] memory facets_);
    function freeMint(uint256 expiresAt, uint256 requestsPerKilosecond, bytes32 msgHash, uint8 v, bytes32 r, bytes32 sVal) external returns (uint256);
    function freeMintSigTest(uint256 expiresAt, uint256 requestsPerKilosecond, bytes32 msgHash, uint8 v, bytes32 r, bytes32 sVal) external view;
    function freeMintSigner() external view returns (address);
    function freeRequestsPerRateLimitWindow() external view returns (uint256);
    function getApproved(uint256 tokenId) external view returns (address);
    function initialize() external;
    function isApprovedForAll(address owner, address operator) external view returns (bool);
    function isExpired(uint256 tokenId) external view returns (bool);
    function maxExpirationSeconds() external view returns (uint256);
    function maxRequestsPerKilosecond() external view returns (uint256);
    function mint(uint256 expiresAt) external payable returns (uint256);
    function name() external view returns (string memory);
    function owner() external view returns (address owner_);
    function ownerOf(uint256 tokenId) external view returns (address);
    function prefixed(bytes32 hash) external pure returns (bytes32);
    function pruneExpired(address owner) external;
    function redeemedFreeMints(bytes32 msgHash) external view returns (bool);
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) external;
    function setAdditionalRequestsPerKilosecondCost(uint256 newAdditionalRequestsPerKilosecondCost) external;
    function setApprovalForAll(address operator, bool approved) external;
    function setFreeMintSigner(address newFreeMintSigner) external;
    function setFreeRequestsPerRateLimitWindow(uint256 newFreeRequestsPerRateLimitWindow) external;
    function setMaxExpirationSeconds(uint256 newMaxExpirationSeconds) external;
    function setMaxRequestsPerKilosecond(uint256 newMaxRequestsPerKilosecond) external;
    function setRLIHolderRateLimitWindowSeconds(uint256 newRLIHolderRateLimitWindowSeconds) external;
    function setRateLimitWindowSeconds(uint256 newRateLimitWindowSeconds) external;
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
    function symbol() external view returns (string memory);
    function tokenByIndex(uint256 index) external view returns (uint256);
    function tokenIdCounter() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);
    function tokenSVG(uint256 tokenId) external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
    function totalSoldRequestsPerKilosecondByExpirationTime(uint256 expiresAt) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function transferFrom(address from, address to, uint256 tokenId) external;
    function transferOwnership(address _newOwner) external;
    function withdraw() external;
}

…which was generated by the following JSON ABI:

[
  {
    "type": "function",
    "name": "RLIHolderRateLimitWindowSeconds",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "additionalRequestsPerKilosecondCost",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "approve",
    "inputs": [
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "balanceOf",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "burn",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "calculateCost",
    "inputs": [
      {
        "name": "requestsPerKilosecond",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "calculateRequestsPerKilosecond",
    "inputs": [
      {
        "name": "payingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "capacity",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibRateLimitNFTStorage.RateLimit",
        "components": [
          {
            "name": "requestsPerKilosecond",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "expiresAt",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "checkBelowMaxRequestsPerKilosecond",
    "inputs": [
      {
        "name": "requestedRequestsPerKilosecond",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "currentSoldRequestsPerKilosecond",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "defaultRateLimitWindowSeconds",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "diamondCut",
    "inputs": [
      {
        "name": "_diamondCut",
        "type": "tuple[]",
        "internalType": "struct IDiamond.FacetCut[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "action",
            "type": "uint8",
            "internalType": "enum IDiamond.FacetCutAction"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      },
      {
        "name": "_init",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "facetAddress",
    "inputs": [
      {
        "name": "_functionSelector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "facetAddress_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facetAddresses",
    "inputs": [],
    "outputs": [
      {
        "name": "facetAddresses_",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facetFunctionSelectors",
    "inputs": [
      {
        "name": "_facet",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "_facetFunctionSelectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facets",
    "inputs": [],
    "outputs": [
      {
        "name": "facets_",
        "type": "tuple[]",
        "internalType": "struct IDiamondLoupe.Facet[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "freeMint",
    "inputs": [
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "requestsPerKilosecond",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "msgHash",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "v",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "sVal",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "freeMintSigTest",
    "inputs": [
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "requestsPerKilosecond",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "msgHash",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "v",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "sVal",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "freeMintSigner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "freeRequestsPerRateLimitWindow",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getApproved",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "initialize",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "isApprovedForAll",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "operator",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isExpired",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "maxExpirationSeconds",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "maxRequestsPerKilosecond",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "mint",
    "inputs": [
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "name",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "owner_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "ownerOf",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "prefixed",
    "inputs": [
      {
        "name": "hash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "pruneExpired",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "redeemedFreeMints",
    "inputs": [
      {
        "name": "msgHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "safeTransferFrom",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "safeTransferFrom",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setAdditionalRequestsPerKilosecondCost",
    "inputs": [
      {
        "name": "newAdditionalRequestsPerKilosecondCost",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setApprovalForAll",
    "inputs": [
      {
        "name": "operator",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "approved",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setFreeMintSigner",
    "inputs": [
      {
        "name": "newFreeMintSigner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setFreeRequestsPerRateLimitWindow",
    "inputs": [
      {
        "name": "newFreeRequestsPerRateLimitWindow",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMaxExpirationSeconds",
    "inputs": [
      {
        "name": "newMaxExpirationSeconds",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMaxRequestsPerKilosecond",
    "inputs": [
      {
        "name": "newMaxRequestsPerKilosecond",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setRLIHolderRateLimitWindowSeconds",
    "inputs": [
      {
        "name": "newRLIHolderRateLimitWindowSeconds",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setRateLimitWindowSeconds",
    "inputs": [
      {
        "name": "newRateLimitWindowSeconds",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "symbol",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tokenByIndex",
    "inputs": [
      {
        "name": "index",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tokenIdCounter",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tokenOfOwnerByIndex",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "index",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tokenSVG",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tokenURI",
    "inputs": [
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalSoldRequestsPerKilosecondByExpirationTime",
    "inputs": [
      {
        "name": "expiresAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalSupply",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "transferFrom",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "_newOwner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "withdraw",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "AdditionalRequestsPerKilosecondCostSet",
    "inputs": [
      {
        "name": "newAdditionalRequestsPerKilosecondCost",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Approval",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "approved",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ApprovalForAll",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "operator",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "approved",
        "type": "bool",
        "indexed": false,
        "internalType": "bool"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DiamondCut",
    "inputs": [
      {
        "name": "_diamondCut",
        "type": "tuple[]",
        "indexed": false,
        "internalType": "struct IDiamond.FacetCut[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "action",
            "type": "uint8",
            "internalType": "enum IDiamond.FacetCutAction"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      },
      {
        "name": "_init",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "FreeMintSignerSet",
    "inputs": [
      {
        "name": "newFreeMintSigner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "FreeRequestsPerRateLimitWindowSet",
    "inputs": [
      {
        "name": "newFreeRequestsPerRateLimitWindow",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Initialized",
    "inputs": [
      {
        "name": "version",
        "type": "uint8",
        "indexed": false,
        "internalType": "uint8"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "previousOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "newOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RLIHolderRateLimitWindowSecondsSet",
    "inputs": [
      {
        "name": "newRLIHolderRateLimitWindowSeconds",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RateLimitWindowSecondsSet",
    "inputs": [
      {
        "name": "newRateLimitWindowSeconds",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Transfer",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "tokenId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Withdrew",
    "inputs": [
      {
        "name": "amount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "CallerNotOwner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotAddFunctionToDiamondThatAlreadyExists",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotAddSelectorsToZeroAddress",
    "inputs": [
      {
        "name": "_selectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotRemoveFunctionThatDoesNotExist",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotRemoveImmutableFunction",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionThatDoesNotExists",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
    "inputs": [
      {
        "name": "_selectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceImmutableFunction",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "IncorrectFacetCutAction",
    "inputs": [
      {
        "name": "_action",
        "type": "uint8",
        "internalType": "uint8"
      }
    ]
  },
  {
    "type": "error",
    "name": "InitializationFunctionReverted",
    "inputs": [
      {
        "name": "_initializationContractAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "internalType": "bytes"
      }
    ]
  },
  {
    "type": "error",
    "name": "NoBytecodeAtAddress",
    "inputs": [
      {
        "name": "_contractAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_message",
        "type": "string",
        "internalType": "string"
      }
    ]
  },
  {
    "type": "error",
    "name": "NoSelectorsProvidedForFacetForCut",
    "inputs": [
      {
        "name": "_facetAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotContractOwner",
    "inputs": [
      {
        "name": "_user",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_contractOwner",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "RemoveFacetAddressMustBeZeroAddress",
    "inputs": [
      {
        "name": "_facetAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  }
]

Structs§

AdditionalRequestsPerKilosecondCostSet
Event with signature AdditionalRequestsPerKilosecondCostSet(uint256) and selector 0x33e576b8e54523be9c9684e33c7144d859acb615dddc3874462fc0cc73f1ebe3.
Approval
Event with signature Approval(address,address,uint256) and selector 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
ApprovalForAll
Event with signature ApprovalForAll(address,address,bool) and selector 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
CallerNotOwner
Custom error with signature CallerNotOwner() and selector 0x5cd83192.
CannotAddFunctionToDiamondThatAlreadyExists
Custom error with signature CannotAddFunctionToDiamondThatAlreadyExists(bytes4) and selector 0xebbf5d07.
CannotAddSelectorsToZeroAddress
Custom error with signature CannotAddSelectorsToZeroAddress(bytes4[]) and selector 0x0ae3681c.
CannotRemoveFunctionThatDoesNotExist
Custom error with signature CannotRemoveFunctionThatDoesNotExist(bytes4) and selector 0x7a08a22d.
CannotRemoveImmutableFunction
Custom error with signature CannotRemoveImmutableFunction(bytes4) and selector 0x6fafeb08.
CannotReplaceFunctionThatDoesNotExists
Custom error with signature CannotReplaceFunctionThatDoesNotExists(bytes4) and selector 0x7479f939.
CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet
Custom error with signature CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(bytes4) and selector 0x358d9d1a.
CannotReplaceFunctionsFromFacetWithZeroAddress
Custom error with signature CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[]) and selector 0xcd98a96f.
CannotReplaceImmutableFunction
Custom error with signature CannotReplaceImmutableFunction(bytes4) and selector 0x520300da.
DiamondCut
Event with signature DiamondCut((address,uint8,bytes4[])[],address,bytes) and selector 0x8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673.
FreeMintSignerSet
Event with signature FreeMintSignerSet(address) and selector 0x65d3e06a561c77a07da59b8b2ca10214ae08fe21cc2953a90db0ac8b5b7c4371.
FreeRequestsPerRateLimitWindowSet
Event with signature FreeRequestsPerRateLimitWindowSet(uint256) and selector 0xce84f3dad126a2cb9d67cdca12c64dc079f7a9a1a0728c5c4e16e4b5b2e4bc4d.
IncorrectFacetCutAction
Custom error with signature IncorrectFacetCutAction(uint8) and selector 0x7fe9a41e.
InitializationFunctionReverted
Custom error with signature InitializationFunctionReverted(address,bytes) and selector 0x192105d7.
Initialized
Event with signature Initialized(uint8) and selector 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
NoBytecodeAtAddress
Custom error with signature NoBytecodeAtAddress(address,string) and selector 0x919834b9.
NoSelectorsProvidedForFacetForCut
Custom error with signature NoSelectorsProvidedForFacetForCut(address) and selector 0xe767f91f.
NotContractOwner
Custom error with signature NotContractOwner(address,address) and selector 0xff4127cb.
OwnershipTransferred
Event with signature OwnershipTransferred(address,address) and selector 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
RLIHolderRateLimitWindowSecondsCall
Function with signature RLIHolderRateLimitWindowSeconds() and selector 0x4a5f3acd.
RLIHolderRateLimitWindowSecondsReturn
Container type for the return parameters of the RLIHolderRateLimitWindowSeconds() function.
RLIHolderRateLimitWindowSecondsSet
Event with signature RLIHolderRateLimitWindowSecondsSet(uint256) and selector 0xad40b1be79d0692234d4fb1d25a47b916b4754dda8187fc0aa1271b7d7adb040.
RateLimitNFTInstance
A RateLimitNFT instance.
RateLimitWindowSecondsSet
Event with signature RateLimitWindowSecondsSet(uint256) and selector 0x8113757de54f756eb308220e3f035727188560fd3230aaf1fbc24e5610fea1f8.
RemoveFacetAddressMustBeZeroAddress
Custom error with signature RemoveFacetAddressMustBeZeroAddress(address) and selector 0xd091bc81.
Transfer
Event with signature Transfer(address,address,uint256) and selector 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
Withdrew
Event with signature Withdrew(uint256) and selector 0xb6b476da71cea8275cac6b1720c04966afaff5e637472cedb6cbd32c43a23251.
additionalRequestsPerKilosecondCostCall
Function with signature additionalRequestsPerKilosecondCost() and selector 0x4659470d.
additionalRequestsPerKilosecondCostReturn
Container type for the return parameters of the additionalRequestsPerKilosecondCost() function.
approveCall
Function with signature approve(address,uint256) and selector 0x095ea7b3.
approveReturn
Container type for the return parameters of the approve(address,uint256) function.
balanceOfCall
Function with signature balanceOf(address) and selector 0x70a08231.
balanceOfReturn
Container type for the return parameters of the balanceOf(address) function.
burnCall
Function with signature burn(uint256) and selector 0x42966c68.
burnReturn
Container type for the return parameters of the burn(uint256) function.
calculateCostCall
Function with signature calculateCost(uint256,uint256) and selector 0xce394696.
calculateCostReturn
Container type for the return parameters of the calculateCost(uint256,uint256) function.
calculateRequestsPerKilosecondCall
Function with signature calculateRequestsPerKilosecond(uint256,uint256) and selector 0xba45b2ba.
calculateRequestsPerKilosecondReturn
Container type for the return parameters of the calculateRequestsPerKilosecond(uint256,uint256) function.
capacityCall
Function with signature capacity(uint256) and selector 0xab1bbeca.
capacityReturn
Container type for the return parameters of the capacity(uint256) function.
checkBelowMaxRequestsPerKilosecondCall
Function with signature checkBelowMaxRequestsPerKilosecond(uint256) and selector 0x72384aea.
checkBelowMaxRequestsPerKilosecondReturn
Container type for the return parameters of the checkBelowMaxRequestsPerKilosecond(uint256) function.
currentSoldRequestsPerKilosecondCall
Function with signature currentSoldRequestsPerKilosecond() and selector 0xea736df1.
currentSoldRequestsPerKilosecondReturn
Container type for the return parameters of the currentSoldRequestsPerKilosecond() function.
defaultRateLimitWindowSecondsCall
Function with signature defaultRateLimitWindowSeconds() and selector 0xfb24b22e.
defaultRateLimitWindowSecondsReturn
Container type for the return parameters of the defaultRateLimitWindowSeconds() function.
diamondCutCall
Function with signature diamondCut((address,uint8,bytes4[])[],address,bytes) and selector 0x1f931c1c.
diamondCutReturn
Container type for the return parameters of the diamondCut((address,uint8,bytes4[])[],address,bytes) function.
facetAddressCall
Function with signature facetAddress(bytes4) and selector 0xcdffacc6.
facetAddressReturn
Container type for the return parameters of the facetAddress(bytes4) function.
facetAddressesCall
Function with signature facetAddresses() and selector 0x52ef6b2c.
facetAddressesReturn
Container type for the return parameters of the facetAddresses() function.
facetFunctionSelectorsCall
Function with signature facetFunctionSelectors(address) and selector 0xadfca15e.
facetFunctionSelectorsReturn
Container type for the return parameters of the facetFunctionSelectors(address) function.
facetsCall
Function with signature facets() and selector 0x7a0ed627.
facetsReturn
Container type for the return parameters of the facets() function.
freeMintCall
Function with signature freeMint(uint256,uint256,bytes32,uint8,bytes32,bytes32) and selector 0x995eebab.
freeMintReturn
Container type for the return parameters of the freeMint(uint256,uint256,bytes32,uint8,bytes32,bytes32) function.
freeMintSigTestCall
Function with signature freeMintSigTest(uint256,uint256,bytes32,uint8,bytes32,bytes32) and selector 0x3488ab13.
freeMintSigTestReturn
Container type for the return parameters of the freeMintSigTest(uint256,uint256,bytes32,uint8,bytes32,bytes32) function.
freeMintSignerCall
Function with signature freeMintSigner() and selector 0xb94a2102.
freeMintSignerReturn
Container type for the return parameters of the freeMintSigner() function.
freeRequestsPerRateLimitWindowCall
Function with signature freeRequestsPerRateLimitWindow() and selector 0x26894764.
freeRequestsPerRateLimitWindowReturn
Container type for the return parameters of the freeRequestsPerRateLimitWindow() function.
getApprovedCall
Function with signature getApproved(uint256) and selector 0x081812fc.
getApprovedReturn
Container type for the return parameters of the getApproved(uint256) function.
initializeCall
Function with signature initialize() and selector 0x8129fc1c.
initializeReturn
Container type for the return parameters of the initialize() function.
isApprovedForAllCall
Function with signature isApprovedForAll(address,address) and selector 0xe985e9c5.
isApprovedForAllReturn
Container type for the return parameters of the isApprovedForAll(address,address) function.
isExpiredCall
Function with signature isExpired(uint256) and selector 0xd9548e53.
isExpiredReturn
Container type for the return parameters of the isExpired(uint256) function.
maxExpirationSecondsCall
Function with signature maxExpirationSeconds() and selector 0xba49dcdd.
maxExpirationSecondsReturn
Container type for the return parameters of the maxExpirationSeconds() function.
maxRequestsPerKilosecondCall
Function with signature maxRequestsPerKilosecond() and selector 0x056bcfeb.
maxRequestsPerKilosecondReturn
Container type for the return parameters of the maxRequestsPerKilosecond() function.
mintCall
Function with signature mint(uint256) and selector 0xa0712d68.
mintReturn
Container type for the return parameters of the mint(uint256) function.
nameCall
Function with signature name() and selector 0x06fdde03.
nameReturn
Container type for the return parameters of the name() function.
ownerCall
Function with signature owner() and selector 0x8da5cb5b.
ownerOfCall
Function with signature ownerOf(uint256) and selector 0x6352211e.
ownerOfReturn
Container type for the return parameters of the ownerOf(uint256) function.
ownerReturn
Container type for the return parameters of the owner() function.
prefixedCall
Function with signature prefixed(bytes32) and selector 0x1f275713.
prefixedReturn
Container type for the return parameters of the prefixed(bytes32) function.
pruneExpiredCall
Function with signature pruneExpired(address) and selector 0xc3485de6.
pruneExpiredReturn
Container type for the return parameters of the pruneExpired(address) function.
redeemedFreeMintsCall
Function with signature redeemedFreeMints(bytes32) and selector 0x3b1a72cc.
redeemedFreeMintsReturn
Container type for the return parameters of the redeemedFreeMints(bytes32) function.
safeTransferFrom_0Call
Function with signature safeTransferFrom(address,address,uint256) and selector 0x42842e0e.
safeTransferFrom_0Return
Container type for the return parameters of the safeTransferFrom(address,address,uint256) function.
safeTransferFrom_1Call
Function with signature safeTransferFrom(address,address,uint256,bytes) and selector 0xb88d4fde.
safeTransferFrom_1Return
Container type for the return parameters of the safeTransferFrom(address,address,uint256,bytes) function.
setAdditionalRequestsPerKilosecondCostCall
Function with signature setAdditionalRequestsPerKilosecondCost(uint256) and selector 0xe62a2195.
setAdditionalRequestsPerKilosecondCostReturn
Container type for the return parameters of the setAdditionalRequestsPerKilosecondCost(uint256) function.
setApprovalForAllCall
Function with signature setApprovalForAll(address,bool) and selector 0xa22cb465.
setApprovalForAllReturn
Container type for the return parameters of the setApprovalForAll(address,bool) function.
setFreeMintSignerCall
Function with signature setFreeMintSigner(address) and selector 0x3b189852.
setFreeMintSignerReturn
Container type for the return parameters of the setFreeMintSigner(address) function.
setFreeRequestsPerRateLimitWindowCall
Function with signature setFreeRequestsPerRateLimitWindow(uint256) and selector 0x28b9b37c.
setFreeRequestsPerRateLimitWindowReturn
Container type for the return parameters of the setFreeRequestsPerRateLimitWindow(uint256) function.
setMaxExpirationSecondsCall
Function with signature setMaxExpirationSeconds(uint256) and selector 0x82d81905.
setMaxExpirationSecondsReturn
Container type for the return parameters of the setMaxExpirationSeconds(uint256) function.
setMaxRequestsPerKilosecondCall
Function with signature setMaxRequestsPerKilosecond(uint256) and selector 0x756d1fb9.
setMaxRequestsPerKilosecondReturn
Container type for the return parameters of the setMaxRequestsPerKilosecond(uint256) function.
setRLIHolderRateLimitWindowSecondsCall
Function with signature setRLIHolderRateLimitWindowSeconds(uint256) and selector 0x39f1a4f1.
setRLIHolderRateLimitWindowSecondsReturn
Container type for the return parameters of the setRLIHolderRateLimitWindowSeconds(uint256) function.
setRateLimitWindowSecondsCall
Function with signature setRateLimitWindowSeconds(uint256) and selector 0x11fc4562.
setRateLimitWindowSecondsReturn
Container type for the return parameters of the setRateLimitWindowSeconds(uint256) function.
supportsInterfaceCall
Function with signature supportsInterface(bytes4) and selector 0x01ffc9a7.
supportsInterfaceReturn
Container type for the return parameters of the supportsInterface(bytes4) function.
symbolCall
Function with signature symbol() and selector 0x95d89b41.
symbolReturn
Container type for the return parameters of the symbol() function.
tokenByIndexCall
Function with signature tokenByIndex(uint256) and selector 0x4f6ccce7.
tokenByIndexReturn
Container type for the return parameters of the tokenByIndex(uint256) function.
tokenIdCounterCall
Function with signature tokenIdCounter() and selector 0x98bdf6f5.
tokenIdCounterReturn
Container type for the return parameters of the tokenIdCounter() function.
tokenOfOwnerByIndexCall
Function with signature tokenOfOwnerByIndex(address,uint256) and selector 0x2f745c59.
tokenOfOwnerByIndexReturn
Container type for the return parameters of the tokenOfOwnerByIndex(address,uint256) function.
tokenSVGCall
Function with signature tokenSVG(uint256) and selector 0x9bac5f7a.
tokenSVGReturn
Container type for the return parameters of the tokenSVG(uint256) function.
tokenURICall
Function with signature tokenURI(uint256) and selector 0xc87b56dd.
tokenURIReturn
Container type for the return parameters of the tokenURI(uint256) function.
totalSoldRequestsPerKilosecondByExpirationTimeCall
Function with signature totalSoldRequestsPerKilosecondByExpirationTime(uint256) and selector 0x8b49038d.
totalSoldRequestsPerKilosecondByExpirationTimeReturn
Container type for the return parameters of the totalSoldRequestsPerKilosecondByExpirationTime(uint256) function.
totalSupplyCall
Function with signature totalSupply() and selector 0x18160ddd.
totalSupplyReturn
Container type for the return parameters of the totalSupply() function.
transferFromCall
Function with signature transferFrom(address,address,uint256) and selector 0x23b872dd.
transferFromReturn
Container type for the return parameters of the transferFrom(address,address,uint256) function.
transferOwnershipCall
Function with signature transferOwnership(address) and selector 0xf2fde38b.
transferOwnershipReturn
Container type for the return parameters of the transferOwnership(address) function.
withdrawCall
Function with signature withdraw() and selector 0x3ccfd60b.
withdrawReturn
Container type for the return parameters of the withdraw() function.

Enums§

RateLimitNFTCalls
Container for all the RateLimitNFT function calls.
RateLimitNFTErrors
Container for all the RateLimitNFT custom errors.
RateLimitNFTEvents
Container for all the RateLimitNFT events.

Statics§

BYTECODE
The creation / init bytecode of the contract.
DEPLOYED_BYTECODE
The runtime bytecode of the contract, as deployed on the network.

Functions§

deploy
Deploys this contract using the given provider and constructor arguments, if any.
deploy_builder
Creates a RawCallBuilder for deploying this contract using the given provider and constructor arguments, if any.
new
Creates a new wrapper around an on-chain RateLimitNFT contract instance.