Extend Checkpoints with new sizes and lookup mechanisms (#3589)

This commit is contained in:
Hadrien Croubois
2022-08-30 21:32:12 +02:00
committed by GitHub
parent 4b16e88747
commit 71aaca2d9d
20 changed files with 1189 additions and 153 deletions

View File

@ -0,0 +1,51 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Arrays.sol";
contract Uint256ArraysMock {
using Arrays for uint256[];
uint256[] private _array;
constructor(uint256[] memory array) {
_array = array;
}
function findUpperBound(uint256 element) external view returns (uint256) {
return _array.findUpperBound(element);
}
function unsafeAccess(uint256 pos) external view returns (uint256) {
return _array.unsafeAccess(pos).value;
}
}
contract AddressArraysMock {
using Arrays for address[];
address[] private _array;
constructor(address[] memory array) {
_array = array;
}
function unsafeAccess(uint256 pos) external view returns (address) {
return _array.unsafeAccess(pos).value;
}
}
contract Bytes32ArraysMock {
using Arrays for bytes32[];
bytes32[] private _array;
constructor(bytes32[] memory array) {
_array = array;
}
function unsafeAccess(uint256 pos) external view returns (bytes32) {
return _array.unsafeAccess(pos).value;
}
}