Skip to content

Commit

Permalink
Merge pull request #49 from axieinfinity/feature/lib-event-range
Browse files Browse the repository at this point in the history
feat(LibEventRange): add `LibEventRange` lib
  • Loading branch information
TuDo1403 authored May 21, 2024
2 parents 07d4305 + c71cab3 commit a8d8ba0
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 26 deletions.
41 changes: 15 additions & 26 deletions logs/contract-code-sizes.log
Original file line number Diff line number Diff line change
@@ -1,27 +1,16 @@
| Contract | Size (kB) | Margin (kB) |
|---------------------------|-----------|-------------|
| LibErrorHandler | 0.086 | 24.49 |
| LibNativeTransfer | 0.086 | 24.49 |
| LibSafeRange | 0.086 | 24.49 |
| Math | 0.086 | 24.49 |
| MockERC20 | 3.704 | 20.872 |
| MockERC721 | 3.964 | 20.612 |
| Panic | 0.086 | 24.49 |
| RONTransferHelper | 0.086 | 24.49 |
| RONTransferHelperExtended | 0.086 | 24.49 |
| SafeCast | 0.086 | 24.49 |
| SignedMath | 0.086 | 24.49 |
| StdStyle | 0.086 | 24.49 |
| Strings | 0.086 | 24.49 |
| TransferFromHelper | 0.086 | 24.49 |
| TransferHelper | 0.086 | 24.49 |
| console | 0.086 | 24.49 |
| console2 | 0.086 | 24.49 |
| safeconsole | 0.086 | 24.49 |
| stdError | 0.592 | 23.984 |
| stdJson | 0.086 | 24.49 |
| stdMath | 0.086 | 24.49 |
| stdStorage | 0.086 | 24.49 |
| stdStorageSafe | 0.086 | 24.49 |
| stdToml | 0.086 | 24.49 |
| Contract | Size (B) | Margin (B) |
|---------------------------|----------|------------|
| LibErrorHandler | 86 | 24,490 |
| LibEventRange | 86 | 24,490 |
| LibNativeTransfer | 86 | 24,490 |
| LibSafeRange | 86 | 24,490 |
| Math | 86 | 24,490 |
| Panic | 86 | 24,490 |
| RONTransferHelper | 86 | 24,490 |
| RONTransferHelperExtended | 86 | 24,490 |
| SafeCast | 86 | 24,490 |
| SignedMath | 86 | 24,490 |
| Strings | 86 | 24,490 |
| TransferFromHelper | 86 | 24,490 |
| TransferHelper | 86 | 24,490 |

42 changes: 42 additions & 0 deletions src/LibEventRange.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct EventRange {
// uint40 is enough to represent the timestamp until year 36812
uint40 startedAt;
uint40 endedAt;
/// @dev Reserved space for future upgrades
uint176 __reserved;
}

using LibEventRange for EventRange global;

library LibEventRange {
/**
* @dev Checks whether the event range is valid.
*/
function valid(EventRange memory range) internal pure returns (bool) {
return range.startedAt <= range.endedAt;
}

/**
* @dev Returns whether the current range is not yet started.
*/
function isNotYetStarted(EventRange memory range) internal view returns (bool) {
return block.timestamp < range.startedAt;
}

/**
* @dev Returns whether the current range is ended or not.
*/
function isEnded(EventRange memory range) internal view returns (bool) {
return range.endedAt <= block.timestamp;
}

/**
* @dev Returns whether the current block is in period.
*/
function isInPeriod(EventRange memory range) internal view returns (bool) {
return range.startedAt <= block.timestamp && block.timestamp < range.endedAt;
}
}

0 comments on commit a8d8ba0

Please sign in to comment.