From 579dd8b27db2af4a6603767863cd00f43b993662 Mon Sep 17 00:00:00 2001 From: Galaxy <30950645+GalaxySciTech@users.noreply.github.com> Date: Mon, 27 May 2024 14:24:03 +0400 Subject: [PATCH] update --- contracts/FullCheckpoint.sol | 9 ++++---- contracts/ReverseFullCheckpoint.sol | 23 ++++++--------------- contracts/libraries/ReverseHeaderReader.sol | 2 +- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/contracts/FullCheckpoint.sol b/contracts/FullCheckpoint.sol index 2571b1a..ed6a57b 100644 --- a/contracts/FullCheckpoint.sol +++ b/contracts/FullCheckpoint.sol @@ -131,15 +131,16 @@ contract FullCheckpoint { ), "Old Block" ); + Header memory header = headerTree[validationParams.parentHash]; require( - headerTree[validationParams.parentHash].mix != 0, + header.mix != 0, "Parent Missing" ); require( int256( uint256( uint64( - headerTree[validationParams.parentHash].mix >> 128 + header.mix >> 128 ) ) ) + @@ -148,12 +149,12 @@ contract FullCheckpoint { "Invalid N" ); require( - uint64(headerTree[validationParams.parentHash].mix >> 64) < + uint64(header.mix >> 64) < validationParams.roundNumber, "Invalid RN" ); require( - uint64(headerTree[validationParams.parentHash].mix >> 64) == + uint64(header.mix >> 64) == validationParams.prevRoundNumber, "Invalid PRN" ); diff --git a/contracts/ReverseFullCheckpoint.sol b/contracts/ReverseFullCheckpoint.sol index aef12f3..9314636 100644 --- a/contracts/ReverseFullCheckpoint.sol +++ b/contracts/ReverseFullCheckpoint.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.19; import {ReverseHeaderReader as HeaderReader} from "./libraries/ReverseHeaderReader.sol"; contract ReverseFullCheckpoint { - // Compressed subnet header information stored on chain + // Compressed mainnet header information stored on chain struct Header { bytes32 stateRoot; bytes32 transactionsRoot; @@ -118,30 +118,19 @@ contract ReverseFullCheckpoint { ), "Old Block" ); + Header memory header = headerTree[validationParams.parentHash]; + require(header.mix != 0, "Parent Missing"); require( - headerTree[validationParams.parentHash].mix != 0, - "Parent Missing" - ); - require( - int256( - uint256( - uint64( - headerTree[validationParams.parentHash].mix >> 128 - ) - ) - ) + - 1 == + int256(uint256(uint64(header.mix >> 128))) + 1 == validationParams.number, "Invalid N" ); require( - uint64(headerTree[validationParams.parentHash].mix >> 64) < - validationParams.roundNumber, + uint64(header.mix >> 64) < validationParams.roundNumber, "Invalid RN" ); require( - uint64(headerTree[validationParams.parentHash].mix >> 64) == - validationParams.prevRoundNumber, + uint64(header.mix >> 64) == validationParams.prevRoundNumber, "Invalid PRN" ); diff --git a/contracts/libraries/ReverseHeaderReader.sol b/contracts/libraries/ReverseHeaderReader.sol index dd7717a..075ed59 100644 --- a/contracts/libraries/ReverseHeaderReader.sol +++ b/contracts/libraries/ReverseHeaderReader.sol @@ -175,7 +175,7 @@ library ReverseHeaderReader { /* * @param rlp-encoded block header. - * @return (currentValidator list, nextValidator list). + * @return (nextValidator list). */ function getEpoch( bytes memory header