diff --git a/src/types/Weaver.sol b/src/types/Weaver.sol index 8dfe6e4..9ec1de3 100644 --- a/src/types/Weaver.sol +++ b/src/types/Weaver.sol @@ -69,7 +69,12 @@ abstract contract Weaver is IWeaver { } } - return (currentLevel[0], _filledEntries[session]); + uint256 nextSession = session; + if (nextSession < currentSession) { + unchecked { ++nextSession; } + } + + return (currentLevel[0], nextSession); } function getProof( diff --git a/test/gatekeeper/GatekeeperWeaver.t.sol b/test/gatekeeper/GatekeeperWeaver.t.sol index 328e21c..f805412 100644 --- a/test/gatekeeper/GatekeeperWeaver.t.sol +++ b/test/gatekeeper/GatekeeperWeaver.t.sol @@ -173,6 +173,7 @@ contract GatekeeperWeaverTest is Test { assertEq(gatekeeper.slotLengths(session + 1, 0), 1); assertEq(prevEntries, gatekeeper.ENTRIES()); assertEq(gatekeeper.filledEntries(session + 1), 1); + assertEq(session + 1, gatekeeper.currentSession()); session += 1; previousHash = bytes32(0);