123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const format = require('../format-lines');
- const VALUE_SIZES = [ 224, 160 ];
- const header = `\
- pragma solidity ^0.8.0;
- import "../utils/Checkpoints.sol";
- `;
- const legacy = () => `\
- contract CheckpointsMock {
- using Checkpoints for Checkpoints.History;
- Checkpoints.History private _totalCheckpoints;
- function latest() public view returns (uint256) {
- return _totalCheckpoints.latest();
- }
- function push(uint256 value) public returns (uint256, uint256) {
- return _totalCheckpoints.push(value);
- }
- function getAtBlock(uint256 blockNumber) public view returns (uint256) {
- return _totalCheckpoints.getAtBlock(blockNumber);
- }
- function getAtProbablyRecentBlock(uint256 blockNumber) public view returns (uint256) {
- return _totalCheckpoints.getAtProbablyRecentBlock(blockNumber);
- }
- function length() public view returns (uint256) {
- return _totalCheckpoints._checkpoints.length;
- }
- }
- `;
- const checkpoint = length => `\
- contract Checkpoints${length}Mock {
- using Checkpoints for Checkpoints.Trace${length};
- Checkpoints.Trace${length} private _totalCheckpoints;
- function latest() public view returns (uint${length}) {
- return _totalCheckpoints.latest();
- }
- function push(uint${256 - length} key, uint${length} value) public returns (uint${length}, uint${length}) {
- return _totalCheckpoints.push(key, value);
- }
- function lowerLookup(uint${256 - length} key) public view returns (uint${length}) {
- return _totalCheckpoints.lowerLookup(key);
- }
- function upperLookup(uint${256 - length} key) public view returns (uint${length}) {
- return _totalCheckpoints.upperLookup(key);
- }
- function length() public view returns (uint256) {
- return _totalCheckpoints._checkpoints.length;
- }
- }
- `;
- // GENERATE
- module.exports = format(
- header,
- legacy(),
- ...VALUE_SIZES.map(checkpoint),
- );
|