function claimTicketOrBlockTransactionV2(uint256 ticketNumber) external {
require(ticketNumber < arr.length * 256, "bad ticket");
uint256 storageOffset;
uint256 offsetWithin256;
uint256 localGroup;
uint256 storedBit;
unchecked {
storageOffset = ticketNumber / 256;
offsetWithin256 = ticketNumber % 256;
}
localGroup = arr[storageOffset];
storedBit = (localGroup >> offsetWithin256) & uint256(1);
require(storedBit == 1, "already claimed");
localGroup = localGroup & ~(uint256(1) << offsetWithin256);
arr[storageOffset] = localGroup;
}
Gas cost: 26,740
Execution - transaction cost (21,000): 5,740