getTokenIdOfAccessLevel
This view function retrieves the token ID associated with a specific access level for an event. It takes two parameters:
_eventId
: The unique identifier for the event._accessLevel
: The access level for which to retrieve the token ID.
// Some code
```remix-solidity
/**
GetTokenIdOfAccessLevel: Get the token ID associated with a specific access level for an event.
@param _eventId: The unique identifier for the event.
@param _accessLevel: The access level for which to retrieve the token ID.
@return _tokenId: The token ID associated with the specified access level.
*/
function getTokenIdOfAccessLevel(
string calldata _eventId,
string calldata _accessLevel
) public view returns (uint256) {
uint256 _tokenId;
// Retrieve all token IDs and access levels for the event
uint256[] memory tokenIds = getTokenIdsFromEventId(_eventId);
string[] memory accessLevels = getAccessLevelsFromEventId(_eventId);
// Loop through access levels to find matching access level and retrieve corresponding token ID
for (
uint256 i = 0;
i < tokenIds.length && i < accessLevels.length;
++i
) {
if (
keccak256(bytes(_accessLevel)) ==
keccak256(bytes(accessLevels[i]))
) {
_tokenId = tokenIds[i];
break;
}
}
// Revert if no matching token ID is found
if (_tokenId == 0) {
revert DecastGating__TokenIdDoesNotExists();
}
return _tokenId;
}
```
Explanation:
The function first retrieves all token IDs and access levels associated with the provided event ID using helper functions getTokenIdsFromEventId
and getAccessLevelsFromEventId
. Then, it iterates through these arrays to find a match between the provided access level and the access levels associated with the event. If a match is found, it retrieves the corresponding token ID.
If no matching token ID is found, the function reverts with the error message DecastGating__TokenIdDoesNotExists
.
Finally, the function returns the retrieved token ID associated with the specified access level.
Last updated