generateTokenId
// Some code
```remix-solidity
/**
GenerateTokenId: Generate a unique token ID for an event access level based on the event registerer's address, event ID, and access level.
@param eventRegisterer: The address of the entity registering the event.
@param eventId: The unique identifier for the event.
@param accessLevel: The access level for which the token ID is generated.
@return tokenId: The generated unique token ID.
Format: eventId, registerer, accessLevel
*/
function generateTokenId(
string calldata eventId,
address eventRegisterer,
string calldata accessLevel
) public view returns (uint256) {
// Convert event registerer's address to a hexadecimal string
string memory addressToString = Strings.toHexString(
uint256(uint160(eventRegisterer)),
20
);
// Concatenate all strings using abi.encodePacked
string memory concatenatedString = string(
abi.encodePacked(eventId, addressToString, accessLevel)
);
// Generate token ID using keccak256 hash of the concatenated string
uint256 tokenId = uint256(keccak256(bytes(concatenatedString)));
// Check if the generated token ID already exists for the event
if (checkTokenIdExistsForEventId(eventId, tokenId))
revert DecastGating__TokenIdAlreadyExists();
return tokenId;
}
```Explanation:
Last updated