diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Hub.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Hub.java index fb41df9906..227efbce43 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Hub.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Hub.java @@ -21,7 +21,7 @@ import static net.consensys.linea.zktracer.module.hub.HubProcessingPhase.TX_INIT; import static net.consensys.linea.zktracer.module.hub.HubProcessingPhase.TX_SKIP; import static net.consensys.linea.zktracer.module.hub.HubProcessingPhase.TX_WARM; -import static net.consensys.linea.zktracer.module.hub.Trace.MULTIPLIER___STACK_HEIGHT; +import static net.consensys.linea.zktracer.module.hub.Trace.MULTIPLIER___STACK_STAMP; import static net.consensys.linea.zktracer.module.hub.signals.TracedException.*; import static net.consensys.linea.zktracer.opcode.OpCode.RETURN; import static net.consensys.linea.zktracer.opcode.OpCode.REVERT; @@ -36,7 +36,6 @@ import java.util.Set; import java.util.stream.Stream; -import com.google.common.base.Preconditions; import lombok.Getter; import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; @@ -55,25 +54,7 @@ import net.consensys.linea.zktracer.module.hub.defer.DeferRegistry; import net.consensys.linea.zktracer.module.hub.fragment.ContextFragment; import net.consensys.linea.zktracer.module.hub.fragment.StackFragment; -import net.consensys.linea.zktracer.module.hub.section.AccountSection; -import net.consensys.linea.zktracer.module.hub.section.CallDataLoadSection; -import net.consensys.linea.zktracer.module.hub.section.ContextSection; -import net.consensys.linea.zktracer.module.hub.section.CreateSection; -import net.consensys.linea.zktracer.module.hub.section.EarlyExceptionSection; -import net.consensys.linea.zktracer.module.hub.section.ExpSection; -import net.consensys.linea.zktracer.module.hub.section.JumpSection; -import net.consensys.linea.zktracer.module.hub.section.KeccakSection; -import net.consensys.linea.zktracer.module.hub.section.LogSection; -import net.consensys.linea.zktracer.module.hub.section.SloadSection; -import net.consensys.linea.zktracer.module.hub.section.SstoreSection; -import net.consensys.linea.zktracer.module.hub.section.StackOnlySection; -import net.consensys.linea.zktracer.module.hub.section.StackRamSection; -import net.consensys.linea.zktracer.module.hub.section.TraceSection; -import net.consensys.linea.zktracer.module.hub.section.TransactionSection; -import net.consensys.linea.zktracer.module.hub.section.TxFinalizationSection; -import net.consensys.linea.zktracer.module.hub.section.TxInitializationSection; -import net.consensys.linea.zktracer.module.hub.section.TxPreWarmingMacroSection; -import net.consensys.linea.zktracer.module.hub.section.TxSkippedSection; +import net.consensys.linea.zktracer.module.hub.section.*; import net.consensys.linea.zktracer.module.hub.section.call.CallSection; import net.consensys.linea.zktracer.module.hub.section.copy.CallDataCopySection; import net.consensys.linea.zktracer.module.hub.section.copy.CodeCopySection; @@ -228,7 +209,7 @@ public int lineCount() { private final RlpTxnRcpt rlpTxnRcpt = new RlpTxnRcpt(); private final LogInfo logInfo = new LogInfo(rlpTxnRcpt); private final LogData logData = new LogData(rlpTxnRcpt); - private final RlpAddr rlpAddr = new RlpAddr(this, trm); + @Getter private final RlpAddr rlpAddr = new RlpAddr(this, trm); // modules triggered by sub-fragments of the MISCELLANEOUS / IMC perspective @Getter private final Mxp mxp = new Mxp(); @@ -405,7 +386,7 @@ public Hub( final Address l2l1ContractAddress, final Bytes l2l1Topic, final BigInteger nonnegativeChainId) { - Preconditions.checkState(nonnegativeChainId.signum() >= 0); + checkState(nonnegativeChainId.signum() >= 0); chainId = nonnegativeChainId; l2Block = new L2Block(l2l1ContractAddress, LogTopic.of(l2l1Topic)); l2L1Logs = new L2L1Logs(l2Block); @@ -624,6 +605,10 @@ public void traceContextEnter(MessageFrame frame) { // internal transaction (CALL) or internal deployment (CREATE) if (frame.getDepth() > 0) { final OpCode currentOpCode = callStack.currentCallFrame().opCode(); + checkState(currentOpCode.isCall() || currentOpCode.isCreate()); + checkState( + currentTraceSection() instanceof CallSection + || currentTraceSection() instanceof CreateSection); final boolean isDeployment = frame.getType() == CONTRACT_CREATION; final CallFrameType frameType = frame.isStatic() ? CallFrameType.STATIC : CallFrameType.STANDARD; @@ -651,6 +636,11 @@ public void traceContextEnter(MessageFrame frame) { currentFrame().rememberGasNextBeforePausing(); currentFrame().pauseCurrentFrame(); + MemorySpan returnDataTargetInCaller = + (currentTraceSection() instanceof CallSection) + ? ((CallSection) currentTraceSection()).getCallProvidedReturnDataTargetSpan() + : MemorySpan.empty(); + callStack.enter( frameType, newChildContextNumber(), @@ -666,7 +656,8 @@ public void traceContextEnter(MessageFrame frame) { frame.getInputData(), callDataOffset, callDataSize, - callDataContextNumber); + callDataContextNumber, + returnDataTargetInCaller); this.currentFrame().initializeFrame(frame); @@ -905,7 +896,7 @@ public final MessageFrame messageFrame() { private void handleStack(MessageFrame frame) { this.currentFrame() .stack() - .processInstruction(this, frame, MULTIPLIER___STACK_HEIGHT * (stamp() + 1)); + .processInstruction(this, frame, MULTIPLIER___STACK_STAMP * (stamp() + 1)); } void triggerModules(MessageFrame frame) { @@ -915,9 +906,6 @@ void triggerModules(MessageFrame frame) { if (pch.signals().bin()) { bin.tracePreOpcode(frame); } - if (pch.signals().rlpAddr()) { - rlpAddr.tracePreOpcode(frame); - } if (pch.signals().mul()) { mul.tracePreOpcode(frame); } @@ -1024,17 +1012,13 @@ void traceOpcode(MessageFrame frame) { failureConditionForCreates = false; switch (this.opCodeData().instructionFamily()) { - case ADD, - MOD, - SHF, - BIN, - WCP, - EXT, - BATCH, - MACHINE_STATE, - PUSH_POP, - DUP, - SWAP -> new StackOnlySection(this); + case ADD, MOD, SHF, BIN, WCP, EXT, BATCH, PUSH_POP, DUP, SWAP -> new StackOnlySection(this); + case MACHINE_STATE -> { + switch (this.opCode()) { + case OpCode.MSIZE -> new MsizeSection(this); + default -> new StackOnlySection(this); + } + } case MUL -> { switch (this.opCode()) { case OpCode.EXP -> new ExpSection(this); diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Trace.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Trace.java index 97db5e2f84..49c2305c51 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Trace.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/Trace.java @@ -34,7 +34,7 @@ public class Trace { public static final int DOM_SUB_STAMP_OFFSET___REVERT = 0x6; public static final int DOM_SUB_STAMP_OFFSET___SELFDESTRUCT = 0x7; public static final int MULTIPLIER___DOM_SUB_STAMPS = 0x8; - public static final int MULTIPLIER___STACK_HEIGHT = 0x8; + public static final int MULTIPLIER___STACK_STAMP = 0x8; private final BitSet filled = new BitSet(); private int currentLine = 0; @@ -44,6 +44,12 @@ public class Trace { addressHiXorAccountAddressHiXorCcrsStampXorPrcCalleeGasXorStaticGasXorAddressHiXorCallDataSize; private final MappedByteBuffer addressLoXorAccountAddressLoXorExpData1XorHashInfoKeccakHiXorAddressLoXorCoinbaseAddressLo; + private final MappedByteBuffer + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd; + private final MappedByteBuffer + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment; + private final MappedByteBuffer + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2; private final MappedByteBuffer alpha; private final MappedByteBuffer balanceNewXorCallerAddressLoXorExpData3XorPushValueHiXorStorageKeyLoXorInitialBalance; @@ -75,15 +81,9 @@ public class Trace { private final MappedByteBuffer contextWillRevert; private final MappedByteBuffer counterNsr; private final MappedByteBuffer counterTli; - private final MappedByteBuffer createExceptionXorHashInfoFlag; - private final MappedByteBuffer createFailureConditionWillRevertXorIcpx; - private final MappedByteBuffer createFailureConditionWontRevertXorInvalidFlag; - private final MappedByteBuffer createNonemptyInitCodeFailureWillRevertXorJumpx; - private final MappedByteBuffer - createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired; - private final MappedByteBuffer createNonemptyInitCodeSuccessWillRevertXorJumpFlag; - private final MappedByteBuffer createNonemptyInitCodeSuccessWontRevertXorKecFlag; private final MappedByteBuffer delta; + private final MappedByteBuffer deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock; + private final MappedByteBuffer deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock; private final MappedByteBuffer deploymentNumberInftyXorByteCodeDeploymentStatusXorMmuPhaseXorPrcRao; private final MappedByteBuffer @@ -91,38 +91,48 @@ public class Trace { private final MappedByteBuffer deploymentNumberXorByteCodeDeploymentNumberXorMmuInstXorPrcRacXorToAddressHi; private final MappedByteBuffer - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment; + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode; private final MappedByteBuffer - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2; + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn; private final MappedByteBuffer - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd; + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution; private final MappedByteBuffer domStamp; private final MappedByteBuffer exceptionAhoy; private final MappedByteBuffer - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode; + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf; + private final MappedByteBuffer + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk; + private final MappedByteBuffer + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn; + private final MappedByteBuffer + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges; + private final MappedByteBuffer + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig; private final MappedByteBuffer - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution; + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero; + private final MappedByteBuffer firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr; + private final MappedByteBuffer + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig; private final MappedByteBuffer gasActual; private final MappedByteBuffer gasCost; private final MappedByteBuffer gasExpected; private final MappedByteBuffer gasLimit; private final MappedByteBuffer gasNext; private final MappedByteBuffer gasPrice; + private final MappedByteBuffer hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero; private final MappedByteBuffer - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig; - private final MappedByteBuffer hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr; + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero; private final MappedByteBuffer height; private final MappedByteBuffer heightNew; private final MappedByteBuffer hubStamp; private final MappedByteBuffer hubStampTransactionEnd; private final MappedByteBuffer instruction; - private final MappedByteBuffer - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero; + private final MappedByteBuffer isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth; private final MappedByteBuffer logInfoStamp; private final MappedByteBuffer - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth; + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx; private final MappedByteBuffer - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero; + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew; private final MappedByteBuffer mmuStamp; private final MappedByteBuffer mxpOffset2Hi; private final MappedByteBuffer mxpOffset2Lo; @@ -154,8 +164,6 @@ public class Trace { private final MappedByteBuffer peekAtStack; private final MappedByteBuffer peekAtStorage; private final MappedByteBuffer peekAtTransaction; - private final MappedByteBuffer prcBlake2FXorLogFlag; - private final MappedByteBuffer prcEcaddXorLogInfoFlag; private final MappedByteBuffer prcEcmulXorMachineStateFlag; private final MappedByteBuffer prcEcpairingXorMaxcsx; private final MappedByteBuffer prcEcrecoverXorModFlag; @@ -191,13 +199,13 @@ public class Trace { private final MappedByteBuffer rlpaddrDepAddrLoXorMmuSrcOffsetHiXorStackItemValueHi4XorValueOrigHi; private final MappedByteBuffer - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew; + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired; private final MappedByteBuffer rlpaddrKecHiXorMmuSrcOffsetLoXorStackItemValueLo1XorValueOrigLo; private final MappedByteBuffer rlpaddrKecLoXorMmuTgtOffsetLoXorStackItemValueLo2; private final MappedByteBuffer rlpaddrRecipe; private final MappedByteBuffer rlpaddrSaltHiXorMxpGasMxpXorStackItemValueLo3; private final MappedByteBuffer rlpaddrSaltLoXorMxpOffset1HiXorStackItemValueLo4; - private final MappedByteBuffer romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4; + private final MappedByteBuffer romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag; private final MappedByteBuffer selfdestructExceptionXorStaticx; private final MappedByteBuffer selfdestructWillRevertXorStaticFlag; private final MappedByteBuffer selfdestructWontRevertAlreadyMarkedXorStoFlag; @@ -216,7 +224,7 @@ public class Trace { private final MappedByteBuffer stpValueLo; private final MappedByteBuffer subStamp; private final MappedByteBuffer swapFlag; - private final MappedByteBuffer trmFlagXorStpFlagXorCreateAbortXorDupFlag; + private final MappedByteBuffer trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag; private final MappedByteBuffer trmRawAddressHiXorMxpOffset1Lo; private final MappedByteBuffer twoLineInstruction; private final MappedByteBuffer txExec; @@ -225,8 +233,8 @@ public class Trace { private final MappedByteBuffer txSkip; private final MappedByteBuffer txWarm; private final MappedByteBuffer txnFlag; - private final MappedByteBuffer warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag; - private final MappedByteBuffer warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag; + private final MappedByteBuffer warmthNewXorPrcEcaddXorLogInfoFlag; + private final MappedByteBuffer warmthXorPrcBlake2FXorLogFlag; private final MappedByteBuffer wcpFlag; static List headers(int length) { @@ -242,6 +250,21 @@ static List headers(int length) { "hub.ADDRESS_LO_xor_ACCOUNT_ADDRESS_LO_xor_EXP_DATA_1_xor_HASH_INFO_KECCAK_HI_xor_ADDRESS_LO_xor_COINBASE_ADDRESS_LO", 16, length)); + headers.add( + new ColumnHeader( + "hub.AGAIN_IN_BLK_xor_IS_ROOT_xor_CCSR_FLAG_xor_CALL_ABORT_WILL_REVERT_xor_ACC_FLAG_xor_AGAIN_IN_BLK_xor_COPY_TXCD", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.AGAIN_IN_CNF_xor_IS_STATIC_xor_EXP_FLAG_xor_CALL_ABORT_WONT_REVERT_xor_ADD_FLAG_xor_AGAIN_IN_CNF_xor_IS_DEPLOYMENT", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.AGAIN_IN_TXN_xor_UPDATE_xor_MMU_FLAG_xor_CALL_EOA_SUCCESS_CALLER_WILL_REVERT_xor_BIN_FLAG_xor_AGAIN_IN_TXN_xor_IS_TYPE2", + 1, + length)); headers.add(new ColumnHeader("hub.ALPHA", 1, length)); headers.add( new ColumnHeader( @@ -303,24 +326,17 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.CONTEXT_WILL_REVERT", 1, length)); headers.add(new ColumnHeader("hub.COUNTER_NSR", 1, length)); headers.add(new ColumnHeader("hub.COUNTER_TLI", 1, length)); - headers.add(new ColumnHeader("hub.CREATE_EXCEPTION_xor_HASH_INFO_FLAG", 1, length)); - headers.add(new ColumnHeader("hub.CREATE_FAILURE_CONDITION_WILL_REVERT_xor_ICPX", 1, length)); - headers.add( - new ColumnHeader("hub.CREATE_FAILURE_CONDITION_WONT_REVERT_xor_INVALID_FLAG", 1, length)); - headers.add( - new ColumnHeader("hub.CREATE_NONEMPTY_INIT_CODE_FAILURE_WILL_REVERT_xor_JUMPX", 1, length)); + headers.add(new ColumnHeader("hub.DELTA", 1, length)); headers.add( new ColumnHeader( - "hub.CREATE_NONEMPTY_INIT_CODE_FAILURE_WONT_REVERT_xor_JUMP_DESTINATION_VETTING_REQUIRED", - 1, + "hub.DEPLOYMENT_NUMBER_FINAL_IN_BLOCK_xor_DEPLOYMENT_NUMBER_FINAL_IN_BLOCK", + 2, length)); headers.add( new ColumnHeader( - "hub.CREATE_NONEMPTY_INIT_CODE_SUCCESS_WILL_REVERT_xor_JUMP_FLAG", 1, length)); - headers.add( - new ColumnHeader( - "hub.CREATE_NONEMPTY_INIT_CODE_SUCCESS_WONT_REVERT_xor_KEC_FLAG", 1, length)); - headers.add(new ColumnHeader("hub.DELTA", 1, length)); + "hub.DEPLOYMENT_NUMBER_FIRST_IN_BLOCK_xor_DEPLOYMENT_NUMBER_FIRST_IN_BLOCK", + 2, + length)); headers.add( new ColumnHeader( "hub.DEPLOYMENT_NUMBER_INFTY_xor_BYTE_CODE_DEPLOYMENT_STATUS_xor_MMU_PHASE_xor_PRC_RAO", @@ -338,29 +354,59 @@ static List headers(int length) { length)); headers.add( new ColumnHeader( - "hub.DEPLOYMENT_STATUS_INFTY_xor_IS_STATIC_xor_EXP_FLAG_xor_CALL_ABORT_WONT_REVERT_xor_ADD_FLAG_xor_UNCONSTRAINED_FIRST_xor_IS_DEPLOYMENT", + "hub.DEPLOYMENT_STATUS_INFTY_xor_MXP_DEPLOYS_xor_CALL_EXCEPTION_xor_CALL_FLAG_xor_FINAL_IN_CNF_xor_STATUS_CODE", 1, length)); headers.add( new ColumnHeader( - "hub.DEPLOYMENT_STATUS_NEW_xor_UPDATE_xor_MMU_FLAG_xor_CALL_EOA_SUCCESS_CALLER_WILL_REVERT_xor_BIN_FLAG_xor_VALUE_CURR_CHANGES_xor_IS_TYPE2", + "hub.DEPLOYMENT_STATUS_NEW_xor_MXP_FLAG_xor_CALL_PRC_FAILURE_xor_CON_FLAG_xor_FINAL_IN_TXN", 1, length)); headers.add( new ColumnHeader( - "hub.DEPLOYMENT_STATUS_xor_IS_ROOT_xor_CCSR_FLAG_xor_CALL_ABORT_WILL_REVERT_xor_ACC_FLAG_xor_UNCONSTRAINED_FINAL_xor_COPY_TXCD", + "hub.DEPLOYMENT_STATUS_xor_MMU_SUCCESS_BIT_xor_CALL_EOA_SUCCESS_CALLER_WONT_REVERT_xor_BTC_FLAG_xor_FINAL_IN_BLK_xor_REQUIRES_EVM_EXECUTION", 1, length)); headers.add(new ColumnHeader("hub.DOM_STAMP", 4, length)); headers.add(new ColumnHeader("hub.EXCEPTION_AHOY", 1, length)); headers.add( new ColumnHeader( - "hub.EXISTS_NEW_xor_MXP_DEPLOYS_xor_CALL_EXCEPTION_xor_CALL_FLAG_xor_VALUE_CURR_IS_ZERO_xor_STATUS_CODE", + "hub.EXISTS_NEW_xor_MXP_MXPX_xor_CALL_PRC_SUCCESS_CALLER_WONT_REVERT_xor_CREATE_FLAG_xor_FIRST_IN_CNF", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.EXISTS_xor_MXP_MTNTOP_xor_CALL_PRC_SUCCESS_CALLER_WILL_REVERT_xor_COPY_FLAG_xor_FIRST_IN_BLK", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.FINAL_IN_BLK_xor_MXP_SIZE_1_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WILL_REVERT_xor_DEC_FLAG_1_xor_FIRST_IN_TXN", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.FINAL_IN_CNF_xor_MXP_SIZE_2_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WONT_REVERT_xor_DEC_FLAG_2_xor_VALUE_CURR_CHANGES", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.FINAL_IN_TXN_xor_OOB_FLAG_xor_CALL_SMC_SUCCESS_CALLER_WILL_REVERT_xor_DEC_FLAG_3_xor_VALUE_CURR_IS_ORIG", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.FIRST_IN_BLK_xor_STP_EXISTS_xor_CALL_SMC_SUCCESS_CALLER_WONT_REVERT_xor_DEC_FLAG_4_xor_VALUE_CURR_IS_ZERO", + 1, + length)); + headers.add( + new ColumnHeader( + "hub.FIRST_IN_CNF_xor_STP_FLAG_xor_CREATE_ABORT_xor_DUP_FLAG_xor_VALUE_NEXT_IS_CURR", 1, length)); headers.add( new ColumnHeader( - "hub.EXISTS_xor_MMU_SUCCESS_BIT_xor_CALL_EOA_SUCCESS_CALLER_WONT_REVERT_xor_BTC_FLAG_xor_VALUE_CURR_IS_ORIG_xor_REQUIRES_EVM_EXECUTION", + "hub.FIRST_IN_TXN_xor_STP_OOGX_xor_CREATE_EMPTY_INIT_CODE_WILL_REVERT_xor_EXT_FLAG_xor_VALUE_NEXT_IS_ORIG", 1, length)); headers.add(new ColumnHeader("hub.GAS_ACTUAL", 8, length)); @@ -371,12 +417,12 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.GAS_PRICE", 8, length)); headers.add( new ColumnHeader( - "hub.HAS_CODE_NEW_xor_MXP_MTNTOP_xor_CALL_PRC_SUCCESS_CALLER_WILL_REVERT_xor_COPY_FLAG_xor_VALUE_NEXT_IS_ORIG", + "hub.HAS_CODE_NEW_xor_CREATE_EXCEPTION_xor_HASH_INFO_FLAG_xor_VALUE_ORIG_IS_ZERO", 1, length)); headers.add( new ColumnHeader( - "hub.HAS_CODE_xor_MXP_FLAG_xor_CALL_PRC_FAILURE_xor_CON_FLAG_xor_VALUE_NEXT_IS_CURR", + "hub.HAS_CODE_xor_STP_WARMTH_xor_CREATE_EMPTY_INIT_CODE_WONT_REVERT_xor_HALT_FLAG_xor_VALUE_NEXT_IS_ZERO", 1, length)); headers.add(new ColumnHeader("hub.HEIGHT", 2, length)); @@ -386,18 +432,18 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.INSTRUCTION", 32, length)); headers.add( new ColumnHeader( - "hub.IS_PRECOMPILE_xor_MXP_MXPX_xor_CALL_PRC_SUCCESS_CALLER_WONT_REVERT_xor_CREATE_FLAG_xor_VALUE_NEXT_IS_ZERO", + "hub.IS_PRECOMPILE_xor_CREATE_FAILURE_CONDITION_WILL_REVERT_xor_ICPX_xor_WARMTH", 1, length)); headers.add(new ColumnHeader("hub.LOG_INFO_STAMP", 4, length)); headers.add( new ColumnHeader( - "hub.MARKED_FOR_SELFDESTRUCT_NEW_xor_MXP_SIZE_2_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WONT_REVERT_xor_DEC_FLAG_2_xor_WARMTH", + "hub.MARKED_FOR_SELFDESTRUCT_NEW_xor_CREATE_NONEMPTY_INIT_CODE_FAILURE_WILL_REVERT_xor_JUMPX", 1, length)); headers.add( new ColumnHeader( - "hub.MARKED_FOR_SELFDESTRUCT_xor_MXP_SIZE_1_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WILL_REVERT_xor_DEC_FLAG_1_xor_VALUE_ORIG_IS_ZERO", + "hub.MARKED_FOR_SELFDESTRUCT_xor_CREATE_FAILURE_CONDITION_WONT_REVERT_xor_INVALID_FLAG_xor_WARMTH_NEW", 1, length)); headers.add(new ColumnHeader("hub.MMU_STAMP", 4, length)); @@ -433,8 +479,6 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.PEEK_AT_STACK", 1, length)); headers.add(new ColumnHeader("hub.PEEK_AT_STORAGE", 1, length)); headers.add(new ColumnHeader("hub.PEEK_AT_TRANSACTION", 1, length)); - headers.add(new ColumnHeader("hub.PRC_BLAKE2f_xor_LOG_FLAG", 1, length)); - headers.add(new ColumnHeader("hub.PRC_ECADD_xor_LOG_INFO_FLAG", 1, length)); headers.add(new ColumnHeader("hub.PRC_ECMUL_xor_MACHINE_STATE_FLAG", 1, length)); headers.add(new ColumnHeader("hub.PRC_ECPAIRING_xor_MAXCSX", 1, length)); headers.add(new ColumnHeader("hub.PRC_ECRECOVER_xor_MOD_FLAG", 1, length)); @@ -492,7 +536,7 @@ static List headers(int length) { length)); headers.add( new ColumnHeader( - "hub.RLPADDR_FLAG_xor_OOB_FLAG_xor_CALL_SMC_SUCCESS_CALLER_WILL_REVERT_xor_DEC_FLAG_3_xor_WARMTH_NEW", + "hub.RLPADDR_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_FAILURE_WONT_REVERT_xor_JUMP_DESTINATION_VETTING_REQUIRED", 1, length)); headers.add( @@ -512,7 +556,7 @@ static List headers(int length) { "hub.RLPADDR_SALT_LO_xor_MXP_OFFSET_1_HI_xor_STACK_ITEM_VALUE_LO_4", 16, length)); headers.add( new ColumnHeader( - "hub.ROMLEX_FLAG_xor_STP_EXISTS_xor_CALL_SMC_SUCCESS_CALLER_WONT_REVERT_xor_DEC_FLAG_4", + "hub.ROMLEX_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_SUCCESS_WILL_REVERT_xor_JUMP_FLAG", 1, length)); headers.add(new ColumnHeader("hub.SELFDESTRUCT_EXCEPTION_xor_STATICX", 1, length)); @@ -535,7 +579,10 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.SUB_STAMP", 4, length)); headers.add(new ColumnHeader("hub.SWAP_FLAG", 1, length)); headers.add( - new ColumnHeader("hub.TRM_FLAG_xor_STP_FLAG_xor_CREATE_ABORT_xor_DUP_FLAG", 1, length)); + new ColumnHeader( + "hub.TRM_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_SUCCESS_WONT_REVERT_xor_KEC_FLAG", + 1, + length)); headers.add(new ColumnHeader("hub.TRM_RAW_ADDRESS_HI_xor_MXP_OFFSET_1_LO", 16, length)); headers.add(new ColumnHeader("hub.TWO_LINE_INSTRUCTION", 1, length)); headers.add(new ColumnHeader("hub.TX_EXEC", 1, length)); @@ -544,16 +591,8 @@ static List headers(int length) { headers.add(new ColumnHeader("hub.TX_SKIP", 1, length)); headers.add(new ColumnHeader("hub.TX_WARM", 1, length)); headers.add(new ColumnHeader("hub.TXN_FLAG", 1, length)); - headers.add( - new ColumnHeader( - "hub.WARMTH_NEW_xor_STP_WARMTH_xor_CREATE_EMPTY_INIT_CODE_WONT_REVERT_xor_HALT_FLAG", - 1, - length)); - headers.add( - new ColumnHeader( - "hub.WARMTH_xor_STP_OOGX_xor_CREATE_EMPTY_INIT_CODE_WILL_REVERT_xor_EXT_FLAG", - 1, - length)); + headers.add(new ColumnHeader("hub.WARMTH_NEW_xor_PRC_ECADD_xor_LOG_INFO_FLAG", 1, length)); + headers.add(new ColumnHeader("hub.WARMTH_xor_PRC_BLAKE2f_xor_LOG_FLAG", 1, length)); headers.add(new ColumnHeader("hub.WCP_FLAG", 1, length)); return headers; } @@ -566,193 +605,200 @@ public Trace(List buffers) { this .addressLoXorAccountAddressLoXorExpData1XorHashInfoKeccakHiXorAddressLoXorCoinbaseAddressLo = buffers.get(2); - this.alpha = buffers.get(3); - this.balanceNewXorCallerAddressLoXorExpData3XorPushValueHiXorStorageKeyLoXorInitialBalance = + this.againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd = + buffers.get(3); + this + .againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment = buffers.get(4); - this.balanceXorByteCodeAddressLoXorExpData2XorHashInfoKeccakLoXorStorageKeyHiXorFromAddressLo = + this + .againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 = buffers.get(5); - this.callDataOffsetXorMmuSize = buffers.get(6); - this.callDataSizeXorMmuSrcId = buffers.get(7); - this.callStackDepthXorStackItemHeight1 = buffers.get(8); - this.callerContextNumber = buffers.get(9); - this.codeFragmentIndex = buffers.get(10); + this.alpha = buffers.get(6); + this.balanceNewXorCallerAddressLoXorExpData3XorPushValueHiXorStorageKeyLoXorInitialBalance = + buffers.get(7); + this.balanceXorByteCodeAddressLoXorExpData2XorHashInfoKeccakLoXorStorageKeyHiXorFromAddressLo = + buffers.get(8); + this.callDataOffsetXorMmuSize = buffers.get(9); + this.callDataSizeXorMmuSrcId = buffers.get(10); + this.callStackDepthXorStackItemHeight1 = buffers.get(11); + this.callerContextNumber = buffers.get(12); + this.codeFragmentIndex = buffers.get(13); this .codeFragmentIndexXorAccountDeploymentNumberXorExpInstXorPrcCallerGasXorDeploymentNumberXorCoinbaseAddressHi = - buffers.get(11); - this.codeHashHiNewXorExpData5XorStackItemValueHi1XorValueCurrLoXorValue = buffers.get(12); + buffers.get(14); + this.codeHashHiNewXorExpData5XorStackItemValueHi1XorValueCurrLoXorValue = buffers.get(15); this.codeHashHiXorCallValueXorExpData4XorPushValueLoXorValueCurrHiXorToAddressLo = - buffers.get(13); - this.codeHashLoNewXorMmuLimb2XorStackItemValueHi3XorValueNextLo = buffers.get(14); - this.codeHashLoXorMmuLimb1XorStackItemValueHi2XorValueNextHi = buffers.get(15); - this.codeSizeNewXorByteCodeCodeFragmentIndexXorMmuExoSumXorPrcCdsXorInitCodeSize = buffers.get(16); + this.codeHashLoNewXorMmuLimb2XorStackItemValueHi3XorValueNextLo = buffers.get(17); + this.codeHashLoXorMmuLimb1XorStackItemValueHi2XorValueNextHi = buffers.get(18); + this.codeSizeNewXorByteCodeCodeFragmentIndexXorMmuExoSumXorPrcCdsXorInitCodeSize = + buffers.get(19); this.codeSizeXorByteCodeAddressHiXorMmuAuxIdXorPrcCdoXorDeploymentNumberInftyXorFromAddressHi = - buffers.get(17); - this.contextGetsReverted = buffers.get(18); - this.contextMayChange = buffers.get(19); - this.contextNumber = buffers.get(20); - this.contextNumberNew = buffers.get(21); - this.contextNumberXorMmuTgtId = buffers.get(22); - this.contextRevertStamp = buffers.get(23); - this.contextSelfReverts = buffers.get(24); - this.contextWillRevert = buffers.get(25); - this.counterNsr = buffers.get(26); - this.counterTli = buffers.get(27); - this.createExceptionXorHashInfoFlag = buffers.get(28); - this.createFailureConditionWillRevertXorIcpx = buffers.get(29); - this.createFailureConditionWontRevertXorInvalidFlag = buffers.get(30); - this.createNonemptyInitCodeFailureWillRevertXorJumpx = buffers.get(31); - this.createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired = buffers.get(32); - this.createNonemptyInitCodeSuccessWillRevertXorJumpFlag = buffers.get(33); - this.createNonemptyInitCodeSuccessWontRevertXorKecFlag = buffers.get(34); - this.delta = buffers.get(35); - this.deploymentNumberInftyXorByteCodeDeploymentStatusXorMmuPhaseXorPrcRao = buffers.get(36); - this.deploymentNumberNewXorCallerAddressHiXorMmuRefOffsetXorPrcReturnGas = buffers.get(37); + buffers.get(20); + this.contextGetsReverted = buffers.get(21); + this.contextMayChange = buffers.get(22); + this.contextNumber = buffers.get(23); + this.contextNumberNew = buffers.get(24); + this.contextNumberXorMmuTgtId = buffers.get(25); + this.contextRevertStamp = buffers.get(26); + this.contextSelfReverts = buffers.get(27); + this.contextWillRevert = buffers.get(28); + this.counterNsr = buffers.get(29); + this.counterTli = buffers.get(30); + this.delta = buffers.get(31); + this.deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock = buffers.get(32); + this.deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock = buffers.get(33); + this.deploymentNumberInftyXorByteCodeDeploymentStatusXorMmuPhaseXorPrcRao = buffers.get(34); + this.deploymentNumberNewXorCallerAddressHiXorMmuRefOffsetXorPrcReturnGas = buffers.get(35); this.deploymentNumberXorByteCodeDeploymentNumberXorMmuInstXorPrcRacXorToAddressHi = - buffers.get(38); + buffers.get(36); + this.deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode = + buffers.get(37); + this.deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn = buffers.get(38); this - .deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment = + .deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution = buffers.get(39); + this.domStamp = buffers.get(40); + this.exceptionAhoy = buffers.get(41); + this.existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf = + buffers.get(42); + this.existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk = + buffers.get(43); this - .deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 = - buffers.get(40); - this - .deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd = - buffers.get(41); - this.domStamp = buffers.get(42); - this.exceptionAhoy = buffers.get(43); - this.existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode = + .finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn = buffers.get(44); this - .existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution = + .finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges = buffers.get(45); - this.gasActual = buffers.get(46); - this.gasCost = buffers.get(47); - this.gasExpected = buffers.get(48); - this.gasLimit = buffers.get(49); - this.gasNext = buffers.get(50); - this.gasPrice = buffers.get(51); - this.hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig = - buffers.get(52); - this.hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr = buffers.get(53); - this.height = buffers.get(54); - this.heightNew = buffers.get(55); - this.hubStamp = buffers.get(56); - this.hubStampTransactionEnd = buffers.get(57); - this.instruction = buffers.get(58); - this.isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero = - buffers.get(59); - this.logInfoStamp = buffers.get(60); - this - .markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth = - buffers.get(61); - this - .markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero = - buffers.get(62); - this.mmuStamp = buffers.get(63); - this.mxpOffset2Hi = buffers.get(64); - this.mxpOffset2Lo = buffers.get(65); - this.mxpSize1Hi = buffers.get(66); - this.mxpSize1Lo = buffers.get(67); - this.mxpSize2Hi = buffers.get(68); - this.mxpSize2Lo = buffers.get(69); - this.mxpStamp = buffers.get(70); - this.mxpWords = buffers.get(71); - this.nbAdded = buffers.get(72); - this.nbRemoved = buffers.get(73); - this.nonStackRows = buffers.get(74); - this.nonce = buffers.get(75); - this.nonceNewXorStpGasPaidOutOfPocketXorGasInitiallyAvailable = buffers.get(76); - this.nonceXorStpGasMxpXorBasefee = buffers.get(77); - this.oobData1 = buffers.get(78); - this.oobData2 = buffers.get(79); - this.oobData3 = buffers.get(80); - this.oobData4 = buffers.get(81); - this.oobData5 = buffers.get(82); - this.oobData6 = buffers.get(83); - this.oobData7 = buffers.get(84); - this.oobData8 = buffers.get(85); - this.oobData9 = buffers.get(86); - this.peekAtAccount = buffers.get(87); - this.peekAtContext = buffers.get(88); - this.peekAtMiscellaneous = buffers.get(89); - this.peekAtScenario = buffers.get(90); - this.peekAtStack = buffers.get(91); - this.peekAtStorage = buffers.get(92); - this.peekAtTransaction = buffers.get(93); - this.prcBlake2FXorLogFlag = buffers.get(94); - this.prcEcaddXorLogInfoFlag = buffers.get(95); - this.prcEcmulXorMachineStateFlag = buffers.get(96); - this.prcEcpairingXorMaxcsx = buffers.get(97); - this.prcEcrecoverXorModFlag = buffers.get(98); - this.prcFailureKnownToHubXorMulFlag = buffers.get(99); - this.prcFailureKnownToRamXorMxpx = buffers.get(100); - this.prcIdentityXorMxpFlag = buffers.get(101); - this.prcModexpXorOogx = buffers.get(102); - this.prcRipemd160XorOpcx = buffers.get(103); - this.prcSha2256XorPushpopFlag = buffers.get(104); - this.prcSuccessCallerWillRevertXorRdcx = buffers.get(105); - this.prcSuccessCallerWontRevertXorShfFlag = buffers.get(106); - this.priorityFeePerGas = buffers.get(107); - this.programCounter = buffers.get(108); - this.programCounterNew = buffers.get(109); - this.refundCounter = buffers.get(110); - this.refundCounterInfinity = buffers.get(111); - this.refundCounterNew = buffers.get(112); - this.refundEffective = buffers.get(113); - this.relativeBlockNumber = buffers.get(114); - this.returnAtCapacityXorMxpInst = buffers.get(115); - this.returnAtOffsetXorOobInst = buffers.get(116); - this.returnDataContextNumberXorStpGasStipend = buffers.get(117); - this.returnDataOffsetXorStpInstruction = buffers.get(118); - this.returnDataSize = buffers.get(119); - this.returnExceptionXorSox = buffers.get(120); - this.returnFromDeploymentEmptyCodeWillRevertXorSstorex = buffers.get(121); - this.returnFromDeploymentEmptyCodeWontRevertXorStackramFlag = buffers.get(122); - this.returnFromDeploymentNonemptyCodeWillRevertXorStackItemPop1 = buffers.get(123); - this.returnFromDeploymentNonemptyCodeWontRevertXorStackItemPop2 = buffers.get(124); - this.returnFromMessageCallWillTouchRamXorStackItemPop3 = buffers.get(125); - this.returnFromMessageCallWontTouchRamXorStackItemPop4 = buffers.get(126); - this.rlpaddrDepAddrHiXorCallDataContextNumberXorMmuRefSize = buffers.get(127); - this.rlpaddrDepAddrLoXorMmuSrcOffsetHiXorStackItemValueHi4XorValueOrigHi = buffers.get(128); - this.rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew = - buffers.get(129); - this.rlpaddrKecHiXorMmuSrcOffsetLoXorStackItemValueLo1XorValueOrigLo = buffers.get(130); - this.rlpaddrKecLoXorMmuTgtOffsetLoXorStackItemValueLo2 = buffers.get(131); - this.rlpaddrRecipe = buffers.get(132); - this.rlpaddrSaltHiXorMxpGasMxpXorStackItemValueLo3 = buffers.get(133); - this.rlpaddrSaltLoXorMxpOffset1HiXorStackItemValueLo4 = buffers.get(134); - this.romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4 = buffers.get(135); - this.selfdestructExceptionXorStaticx = buffers.get(136); - this.selfdestructWillRevertXorStaticFlag = buffers.get(137); - this.selfdestructWontRevertAlreadyMarkedXorStoFlag = buffers.get(138); - this.selfdestructWontRevertNotYetMarkedXorSux = buffers.get(139); - this.stackItemHeight2 = buffers.get(140); - this.stackItemHeight3 = buffers.get(141); - this.stackItemHeight4 = buffers.get(142); - this.stackItemStamp1 = buffers.get(143); - this.stackItemStamp2 = buffers.get(144); - this.stackItemStamp3 = buffers.get(145); - this.stackItemStamp4 = buffers.get(146); - this.stpGasHi = buffers.get(147); - this.stpGasLo = buffers.get(148); - this.stpGasUpfrontGasCostXorGasLeftover = buffers.get(149); - this.stpValueHi = buffers.get(150); - this.stpValueLo = buffers.get(151); - this.subStamp = buffers.get(152); - this.swapFlag = buffers.get(153); - this.trmFlagXorStpFlagXorCreateAbortXorDupFlag = buffers.get(154); - this.trmRawAddressHiXorMxpOffset1Lo = buffers.get(155); - this.twoLineInstruction = buffers.get(156); - this.txExec = buffers.get(157); - this.txFinl = buffers.get(158); - this.txInit = buffers.get(159); - this.txSkip = buffers.get(160); - this.txWarm = buffers.get(161); - this.txnFlag = buffers.get(162); - this.warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag = buffers.get(163); - this.warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag = buffers.get(164); - this.wcpFlag = buffers.get(165); + this.finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig = + buffers.get(46); + this.firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero = + buffers.get(47); + this.firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr = buffers.get(48); + this.firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig = + buffers.get(49); + this.gasActual = buffers.get(50); + this.gasCost = buffers.get(51); + this.gasExpected = buffers.get(52); + this.gasLimit = buffers.get(53); + this.gasNext = buffers.get(54); + this.gasPrice = buffers.get(55); + this.hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero = buffers.get(56); + this.hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero = + buffers.get(57); + this.height = buffers.get(58); + this.heightNew = buffers.get(59); + this.hubStamp = buffers.get(60); + this.hubStampTransactionEnd = buffers.get(61); + this.instruction = buffers.get(62); + this.isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth = buffers.get(63); + this.logInfoStamp = buffers.get(64); + this.markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx = + buffers.get(65); + this.markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew = + buffers.get(66); + this.mmuStamp = buffers.get(67); + this.mxpOffset2Hi = buffers.get(68); + this.mxpOffset2Lo = buffers.get(69); + this.mxpSize1Hi = buffers.get(70); + this.mxpSize1Lo = buffers.get(71); + this.mxpSize2Hi = buffers.get(72); + this.mxpSize2Lo = buffers.get(73); + this.mxpStamp = buffers.get(74); + this.mxpWords = buffers.get(75); + this.nbAdded = buffers.get(76); + this.nbRemoved = buffers.get(77); + this.nonStackRows = buffers.get(78); + this.nonce = buffers.get(79); + this.nonceNewXorStpGasPaidOutOfPocketXorGasInitiallyAvailable = buffers.get(80); + this.nonceXorStpGasMxpXorBasefee = buffers.get(81); + this.oobData1 = buffers.get(82); + this.oobData2 = buffers.get(83); + this.oobData3 = buffers.get(84); + this.oobData4 = buffers.get(85); + this.oobData5 = buffers.get(86); + this.oobData6 = buffers.get(87); + this.oobData7 = buffers.get(88); + this.oobData8 = buffers.get(89); + this.oobData9 = buffers.get(90); + this.peekAtAccount = buffers.get(91); + this.peekAtContext = buffers.get(92); + this.peekAtMiscellaneous = buffers.get(93); + this.peekAtScenario = buffers.get(94); + this.peekAtStack = buffers.get(95); + this.peekAtStorage = buffers.get(96); + this.peekAtTransaction = buffers.get(97); + this.prcEcmulXorMachineStateFlag = buffers.get(98); + this.prcEcpairingXorMaxcsx = buffers.get(99); + this.prcEcrecoverXorModFlag = buffers.get(100); + this.prcFailureKnownToHubXorMulFlag = buffers.get(101); + this.prcFailureKnownToRamXorMxpx = buffers.get(102); + this.prcIdentityXorMxpFlag = buffers.get(103); + this.prcModexpXorOogx = buffers.get(104); + this.prcRipemd160XorOpcx = buffers.get(105); + this.prcSha2256XorPushpopFlag = buffers.get(106); + this.prcSuccessCallerWillRevertXorRdcx = buffers.get(107); + this.prcSuccessCallerWontRevertXorShfFlag = buffers.get(108); + this.priorityFeePerGas = buffers.get(109); + this.programCounter = buffers.get(110); + this.programCounterNew = buffers.get(111); + this.refundCounter = buffers.get(112); + this.refundCounterInfinity = buffers.get(113); + this.refundCounterNew = buffers.get(114); + this.refundEffective = buffers.get(115); + this.relativeBlockNumber = buffers.get(116); + this.returnAtCapacityXorMxpInst = buffers.get(117); + this.returnAtOffsetXorOobInst = buffers.get(118); + this.returnDataContextNumberXorStpGasStipend = buffers.get(119); + this.returnDataOffsetXorStpInstruction = buffers.get(120); + this.returnDataSize = buffers.get(121); + this.returnExceptionXorSox = buffers.get(122); + this.returnFromDeploymentEmptyCodeWillRevertXorSstorex = buffers.get(123); + this.returnFromDeploymentEmptyCodeWontRevertXorStackramFlag = buffers.get(124); + this.returnFromDeploymentNonemptyCodeWillRevertXorStackItemPop1 = buffers.get(125); + this.returnFromDeploymentNonemptyCodeWontRevertXorStackItemPop2 = buffers.get(126); + this.returnFromMessageCallWillTouchRamXorStackItemPop3 = buffers.get(127); + this.returnFromMessageCallWontTouchRamXorStackItemPop4 = buffers.get(128); + this.rlpaddrDepAddrHiXorCallDataContextNumberXorMmuRefSize = buffers.get(129); + this.rlpaddrDepAddrLoXorMmuSrcOffsetHiXorStackItemValueHi4XorValueOrigHi = buffers.get(130); + this.rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired = + buffers.get(131); + this.rlpaddrKecHiXorMmuSrcOffsetLoXorStackItemValueLo1XorValueOrigLo = buffers.get(132); + this.rlpaddrKecLoXorMmuTgtOffsetLoXorStackItemValueLo2 = buffers.get(133); + this.rlpaddrRecipe = buffers.get(134); + this.rlpaddrSaltHiXorMxpGasMxpXorStackItemValueLo3 = buffers.get(135); + this.rlpaddrSaltLoXorMxpOffset1HiXorStackItemValueLo4 = buffers.get(136); + this.romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag = buffers.get(137); + this.selfdestructExceptionXorStaticx = buffers.get(138); + this.selfdestructWillRevertXorStaticFlag = buffers.get(139); + this.selfdestructWontRevertAlreadyMarkedXorStoFlag = buffers.get(140); + this.selfdestructWontRevertNotYetMarkedXorSux = buffers.get(141); + this.stackItemHeight2 = buffers.get(142); + this.stackItemHeight3 = buffers.get(143); + this.stackItemHeight4 = buffers.get(144); + this.stackItemStamp1 = buffers.get(145); + this.stackItemStamp2 = buffers.get(146); + this.stackItemStamp3 = buffers.get(147); + this.stackItemStamp4 = buffers.get(148); + this.stpGasHi = buffers.get(149); + this.stpGasLo = buffers.get(150); + this.stpGasUpfrontGasCostXorGasLeftover = buffers.get(151); + this.stpValueHi = buffers.get(152); + this.stpValueLo = buffers.get(153); + this.subStamp = buffers.get(154); + this.swapFlag = buffers.get(155); + this.trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag = buffers.get(156); + this.trmRawAddressHiXorMxpOffset1Lo = buffers.get(157); + this.twoLineInstruction = buffers.get(158); + this.txExec = buffers.get(159); + this.txFinl = buffers.get(160); + this.txInit = buffers.get(161); + this.txSkip = buffers.get(162); + this.txWarm = buffers.get(163); + this.txnFlag = buffers.get(164); + this.warmthNewXorPrcEcaddXorLogInfoFlag = buffers.get(165); + this.warmthXorPrcBlake2FXorLogFlag = buffers.get(166); + this.wcpFlag = buffers.get(167); } public int size() { @@ -1214,10 +1260,10 @@ public Trace nonStackRows(final long b) { } public Trace pAccountAddressHi(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.account/ADDRESS_HI already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -1239,10 +1285,10 @@ public Trace pAccountAddressHi(final long b) { } public Trace pAccountAddressLo(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.account/ADDRESS_LO already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -1268,11 +1314,50 @@ public Trace pAccountAddressLo(final Bytes b) { return this; } + public Trace pAccountAgainInBlk(final Boolean b) { + if (filled.get(45)) { + throw new IllegalStateException("hub.account/AGAIN_IN_BLK already set"); + } else { + filled.set(45); + } + + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountAgainInCnf(final Boolean b) { + if (filled.get(46)) { + throw new IllegalStateException("hub.account/AGAIN_IN_CNF already set"); + } else { + filled.set(46); + } + + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountAgainInTxn(final Boolean b) { + if (filled.get(47)) { + throw new IllegalStateException("hub.account/AGAIN_IN_TXN already set"); + } else { + filled.set(47); + } + + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 + .put((byte) (b ? 1 : 0)); + + return this; + } + public Trace pAccountBalance(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.account/BALANCE already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -1299,10 +1384,10 @@ public Trace pAccountBalance(final Bytes b) { } public Trace pAccountBalanceNew(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.account/BALANCE_NEW already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -1329,10 +1414,10 @@ public Trace pAccountBalanceNew(final Bytes b) { } public Trace pAccountCodeFragmentIndex(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.account/CODE_FRAGMENT_INDEX already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -1354,10 +1439,10 @@ public Trace pAccountCodeFragmentIndex(final long b) { } public Trace pAccountCodeHashHi(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.account/CODE_HASH_HI already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -1382,10 +1467,10 @@ public Trace pAccountCodeHashHi(final Bytes b) { } public Trace pAccountCodeHashHiNew(final Bytes b) { - if (filled.get(136)) { + if (filled.get(138)) { throw new IllegalStateException("hub.account/CODE_HASH_HI_NEW already set"); } else { - filled.set(136); + filled.set(138); } // Trim array to size @@ -1410,10 +1495,10 @@ public Trace pAccountCodeHashHiNew(final Bytes b) { } public Trace pAccountCodeHashLo(final Bytes b) { - if (filled.get(137)) { + if (filled.get(139)) { throw new IllegalStateException("hub.account/CODE_HASH_LO already set"); } else { - filled.set(137); + filled.set(139); } // Trim array to size @@ -1438,10 +1523,10 @@ public Trace pAccountCodeHashLo(final Bytes b) { } public Trace pAccountCodeHashLoNew(final Bytes b) { - if (filled.get(138)) { + if (filled.get(140)) { throw new IllegalStateException("hub.account/CODE_HASH_LO_NEW already set"); } else { - filled.set(138); + filled.set(140); } // Trim array to size @@ -1466,10 +1551,10 @@ public Trace pAccountCodeHashLoNew(final Bytes b) { } public Trace pAccountCodeSize(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.account/CODE_SIZE already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -1491,10 +1576,10 @@ public Trace pAccountCodeSize(final long b) { } public Trace pAccountCodeSizeNew(final long b) { - if (filled.get(106)) { + if (filled.get(108)) { throw new IllegalStateException("hub.account/CODE_SIZE_NEW already set"); } else { - filled.set(106); + filled.set(108); } if (b >= 4294967296L) { @@ -1515,10 +1600,10 @@ public Trace pAccountCodeSizeNew(final long b) { } public Trace pAccountDeploymentNumber(final long b) { - if (filled.get(107)) { + if (filled.get(109)) { throw new IllegalStateException("hub.account/DEPLOYMENT_NUMBER already set"); } else { - filled.set(107); + filled.set(109); } if (b >= 4294967296L) { @@ -1538,11 +1623,49 @@ public Trace pAccountDeploymentNumber(final long b) { return this; } + public Trace pAccountDeploymentNumberFinalInBlock(final long b) { + if (filled.get(103)) { + throw new IllegalStateException("hub.account/DEPLOYMENT_NUMBER_FINAL_IN_BLOCK already set"); + } else { + filled.set(103); + } + + if (b >= 65536L) { + throw new IllegalArgumentException( + "deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock has invalid value (" + + b + + ")"); + } + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.put((byte) (b >> 8)); + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.put((byte) b); + + return this; + } + + public Trace pAccountDeploymentNumberFirstInBlock(final long b) { + if (filled.get(104)) { + throw new IllegalStateException("hub.account/DEPLOYMENT_NUMBER_FIRST_IN_BLOCK already set"); + } else { + filled.set(104); + } + + if (b >= 65536L) { + throw new IllegalArgumentException( + "deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock has invalid value (" + + b + + ")"); + } + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.put((byte) (b >> 8)); + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.put((byte) b); + + return this; + } + public Trace pAccountDeploymentNumberInfty(final long b) { - if (filled.get(108)) { + if (filled.get(110)) { throw new IllegalStateException("hub.account/DEPLOYMENT_NUMBER_INFTY already set"); } else { - filled.set(108); + filled.set(110); } if (b >= 4294967296L) { @@ -1560,10 +1683,10 @@ public Trace pAccountDeploymentNumberInfty(final long b) { } public Trace pAccountDeploymentNumberNew(final long b) { - if (filled.get(109)) { + if (filled.get(111)) { throw new IllegalStateException("hub.account/DEPLOYMENT_NUMBER_NEW already set"); } else { - filled.set(109); + filled.set(111); } if (b >= 4294967296L) { @@ -1581,139 +1704,214 @@ public Trace pAccountDeploymentNumberNew(final long b) { } public Trace pAccountDeploymentStatus(final Boolean b) { - if (filled.get(45)) { + if (filled.get(48)) { throw new IllegalStateException("hub.account/DEPLOYMENT_STATUS already set"); } else { - filled.set(45); + filled.set(48); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .put((byte) (b ? 1 : 0)); return this; } public Trace pAccountDeploymentStatusInfty(final Boolean b) { - if (filled.get(46)) { + if (filled.get(49)) { throw new IllegalStateException("hub.account/DEPLOYMENT_STATUS_INFTY already set"); } else { - filled.set(46); + filled.set(49); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( + (byte) (b ? 1 : 0)); return this; } public Trace pAccountDeploymentStatusNew(final Boolean b) { - if (filled.get(47)) { + if (filled.get(50)) { throw new IllegalStateException("hub.account/DEPLOYMENT_STATUS_NEW already set"); } else { - filled.set(47); + filled.set(50); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 - .put((byte) (b ? 1 : 0)); + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.put((byte) (b ? 1 : 0)); return this; } public Trace pAccountExists(final Boolean b) { - if (filled.get(48)) { + if (filled.get(51)) { throw new IllegalStateException("hub.account/EXISTS already set"); } else { - filled.set(48); + filled.set(51); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution - .put((byte) (b ? 1 : 0)); + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.put( + (byte) (b ? 1 : 0)); return this; } public Trace pAccountExistsNew(final Boolean b) { - if (filled.get(49)) { + if (filled.get(52)) { throw new IllegalStateException("hub.account/EXISTS_NEW already set"); } else { - filled.set(49); + filled.set(52); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.put( (byte) (b ? 1 : 0)); return this; } - public Trace pAccountHasCode(final Boolean b) { - if (filled.get(50)) { - throw new IllegalStateException("hub.account/HAS_CODE already set"); + public Trace pAccountFinalInBlk(final Boolean b) { + if (filled.get(53)) { + throw new IllegalStateException("hub.account/FINAL_IN_BLK already set"); } else { - filled.set(50); + filled.set(53); } - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn.put( + (byte) (b ? 1 : 0)); return this; } - public Trace pAccountHasCodeNew(final Boolean b) { - if (filled.get(51)) { - throw new IllegalStateException("hub.account/HAS_CODE_NEW already set"); + public Trace pAccountFinalInCnf(final Boolean b) { + if (filled.get(54)) { + throw new IllegalStateException("hub.account/FINAL_IN_CNF already set"); } else { - filled.set(51); + filled.set(54); } - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.put( - (byte) (b ? 1 : 0)); + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges + .put((byte) (b ? 1 : 0)); return this; } - public Trace pAccountIsPrecompile(final Boolean b) { - if (filled.get(52)) { - throw new IllegalStateException("hub.account/IS_PRECOMPILE already set"); + public Trace pAccountFinalInTxn(final Boolean b) { + if (filled.get(55)) { + throw new IllegalStateException("hub.account/FINAL_IN_TXN already set"); } else { - filled.set(52); + filled.set(55); } - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero.put( + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.put( (byte) (b ? 1 : 0)); return this; } - public Trace pAccountMarkedForSelfdestruct(final Boolean b) { - if (filled.get(53)) { - throw new IllegalStateException("hub.account/MARKED_FOR_SELFDESTRUCT already set"); + public Trace pAccountFirstInBlk(final Boolean b) { + if (filled.get(56)) { + throw new IllegalStateException("hub.account/FIRST_IN_BLK already set"); } else { - filled.set(53); + filled.set(56); } - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .put((byte) (b ? 1 : 0)); + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.put( + (byte) (b ? 1 : 0)); return this; } - public Trace pAccountMarkedForSelfdestructNew(final Boolean b) { - if (filled.get(54)) { - throw new IllegalStateException("hub.account/MARKED_FOR_SELFDESTRUCT_NEW already set"); + public Trace pAccountFirstInCnf(final Boolean b) { + if (filled.get(57)) { + throw new IllegalStateException("hub.account/FIRST_IN_CNF already set"); } else { - filled.set(54); + filled.set(57); } - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth - .put((byte) (b ? 1 : 0)); + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); return this; } - public Trace pAccountNonce(final Bytes b) { - if (filled.get(123)) { - throw new IllegalStateException("hub.account/NONCE already set"); + public Trace pAccountFirstInTxn(final Boolean b) { + if (filled.get(58)) { + throw new IllegalStateException("hub.account/FIRST_IN_TXN already set"); } else { - filled.set(123); + filled.set(58); + } + + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountHasCode(final Boolean b) { + if (filled.get(59)) { + throw new IllegalStateException("hub.account/HAS_CODE already set"); + } else { + filled.set(59); + } + + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountHasCodeNew(final Boolean b) { + if (filled.get(60)) { + throw new IllegalStateException("hub.account/HAS_CODE_NEW already set"); + } else { + filled.set(60); + } + + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.put((byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountIsPrecompile(final Boolean b) { + if (filled.get(61)) { + throw new IllegalStateException("hub.account/IS_PRECOMPILE already set"); + } else { + filled.set(61); + } + + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.put((byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountMarkedForSelfdestruct(final Boolean b) { + if (filled.get(62)) { + throw new IllegalStateException("hub.account/MARKED_FOR_SELFDESTRUCT already set"); + } else { + filled.set(62); + } + + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountMarkedForSelfdestructNew(final Boolean b) { + if (filled.get(63)) { + throw new IllegalStateException("hub.account/MARKED_FOR_SELFDESTRUCT_NEW already set"); + } else { + filled.set(63); + } + + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pAccountNonce(final Bytes b) { + if (filled.get(125)) { + throw new IllegalStateException("hub.account/NONCE already set"); + } else { + filled.set(125); } // Trim array to size @@ -1736,10 +1934,10 @@ public Trace pAccountNonce(final Bytes b) { } public Trace pAccountNonceNew(final Bytes b) { - if (filled.get(124)) { + if (filled.get(126)) { throw new IllegalStateException("hub.account/NONCE_NEW already set"); } else { - filled.set(124); + filled.set(126); } // Trim array to size @@ -1764,10 +1962,10 @@ public Trace pAccountNonceNew(final Bytes b) { } public Trace pAccountRlpaddrDepAddrHi(final long b) { - if (filled.get(110)) { + if (filled.get(112)) { throw new IllegalStateException("hub.account/RLPADDR_DEP_ADDR_HI already set"); } else { - filled.set(110); + filled.set(112); } if (b >= 4294967296L) { @@ -1783,10 +1981,10 @@ public Trace pAccountRlpaddrDepAddrHi(final long b) { } public Trace pAccountRlpaddrDepAddrLo(final Bytes b) { - if (filled.get(139)) { + if (filled.get(141)) { throw new IllegalStateException("hub.account/RLPADDR_DEP_ADDR_LO already set"); } else { - filled.set(139); + filled.set(141); } // Trim array to size @@ -1811,23 +2009,23 @@ public Trace pAccountRlpaddrDepAddrLo(final Bytes b) { } public Trace pAccountRlpaddrFlag(final Boolean b) { - if (filled.get(55)) { + if (filled.get(64)) { throw new IllegalStateException("hub.account/RLPADDR_FLAG already set"); } else { - filled.set(55); + filled.set(64); } - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.put( + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.put( (byte) (b ? 1 : 0)); return this; } public Trace pAccountRlpaddrKecHi(final Bytes b) { - if (filled.get(140)) { + if (filled.get(142)) { throw new IllegalStateException("hub.account/RLPADDR_KEC_HI already set"); } else { - filled.set(140); + filled.set(142); } // Trim array to size @@ -1852,10 +2050,10 @@ public Trace pAccountRlpaddrKecHi(final Bytes b) { } public Trace pAccountRlpaddrKecLo(final Bytes b) { - if (filled.get(141)) { + if (filled.get(143)) { throw new IllegalStateException("hub.account/RLPADDR_KEC_LO already set"); } else { - filled.set(141); + filled.set(143); } // Trim array to size @@ -1895,10 +2093,10 @@ public Trace pAccountRlpaddrRecipe(final long b) { } public Trace pAccountRlpaddrSaltHi(final Bytes b) { - if (filled.get(142)) { + if (filled.get(144)) { throw new IllegalStateException("hub.account/RLPADDR_SALT_HI already set"); } else { - filled.set(142); + filled.set(144); } // Trim array to size @@ -1923,10 +2121,10 @@ public Trace pAccountRlpaddrSaltHi(final Bytes b) { } public Trace pAccountRlpaddrSaltLo(final Bytes b) { - if (filled.get(143)) { + if (filled.get(145)) { throw new IllegalStateException("hub.account/RLPADDR_SALT_LO already set"); } else { - filled.set(143); + filled.set(145); } // Trim array to size @@ -1951,34 +2149,34 @@ public Trace pAccountRlpaddrSaltLo(final Bytes b) { } public Trace pAccountRomlexFlag(final Boolean b) { - if (filled.get(56)) { + if (filled.get(65)) { throw new IllegalStateException("hub.account/ROMLEX_FLAG already set"); } else { - filled.set(56); + filled.set(65); } - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.put((byte) (b ? 1 : 0)); + romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag.put((byte) (b ? 1 : 0)); return this; } public Trace pAccountTrmFlag(final Boolean b) { - if (filled.get(57)) { + if (filled.get(66)) { throw new IllegalStateException("hub.account/TRM_FLAG already set"); } else { - filled.set(57); + filled.set(66); } - trmFlagXorStpFlagXorCreateAbortXorDupFlag.put((byte) (b ? 1 : 0)); + trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag.put((byte) (b ? 1 : 0)); return this; } public Trace pAccountTrmRawAddressHi(final Bytes b) { - if (filled.get(144)) { + if (filled.get(146)) { throw new IllegalStateException("hub.account/TRM_RAW_ADDRESS_HI already set"); } else { - filled.set(144); + filled.set(146); } // Trim array to size @@ -2001,34 +2199,34 @@ public Trace pAccountTrmRawAddressHi(final Bytes b) { } public Trace pAccountWarmth(final Boolean b) { - if (filled.get(58)) { + if (filled.get(67)) { throw new IllegalStateException("hub.account/WARMTH already set"); } else { - filled.set(58); + filled.set(67); } - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.put((byte) (b ? 1 : 0)); + warmthXorPrcBlake2FXorLogFlag.put((byte) (b ? 1 : 0)); return this; } public Trace pAccountWarmthNew(final Boolean b) { - if (filled.get(59)) { + if (filled.get(68)) { throw new IllegalStateException("hub.account/WARMTH_NEW already set"); } else { - filled.set(59); + filled.set(68); } - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.put((byte) (b ? 1 : 0)); + warmthNewXorPrcEcaddXorLogInfoFlag.put((byte) (b ? 1 : 0)); return this; } public Trace pContextAccountAddressHi(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.context/ACCOUNT_ADDRESS_HI already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -2050,10 +2248,10 @@ public Trace pContextAccountAddressHi(final long b) { } public Trace pContextAccountAddressLo(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.context/ACCOUNT_ADDRESS_LO already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -2080,10 +2278,10 @@ public Trace pContextAccountAddressLo(final Bytes b) { } public Trace pContextAccountDeploymentNumber(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.context/ACCOUNT_DEPLOYMENT_NUMBER already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -2105,10 +2303,10 @@ public Trace pContextAccountDeploymentNumber(final long b) { } public Trace pContextByteCodeAddressHi(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.context/BYTE_CODE_ADDRESS_HI already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -2130,10 +2328,10 @@ public Trace pContextByteCodeAddressHi(final long b) { } public Trace pContextByteCodeAddressLo(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.context/BYTE_CODE_ADDRESS_LO already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -2160,10 +2358,10 @@ public Trace pContextByteCodeAddressLo(final Bytes b) { } public Trace pContextByteCodeCodeFragmentIndex(final long b) { - if (filled.get(106)) { + if (filled.get(108)) { throw new IllegalStateException("hub.context/BYTE_CODE_CODE_FRAGMENT_INDEX already set"); } else { - filled.set(106); + filled.set(108); } if (b >= 4294967296L) { @@ -2184,10 +2382,10 @@ public Trace pContextByteCodeCodeFragmentIndex(final long b) { } public Trace pContextByteCodeDeploymentNumber(final long b) { - if (filled.get(107)) { + if (filled.get(109)) { throw new IllegalStateException("hub.context/BYTE_CODE_DEPLOYMENT_NUMBER already set"); } else { - filled.set(107); + filled.set(109); } if (b >= 4294967296L) { @@ -2208,10 +2406,10 @@ public Trace pContextByteCodeDeploymentNumber(final long b) { } public Trace pContextByteCodeDeploymentStatus(final long b) { - if (filled.get(108)) { + if (filled.get(110)) { throw new IllegalStateException("hub.context/BYTE_CODE_DEPLOYMENT_STATUS already set"); } else { - filled.set(108); + filled.set(110); } if (b >= 4294967296L) { @@ -2229,10 +2427,10 @@ public Trace pContextByteCodeDeploymentStatus(final long b) { } public Trace pContextCallDataContextNumber(final long b) { - if (filled.get(110)) { + if (filled.get(112)) { throw new IllegalStateException("hub.context/CALL_DATA_CONTEXT_NUMBER already set"); } else { - filled.set(110); + filled.set(112); } if (b >= 4294967296L) { @@ -2248,10 +2446,10 @@ public Trace pContextCallDataContextNumber(final long b) { } public Trace pContextCallDataOffset(final long b) { - if (filled.get(111)) { + if (filled.get(113)) { throw new IllegalStateException("hub.context/CALL_DATA_OFFSET already set"); } else { - filled.set(111); + filled.set(113); } if (b >= 4294967296L) { @@ -2266,10 +2464,10 @@ public Trace pContextCallDataOffset(final long b) { } public Trace pContextCallDataSize(final long b) { - if (filled.get(112)) { + if (filled.get(114)) { throw new IllegalStateException("hub.context/CALL_DATA_SIZE already set"); } else { - filled.set(112); + filled.set(114); } if (b >= 4294967296L) { @@ -2301,10 +2499,10 @@ public Trace pContextCallStackDepth(final long b) { } public Trace pContextCallValue(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.context/CALL_VALUE already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -2329,10 +2527,10 @@ public Trace pContextCallValue(final Bytes b) { } public Trace pContextCallerAddressHi(final long b) { - if (filled.get(109)) { + if (filled.get(111)) { throw new IllegalStateException("hub.context/CALLER_ADDRESS_HI already set"); } else { - filled.set(109); + filled.set(111); } if (b >= 4294967296L) { @@ -2350,10 +2548,10 @@ public Trace pContextCallerAddressHi(final long b) { } public Trace pContextCallerAddressLo(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.context/CALLER_ADDRESS_LO already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -2380,10 +2578,10 @@ public Trace pContextCallerAddressLo(final Bytes b) { } public Trace pContextContextNumber(final long b) { - if (filled.get(113)) { + if (filled.get(115)) { throw new IllegalStateException("hub.context/CONTEXT_NUMBER already set"); } else { - filled.set(113); + filled.set(115); } if (b >= 4294967296L) { @@ -2404,8 +2602,8 @@ public Trace pContextIsRoot(final Boolean b) { filled.set(45); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); return this; } @@ -2417,17 +2615,17 @@ public Trace pContextIsStatic(final Boolean b) { filled.set(46); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); return this; } public Trace pContextReturnAtCapacity(final long b) { - if (filled.get(114)) { + if (filled.get(116)) { throw new IllegalStateException("hub.context/RETURN_AT_CAPACITY already set"); } else { - filled.set(114); + filled.set(116); } if (b >= 4294967296L) { @@ -2443,10 +2641,10 @@ public Trace pContextReturnAtCapacity(final long b) { } public Trace pContextReturnAtOffset(final long b) { - if (filled.get(115)) { + if (filled.get(117)) { throw new IllegalStateException("hub.context/RETURN_AT_OFFSET already set"); } else { - filled.set(115); + filled.set(117); } if (b >= 4294967296L) { @@ -2461,10 +2659,10 @@ public Trace pContextReturnAtOffset(final long b) { } public Trace pContextReturnDataContextNumber(final long b) { - if (filled.get(116)) { + if (filled.get(118)) { throw new IllegalStateException("hub.context/RETURN_DATA_CONTEXT_NUMBER already set"); } else { - filled.set(116); + filled.set(118); } if (b >= 4294967296L) { @@ -2480,10 +2678,10 @@ public Trace pContextReturnDataContextNumber(final long b) { } public Trace pContextReturnDataOffset(final long b) { - if (filled.get(117)) { + if (filled.get(119)) { throw new IllegalStateException("hub.context/RETURN_DATA_OFFSET already set"); } else { - filled.set(117); + filled.set(119); } if (b >= 4294967296L) { @@ -2499,10 +2697,10 @@ public Trace pContextReturnDataOffset(final long b) { } public Trace pContextReturnDataSize(final long b) { - if (filled.get(118)) { + if (filled.get(120)) { throw new IllegalStateException("hub.context/RETURN_DATA_SIZE already set"); } else { - filled.set(118); + filled.set(120); } if (b >= 4294967296L) { @@ -2523,17 +2721,17 @@ public Trace pContextUpdate(final Boolean b) { filled.set(47); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 .put((byte) (b ? 1 : 0)); return this; } public Trace pMiscCcrsStamp(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.misc/CCRS_STAMP already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -2561,17 +2759,17 @@ public Trace pMiscCcsrFlag(final Boolean b) { filled.set(45); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); return this; } public Trace pMiscExpData1(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.misc/EXP_DATA_1 already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -2598,10 +2796,10 @@ public Trace pMiscExpData1(final Bytes b) { } public Trace pMiscExpData2(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.misc/EXP_DATA_2 already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -2628,10 +2826,10 @@ public Trace pMiscExpData2(final Bytes b) { } public Trace pMiscExpData3(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.misc/EXP_DATA_3 already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -2658,10 +2856,10 @@ public Trace pMiscExpData3(final Bytes b) { } public Trace pMiscExpData4(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.misc/EXP_DATA_4 already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -2686,10 +2884,10 @@ public Trace pMiscExpData4(final Bytes b) { } public Trace pMiscExpData5(final Bytes b) { - if (filled.get(136)) { + if (filled.get(138)) { throw new IllegalStateException("hub.misc/EXP_DATA_5 already set"); } else { - filled.set(136); + filled.set(138); } // Trim array to size @@ -2720,17 +2918,17 @@ public Trace pMiscExpFlag(final Boolean b) { filled.set(46); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); return this; } public Trace pMiscExpInst(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.misc/EXP_INST already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -2752,10 +2950,10 @@ public Trace pMiscExpInst(final long b) { } public Trace pMiscMmuAuxId(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.misc/MMU_AUX_ID already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -2777,10 +2975,10 @@ public Trace pMiscMmuAuxId(final long b) { } public Trace pMiscMmuExoSum(final long b) { - if (filled.get(106)) { + if (filled.get(108)) { throw new IllegalStateException("hub.misc/MMU_EXO_SUM already set"); } else { - filled.set(106); + filled.set(108); } if (b >= 4294967296L) { @@ -2807,17 +3005,17 @@ public Trace pMiscMmuFlag(final Boolean b) { filled.set(47); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 .put((byte) (b ? 1 : 0)); return this; } public Trace pMiscMmuInst(final long b) { - if (filled.get(107)) { + if (filled.get(109)) { throw new IllegalStateException("hub.misc/MMU_INST already set"); } else { - filled.set(107); + filled.set(109); } if (b >= 4294967296L) { @@ -2838,10 +3036,10 @@ public Trace pMiscMmuInst(final long b) { } public Trace pMiscMmuLimb1(final Bytes b) { - if (filled.get(137)) { + if (filled.get(139)) { throw new IllegalStateException("hub.misc/MMU_LIMB_1 already set"); } else { - filled.set(137); + filled.set(139); } // Trim array to size @@ -2866,10 +3064,10 @@ public Trace pMiscMmuLimb1(final Bytes b) { } public Trace pMiscMmuLimb2(final Bytes b) { - if (filled.get(138)) { + if (filled.get(140)) { throw new IllegalStateException("hub.misc/MMU_LIMB_2 already set"); } else { - filled.set(138); + filled.set(140); } // Trim array to size @@ -2894,10 +3092,10 @@ public Trace pMiscMmuLimb2(final Bytes b) { } public Trace pMiscMmuPhase(final long b) { - if (filled.get(108)) { + if (filled.get(110)) { throw new IllegalStateException("hub.misc/MMU_PHASE already set"); } else { - filled.set(108); + filled.set(110); } if (b >= 4294967296L) { @@ -2915,10 +3113,10 @@ public Trace pMiscMmuPhase(final long b) { } public Trace pMiscMmuRefOffset(final long b) { - if (filled.get(109)) { + if (filled.get(111)) { throw new IllegalStateException("hub.misc/MMU_REF_OFFSET already set"); } else { - filled.set(109); + filled.set(111); } if (b >= 4294967296L) { @@ -2936,10 +3134,10 @@ public Trace pMiscMmuRefOffset(final long b) { } public Trace pMiscMmuRefSize(final long b) { - if (filled.get(110)) { + if (filled.get(112)) { throw new IllegalStateException("hub.misc/MMU_REF_SIZE already set"); } else { - filled.set(110); + filled.set(112); } if (b >= 4294967296L) { @@ -2955,10 +3153,10 @@ public Trace pMiscMmuRefSize(final long b) { } public Trace pMiscMmuSize(final long b) { - if (filled.get(111)) { + if (filled.get(113)) { throw new IllegalStateException("hub.misc/MMU_SIZE already set"); } else { - filled.set(111); + filled.set(113); } if (b >= 4294967296L) { @@ -2973,10 +3171,10 @@ public Trace pMiscMmuSize(final long b) { } public Trace pMiscMmuSrcId(final long b) { - if (filled.get(112)) { + if (filled.get(114)) { throw new IllegalStateException("hub.misc/MMU_SRC_ID already set"); } else { - filled.set(112); + filled.set(114); } if (b >= 4294967296L) { @@ -2991,10 +3189,10 @@ public Trace pMiscMmuSrcId(final long b) { } public Trace pMiscMmuSrcOffsetHi(final Bytes b) { - if (filled.get(139)) { + if (filled.get(141)) { throw new IllegalStateException("hub.misc/MMU_SRC_OFFSET_HI already set"); } else { - filled.set(139); + filled.set(141); } // Trim array to size @@ -3019,10 +3217,10 @@ public Trace pMiscMmuSrcOffsetHi(final Bytes b) { } public Trace pMiscMmuSrcOffsetLo(final Bytes b) { - if (filled.get(140)) { + if (filled.get(142)) { throw new IllegalStateException("hub.misc/MMU_SRC_OFFSET_LO already set"); } else { - filled.set(140); + filled.set(142); } // Trim array to size @@ -3053,17 +3251,17 @@ public Trace pMiscMmuSuccessBit(final Boolean b) { filled.set(48); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .put((byte) (b ? 1 : 0)); return this; } public Trace pMiscMmuTgtId(final long b) { - if (filled.get(113)) { + if (filled.get(115)) { throw new IllegalStateException("hub.misc/MMU_TGT_ID already set"); } else { - filled.set(113); + filled.set(115); } if (b >= 4294967296L) { @@ -3078,10 +3276,10 @@ public Trace pMiscMmuTgtId(final long b) { } public Trace pMiscMmuTgtOffsetLo(final Bytes b) { - if (filled.get(141)) { + if (filled.get(143)) { throw new IllegalStateException("hub.misc/MMU_TGT_OFFSET_LO already set"); } else { - filled.set(141); + filled.set(143); } // Trim array to size @@ -3112,7 +3310,7 @@ public Trace pMiscMxpDeploys(final Boolean b) { filled.set(49); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( (byte) (b ? 1 : 0)); return this; @@ -3125,16 +3323,16 @@ public Trace pMiscMxpFlag(final Boolean b) { filled.set(50); } - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.put((byte) (b ? 1 : 0)); return this; } public Trace pMiscMxpGasMxp(final Bytes b) { - if (filled.get(142)) { + if (filled.get(144)) { throw new IllegalStateException("hub.misc/MXP_GAS_MXP already set"); } else { - filled.set(142); + filled.set(144); } // Trim array to size @@ -3159,10 +3357,10 @@ public Trace pMiscMxpGasMxp(final Bytes b) { } public Trace pMiscMxpInst(final long b) { - if (filled.get(114)) { + if (filled.get(116)) { throw new IllegalStateException("hub.misc/MXP_INST already set"); } else { - filled.set(114); + filled.set(116); } if (b >= 4294967296L) { @@ -3184,7 +3382,7 @@ public Trace pMiscMxpMtntop(final Boolean b) { filled.set(51); } - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.put( + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.put( (byte) (b ? 1 : 0)); return this; @@ -3197,17 +3395,17 @@ public Trace pMiscMxpMxpx(final Boolean b) { filled.set(52); } - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero.put( + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.put( (byte) (b ? 1 : 0)); return this; } public Trace pMiscMxpOffset1Hi(final Bytes b) { - if (filled.get(143)) { + if (filled.get(145)) { throw new IllegalStateException("hub.misc/MXP_OFFSET_1_HI already set"); } else { - filled.set(143); + filled.set(145); } // Trim array to size @@ -3232,10 +3430,10 @@ public Trace pMiscMxpOffset1Hi(final Bytes b) { } public Trace pMiscMxpOffset1Lo(final Bytes b) { - if (filled.get(144)) { + if (filled.get(146)) { throw new IllegalStateException("hub.misc/MXP_OFFSET_1_LO already set"); } else { - filled.set(144); + filled.set(146); } // Trim array to size @@ -3258,10 +3456,10 @@ public Trace pMiscMxpOffset1Lo(final Bytes b) { } public Trace pMiscMxpOffset2Hi(final Bytes b) { - if (filled.get(145)) { + if (filled.get(147)) { throw new IllegalStateException("hub.misc/MXP_OFFSET_2_HI already set"); } else { - filled.set(145); + filled.set(147); } // Trim array to size @@ -3284,10 +3482,10 @@ public Trace pMiscMxpOffset2Hi(final Bytes b) { } public Trace pMiscMxpOffset2Lo(final Bytes b) { - if (filled.get(146)) { + if (filled.get(148)) { throw new IllegalStateException("hub.misc/MXP_OFFSET_2_LO already set"); } else { - filled.set(146); + filled.set(148); } // Trim array to size @@ -3310,10 +3508,10 @@ public Trace pMiscMxpOffset2Lo(final Bytes b) { } public Trace pMiscMxpSize1Hi(final Bytes b) { - if (filled.get(147)) { + if (filled.get(149)) { throw new IllegalStateException("hub.misc/MXP_SIZE_1_HI already set"); } else { - filled.set(147); + filled.set(149); } // Trim array to size @@ -3336,10 +3534,10 @@ public Trace pMiscMxpSize1Hi(final Bytes b) { } public Trace pMiscMxpSize1Lo(final Bytes b) { - if (filled.get(148)) { + if (filled.get(150)) { throw new IllegalStateException("hub.misc/MXP_SIZE_1_LO already set"); } else { - filled.set(148); + filled.set(150); } // Trim array to size @@ -3368,17 +3566,17 @@ public Trace pMiscMxpSize1NonzeroNoMxpx(final Boolean b) { filled.set(53); } - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .put((byte) (b ? 1 : 0)); + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn.put( + (byte) (b ? 1 : 0)); return this; } public Trace pMiscMxpSize2Hi(final Bytes b) { - if (filled.get(149)) { + if (filled.get(151)) { throw new IllegalStateException("hub.misc/MXP_SIZE_2_HI already set"); } else { - filled.set(149); + filled.set(151); } // Trim array to size @@ -3401,10 +3599,10 @@ public Trace pMiscMxpSize2Hi(final Bytes b) { } public Trace pMiscMxpSize2Lo(final Bytes b) { - if (filled.get(150)) { + if (filled.get(152)) { throw new IllegalStateException("hub.misc/MXP_SIZE_2_LO already set"); } else { - filled.set(150); + filled.set(152); } // Trim array to size @@ -3433,17 +3631,17 @@ public Trace pMiscMxpSize2NonzeroNoMxpx(final Boolean b) { filled.set(54); } - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges .put((byte) (b ? 1 : 0)); return this; } public Trace pMiscMxpWords(final Bytes b) { - if (filled.get(151)) { + if (filled.get(153)) { throw new IllegalStateException("hub.misc/MXP_WORDS already set"); } else { - filled.set(151); + filled.set(153); } // Trim array to size @@ -3465,10 +3663,10 @@ public Trace pMiscMxpWords(final Bytes b) { } public Trace pMiscOobData1(final Bytes b) { - if (filled.get(152)) { + if (filled.get(154)) { throw new IllegalStateException("hub.misc/OOB_DATA_1 already set"); } else { - filled.set(152); + filled.set(154); } // Trim array to size @@ -3490,10 +3688,10 @@ public Trace pMiscOobData1(final Bytes b) { } public Trace pMiscOobData2(final Bytes b) { - if (filled.get(153)) { + if (filled.get(155)) { throw new IllegalStateException("hub.misc/OOB_DATA_2 already set"); } else { - filled.set(153); + filled.set(155); } // Trim array to size @@ -3515,10 +3713,10 @@ public Trace pMiscOobData2(final Bytes b) { } public Trace pMiscOobData3(final Bytes b) { - if (filled.get(154)) { + if (filled.get(156)) { throw new IllegalStateException("hub.misc/OOB_DATA_3 already set"); } else { - filled.set(154); + filled.set(156); } // Trim array to size @@ -3540,10 +3738,10 @@ public Trace pMiscOobData3(final Bytes b) { } public Trace pMiscOobData4(final Bytes b) { - if (filled.get(155)) { + if (filled.get(157)) { throw new IllegalStateException("hub.misc/OOB_DATA_4 already set"); } else { - filled.set(155); + filled.set(157); } // Trim array to size @@ -3565,10 +3763,10 @@ public Trace pMiscOobData4(final Bytes b) { } public Trace pMiscOobData5(final Bytes b) { - if (filled.get(156)) { + if (filled.get(158)) { throw new IllegalStateException("hub.misc/OOB_DATA_5 already set"); } else { - filled.set(156); + filled.set(158); } // Trim array to size @@ -3590,10 +3788,10 @@ public Trace pMiscOobData5(final Bytes b) { } public Trace pMiscOobData6(final Bytes b) { - if (filled.get(157)) { + if (filled.get(159)) { throw new IllegalStateException("hub.misc/OOB_DATA_6 already set"); } else { - filled.set(157); + filled.set(159); } // Trim array to size @@ -3615,10 +3813,10 @@ public Trace pMiscOobData6(final Bytes b) { } public Trace pMiscOobData7(final Bytes b) { - if (filled.get(158)) { + if (filled.get(160)) { throw new IllegalStateException("hub.misc/OOB_DATA_7 already set"); } else { - filled.set(158); + filled.set(160); } // Trim array to size @@ -3640,10 +3838,10 @@ public Trace pMiscOobData7(final Bytes b) { } public Trace pMiscOobData8(final Bytes b) { - if (filled.get(159)) { + if (filled.get(161)) { throw new IllegalStateException("hub.misc/OOB_DATA_8 already set"); } else { - filled.set(159); + filled.set(161); } // Trim array to size @@ -3665,10 +3863,10 @@ public Trace pMiscOobData8(final Bytes b) { } public Trace pMiscOobData9(final Bytes b) { - if (filled.get(160)) { + if (filled.get(162)) { throw new IllegalStateException("hub.misc/OOB_DATA_9 already set"); } else { - filled.set(160); + filled.set(162); } // Trim array to size @@ -3696,17 +3894,17 @@ public Trace pMiscOobFlag(final Boolean b) { filled.set(55); } - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.put( + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.put( (byte) (b ? 1 : 0)); return this; } public Trace pMiscOobInst(final long b) { - if (filled.get(115)) { + if (filled.get(117)) { throw new IllegalStateException("hub.misc/OOB_INST already set"); } else { - filled.set(115); + filled.set(117); } if (b >= 4294967296L) { @@ -3727,7 +3925,8 @@ public Trace pMiscStpExists(final Boolean b) { filled.set(56); } - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.put((byte) (b ? 1 : 0)); + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -3739,16 +3938,16 @@ public Trace pMiscStpFlag(final Boolean b) { filled.set(57); } - trmFlagXorStpFlagXorCreateAbortXorDupFlag.put((byte) (b ? 1 : 0)); + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); return this; } public Trace pMiscStpGasHi(final Bytes b) { - if (filled.get(161)) { + if (filled.get(163)) { throw new IllegalStateException("hub.misc/STP_GAS_HI already set"); } else { - filled.set(161); + filled.set(163); } // Trim array to size @@ -3770,10 +3969,10 @@ public Trace pMiscStpGasHi(final Bytes b) { } public Trace pMiscStpGasLo(final Bytes b) { - if (filled.get(162)) { + if (filled.get(164)) { throw new IllegalStateException("hub.misc/STP_GAS_LO already set"); } else { - filled.set(162); + filled.set(164); } // Trim array to size @@ -3795,10 +3994,10 @@ public Trace pMiscStpGasLo(final Bytes b) { } public Trace pMiscStpGasMxp(final Bytes b) { - if (filled.get(123)) { + if (filled.get(125)) { throw new IllegalStateException("hub.misc/STP_GAS_MXP already set"); } else { - filled.set(123); + filled.set(125); } // Trim array to size @@ -3821,10 +4020,10 @@ public Trace pMiscStpGasMxp(final Bytes b) { } public Trace pMiscStpGasPaidOutOfPocket(final Bytes b) { - if (filled.get(124)) { + if (filled.get(126)) { throw new IllegalStateException("hub.misc/STP_GAS_PAID_OUT_OF_POCKET already set"); } else { - filled.set(124); + filled.set(126); } // Trim array to size @@ -3849,10 +4048,10 @@ public Trace pMiscStpGasPaidOutOfPocket(final Bytes b) { } public Trace pMiscStpGasStipend(final long b) { - if (filled.get(116)) { + if (filled.get(118)) { throw new IllegalStateException("hub.misc/STP_GAS_STIPEND already set"); } else { - filled.set(116); + filled.set(118); } if (b >= 4294967296L) { @@ -3868,10 +4067,10 @@ public Trace pMiscStpGasStipend(final long b) { } public Trace pMiscStpGasUpfrontGasCost(final Bytes b) { - if (filled.get(125)) { + if (filled.get(127)) { throw new IllegalStateException("hub.misc/STP_GAS_UPFRONT_GAS_COST already set"); } else { - filled.set(125); + filled.set(127); } // Trim array to size @@ -3894,10 +4093,10 @@ public Trace pMiscStpGasUpfrontGasCost(final Bytes b) { } public Trace pMiscStpInstruction(final long b) { - if (filled.get(117)) { + if (filled.get(119)) { throw new IllegalStateException("hub.misc/STP_INSTRUCTION already set"); } else { - filled.set(117); + filled.set(119); } if (b >= 4294967296L) { @@ -3919,16 +4118,17 @@ public Trace pMiscStpOogx(final Boolean b) { filled.set(58); } - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.put((byte) (b ? 1 : 0)); + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.put( + (byte) (b ? 1 : 0)); return this; } public Trace pMiscStpValueHi(final Bytes b) { - if (filled.get(163)) { + if (filled.get(165)) { throw new IllegalStateException("hub.misc/STP_VALUE_HI already set"); } else { - filled.set(163); + filled.set(165); } // Trim array to size @@ -3951,10 +4151,10 @@ public Trace pMiscStpValueHi(final Bytes b) { } public Trace pMiscStpValueLo(final Bytes b) { - if (filled.get(164)) { + if (filled.get(166)) { throw new IllegalStateException("hub.misc/STP_VALUE_LO already set"); } else { - filled.set(164); + filled.set(166); } // Trim array to size @@ -3983,7 +4183,8 @@ public Trace pMiscStpWarmth(final Boolean b) { filled.set(59); } - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.put((byte) (b ? 1 : 0)); + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -3995,8 +4196,8 @@ public Trace pScenarioCallAbortWillRevert(final Boolean b) { filled.set(45); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); return this; } @@ -4008,8 +4209,8 @@ public Trace pScenarioCallAbortWontRevert(final Boolean b) { filled.set(46); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); return this; } @@ -4022,7 +4223,7 @@ public Trace pScenarioCallEoaSuccessCallerWillRevert(final Boolean b) { filled.set(47); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 .put((byte) (b ? 1 : 0)); return this; @@ -4036,7 +4237,7 @@ public Trace pScenarioCallEoaSuccessCallerWontRevert(final Boolean b) { filled.set(48); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .put((byte) (b ? 1 : 0)); return this; @@ -4049,7 +4250,7 @@ public Trace pScenarioCallException(final Boolean b) { filled.set(49); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( (byte) (b ? 1 : 0)); return this; @@ -4062,7 +4263,7 @@ public Trace pScenarioCallPrcFailure(final Boolean b) { filled.set(50); } - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.put((byte) (b ? 1 : 0)); return this; } @@ -4075,7 +4276,7 @@ public Trace pScenarioCallPrcSuccessCallerWillRevert(final Boolean b) { filled.set(51); } - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.put( + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.put( (byte) (b ? 1 : 0)); return this; @@ -4089,7 +4290,7 @@ public Trace pScenarioCallPrcSuccessCallerWontRevert(final Boolean b) { filled.set(52); } - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero.put( + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.put( (byte) (b ? 1 : 0)); return this; @@ -4103,8 +4304,8 @@ public Trace pScenarioCallSmcFailureCallerWillRevert(final Boolean b) { filled.set(53); } - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .put((byte) (b ? 1 : 0)); + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn.put( + (byte) (b ? 1 : 0)); return this; } @@ -4117,7 +4318,7 @@ public Trace pScenarioCallSmcFailureCallerWontRevert(final Boolean b) { filled.set(54); } - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges .put((byte) (b ? 1 : 0)); return this; @@ -4131,7 +4332,7 @@ public Trace pScenarioCallSmcSuccessCallerWillRevert(final Boolean b) { filled.set(55); } - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.put( + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.put( (byte) (b ? 1 : 0)); return this; @@ -4145,7 +4346,8 @@ public Trace pScenarioCallSmcSuccessCallerWontRevert(final Boolean b) { filled.set(56); } - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.put((byte) (b ? 1 : 0)); + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -4157,7 +4359,7 @@ public Trace pScenarioCreateAbort(final Boolean b) { filled.set(57); } - trmFlagXorStpFlagXorCreateAbortXorDupFlag.put((byte) (b ? 1 : 0)); + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); return this; } @@ -4170,7 +4372,8 @@ public Trace pScenarioCreateEmptyInitCodeWillRevert(final Boolean b) { filled.set(58); } - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.put((byte) (b ? 1 : 0)); + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.put( + (byte) (b ? 1 : 0)); return this; } @@ -4183,7 +4386,8 @@ public Trace pScenarioCreateEmptyInitCodeWontRevert(final Boolean b) { filled.set(59); } - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.put((byte) (b ? 1 : 0)); + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -4195,7 +4399,7 @@ public Trace pScenarioCreateException(final Boolean b) { filled.set(60); } - createExceptionXorHashInfoFlag.put((byte) (b ? 1 : 0)); + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.put((byte) (b ? 1 : 0)); return this; } @@ -4208,7 +4412,7 @@ public Trace pScenarioCreateFailureConditionWillRevert(final Boolean b) { filled.set(61); } - createFailureConditionWillRevertXorIcpx.put((byte) (b ? 1 : 0)); + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.put((byte) (b ? 1 : 0)); return this; } @@ -4221,7 +4425,8 @@ public Trace pScenarioCreateFailureConditionWontRevert(final Boolean b) { filled.set(62); } - createFailureConditionWontRevertXorInvalidFlag.put((byte) (b ? 1 : 0)); + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew.put( + (byte) (b ? 1 : 0)); return this; } @@ -4234,7 +4439,8 @@ public Trace pScenarioCreateNonemptyInitCodeFailureWillRevert(final Boolean b) { filled.set(63); } - createNonemptyInitCodeFailureWillRevertXorJumpx.put((byte) (b ? 1 : 0)); + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx.put( + (byte) (b ? 1 : 0)); return this; } @@ -4247,7 +4453,7 @@ public Trace pScenarioCreateNonemptyInitCodeFailureWontRevert(final Boolean b) { filled.set(64); } - createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.put( + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.put( (byte) (b ? 1 : 0)); return this; @@ -4261,7 +4467,7 @@ public Trace pScenarioCreateNonemptyInitCodeSuccessWillRevert(final Boolean b) { filled.set(65); } - createNonemptyInitCodeSuccessWillRevertXorJumpFlag.put((byte) (b ? 1 : 0)); + romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag.put((byte) (b ? 1 : 0)); return this; } @@ -4274,7 +4480,7 @@ public Trace pScenarioCreateNonemptyInitCodeSuccessWontRevert(final Boolean b) { filled.set(66); } - createNonemptyInitCodeSuccessWontRevertXorKecFlag.put((byte) (b ? 1 : 0)); + trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag.put((byte) (b ? 1 : 0)); return this; } @@ -4286,16 +4492,16 @@ public Trace pScenarioPrcBlake2F(final Boolean b) { filled.set(67); } - prcBlake2FXorLogFlag.put((byte) (b ? 1 : 0)); + warmthXorPrcBlake2FXorLogFlag.put((byte) (b ? 1 : 0)); return this; } public Trace pScenarioPrcCalleeGas(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.scenario/PRC_CALLEE_GAS already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -4317,10 +4523,10 @@ public Trace pScenarioPrcCalleeGas(final long b) { } public Trace pScenarioPrcCallerGas(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.scenario/PRC_CALLER_GAS already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -4342,10 +4548,10 @@ public Trace pScenarioPrcCallerGas(final long b) { } public Trace pScenarioPrcCdo(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.scenario/PRC_CDO already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -4367,10 +4573,10 @@ public Trace pScenarioPrcCdo(final long b) { } public Trace pScenarioPrcCds(final long b) { - if (filled.get(106)) { + if (filled.get(108)) { throw new IllegalStateException("hub.scenario/PRC_CDS already set"); } else { - filled.set(106); + filled.set(108); } if (b >= 4294967296L) { @@ -4397,7 +4603,7 @@ public Trace pScenarioPrcEcadd(final Boolean b) { filled.set(68); } - prcEcaddXorLogInfoFlag.put((byte) (b ? 1 : 0)); + warmthNewXorPrcEcaddXorLogInfoFlag.put((byte) (b ? 1 : 0)); return this; } @@ -4487,10 +4693,10 @@ public Trace pScenarioPrcModexp(final Boolean b) { } public Trace pScenarioPrcRac(final long b) { - if (filled.get(107)) { + if (filled.get(109)) { throw new IllegalStateException("hub.scenario/PRC_RAC already set"); } else { - filled.set(107); + filled.set(109); } if (b >= 4294967296L) { @@ -4511,10 +4717,10 @@ public Trace pScenarioPrcRac(final long b) { } public Trace pScenarioPrcRao(final long b) { - if (filled.get(108)) { + if (filled.get(110)) { throw new IllegalStateException("hub.scenario/PRC_RAO already set"); } else { - filled.set(108); + filled.set(110); } if (b >= 4294967296L) { @@ -4532,10 +4738,10 @@ public Trace pScenarioPrcRao(final long b) { } public Trace pScenarioPrcReturnGas(final long b) { - if (filled.get(109)) { + if (filled.get(111)) { throw new IllegalStateException("hub.scenario/PRC_RETURN_GAS already set"); } else { - filled.set(109); + filled.set(111); } if (b >= 4294967296L) { @@ -4747,8 +4953,8 @@ public Trace pStackAccFlag(final Boolean b) { filled.set(45); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); return this; } @@ -4760,8 +4966,8 @@ public Trace pStackAddFlag(final Boolean b) { filled.set(46); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); return this; } @@ -4785,7 +4991,7 @@ public Trace pStackBinFlag(final Boolean b) { filled.set(47); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 .put((byte) (b ? 1 : 0)); return this; @@ -4798,7 +5004,7 @@ public Trace pStackBtcFlag(final Boolean b) { filled.set(48); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .put((byte) (b ? 1 : 0)); return this; @@ -4811,7 +5017,7 @@ public Trace pStackCallFlag(final Boolean b) { filled.set(49); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( (byte) (b ? 1 : 0)); return this; @@ -4824,7 +5030,7 @@ public Trace pStackConFlag(final Boolean b) { filled.set(50); } - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.put((byte) (b ? 1 : 0)); return this; } @@ -4836,7 +5042,7 @@ public Trace pStackCopyFlag(final Boolean b) { filled.set(51); } - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.put( + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.put( (byte) (b ? 1 : 0)); return this; @@ -4849,7 +5055,7 @@ public Trace pStackCreateFlag(final Boolean b) { filled.set(52); } - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero.put( + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.put( (byte) (b ? 1 : 0)); return this; @@ -4862,8 +5068,8 @@ public Trace pStackDecFlag1(final Boolean b) { filled.set(53); } - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .put((byte) (b ? 1 : 0)); + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn.put( + (byte) (b ? 1 : 0)); return this; } @@ -4875,7 +5081,7 @@ public Trace pStackDecFlag2(final Boolean b) { filled.set(54); } - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges .put((byte) (b ? 1 : 0)); return this; @@ -4888,7 +5094,7 @@ public Trace pStackDecFlag3(final Boolean b) { filled.set(55); } - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.put( + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.put( (byte) (b ? 1 : 0)); return this; @@ -4901,7 +5107,8 @@ public Trace pStackDecFlag4(final Boolean b) { filled.set(56); } - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.put((byte) (b ? 1 : 0)); + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -4925,7 +5132,7 @@ public Trace pStackDupFlag(final Boolean b) { filled.set(57); } - trmFlagXorStpFlagXorCreateAbortXorDupFlag.put((byte) (b ? 1 : 0)); + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); return this; } @@ -4937,7 +5144,8 @@ public Trace pStackExtFlag(final Boolean b) { filled.set(58); } - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.put((byte) (b ? 1 : 0)); + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.put( + (byte) (b ? 1 : 0)); return this; } @@ -4949,7 +5157,8 @@ public Trace pStackHaltFlag(final Boolean b) { filled.set(59); } - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.put((byte) (b ? 1 : 0)); + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.put( + (byte) (b ? 1 : 0)); return this; } @@ -4961,16 +5170,16 @@ public Trace pStackHashInfoFlag(final Boolean b) { filled.set(60); } - createExceptionXorHashInfoFlag.put((byte) (b ? 1 : 0)); + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.put((byte) (b ? 1 : 0)); return this; } public Trace pStackHashInfoKeccakHi(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.stack/HASH_INFO_KECCAK_HI already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -4997,10 +5206,10 @@ public Trace pStackHashInfoKeccakHi(final Bytes b) { } public Trace pStackHashInfoKeccakLo(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.stack/HASH_INFO_KECCAK_LO already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -5033,16 +5242,16 @@ public Trace pStackIcpx(final Boolean b) { filled.set(61); } - createFailureConditionWillRevertXorIcpx.put((byte) (b ? 1 : 0)); + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.put((byte) (b ? 1 : 0)); return this; } public Trace pStackInstruction(final Bytes b) { - if (filled.get(165)) { + if (filled.get(167)) { throw new IllegalStateException("hub.stack/INSTRUCTION already set"); } else { - filled.set(165); + filled.set(167); } // Trim array to size @@ -5071,7 +5280,8 @@ public Trace pStackInvalidFlag(final Boolean b) { filled.set(62); } - createFailureConditionWontRevertXorInvalidFlag.put((byte) (b ? 1 : 0)); + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew.put( + (byte) (b ? 1 : 0)); return this; } @@ -5083,7 +5293,7 @@ public Trace pStackJumpDestinationVettingRequired(final Boolean b) { filled.set(64); } - createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.put( + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.put( (byte) (b ? 1 : 0)); return this; @@ -5096,7 +5306,7 @@ public Trace pStackJumpFlag(final Boolean b) { filled.set(65); } - createNonemptyInitCodeSuccessWillRevertXorJumpFlag.put((byte) (b ? 1 : 0)); + romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag.put((byte) (b ? 1 : 0)); return this; } @@ -5108,7 +5318,8 @@ public Trace pStackJumpx(final Boolean b) { filled.set(63); } - createNonemptyInitCodeFailureWillRevertXorJumpx.put((byte) (b ? 1 : 0)); + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx.put( + (byte) (b ? 1 : 0)); return this; } @@ -5120,7 +5331,7 @@ public Trace pStackKecFlag(final Boolean b) { filled.set(66); } - createNonemptyInitCodeSuccessWontRevertXorKecFlag.put((byte) (b ? 1 : 0)); + trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag.put((byte) (b ? 1 : 0)); return this; } @@ -5132,7 +5343,7 @@ public Trace pStackLogFlag(final Boolean b) { filled.set(67); } - prcBlake2FXorLogFlag.put((byte) (b ? 1 : 0)); + warmthXorPrcBlake2FXorLogFlag.put((byte) (b ? 1 : 0)); return this; } @@ -5144,7 +5355,7 @@ public Trace pStackLogInfoFlag(final Boolean b) { filled.set(68); } - prcEcaddXorLogInfoFlag.put((byte) (b ? 1 : 0)); + warmthNewXorPrcEcaddXorLogInfoFlag.put((byte) (b ? 1 : 0)); return this; } @@ -5270,10 +5481,10 @@ public Trace pStackOpcx(final Boolean b) { } public Trace pStackPushValueHi(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.stack/PUSH_VALUE_HI already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -5300,10 +5511,10 @@ public Trace pStackPushValueHi(final Bytes b) { } public Trace pStackPushValueLo(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.stack/PUSH_VALUE_LO already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -5501,10 +5712,10 @@ public Trace pStackStackItemPop4(final Boolean b) { } public Trace pStackStackItemStamp1(final long b) { - if (filled.get(119)) { + if (filled.get(121)) { throw new IllegalStateException("hub.stack/STACK_ITEM_STAMP_1 already set"); } else { - filled.set(119); + filled.set(121); } if (b >= 68719476736L) { @@ -5520,10 +5731,10 @@ public Trace pStackStackItemStamp1(final long b) { } public Trace pStackStackItemStamp2(final long b) { - if (filled.get(120)) { + if (filled.get(122)) { throw new IllegalStateException("hub.stack/STACK_ITEM_STAMP_2 already set"); } else { - filled.set(120); + filled.set(122); } if (b >= 68719476736L) { @@ -5539,10 +5750,10 @@ public Trace pStackStackItemStamp2(final long b) { } public Trace pStackStackItemStamp3(final long b) { - if (filled.get(121)) { + if (filled.get(123)) { throw new IllegalStateException("hub.stack/STACK_ITEM_STAMP_3 already set"); } else { - filled.set(121); + filled.set(123); } if (b >= 68719476736L) { @@ -5558,10 +5769,10 @@ public Trace pStackStackItemStamp3(final long b) { } public Trace pStackStackItemStamp4(final long b) { - if (filled.get(122)) { + if (filled.get(124)) { throw new IllegalStateException("hub.stack/STACK_ITEM_STAMP_4 already set"); } else { - filled.set(122); + filled.set(124); } if (b >= 68719476736L) { @@ -5577,10 +5788,10 @@ public Trace pStackStackItemStamp4(final long b) { } public Trace pStackStackItemValueHi1(final Bytes b) { - if (filled.get(136)) { + if (filled.get(138)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_HI_1 already set"); } else { - filled.set(136); + filled.set(138); } // Trim array to size @@ -5605,10 +5816,10 @@ public Trace pStackStackItemValueHi1(final Bytes b) { } public Trace pStackStackItemValueHi2(final Bytes b) { - if (filled.get(137)) { + if (filled.get(139)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_HI_2 already set"); } else { - filled.set(137); + filled.set(139); } // Trim array to size @@ -5633,10 +5844,10 @@ public Trace pStackStackItemValueHi2(final Bytes b) { } public Trace pStackStackItemValueHi3(final Bytes b) { - if (filled.get(138)) { + if (filled.get(140)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_HI_3 already set"); } else { - filled.set(138); + filled.set(140); } // Trim array to size @@ -5661,10 +5872,10 @@ public Trace pStackStackItemValueHi3(final Bytes b) { } public Trace pStackStackItemValueHi4(final Bytes b) { - if (filled.get(139)) { + if (filled.get(141)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_HI_4 already set"); } else { - filled.set(139); + filled.set(141); } // Trim array to size @@ -5689,10 +5900,10 @@ public Trace pStackStackItemValueHi4(final Bytes b) { } public Trace pStackStackItemValueLo1(final Bytes b) { - if (filled.get(140)) { + if (filled.get(142)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_LO_1 already set"); } else { - filled.set(140); + filled.set(142); } // Trim array to size @@ -5717,10 +5928,10 @@ public Trace pStackStackItemValueLo1(final Bytes b) { } public Trace pStackStackItemValueLo2(final Bytes b) { - if (filled.get(141)) { + if (filled.get(143)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_LO_2 already set"); } else { - filled.set(141); + filled.set(143); } // Trim array to size @@ -5745,10 +5956,10 @@ public Trace pStackStackItemValueLo2(final Bytes b) { } public Trace pStackStackItemValueLo3(final Bytes b) { - if (filled.get(142)) { + if (filled.get(144)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_LO_3 already set"); } else { - filled.set(142); + filled.set(144); } // Trim array to size @@ -5773,10 +5984,10 @@ public Trace pStackStackItemValueLo3(final Bytes b) { } public Trace pStackStackItemValueLo4(final Bytes b) { - if (filled.get(143)) { + if (filled.get(145)) { throw new IllegalStateException("hub.stack/STACK_ITEM_VALUE_LO_4 already set"); } else { - filled.set(143); + filled.set(145); } // Trim array to size @@ -5825,10 +6036,10 @@ public Trace pStackStaticFlag(final Boolean b) { } public Trace pStackStaticGas(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.stack/STATIC_GAS already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -5922,10 +6133,10 @@ public Trace pStackWcpFlag(final Boolean b) { } public Trace pStorageAddressHi(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.storage/ADDRESS_HI already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -5947,10 +6158,10 @@ public Trace pStorageAddressHi(final long b) { } public Trace pStorageAddressLo(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.storage/ADDRESS_LO already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -5976,11 +6187,50 @@ public Trace pStorageAddressLo(final Bytes b) { return this; } + public Trace pStorageAgainInBlk(final Boolean b) { + if (filled.get(45)) { + throw new IllegalStateException("hub.storage/AGAIN_IN_BLK already set"); + } else { + filled.set(45); + } + + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageAgainInCnf(final Boolean b) { + if (filled.get(46)) { + throw new IllegalStateException("hub.storage/AGAIN_IN_CNF already set"); + } else { + filled.set(46); + } + + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageAgainInTxn(final Boolean b) { + if (filled.get(47)) { + throw new IllegalStateException("hub.storage/AGAIN_IN_TXN already set"); + } else { + filled.set(47); + } + + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 + .put((byte) (b ? 1 : 0)); + + return this; + } + public Trace pStorageDeploymentNumber(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.storage/DEPLOYMENT_NUMBER already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -6001,11 +6251,49 @@ public Trace pStorageDeploymentNumber(final long b) { return this; } + public Trace pStorageDeploymentNumberFinalInBlock(final long b) { + if (filled.get(103)) { + throw new IllegalStateException("hub.storage/DEPLOYMENT_NUMBER_FINAL_IN_BLOCK already set"); + } else { + filled.set(103); + } + + if (b >= 65536L) { + throw new IllegalArgumentException( + "deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock has invalid value (" + + b + + ")"); + } + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.put((byte) (b >> 8)); + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.put((byte) b); + + return this; + } + + public Trace pStorageDeploymentNumberFirstInBlock(final long b) { + if (filled.get(104)) { + throw new IllegalStateException("hub.storage/DEPLOYMENT_NUMBER_FIRST_IN_BLOCK already set"); + } else { + filled.set(104); + } + + if (b >= 65536L) { + throw new IllegalArgumentException( + "deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock has invalid value (" + + b + + ")"); + } + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.put((byte) (b >> 8)); + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.put((byte) b); + + return this; + } + public Trace pStorageDeploymentNumberInfty(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.storage/DEPLOYMENT_NUMBER_INFTY already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -6026,11 +6314,88 @@ public Trace pStorageDeploymentNumberInfty(final long b) { return this; } + public Trace pStorageFinalInBlk(final Boolean b) { + if (filled.get(48)) { + throw new IllegalStateException("hub.storage/FINAL_IN_BLK already set"); + } else { + filled.set(48); + } + + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution + .put((byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageFinalInCnf(final Boolean b) { + if (filled.get(49)) { + throw new IllegalStateException("hub.storage/FINAL_IN_CNF already set"); + } else { + filled.set(49); + } + + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageFinalInTxn(final Boolean b) { + if (filled.get(50)) { + throw new IllegalStateException("hub.storage/FINAL_IN_TXN already set"); + } else { + filled.set(50); + } + + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.put((byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageFirstInBlk(final Boolean b) { + if (filled.get(51)) { + throw new IllegalStateException("hub.storage/FIRST_IN_BLK already set"); + } else { + filled.set(51); + } + + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageFirstInCnf(final Boolean b) { + if (filled.get(52)) { + throw new IllegalStateException("hub.storage/FIRST_IN_CNF already set"); + } else { + filled.set(52); + } + + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.put( + (byte) (b ? 1 : 0)); + + return this; + } + + public Trace pStorageFirstInTxn(final Boolean b) { + if (filled.get(53)) { + throw new IllegalStateException("hub.storage/FIRST_IN_TXN already set"); + } else { + filled.set(53); + } + + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn.put( + (byte) (b ? 1 : 0)); + + return this; + } + public Trace pStorageStorageKeyHi(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.storage/STORAGE_KEY_HI already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -6057,10 +6422,10 @@ public Trace pStorageStorageKeyHi(final Bytes b) { } public Trace pStorageStorageKeyLo(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.storage/STORAGE_KEY_LO already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -6086,50 +6451,24 @@ public Trace pStorageStorageKeyLo(final Bytes b) { return this; } - public Trace pStorageUnconstrainedFinal(final Boolean b) { - if (filled.get(45)) { - throw new IllegalStateException("hub.storage/UNCONSTRAINED_FINAL already set"); - } else { - filled.set(45); - } - - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); - - return this; - } - - public Trace pStorageUnconstrainedFirst(final Boolean b) { - if (filled.get(46)) { - throw new IllegalStateException("hub.storage/UNCONSTRAINED_FIRST already set"); - } else { - filled.set(46); - } - - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); - - return this; - } - public Trace pStorageValueCurrChanges(final Boolean b) { - if (filled.get(47)) { + if (filled.get(54)) { throw new IllegalStateException("hub.storage/VALUE_CURR_CHANGES already set"); } else { - filled.set(47); + filled.set(54); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges .put((byte) (b ? 1 : 0)); return this; } public Trace pStorageValueCurrHi(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.storage/VALUE_CURR_HI already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -6154,36 +6493,36 @@ public Trace pStorageValueCurrHi(final Bytes b) { } public Trace pStorageValueCurrIsOrig(final Boolean b) { - if (filled.get(48)) { + if (filled.get(55)) { throw new IllegalStateException("hub.storage/VALUE_CURR_IS_ORIG already set"); } else { - filled.set(48); + filled.set(55); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution - .put((byte) (b ? 1 : 0)); + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.put( + (byte) (b ? 1 : 0)); return this; } public Trace pStorageValueCurrIsZero(final Boolean b) { - if (filled.get(49)) { + if (filled.get(56)) { throw new IllegalStateException("hub.storage/VALUE_CURR_IS_ZERO already set"); } else { - filled.set(49); + filled.set(56); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.put( (byte) (b ? 1 : 0)); return this; } public Trace pStorageValueCurrLo(final Bytes b) { - if (filled.get(136)) { + if (filled.get(138)) { throw new IllegalStateException("hub.storage/VALUE_CURR_LO already set"); } else { - filled.set(136); + filled.set(138); } // Trim array to size @@ -6208,10 +6547,10 @@ public Trace pStorageValueCurrLo(final Bytes b) { } public Trace pStorageValueNextHi(final Bytes b) { - if (filled.get(137)) { + if (filled.get(139)) { throw new IllegalStateException("hub.storage/VALUE_NEXT_HI already set"); } else { - filled.set(137); + filled.set(139); } // Trim array to size @@ -6236,48 +6575,48 @@ public Trace pStorageValueNextHi(final Bytes b) { } public Trace pStorageValueNextIsCurr(final Boolean b) { - if (filled.get(50)) { + if (filled.get(57)) { throw new IllegalStateException("hub.storage/VALUE_NEXT_IS_CURR already set"); } else { - filled.set(50); + filled.set(57); } - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.put((byte) (b ? 1 : 0)); return this; } public Trace pStorageValueNextIsOrig(final Boolean b) { - if (filled.get(51)) { + if (filled.get(58)) { throw new IllegalStateException("hub.storage/VALUE_NEXT_IS_ORIG already set"); } else { - filled.set(51); + filled.set(58); } - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.put( + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.put( (byte) (b ? 1 : 0)); return this; } public Trace pStorageValueNextIsZero(final Boolean b) { - if (filled.get(52)) { + if (filled.get(59)) { throw new IllegalStateException("hub.storage/VALUE_NEXT_IS_ZERO already set"); } else { - filled.set(52); + filled.set(59); } - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero.put( + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.put( (byte) (b ? 1 : 0)); return this; } public Trace pStorageValueNextLo(final Bytes b) { - if (filled.get(138)) { + if (filled.get(140)) { throw new IllegalStateException("hub.storage/VALUE_NEXT_LO already set"); } else { - filled.set(138); + filled.set(140); } // Trim array to size @@ -6302,10 +6641,10 @@ public Trace pStorageValueNextLo(final Bytes b) { } public Trace pStorageValueOrigHi(final Bytes b) { - if (filled.get(139)) { + if (filled.get(141)) { throw new IllegalStateException("hub.storage/VALUE_ORIG_HI already set"); } else { - filled.set(139); + filled.set(141); } // Trim array to size @@ -6330,23 +6669,22 @@ public Trace pStorageValueOrigHi(final Bytes b) { } public Trace pStorageValueOrigIsZero(final Boolean b) { - if (filled.get(53)) { + if (filled.get(60)) { throw new IllegalStateException("hub.storage/VALUE_ORIG_IS_ZERO already set"); } else { - filled.set(53); + filled.set(60); } - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .put((byte) (b ? 1 : 0)); + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.put((byte) (b ? 1 : 0)); return this; } public Trace pStorageValueOrigLo(final Bytes b) { - if (filled.get(140)) { + if (filled.get(142)) { throw new IllegalStateException("hub.storage/VALUE_ORIG_LO already set"); } else { - filled.set(140); + filled.set(142); } // Trim array to size @@ -6371,36 +6709,35 @@ public Trace pStorageValueOrigLo(final Bytes b) { } public Trace pStorageWarmth(final Boolean b) { - if (filled.get(54)) { + if (filled.get(61)) { throw new IllegalStateException("hub.storage/WARMTH already set"); } else { - filled.set(54); + filled.set(61); } - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth - .put((byte) (b ? 1 : 0)); + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.put((byte) (b ? 1 : 0)); return this; } public Trace pStorageWarmthNew(final Boolean b) { - if (filled.get(55)) { + if (filled.get(62)) { throw new IllegalStateException("hub.storage/WARMTH_NEW already set"); } else { - filled.set(55); + filled.set(62); } - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.put( + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew.put( (byte) (b ? 1 : 0)); return this; } public Trace pTransactionBasefee(final Bytes b) { - if (filled.get(123)) { + if (filled.get(125)) { throw new IllegalStateException("hub.transaction/BASEFEE already set"); } else { - filled.set(123); + filled.set(125); } // Trim array to size @@ -6423,10 +6760,10 @@ public Trace pTransactionBasefee(final Bytes b) { } public Trace pTransactionCallDataSize(final long b) { - if (filled.get(103)) { + if (filled.get(105)) { throw new IllegalStateException("hub.transaction/CALL_DATA_SIZE already set"); } else { - filled.set(103); + filled.set(105); } if (b >= 4294967296L) { @@ -6448,10 +6785,10 @@ public Trace pTransactionCallDataSize(final long b) { } public Trace pTransactionCoinbaseAddressHi(final long b) { - if (filled.get(104)) { + if (filled.get(106)) { throw new IllegalStateException("hub.transaction/COINBASE_ADDRESS_HI already set"); } else { - filled.set(104); + filled.set(106); } if (b >= 4294967296L) { @@ -6473,10 +6810,10 @@ public Trace pTransactionCoinbaseAddressHi(final long b) { } public Trace pTransactionCoinbaseAddressLo(final Bytes b) { - if (filled.get(132)) { + if (filled.get(134)) { throw new IllegalStateException("hub.transaction/COINBASE_ADDRESS_LO already set"); } else { - filled.set(132); + filled.set(134); } // Trim array to size @@ -6509,17 +6846,17 @@ public Trace pTransactionCopyTxcd(final Boolean b) { filled.set(45); } - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd - .put((byte) (b ? 1 : 0)); + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd.put( + (byte) (b ? 1 : 0)); return this; } public Trace pTransactionFromAddressHi(final long b) { - if (filled.get(105)) { + if (filled.get(107)) { throw new IllegalStateException("hub.transaction/FROM_ADDRESS_HI already set"); } else { - filled.set(105); + filled.set(107); } if (b >= 4294967296L) { @@ -6541,10 +6878,10 @@ public Trace pTransactionFromAddressHi(final long b) { } public Trace pTransactionFromAddressLo(final Bytes b) { - if (filled.get(133)) { + if (filled.get(135)) { throw new IllegalStateException("hub.transaction/FROM_ADDRESS_LO already set"); } else { - filled.set(133); + filled.set(135); } // Trim array to size @@ -6571,10 +6908,10 @@ public Trace pTransactionFromAddressLo(final Bytes b) { } public Trace pTransactionGasInitiallyAvailable(final Bytes b) { - if (filled.get(124)) { + if (filled.get(126)) { throw new IllegalStateException("hub.transaction/GAS_INITIALLY_AVAILABLE already set"); } else { - filled.set(124); + filled.set(126); } // Trim array to size @@ -6599,10 +6936,10 @@ public Trace pTransactionGasInitiallyAvailable(final Bytes b) { } public Trace pTransactionGasLeftover(final Bytes b) { - if (filled.get(125)) { + if (filled.get(127)) { throw new IllegalStateException("hub.transaction/GAS_LEFTOVER already set"); } else { - filled.set(125); + filled.set(127); } // Trim array to size @@ -6625,10 +6962,10 @@ public Trace pTransactionGasLeftover(final Bytes b) { } public Trace pTransactionGasLimit(final Bytes b) { - if (filled.get(126)) { + if (filled.get(128)) { throw new IllegalStateException("hub.transaction/GAS_LIMIT already set"); } else { - filled.set(126); + filled.set(128); } // Trim array to size @@ -6650,10 +6987,10 @@ public Trace pTransactionGasLimit(final Bytes b) { } public Trace pTransactionGasPrice(final Bytes b) { - if (filled.get(127)) { + if (filled.get(129)) { throw new IllegalStateException("hub.transaction/GAS_PRICE already set"); } else { - filled.set(127); + filled.set(129); } // Trim array to size @@ -6675,10 +7012,10 @@ public Trace pTransactionGasPrice(final Bytes b) { } public Trace pTransactionInitCodeSize(final long b) { - if (filled.get(106)) { + if (filled.get(108)) { throw new IllegalStateException("hub.transaction/INIT_CODE_SIZE already set"); } else { - filled.set(106); + filled.set(108); } if (b >= 4294967296L) { @@ -6699,10 +7036,10 @@ public Trace pTransactionInitCodeSize(final long b) { } public Trace pTransactionInitialBalance(final Bytes b) { - if (filled.get(134)) { + if (filled.get(136)) { throw new IllegalStateException("hub.transaction/INITIAL_BALANCE already set"); } else { - filled.set(134); + filled.set(136); } // Trim array to size @@ -6735,8 +7072,8 @@ public Trace pTransactionIsDeployment(final Boolean b) { filled.set(46); } - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment - .put((byte) (b ? 1 : 0)); + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment.put( + (byte) (b ? 1 : 0)); return this; } @@ -6748,17 +7085,17 @@ public Trace pTransactionIsType2(final Boolean b) { filled.set(47); } - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 .put((byte) (b ? 1 : 0)); return this; } public Trace pTransactionNonce(final Bytes b) { - if (filled.get(128)) { + if (filled.get(130)) { throw new IllegalStateException("hub.transaction/NONCE already set"); } else { - filled.set(128); + filled.set(130); } // Trim array to size @@ -6780,10 +7117,10 @@ public Trace pTransactionNonce(final Bytes b) { } public Trace pTransactionPriorityFeePerGas(final Bytes b) { - if (filled.get(129)) { + if (filled.get(131)) { throw new IllegalStateException("hub.transaction/PRIORITY_FEE_PER_GAS already set"); } else { - filled.set(129); + filled.set(131); } // Trim array to size @@ -6806,10 +7143,10 @@ public Trace pTransactionPriorityFeePerGas(final Bytes b) { } public Trace pTransactionRefundCounterInfinity(final Bytes b) { - if (filled.get(130)) { + if (filled.get(132)) { throw new IllegalStateException("hub.transaction/REFUND_COUNTER_INFINITY already set"); } else { - filled.set(130); + filled.set(132); } // Trim array to size @@ -6832,10 +7169,10 @@ public Trace pTransactionRefundCounterInfinity(final Bytes b) { } public Trace pTransactionRefundEffective(final Bytes b) { - if (filled.get(131)) { + if (filled.get(133)) { throw new IllegalStateException("hub.transaction/REFUND_EFFECTIVE already set"); } else { - filled.set(131); + filled.set(133); } // Trim array to size @@ -6864,7 +7201,7 @@ public Trace pTransactionRequiresEvmExecution(final Boolean b) { filled.set(48); } - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .put((byte) (b ? 1 : 0)); return this; @@ -6877,17 +7214,17 @@ public Trace pTransactionStatusCode(final Boolean b) { filled.set(49); } - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.put( + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode.put( (byte) (b ? 1 : 0)); return this; } public Trace pTransactionToAddressHi(final long b) { - if (filled.get(107)) { + if (filled.get(109)) { throw new IllegalStateException("hub.transaction/TO_ADDRESS_HI already set"); } else { - filled.set(107); + filled.set(109); } if (b >= 4294967296L) { @@ -6908,10 +7245,10 @@ public Trace pTransactionToAddressHi(final long b) { } public Trace pTransactionToAddressLo(final Bytes b) { - if (filled.get(135)) { + if (filled.get(137)) { throw new IllegalStateException("hub.transaction/TO_ADDRESS_LO already set"); } else { - filled.set(135); + filled.set(137); } // Trim array to size @@ -6936,10 +7273,10 @@ public Trace pTransactionToAddressLo(final Bytes b) { } public Trace pTransactionValue(final Bytes b) { - if (filled.get(136)) { + if (filled.get(138)) { throw new IllegalStateException("hub.transaction/VALUE already set"); } else { - filled.set(136); + filled.set(138); } // Trim array to size @@ -7230,35 +7567,50 @@ public Trace validateRow() { throw new IllegalStateException("hub.ABSOLUTE_TRANSACTION_NUMBER has not been filled"); } - if (!filled.get(103)) { + if (!filled.get(105)) { throw new IllegalStateException( "hub.ADDRESS_HI_xor_ACCOUNT_ADDRESS_HI_xor_CCRS_STAMP_xor_PRC_CALLEE_GAS_xor_STATIC_GAS_xor_ADDRESS_HI_xor_CALL_DATA_SIZE has not been filled"); } - if (!filled.get(132)) { + if (!filled.get(134)) { throw new IllegalStateException( "hub.ADDRESS_LO_xor_ACCOUNT_ADDRESS_LO_xor_EXP_DATA_1_xor_HASH_INFO_KECCAK_HI_xor_ADDRESS_LO_xor_COINBASE_ADDRESS_LO has not been filled"); } + if (!filled.get(45)) { + throw new IllegalStateException( + "hub.AGAIN_IN_BLK_xor_IS_ROOT_xor_CCSR_FLAG_xor_CALL_ABORT_WILL_REVERT_xor_ACC_FLAG_xor_AGAIN_IN_BLK_xor_COPY_TXCD has not been filled"); + } + + if (!filled.get(46)) { + throw new IllegalStateException( + "hub.AGAIN_IN_CNF_xor_IS_STATIC_xor_EXP_FLAG_xor_CALL_ABORT_WONT_REVERT_xor_ADD_FLAG_xor_AGAIN_IN_CNF_xor_IS_DEPLOYMENT has not been filled"); + } + + if (!filled.get(47)) { + throw new IllegalStateException( + "hub.AGAIN_IN_TXN_xor_UPDATE_xor_MMU_FLAG_xor_CALL_EOA_SUCCESS_CALLER_WILL_REVERT_xor_BIN_FLAG_xor_AGAIN_IN_TXN_xor_IS_TYPE2 has not been filled"); + } + if (!filled.get(94)) { throw new IllegalStateException("hub.ALPHA has not been filled"); } - if (!filled.get(134)) { + if (!filled.get(136)) { throw new IllegalStateException( "hub.BALANCE_NEW_xor_CALLER_ADDRESS_LO_xor_EXP_DATA_3_xor_PUSH_VALUE_HI_xor_STORAGE_KEY_LO_xor_INITIAL_BALANCE has not been filled"); } - if (!filled.get(133)) { + if (!filled.get(135)) { throw new IllegalStateException( "hub.BALANCE_xor_BYTE_CODE_ADDRESS_LO_xor_EXP_DATA_2_xor_HASH_INFO_KECCAK_LO_xor_STORAGE_KEY_HI_xor_FROM_ADDRESS_LO has not been filled"); } - if (!filled.get(111)) { + if (!filled.get(113)) { throw new IllegalStateException("hub.CALL_DATA_OFFSET_xor_MMU_SIZE has not been filled"); } - if (!filled.get(112)) { + if (!filled.get(114)) { throw new IllegalStateException("hub.CALL_DATA_SIZE_xor_MMU_SRC_ID has not been filled"); } @@ -7275,37 +7627,37 @@ public Trace validateRow() { throw new IllegalStateException("hub.CODE_FRAGMENT_INDEX has not been filled"); } - if (!filled.get(104)) { + if (!filled.get(106)) { throw new IllegalStateException( "hub.CODE_FRAGMENT_INDEX_xor_ACCOUNT_DEPLOYMENT_NUMBER_xor_EXP_INST_xor_PRC_CALLER_GAS_xor_DEPLOYMENT_NUMBER_xor_COINBASE_ADDRESS_HI has not been filled"); } - if (!filled.get(136)) { + if (!filled.get(138)) { throw new IllegalStateException( "hub.CODE_HASH_HI_NEW_xor_EXP_DATA_5_xor_STACK_ITEM_VALUE_HI_1_xor_VALUE_CURR_LO_xor_VALUE has not been filled"); } - if (!filled.get(135)) { + if (!filled.get(137)) { throw new IllegalStateException( "hub.CODE_HASH_HI_xor_CALL_VALUE_xor_EXP_DATA_4_xor_PUSH_VALUE_LO_xor_VALUE_CURR_HI_xor_TO_ADDRESS_LO has not been filled"); } - if (!filled.get(138)) { + if (!filled.get(140)) { throw new IllegalStateException( "hub.CODE_HASH_LO_NEW_xor_MMU_LIMB_2_xor_STACK_ITEM_VALUE_HI_3_xor_VALUE_NEXT_LO has not been filled"); } - if (!filled.get(137)) { + if (!filled.get(139)) { throw new IllegalStateException( "hub.CODE_HASH_LO_xor_MMU_LIMB_1_xor_STACK_ITEM_VALUE_HI_2_xor_VALUE_NEXT_HI has not been filled"); } - if (!filled.get(106)) { + if (!filled.get(108)) { throw new IllegalStateException( "hub.CODE_SIZE_NEW_xor_BYTE_CODE_CODE_FRAGMENT_INDEX_xor_MMU_EXO_SUM_xor_PRC_CDS_xor_INIT_CODE_SIZE has not been filled"); } - if (!filled.get(105)) { + if (!filled.get(107)) { throw new IllegalStateException( "hub.CODE_SIZE_xor_BYTE_CODE_ADDRESS_HI_xor_MMU_AUX_ID_xor_PRC_CDO_xor_DEPLOYMENT_NUMBER_INFTY_xor_FROM_ADDRESS_HI has not been filled"); } @@ -7326,7 +7678,7 @@ public Trace validateRow() { throw new IllegalStateException("hub.CONTEXT_NUMBER_NEW has not been filled"); } - if (!filled.get(113)) { + if (!filled.get(115)) { throw new IllegalStateException("hub.CONTEXT_NUMBER_xor_MMU_TGT_ID has not been filled"); } @@ -7350,91 +7702,96 @@ public Trace validateRow() { throw new IllegalStateException("hub.COUNTER_TLI has not been filled"); } - if (!filled.get(60)) { - throw new IllegalStateException( - "hub.CREATE_EXCEPTION_xor_HASH_INFO_FLAG has not been filled"); + if (!filled.get(95)) { + throw new IllegalStateException("hub.DELTA has not been filled"); } - if (!filled.get(61)) { + if (!filled.get(103)) { throw new IllegalStateException( - "hub.CREATE_FAILURE_CONDITION_WILL_REVERT_xor_ICPX has not been filled"); + "hub.DEPLOYMENT_NUMBER_FINAL_IN_BLOCK_xor_DEPLOYMENT_NUMBER_FINAL_IN_BLOCK has not been filled"); } - if (!filled.get(62)) { + if (!filled.get(104)) { throw new IllegalStateException( - "hub.CREATE_FAILURE_CONDITION_WONT_REVERT_xor_INVALID_FLAG has not been filled"); + "hub.DEPLOYMENT_NUMBER_FIRST_IN_BLOCK_xor_DEPLOYMENT_NUMBER_FIRST_IN_BLOCK has not been filled"); } - if (!filled.get(63)) { + if (!filled.get(110)) { throw new IllegalStateException( - "hub.CREATE_NONEMPTY_INIT_CODE_FAILURE_WILL_REVERT_xor_JUMPX has not been filled"); + "hub.DEPLOYMENT_NUMBER_INFTY_xor_BYTE_CODE_DEPLOYMENT_STATUS_xor_MMU_PHASE_xor_PRC_RAO has not been filled"); } - if (!filled.get(64)) { + if (!filled.get(111)) { throw new IllegalStateException( - "hub.CREATE_NONEMPTY_INIT_CODE_FAILURE_WONT_REVERT_xor_JUMP_DESTINATION_VETTING_REQUIRED has not been filled"); + "hub.DEPLOYMENT_NUMBER_NEW_xor_CALLER_ADDRESS_HI_xor_MMU_REF_OFFSET_xor_PRC_RETURN_GAS has not been filled"); } - if (!filled.get(65)) { + if (!filled.get(109)) { throw new IllegalStateException( - "hub.CREATE_NONEMPTY_INIT_CODE_SUCCESS_WILL_REVERT_xor_JUMP_FLAG has not been filled"); + "hub.DEPLOYMENT_NUMBER_xor_BYTE_CODE_DEPLOYMENT_NUMBER_xor_MMU_INST_xor_PRC_RAC_xor_TO_ADDRESS_HI has not been filled"); } - if (!filled.get(66)) { + if (!filled.get(49)) { throw new IllegalStateException( - "hub.CREATE_NONEMPTY_INIT_CODE_SUCCESS_WONT_REVERT_xor_KEC_FLAG has not been filled"); + "hub.DEPLOYMENT_STATUS_INFTY_xor_MXP_DEPLOYS_xor_CALL_EXCEPTION_xor_CALL_FLAG_xor_FINAL_IN_CNF_xor_STATUS_CODE has not been filled"); } - if (!filled.get(95)) { - throw new IllegalStateException("hub.DELTA has not been filled"); + if (!filled.get(50)) { + throw new IllegalStateException( + "hub.DEPLOYMENT_STATUS_NEW_xor_MXP_FLAG_xor_CALL_PRC_FAILURE_xor_CON_FLAG_xor_FINAL_IN_TXN has not been filled"); } - if (!filled.get(108)) { + if (!filled.get(48)) { throw new IllegalStateException( - "hub.DEPLOYMENT_NUMBER_INFTY_xor_BYTE_CODE_DEPLOYMENT_STATUS_xor_MMU_PHASE_xor_PRC_RAO has not been filled"); + "hub.DEPLOYMENT_STATUS_xor_MMU_SUCCESS_BIT_xor_CALL_EOA_SUCCESS_CALLER_WONT_REVERT_xor_BTC_FLAG_xor_FINAL_IN_BLK_xor_REQUIRES_EVM_EXECUTION has not been filled"); } - if (!filled.get(109)) { - throw new IllegalStateException( - "hub.DEPLOYMENT_NUMBER_NEW_xor_CALLER_ADDRESS_HI_xor_MMU_REF_OFFSET_xor_PRC_RETURN_GAS has not been filled"); + if (!filled.get(12)) { + throw new IllegalStateException("hub.DOM_STAMP has not been filled"); } - if (!filled.get(107)) { + if (!filled.get(13)) { + throw new IllegalStateException("hub.EXCEPTION_AHOY has not been filled"); + } + + if (!filled.get(52)) { throw new IllegalStateException( - "hub.DEPLOYMENT_NUMBER_xor_BYTE_CODE_DEPLOYMENT_NUMBER_xor_MMU_INST_xor_PRC_RAC_xor_TO_ADDRESS_HI has not been filled"); + "hub.EXISTS_NEW_xor_MXP_MXPX_xor_CALL_PRC_SUCCESS_CALLER_WONT_REVERT_xor_CREATE_FLAG_xor_FIRST_IN_CNF has not been filled"); } - if (!filled.get(46)) { + if (!filled.get(51)) { throw new IllegalStateException( - "hub.DEPLOYMENT_STATUS_INFTY_xor_IS_STATIC_xor_EXP_FLAG_xor_CALL_ABORT_WONT_REVERT_xor_ADD_FLAG_xor_UNCONSTRAINED_FIRST_xor_IS_DEPLOYMENT has not been filled"); + "hub.EXISTS_xor_MXP_MTNTOP_xor_CALL_PRC_SUCCESS_CALLER_WILL_REVERT_xor_COPY_FLAG_xor_FIRST_IN_BLK has not been filled"); } - if (!filled.get(47)) { + if (!filled.get(53)) { throw new IllegalStateException( - "hub.DEPLOYMENT_STATUS_NEW_xor_UPDATE_xor_MMU_FLAG_xor_CALL_EOA_SUCCESS_CALLER_WILL_REVERT_xor_BIN_FLAG_xor_VALUE_CURR_CHANGES_xor_IS_TYPE2 has not been filled"); + "hub.FINAL_IN_BLK_xor_MXP_SIZE_1_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WILL_REVERT_xor_DEC_FLAG_1_xor_FIRST_IN_TXN has not been filled"); } - if (!filled.get(45)) { + if (!filled.get(54)) { throw new IllegalStateException( - "hub.DEPLOYMENT_STATUS_xor_IS_ROOT_xor_CCSR_FLAG_xor_CALL_ABORT_WILL_REVERT_xor_ACC_FLAG_xor_UNCONSTRAINED_FINAL_xor_COPY_TXCD has not been filled"); + "hub.FINAL_IN_CNF_xor_MXP_SIZE_2_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WONT_REVERT_xor_DEC_FLAG_2_xor_VALUE_CURR_CHANGES has not been filled"); } - if (!filled.get(12)) { - throw new IllegalStateException("hub.DOM_STAMP has not been filled"); + if (!filled.get(55)) { + throw new IllegalStateException( + "hub.FINAL_IN_TXN_xor_OOB_FLAG_xor_CALL_SMC_SUCCESS_CALLER_WILL_REVERT_xor_DEC_FLAG_3_xor_VALUE_CURR_IS_ORIG has not been filled"); } - if (!filled.get(13)) { - throw new IllegalStateException("hub.EXCEPTION_AHOY has not been filled"); + if (!filled.get(56)) { + throw new IllegalStateException( + "hub.FIRST_IN_BLK_xor_STP_EXISTS_xor_CALL_SMC_SUCCESS_CALLER_WONT_REVERT_xor_DEC_FLAG_4_xor_VALUE_CURR_IS_ZERO has not been filled"); } - if (!filled.get(49)) { + if (!filled.get(57)) { throw new IllegalStateException( - "hub.EXISTS_NEW_xor_MXP_DEPLOYS_xor_CALL_EXCEPTION_xor_CALL_FLAG_xor_VALUE_CURR_IS_ZERO_xor_STATUS_CODE has not been filled"); + "hub.FIRST_IN_CNF_xor_STP_FLAG_xor_CREATE_ABORT_xor_DUP_FLAG_xor_VALUE_NEXT_IS_CURR has not been filled"); } - if (!filled.get(48)) { + if (!filled.get(58)) { throw new IllegalStateException( - "hub.EXISTS_xor_MMU_SUCCESS_BIT_xor_CALL_EOA_SUCCESS_CALLER_WONT_REVERT_xor_BTC_FLAG_xor_VALUE_CURR_IS_ORIG_xor_REQUIRES_EVM_EXECUTION has not been filled"); + "hub.FIRST_IN_TXN_xor_STP_OOGX_xor_CREATE_EMPTY_INIT_CODE_WILL_REVERT_xor_EXT_FLAG_xor_VALUE_NEXT_IS_ORIG has not been filled"); } if (!filled.get(14)) { @@ -7449,7 +7806,7 @@ public Trace validateRow() { throw new IllegalStateException("hub.GAS_EXPECTED has not been filled"); } - if (!filled.get(126)) { + if (!filled.get(128)) { throw new IllegalStateException("hub.GAS_LIMIT has not been filled"); } @@ -7457,18 +7814,18 @@ public Trace validateRow() { throw new IllegalStateException("hub.GAS_NEXT has not been filled"); } - if (!filled.get(127)) { + if (!filled.get(129)) { throw new IllegalStateException("hub.GAS_PRICE has not been filled"); } - if (!filled.get(51)) { + if (!filled.get(60)) { throw new IllegalStateException( - "hub.HAS_CODE_NEW_xor_MXP_MTNTOP_xor_CALL_PRC_SUCCESS_CALLER_WILL_REVERT_xor_COPY_FLAG_xor_VALUE_NEXT_IS_ORIG has not been filled"); + "hub.HAS_CODE_NEW_xor_CREATE_EXCEPTION_xor_HASH_INFO_FLAG_xor_VALUE_ORIG_IS_ZERO has not been filled"); } - if (!filled.get(50)) { + if (!filled.get(59)) { throw new IllegalStateException( - "hub.HAS_CODE_xor_MXP_FLAG_xor_CALL_PRC_FAILURE_xor_CON_FLAG_xor_VALUE_NEXT_IS_CURR has not been filled"); + "hub.HAS_CODE_xor_STP_WARMTH_xor_CREATE_EMPTY_INIT_CODE_WONT_REVERT_xor_HALT_FLAG_xor_VALUE_NEXT_IS_ZERO has not been filled"); } if (!filled.get(18)) { @@ -7487,54 +7844,54 @@ public Trace validateRow() { throw new IllegalStateException("hub.HUB_STAMP_TRANSACTION_END has not been filled"); } - if (!filled.get(165)) { + if (!filled.get(167)) { throw new IllegalStateException("hub.INSTRUCTION has not been filled"); } - if (!filled.get(52)) { + if (!filled.get(61)) { throw new IllegalStateException( - "hub.IS_PRECOMPILE_xor_MXP_MXPX_xor_CALL_PRC_SUCCESS_CALLER_WONT_REVERT_xor_CREATE_FLAG_xor_VALUE_NEXT_IS_ZERO has not been filled"); + "hub.IS_PRECOMPILE_xor_CREATE_FAILURE_CONDITION_WILL_REVERT_xor_ICPX_xor_WARMTH has not been filled"); } if (!filled.get(22)) { throw new IllegalStateException("hub.LOG_INFO_STAMP has not been filled"); } - if (!filled.get(54)) { + if (!filled.get(63)) { throw new IllegalStateException( - "hub.MARKED_FOR_SELFDESTRUCT_NEW_xor_MXP_SIZE_2_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WONT_REVERT_xor_DEC_FLAG_2_xor_WARMTH has not been filled"); + "hub.MARKED_FOR_SELFDESTRUCT_NEW_xor_CREATE_NONEMPTY_INIT_CODE_FAILURE_WILL_REVERT_xor_JUMPX has not been filled"); } - if (!filled.get(53)) { + if (!filled.get(62)) { throw new IllegalStateException( - "hub.MARKED_FOR_SELFDESTRUCT_xor_MXP_SIZE_1_NONZERO_NO_MXPX_xor_CALL_SMC_FAILURE_CALLER_WILL_REVERT_xor_DEC_FLAG_1_xor_VALUE_ORIG_IS_ZERO has not been filled"); + "hub.MARKED_FOR_SELFDESTRUCT_xor_CREATE_FAILURE_CONDITION_WONT_REVERT_xor_INVALID_FLAG_xor_WARMTH_NEW has not been filled"); } if (!filled.get(23)) { throw new IllegalStateException("hub.MMU_STAMP has not been filled"); } - if (!filled.get(145)) { + if (!filled.get(147)) { throw new IllegalStateException("hub.MXP_OFFSET_2_HI has not been filled"); } - if (!filled.get(146)) { + if (!filled.get(148)) { throw new IllegalStateException("hub.MXP_OFFSET_2_LO has not been filled"); } - if (!filled.get(147)) { + if (!filled.get(149)) { throw new IllegalStateException("hub.MXP_SIZE_1_HI has not been filled"); } - if (!filled.get(148)) { + if (!filled.get(150)) { throw new IllegalStateException("hub.MXP_SIZE_1_LO has not been filled"); } - if (!filled.get(149)) { + if (!filled.get(151)) { throw new IllegalStateException("hub.MXP_SIZE_2_HI has not been filled"); } - if (!filled.get(150)) { + if (!filled.get(152)) { throw new IllegalStateException("hub.MXP_SIZE_2_LO has not been filled"); } @@ -7542,7 +7899,7 @@ public Trace validateRow() { throw new IllegalStateException("hub.MXP_STAMP has not been filled"); } - if (!filled.get(151)) { + if (!filled.get(153)) { throw new IllegalStateException("hub.MXP_WORDS has not been filled"); } @@ -7558,52 +7915,52 @@ public Trace validateRow() { throw new IllegalStateException("hub.NON_STACK_ROWS has not been filled"); } - if (!filled.get(128)) { + if (!filled.get(130)) { throw new IllegalStateException("hub.NONCE has not been filled"); } - if (!filled.get(124)) { + if (!filled.get(126)) { throw new IllegalStateException( "hub.NONCE_NEW_xor_STP_GAS_PAID_OUT_OF_POCKET_xor_GAS_INITIALLY_AVAILABLE has not been filled"); } - if (!filled.get(123)) { + if (!filled.get(125)) { throw new IllegalStateException("hub.NONCE_xor_STP_GAS_MXP_xor_BASEFEE has not been filled"); } - if (!filled.get(152)) { + if (!filled.get(154)) { throw new IllegalStateException("hub.OOB_DATA_1 has not been filled"); } - if (!filled.get(153)) { + if (!filled.get(155)) { throw new IllegalStateException("hub.OOB_DATA_2 has not been filled"); } - if (!filled.get(154)) { + if (!filled.get(156)) { throw new IllegalStateException("hub.OOB_DATA_3 has not been filled"); } - if (!filled.get(155)) { + if (!filled.get(157)) { throw new IllegalStateException("hub.OOB_DATA_4 has not been filled"); } - if (!filled.get(156)) { + if (!filled.get(158)) { throw new IllegalStateException("hub.OOB_DATA_5 has not been filled"); } - if (!filled.get(157)) { + if (!filled.get(159)) { throw new IllegalStateException("hub.OOB_DATA_6 has not been filled"); } - if (!filled.get(158)) { + if (!filled.get(160)) { throw new IllegalStateException("hub.OOB_DATA_7 has not been filled"); } - if (!filled.get(159)) { + if (!filled.get(161)) { throw new IllegalStateException("hub.OOB_DATA_8 has not been filled"); } - if (!filled.get(160)) { + if (!filled.get(162)) { throw new IllegalStateException("hub.OOB_DATA_9 has not been filled"); } @@ -7635,14 +7992,6 @@ public Trace validateRow() { throw new IllegalStateException("hub.PEEK_AT_TRANSACTION has not been filled"); } - if (!filled.get(67)) { - throw new IllegalStateException("hub.PRC_BLAKE2f_xor_LOG_FLAG has not been filled"); - } - - if (!filled.get(68)) { - throw new IllegalStateException("hub.PRC_ECADD_xor_LOG_INFO_FLAG has not been filled"); - } - if (!filled.get(69)) { throw new IllegalStateException("hub.PRC_ECMUL_xor_MACHINE_STATE_FLAG has not been filled"); } @@ -7690,7 +8039,7 @@ public Trace validateRow() { "hub.PRC_SUCCESS_CALLER_WONT_REVERT_xor_SHF_FLAG has not been filled"); } - if (!filled.get(129)) { + if (!filled.get(131)) { throw new IllegalStateException("hub.PRIORITY_FEE_PER_GAS has not been filled"); } @@ -7706,7 +8055,7 @@ public Trace validateRow() { throw new IllegalStateException("hub.REFUND_COUNTER has not been filled"); } - if (!filled.get(130)) { + if (!filled.get(132)) { throw new IllegalStateException("hub.REFUND_COUNTER_INFINITY has not been filled"); } @@ -7714,7 +8063,7 @@ public Trace validateRow() { throw new IllegalStateException("hub.REFUND_COUNTER_NEW has not been filled"); } - if (!filled.get(131)) { + if (!filled.get(133)) { throw new IllegalStateException("hub.REFUND_EFFECTIVE has not been filled"); } @@ -7722,25 +8071,25 @@ public Trace validateRow() { throw new IllegalStateException("hub.RELATIVE_BLOCK_NUMBER has not been filled"); } - if (!filled.get(114)) { + if (!filled.get(116)) { throw new IllegalStateException("hub.RETURN_AT_CAPACITY_xor_MXP_INST has not been filled"); } - if (!filled.get(115)) { + if (!filled.get(117)) { throw new IllegalStateException("hub.RETURN_AT_OFFSET_xor_OOB_INST has not been filled"); } - if (!filled.get(116)) { + if (!filled.get(118)) { throw new IllegalStateException( "hub.RETURN_DATA_CONTEXT_NUMBER_xor_STP_GAS_STIPEND has not been filled"); } - if (!filled.get(117)) { + if (!filled.get(119)) { throw new IllegalStateException( "hub.RETURN_DATA_OFFSET_xor_STP_INSTRUCTION has not been filled"); } - if (!filled.get(118)) { + if (!filled.get(120)) { throw new IllegalStateException("hub.RETURN_DATA_SIZE has not been filled"); } @@ -7778,27 +8127,27 @@ public Trace validateRow() { "hub.RETURN_FROM_MESSAGE_CALL_WONT_TOUCH_RAM_xor_STACK_ITEM_POP_4 has not been filled"); } - if (!filled.get(110)) { + if (!filled.get(112)) { throw new IllegalStateException( "hub.RLPADDR_DEP_ADDR_HI_xor_CALL_DATA_CONTEXT_NUMBER_xor_MMU_REF_SIZE has not been filled"); } - if (!filled.get(139)) { + if (!filled.get(141)) { throw new IllegalStateException( "hub.RLPADDR_DEP_ADDR_LO_xor_MMU_SRC_OFFSET_HI_xor_STACK_ITEM_VALUE_HI_4_xor_VALUE_ORIG_HI has not been filled"); } - if (!filled.get(55)) { + if (!filled.get(64)) { throw new IllegalStateException( - "hub.RLPADDR_FLAG_xor_OOB_FLAG_xor_CALL_SMC_SUCCESS_CALLER_WILL_REVERT_xor_DEC_FLAG_3_xor_WARMTH_NEW has not been filled"); + "hub.RLPADDR_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_FAILURE_WONT_REVERT_xor_JUMP_DESTINATION_VETTING_REQUIRED has not been filled"); } - if (!filled.get(140)) { + if (!filled.get(142)) { throw new IllegalStateException( "hub.RLPADDR_KEC_HI_xor_MMU_SRC_OFFSET_LO_xor_STACK_ITEM_VALUE_LO_1_xor_VALUE_ORIG_LO has not been filled"); } - if (!filled.get(141)) { + if (!filled.get(143)) { throw new IllegalStateException( "hub.RLPADDR_KEC_LO_xor_MMU_TGT_OFFSET_LO_xor_STACK_ITEM_VALUE_LO_2 has not been filled"); } @@ -7807,19 +8156,19 @@ public Trace validateRow() { throw new IllegalStateException("hub.RLPADDR_RECIPE has not been filled"); } - if (!filled.get(142)) { + if (!filled.get(144)) { throw new IllegalStateException( "hub.RLPADDR_SALT_HI_xor_MXP_GAS_MXP_xor_STACK_ITEM_VALUE_LO_3 has not been filled"); } - if (!filled.get(143)) { + if (!filled.get(145)) { throw new IllegalStateException( "hub.RLPADDR_SALT_LO_xor_MXP_OFFSET_1_HI_xor_STACK_ITEM_VALUE_LO_4 has not been filled"); } - if (!filled.get(56)) { + if (!filled.get(65)) { throw new IllegalStateException( - "hub.ROMLEX_FLAG_xor_STP_EXISTS_xor_CALL_SMC_SUCCESS_CALLER_WONT_REVERT_xor_DEC_FLAG_4 has not been filled"); + "hub.ROMLEX_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_SUCCESS_WILL_REVERT_xor_JUMP_FLAG has not been filled"); } if (!filled.get(87)) { @@ -7853,40 +8202,40 @@ public Trace validateRow() { throw new IllegalStateException("hub.STACK_ITEM_HEIGHT_4 has not been filled"); } - if (!filled.get(119)) { + if (!filled.get(121)) { throw new IllegalStateException("hub.STACK_ITEM_STAMP_1 has not been filled"); } - if (!filled.get(120)) { + if (!filled.get(122)) { throw new IllegalStateException("hub.STACK_ITEM_STAMP_2 has not been filled"); } - if (!filled.get(121)) { + if (!filled.get(123)) { throw new IllegalStateException("hub.STACK_ITEM_STAMP_3 has not been filled"); } - if (!filled.get(122)) { + if (!filled.get(124)) { throw new IllegalStateException("hub.STACK_ITEM_STAMP_4 has not been filled"); } - if (!filled.get(161)) { + if (!filled.get(163)) { throw new IllegalStateException("hub.STP_GAS_HI has not been filled"); } - if (!filled.get(162)) { + if (!filled.get(164)) { throw new IllegalStateException("hub.STP_GAS_LO has not been filled"); } - if (!filled.get(125)) { + if (!filled.get(127)) { throw new IllegalStateException( "hub.STP_GAS_UPFRONT_GAS_COST_xor_GAS_LEFTOVER has not been filled"); } - if (!filled.get(163)) { + if (!filled.get(165)) { throw new IllegalStateException("hub.STP_VALUE_HI has not been filled"); } - if (!filled.get(164)) { + if (!filled.get(166)) { throw new IllegalStateException("hub.STP_VALUE_LO has not been filled"); } @@ -7898,12 +8247,12 @@ public Trace validateRow() { throw new IllegalStateException("hub.SWAP_FLAG has not been filled"); } - if (!filled.get(57)) { + if (!filled.get(66)) { throw new IllegalStateException( - "hub.TRM_FLAG_xor_STP_FLAG_xor_CREATE_ABORT_xor_DUP_FLAG has not been filled"); + "hub.TRM_FLAG_xor_CREATE_NONEMPTY_INIT_CODE_SUCCESS_WONT_REVERT_xor_KEC_FLAG has not been filled"); } - if (!filled.get(144)) { + if (!filled.get(146)) { throw new IllegalStateException( "hub.TRM_RAW_ADDRESS_HI_xor_MXP_OFFSET_1_LO has not been filled"); } @@ -7936,14 +8285,14 @@ public Trace validateRow() { throw new IllegalStateException("hub.TXN_FLAG has not been filled"); } - if (!filled.get(59)) { + if (!filled.get(68)) { throw new IllegalStateException( - "hub.WARMTH_NEW_xor_STP_WARMTH_xor_CREATE_EMPTY_INIT_CODE_WONT_REVERT_xor_HALT_FLAG has not been filled"); + "hub.WARMTH_NEW_xor_PRC_ECADD_xor_LOG_INFO_FLAG has not been filled"); } - if (!filled.get(58)) { + if (!filled.get(67)) { throw new IllegalStateException( - "hub.WARMTH_xor_STP_OOGX_xor_CREATE_EMPTY_INIT_CODE_WILL_REVERT_xor_EXT_FLAG has not been filled"); + "hub.WARMTH_xor_PRC_BLAKE2f_xor_LOG_FLAG has not been filled"); } if (!filled.get(93)) { @@ -7961,7 +8310,7 @@ public Trace fillAndValidateRow() { absoluteTransactionNumber.position(absoluteTransactionNumber.position() + 2); } - if (!filled.get(103)) { + if (!filled.get(105)) { addressHiXorAccountAddressHiXorCcrsStampXorPrcCalleeGasXorStaticGasXorAddressHiXorCallDataSize .position( addressHiXorAccountAddressHiXorCcrsStampXorPrcCalleeGasXorStaticGasXorAddressHiXorCallDataSize @@ -7969,7 +8318,7 @@ public Trace fillAndValidateRow() { + 4); } - if (!filled.get(132)) { + if (!filled.get(134)) { addressLoXorAccountAddressLoXorExpData1XorHashInfoKeccakHiXorAddressLoXorCoinbaseAddressLo .position( addressLoXorAccountAddressLoXorExpData1XorHashInfoKeccakHiXorAddressLoXorCoinbaseAddressLo @@ -7977,11 +8326,35 @@ public Trace fillAndValidateRow() { + 16); } + if (!filled.get(45)) { + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd + .position( + againInBlkXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorAgainInBlkXorCopyTxcd + .position() + + 1); + } + + if (!filled.get(46)) { + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment + .position( + againInCnfXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorAgainInCnfXorIsDeployment + .position() + + 1); + } + + if (!filled.get(47)) { + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 + .position( + againInTxnXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorAgainInTxnXorIsType2 + .position() + + 1); + } + if (!filled.get(94)) { alpha.position(alpha.position() + 1); } - if (!filled.get(134)) { + if (!filled.get(136)) { balanceNewXorCallerAddressLoXorExpData3XorPushValueHiXorStorageKeyLoXorInitialBalance .position( balanceNewXorCallerAddressLoXorExpData3XorPushValueHiXorStorageKeyLoXorInitialBalance @@ -7989,7 +8362,7 @@ public Trace fillAndValidateRow() { + 16); } - if (!filled.get(133)) { + if (!filled.get(135)) { balanceXorByteCodeAddressLoXorExpData2XorHashInfoKeccakLoXorStorageKeyHiXorFromAddressLo .position( balanceXorByteCodeAddressLoXorExpData2XorHashInfoKeccakLoXorStorageKeyHiXorFromAddressLo @@ -7997,11 +8370,11 @@ public Trace fillAndValidateRow() { + 16); } - if (!filled.get(111)) { + if (!filled.get(113)) { callDataOffsetXorMmuSize.position(callDataOffsetXorMmuSize.position() + 4); } - if (!filled.get(112)) { + if (!filled.get(114)) { callDataSizeXorMmuSrcId.position(callDataSizeXorMmuSrcId.position() + 4); } @@ -8017,7 +8390,7 @@ public Trace fillAndValidateRow() { codeFragmentIndex.position(codeFragmentIndex.position() + 4); } - if (!filled.get(104)) { + if (!filled.get(106)) { codeFragmentIndexXorAccountDeploymentNumberXorExpInstXorPrcCallerGasXorDeploymentNumberXorCoinbaseAddressHi .position( codeFragmentIndexXorAccountDeploymentNumberXorExpInstXorPrcCallerGasXorDeploymentNumberXorCoinbaseAddressHi @@ -8025,34 +8398,34 @@ public Trace fillAndValidateRow() { + 4); } - if (!filled.get(136)) { + if (!filled.get(138)) { codeHashHiNewXorExpData5XorStackItemValueHi1XorValueCurrLoXorValue.position( codeHashHiNewXorExpData5XorStackItemValueHi1XorValueCurrLoXorValue.position() + 16); } - if (!filled.get(135)) { + if (!filled.get(137)) { codeHashHiXorCallValueXorExpData4XorPushValueLoXorValueCurrHiXorToAddressLo.position( codeHashHiXorCallValueXorExpData4XorPushValueLoXorValueCurrHiXorToAddressLo.position() + 16); } - if (!filled.get(138)) { + if (!filled.get(140)) { codeHashLoNewXorMmuLimb2XorStackItemValueHi3XorValueNextLo.position( codeHashLoNewXorMmuLimb2XorStackItemValueHi3XorValueNextLo.position() + 16); } - if (!filled.get(137)) { + if (!filled.get(139)) { codeHashLoXorMmuLimb1XorStackItemValueHi2XorValueNextHi.position( codeHashLoXorMmuLimb1XorStackItemValueHi2XorValueNextHi.position() + 16); } - if (!filled.get(106)) { + if (!filled.get(108)) { codeSizeNewXorByteCodeCodeFragmentIndexXorMmuExoSumXorPrcCdsXorInitCodeSize.position( codeSizeNewXorByteCodeCodeFragmentIndexXorMmuExoSumXorPrcCdsXorInitCodeSize.position() + 4); } - if (!filled.get(105)) { + if (!filled.get(107)) { codeSizeXorByteCodeAddressHiXorMmuAuxIdXorPrcCdoXorDeploymentNumberInftyXorFromAddressHi .position( codeSizeXorByteCodeAddressHiXorMmuAuxIdXorPrcCdoXorDeploymentNumberInftyXorFromAddressHi @@ -8076,7 +8449,7 @@ public Trace fillAndValidateRow() { contextNumberNew.position(contextNumberNew.position() + 4); } - if (!filled.get(113)) { + if (!filled.get(115)) { contextNumberXorMmuTgtId.position(contextNumberXorMmuTgtId.position() + 4); } @@ -8100,80 +8473,53 @@ public Trace fillAndValidateRow() { counterTli.position(counterTli.position() + 1); } - if (!filled.get(60)) { - createExceptionXorHashInfoFlag.position(createExceptionXorHashInfoFlag.position() + 1); - } - - if (!filled.get(61)) { - createFailureConditionWillRevertXorIcpx.position( - createFailureConditionWillRevertXorIcpx.position() + 1); - } - - if (!filled.get(62)) { - createFailureConditionWontRevertXorInvalidFlag.position( - createFailureConditionWontRevertXorInvalidFlag.position() + 1); - } - - if (!filled.get(63)) { - createNonemptyInitCodeFailureWillRevertXorJumpx.position( - createNonemptyInitCodeFailureWillRevertXorJumpx.position() + 1); - } - - if (!filled.get(64)) { - createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.position( - createNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired.position() + 1); - } - - if (!filled.get(65)) { - createNonemptyInitCodeSuccessWillRevertXorJumpFlag.position( - createNonemptyInitCodeSuccessWillRevertXorJumpFlag.position() + 1); + if (!filled.get(95)) { + delta.position(delta.position() + 1); } - if (!filled.get(66)) { - createNonemptyInitCodeSuccessWontRevertXorKecFlag.position( - createNonemptyInitCodeSuccessWontRevertXorKecFlag.position() + 1); + if (!filled.get(103)) { + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.position( + deploymentNumberFinalInBlockXorDeploymentNumberFinalInBlock.position() + 2); } - if (!filled.get(95)) { - delta.position(delta.position() + 1); + if (!filled.get(104)) { + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.position( + deploymentNumberFirstInBlockXorDeploymentNumberFirstInBlock.position() + 2); } - if (!filled.get(108)) { + if (!filled.get(110)) { deploymentNumberInftyXorByteCodeDeploymentStatusXorMmuPhaseXorPrcRao.position( deploymentNumberInftyXorByteCodeDeploymentStatusXorMmuPhaseXorPrcRao.position() + 4); } - if (!filled.get(109)) { + if (!filled.get(111)) { deploymentNumberNewXorCallerAddressHiXorMmuRefOffsetXorPrcReturnGas.position( deploymentNumberNewXorCallerAddressHiXorMmuRefOffsetXorPrcReturnGas.position() + 4); } - if (!filled.get(107)) { + if (!filled.get(109)) { deploymentNumberXorByteCodeDeploymentNumberXorMmuInstXorPrcRacXorToAddressHi.position( deploymentNumberXorByteCodeDeploymentNumberXorMmuInstXorPrcRacXorToAddressHi.position() + 4); } - if (!filled.get(46)) { - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment + if (!filled.get(49)) { + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode .position( - deploymentStatusInftyXorIsStaticXorExpFlagXorCallAbortWontRevertXorAddFlagXorUnconstrainedFirstXorIsDeployment + deploymentStatusInftyXorMxpDeploysXorCallExceptionXorCallFlagXorFinalInCnfXorStatusCode .position() + 1); } - if (!filled.get(47)) { - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 - .position( - deploymentStatusNewXorUpdateXorMmuFlagXorCallEoaSuccessCallerWillRevertXorBinFlagXorValueCurrChangesXorIsType2 - .position() - + 1); + if (!filled.get(50)) { + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.position( + deploymentStatusNewXorMxpFlagXorCallPrcFailureXorConFlagXorFinalInTxn.position() + 1); } - if (!filled.get(45)) { - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd + if (!filled.get(48)) { + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .position( - deploymentStatusXorIsRootXorCcsrFlagXorCallAbortWillRevertXorAccFlagXorUnconstrainedFinalXorCopyTxcd + deploymentStatusXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorFinalInBlkXorRequiresEvmExecution .position() + 1); } @@ -8186,21 +8532,60 @@ public Trace fillAndValidateRow() { exceptionAhoy.position(exceptionAhoy.position() + 1); } - if (!filled.get(49)) { - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode.position( - existsNewXorMxpDeploysXorCallExceptionXorCallFlagXorValueCurrIsZeroXorStatusCode - .position() + if (!filled.get(52)) { + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.position( + existsNewXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorFirstInCnf.position() + 1); } - if (!filled.get(48)) { - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + if (!filled.get(51)) { + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.position( + existsXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorFirstInBlk.position() + + 1); + } + + if (!filled.get(53)) { + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn .position( - existsXorMmuSuccessBitXorCallEoaSuccessCallerWontRevertXorBtcFlagXorValueCurrIsOrigXorRequiresEvmExecution + finalInBlkXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorFirstInTxn .position() + 1); } + if (!filled.get(54)) { + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges + .position( + finalInCnfXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorValueCurrChanges + .position() + + 1); + } + + if (!filled.get(55)) { + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig.position( + finalInTxnXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorValueCurrIsOrig + .position() + + 1); + } + + if (!filled.get(56)) { + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero.position( + firstInBlkXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4XorValueCurrIsZero + .position() + + 1); + } + + if (!filled.get(57)) { + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.position( + firstInCnfXorStpFlagXorCreateAbortXorDupFlagXorValueNextIsCurr.position() + 1); + } + + if (!filled.get(58)) { + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig.position( + firstInTxnXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlagXorValueNextIsOrig + .position() + + 1); + } + if (!filled.get(14)) { gasActual.position(gasActual.position() + 8); } @@ -8213,7 +8598,7 @@ public Trace fillAndValidateRow() { gasExpected.position(gasExpected.position() + 8); } - if (!filled.get(126)) { + if (!filled.get(128)) { gasLimit.position(gasLimit.position() + 8); } @@ -8221,20 +8606,20 @@ public Trace fillAndValidateRow() { gasNext.position(gasNext.position() + 8); } - if (!filled.get(127)) { + if (!filled.get(129)) { gasPrice.position(gasPrice.position() + 8); } - if (!filled.get(51)) { - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig.position( - hasCodeNewXorMxpMtntopXorCallPrcSuccessCallerWillRevertXorCopyFlagXorValueNextIsOrig - .position() - + 1); + if (!filled.get(60)) { + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.position( + hasCodeNewXorCreateExceptionXorHashInfoFlagXorValueOrigIsZero.position() + 1); } - if (!filled.get(50)) { - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.position( - hasCodeXorMxpFlagXorCallPrcFailureXorConFlagXorValueNextIsCurr.position() + 1); + if (!filled.get(59)) { + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero.position( + hasCodeXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlagXorValueNextIsZero + .position() + + 1); } if (!filled.get(18)) { @@ -8253,63 +8638,57 @@ public Trace fillAndValidateRow() { hubStampTransactionEnd.position(hubStampTransactionEnd.position() + 4); } - if (!filled.get(165)) { + if (!filled.get(167)) { instruction.position(instruction.position() + 32); } - if (!filled.get(52)) { - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero - .position( - isPrecompileXorMxpMxpxXorCallPrcSuccessCallerWontRevertXorCreateFlagXorValueNextIsZero - .position() - + 1); + if (!filled.get(61)) { + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.position( + isPrecompileXorCreateFailureConditionWillRevertXorIcpxXorWarmth.position() + 1); } if (!filled.get(22)) { logInfoStamp.position(logInfoStamp.position() + 4); } - if (!filled.get(54)) { - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth - .position( - markedForSelfdestructNewXorMxpSize2NonzeroNoMxpxXorCallSmcFailureCallerWontRevertXorDecFlag2XorWarmth - .position() - + 1); + if (!filled.get(63)) { + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx.position( + markedForSelfdestructNewXorCreateNonemptyInitCodeFailureWillRevertXorJumpx.position() + + 1); } - if (!filled.get(53)) { - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .position( - markedForSelfdestructXorMxpSize1NonzeroNoMxpxXorCallSmcFailureCallerWillRevertXorDecFlag1XorValueOrigIsZero - .position() - + 1); + if (!filled.get(62)) { + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew.position( + markedForSelfdestructXorCreateFailureConditionWontRevertXorInvalidFlagXorWarmthNew + .position() + + 1); } if (!filled.get(23)) { mmuStamp.position(mmuStamp.position() + 4); } - if (!filled.get(145)) { + if (!filled.get(147)) { mxpOffset2Hi.position(mxpOffset2Hi.position() + 16); } - if (!filled.get(146)) { + if (!filled.get(148)) { mxpOffset2Lo.position(mxpOffset2Lo.position() + 16); } - if (!filled.get(147)) { + if (!filled.get(149)) { mxpSize1Hi.position(mxpSize1Hi.position() + 16); } - if (!filled.get(148)) { + if (!filled.get(150)) { mxpSize1Lo.position(mxpSize1Lo.position() + 16); } - if (!filled.get(149)) { + if (!filled.get(151)) { mxpSize2Hi.position(mxpSize2Hi.position() + 16); } - if (!filled.get(150)) { + if (!filled.get(152)) { mxpSize2Lo.position(mxpSize2Lo.position() + 16); } @@ -8317,7 +8696,7 @@ public Trace fillAndValidateRow() { mxpStamp.position(mxpStamp.position() + 4); } - if (!filled.get(151)) { + if (!filled.get(153)) { mxpWords.position(mxpWords.position() + 16); } @@ -8333,52 +8712,52 @@ public Trace fillAndValidateRow() { nonStackRows.position(nonStackRows.position() + 1); } - if (!filled.get(128)) { + if (!filled.get(130)) { nonce.position(nonce.position() + 8); } - if (!filled.get(124)) { + if (!filled.get(126)) { nonceNewXorStpGasPaidOutOfPocketXorGasInitiallyAvailable.position( nonceNewXorStpGasPaidOutOfPocketXorGasInitiallyAvailable.position() + 8); } - if (!filled.get(123)) { + if (!filled.get(125)) { nonceXorStpGasMxpXorBasefee.position(nonceXorStpGasMxpXorBasefee.position() + 8); } - if (!filled.get(152)) { + if (!filled.get(154)) { oobData1.position(oobData1.position() + 16); } - if (!filled.get(153)) { + if (!filled.get(155)) { oobData2.position(oobData2.position() + 16); } - if (!filled.get(154)) { + if (!filled.get(156)) { oobData3.position(oobData3.position() + 16); } - if (!filled.get(155)) { + if (!filled.get(157)) { oobData4.position(oobData4.position() + 16); } - if (!filled.get(156)) { + if (!filled.get(158)) { oobData5.position(oobData5.position() + 16); } - if (!filled.get(157)) { + if (!filled.get(159)) { oobData6.position(oobData6.position() + 16); } - if (!filled.get(158)) { + if (!filled.get(160)) { oobData7.position(oobData7.position() + 16); } - if (!filled.get(159)) { + if (!filled.get(161)) { oobData8.position(oobData8.position() + 16); } - if (!filled.get(160)) { + if (!filled.get(162)) { oobData9.position(oobData9.position() + 16); } @@ -8410,14 +8789,6 @@ public Trace fillAndValidateRow() { peekAtTransaction.position(peekAtTransaction.position() + 1); } - if (!filled.get(67)) { - prcBlake2FXorLogFlag.position(prcBlake2FXorLogFlag.position() + 1); - } - - if (!filled.get(68)) { - prcEcaddXorLogInfoFlag.position(prcEcaddXorLogInfoFlag.position() + 1); - } - if (!filled.get(69)) { prcEcmulXorMachineStateFlag.position(prcEcmulXorMachineStateFlag.position() + 1); } @@ -8463,7 +8834,7 @@ public Trace fillAndValidateRow() { prcSuccessCallerWontRevertXorShfFlag.position() + 1); } - if (!filled.get(129)) { + if (!filled.get(131)) { priorityFeePerGas.position(priorityFeePerGas.position() + 8); } @@ -8479,7 +8850,7 @@ public Trace fillAndValidateRow() { refundCounter.position(refundCounter.position() + 4); } - if (!filled.get(130)) { + if (!filled.get(132)) { refundCounterInfinity.position(refundCounterInfinity.position() + 8); } @@ -8487,7 +8858,7 @@ public Trace fillAndValidateRow() { refundCounterNew.position(refundCounterNew.position() + 4); } - if (!filled.get(131)) { + if (!filled.get(133)) { refundEffective.position(refundEffective.position() + 8); } @@ -8495,24 +8866,24 @@ public Trace fillAndValidateRow() { relativeBlockNumber.position(relativeBlockNumber.position() + 2); } - if (!filled.get(114)) { + if (!filled.get(116)) { returnAtCapacityXorMxpInst.position(returnAtCapacityXorMxpInst.position() + 4); } - if (!filled.get(115)) { + if (!filled.get(117)) { returnAtOffsetXorOobInst.position(returnAtOffsetXorOobInst.position() + 4); } - if (!filled.get(116)) { + if (!filled.get(118)) { returnDataContextNumberXorStpGasStipend.position( returnDataContextNumberXorStpGasStipend.position() + 4); } - if (!filled.get(117)) { + if (!filled.get(119)) { returnDataOffsetXorStpInstruction.position(returnDataOffsetXorStpInstruction.position() + 4); } - if (!filled.get(118)) { + if (!filled.get(120)) { returnDataSize.position(returnDataSize.position() + 4); } @@ -8550,28 +8921,30 @@ public Trace fillAndValidateRow() { returnFromMessageCallWontTouchRamXorStackItemPop4.position() + 1); } - if (!filled.get(110)) { + if (!filled.get(112)) { rlpaddrDepAddrHiXorCallDataContextNumberXorMmuRefSize.position( rlpaddrDepAddrHiXorCallDataContextNumberXorMmuRefSize.position() + 4); } - if (!filled.get(139)) { + if (!filled.get(141)) { rlpaddrDepAddrLoXorMmuSrcOffsetHiXorStackItemValueHi4XorValueOrigHi.position( rlpaddrDepAddrLoXorMmuSrcOffsetHiXorStackItemValueHi4XorValueOrigHi.position() + 16); } - if (!filled.get(55)) { - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.position( - rlpaddrFlagXorOobFlagXorCallSmcSuccessCallerWillRevertXorDecFlag3XorWarmthNew.position() - + 1); + if (!filled.get(64)) { + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired + .position( + rlpaddrFlagXorCreateNonemptyInitCodeFailureWontRevertXorJumpDestinationVettingRequired + .position() + + 1); } - if (!filled.get(140)) { + if (!filled.get(142)) { rlpaddrKecHiXorMmuSrcOffsetLoXorStackItemValueLo1XorValueOrigLo.position( rlpaddrKecHiXorMmuSrcOffsetLoXorStackItemValueLo1XorValueOrigLo.position() + 16); } - if (!filled.get(141)) { + if (!filled.get(143)) { rlpaddrKecLoXorMmuTgtOffsetLoXorStackItemValueLo2.position( rlpaddrKecLoXorMmuTgtOffsetLoXorStackItemValueLo2.position() + 16); } @@ -8580,19 +8953,19 @@ public Trace fillAndValidateRow() { rlpaddrRecipe.position(rlpaddrRecipe.position() + 1); } - if (!filled.get(142)) { + if (!filled.get(144)) { rlpaddrSaltHiXorMxpGasMxpXorStackItemValueLo3.position( rlpaddrSaltHiXorMxpGasMxpXorStackItemValueLo3.position() + 16); } - if (!filled.get(143)) { + if (!filled.get(145)) { rlpaddrSaltLoXorMxpOffset1HiXorStackItemValueLo4.position( rlpaddrSaltLoXorMxpOffset1HiXorStackItemValueLo4.position() + 16); } - if (!filled.get(56)) { - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.position( - romlexFlagXorStpExistsXorCallSmcSuccessCallerWontRevertXorDecFlag4.position() + 1); + if (!filled.get(65)) { + romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag.position( + romlexFlagXorCreateNonemptyInitCodeSuccessWillRevertXorJumpFlag.position() + 1); } if (!filled.get(87)) { @@ -8626,40 +8999,40 @@ public Trace fillAndValidateRow() { stackItemHeight4.position(stackItemHeight4.position() + 2); } - if (!filled.get(119)) { + if (!filled.get(121)) { stackItemStamp1.position(stackItemStamp1.position() + 5); } - if (!filled.get(120)) { + if (!filled.get(122)) { stackItemStamp2.position(stackItemStamp2.position() + 5); } - if (!filled.get(121)) { + if (!filled.get(123)) { stackItemStamp3.position(stackItemStamp3.position() + 5); } - if (!filled.get(122)) { + if (!filled.get(124)) { stackItemStamp4.position(stackItemStamp4.position() + 5); } - if (!filled.get(161)) { + if (!filled.get(163)) { stpGasHi.position(stpGasHi.position() + 16); } - if (!filled.get(162)) { + if (!filled.get(164)) { stpGasLo.position(stpGasLo.position() + 16); } - if (!filled.get(125)) { + if (!filled.get(127)) { stpGasUpfrontGasCostXorGasLeftover.position( stpGasUpfrontGasCostXorGasLeftover.position() + 8); } - if (!filled.get(163)) { + if (!filled.get(165)) { stpValueHi.position(stpValueHi.position() + 16); } - if (!filled.get(164)) { + if (!filled.get(166)) { stpValueLo.position(stpValueLo.position() + 16); } @@ -8671,12 +9044,12 @@ public Trace fillAndValidateRow() { swapFlag.position(swapFlag.position() + 1); } - if (!filled.get(57)) { - trmFlagXorStpFlagXorCreateAbortXorDupFlag.position( - trmFlagXorStpFlagXorCreateAbortXorDupFlag.position() + 1); + if (!filled.get(66)) { + trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag.position( + trmFlagXorCreateNonemptyInitCodeSuccessWontRevertXorKecFlag.position() + 1); } - if (!filled.get(144)) { + if (!filled.get(146)) { trmRawAddressHiXorMxpOffset1Lo.position(trmRawAddressHiXorMxpOffset1Lo.position() + 16); } @@ -8708,14 +9081,13 @@ public Trace fillAndValidateRow() { txnFlag.position(txnFlag.position() + 1); } - if (!filled.get(59)) { - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.position( - warmthNewXorStpWarmthXorCreateEmptyInitCodeWontRevertXorHaltFlag.position() + 1); + if (!filled.get(68)) { + warmthNewXorPrcEcaddXorLogInfoFlag.position( + warmthNewXorPrcEcaddXorLogInfoFlag.position() + 1); } - if (!filled.get(58)) { - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.position( - warmthXorStpOogxXorCreateEmptyInitCodeWillRevertXorExtFlag.position() + 1); + if (!filled.get(67)) { + warmthXorPrcBlake2FXorLogFlag.position(warmthXorPrcBlake2FXorLogFlag.position() + 1); } if (!filled.get(93)) { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/ContextFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/ContextFragment.java index 0f56bbb365..39f0486bac 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/ContextFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/ContextFragment.java @@ -128,7 +128,7 @@ public static ContextFragment executionProvidesReturnData( callStack, Either.right(receiverContextNumber), providerContextNumber, - callStack.currentCallFrame().returnDataSpan().snapshot(), + callStack.currentCallFrame().outputDataSpan().snapshot(), true); // TODO: is this what we want ? // also: will the latestReturnData have been updated ? @@ -149,7 +149,6 @@ public static ContextFragment updateReturnData( public Trace trace(Trace trace) { final CallFrame callFrame = this.callFrameReference.map(this.callStack::getById, this.callStack::getByContextNumber); - final CallFrame parent = callStack.getParentCallFrameById(callFrame.id()); final Address address = callFrame.accountAddress(); final Address codeAddress = callFrame.byteCodeAddress(); @@ -172,7 +171,7 @@ public Trace trace(Trace trace) { .pContextCallerAddressHi(highPart(callerAddress)) .pContextCallerAddressLo(lowPart(callerAddress)) .pContextCallValue(callFrame.value()) - .pContextCallDataContextNumber(parent.contextNumber()) + .pContextCallDataContextNumber(callFrame.callDataInfo().callDataContextNumber()) .pContextCallDataOffset(callFrame.callDataInfo().memorySpan().offset()) .pContextCallDataSize(callFrame.callDataInfo().memorySpan().length()) .pContextReturnAtOffset(callFrame.returnDataTargetInCaller().offset()) diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/StackFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/StackFragment.java index 2a1ecf5086..0a3d39dcad 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/StackFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/StackFragment.java @@ -58,7 +58,6 @@ public final class StackFragment implements TraceFragment { @Getter private final OpCode opCode; @Setter private boolean jumpDestinationVettingRequired; @Setter private boolean validJumpDestination; - private final boolean willRevert; private final State.TxState.Stamps stamps; private final CommonFragmentValues commonFragmentValues; @@ -70,7 +69,6 @@ private StackFragment( AbortingConditions aborts, GasProjection gp, boolean isDeploying, - boolean willRevert, CommonFragmentValues commonFragmentValues) { this.stack = stack; this.stackOps = stackOps; @@ -126,7 +124,6 @@ private StackFragment( jumpDestinationVettingRequired = false; } - this.willRevert = willRevert; this.stamps = hub.state().stamps(); this.commonFragmentValues = commonFragmentValues; } @@ -139,26 +136,13 @@ public static StackFragment prepare( final AbortingConditions aborts, final GasProjection gp, boolean isDeploying, - boolean willRevert, CommonFragmentValues commonFragmentValues) { return new StackFragment( - hub, - stack, - stackItems, - exceptions, - aborts, - gp, - isDeploying, - willRevert, - commonFragmentValues); + hub, stack, stackItems, exceptions, aborts, gp, isDeploying, commonFragmentValues); } private boolean traceLog() { - return opCode.isLog() - && Exceptions.none( - exceptions) // TODO: should be redundant (exceptions trigger reverts) --- this - // could be asserted - && !willRevert; + return opCode.isLog() && !commonFragmentValues.callFrame().willRevert(); } @Override @@ -217,14 +201,7 @@ public Trace trace(Trace trace) { } final InstructionFamily currentInstFamily = stack.getCurrentOpcodeData().instructionFamily(); - - TracedException tracedException = commonFragmentValues.tracedException(); - - // TODO: here only for debugging, remove it - if (tracedException == UNDEFINED) { - System.out.println(currentInstFamily); - System.out.println(this.opCode); - } + final TracedException tracedException = commonFragmentValues.tracedException(); this.tracedExceptionSanityChecks(tracedException); diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/AccountFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/AccountFragment.java index 3671c5e726..aa19528202 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/AccountFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/AccountFragment.java @@ -119,8 +119,10 @@ public AccountFragment( @Override public Trace trace(Trace trace) { - final EWord eCodeHash = EWord.of(oldState.code().getCodeHash()); - final EWord eCodeHashNew = EWord.of(newState.code().getCodeHash()); + final EWord eCodeHash = + EWord.of(oldState.deploymentStatus() ? Hash.EMPTY : oldState.code().getCodeHash()); + final EWord eCodeHashNew = + EWord.of(newState.deploymentStatus() ? Hash.EMPTY : newState.code().getCodeHash()); // tracing domSubStampsSubFragment.trace(trace); @@ -128,6 +130,9 @@ public Trace trace(Trace trace) { rlpAddrSubFragment.trace(trace); } + final boolean hasCode = !eCodeHash.equals(EWord.of(Hash.EMPTY)); + final boolean hasCodeNew = !eCodeHashNew.equals(EWord.of(Hash.EMPTY)); + return trace .peekAtAccount(true) .pAccountAddressHi(highPart(oldState.address())) @@ -142,18 +147,12 @@ public Trace trace(Trace trace) { .pAccountCodeHashHiNew(eCodeHashNew.hi()) .pAccountCodeHashLo(eCodeHash.lo()) .pAccountCodeHashLoNew(eCodeHashNew.lo()) - .pAccountHasCode(oldState.code().getCodeHash() != Hash.EMPTY) - .pAccountHasCodeNew(newState.code().getCodeHash() != Hash.EMPTY) + .pAccountHasCode(hasCode) + .pAccountHasCodeNew(hasCodeNew) .pAccountCodeFragmentIndex(codeFragmentIndex) .pAccountRomlexFlag(requiresRomlex) - .pAccountExists( - oldState.nonce() > 0 - || oldState.code().getCodeHash() != Hash.EMPTY - || !oldState.balance().isZero()) - .pAccountExistsNew( - newState.nonce() > 0 - || newState.code().getCodeHash() != Hash.EMPTY - || !newState.balance().isZero()) + .pAccountExists(oldState.nonce() > 0 || hasCode || !oldState.balance().isZero()) + .pAccountExistsNew(newState.nonce() > 0 || hasCodeNew || !newState.balance().isZero()) .pAccountWarmth(oldState.isWarm()) .pAccountWarmthNew(newState.isWarm()) .pAccountMarkedForSelfdestruct(markedForSelfDestruct) diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/RlpAddrSubFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/RlpAddrSubFragment.java index 57831b309d..1667965718 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/RlpAddrSubFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/account/RlpAddrSubFragment.java @@ -29,6 +29,7 @@ import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.crypto.Hash; import org.hyperledger.besu.datatypes.Address; +import org.hyperledger.besu.evm.frame.MessageFrame; @RequiredArgsConstructor public class RlpAddrSubFragment implements TraceSubFragment { @@ -37,18 +38,20 @@ public class RlpAddrSubFragment implements TraceSubFragment { private final Bytes32 salt; private final Bytes32 keccak; - // TODO: creating the RLPAddr sub fragment should trigger RLP_ADDR public static RlpAddrSubFragment makeFragment(Hub hub, Address deploymentAddress) { final OpCode currentOpCode = hub.opCode(); switch (currentOpCode) { case CREATE2 -> { - final Bytes32 salt = Bytes32.leftPad(hub.currentFrame().frame().getStackItem(3)); - final Bytes initCode = OperationAncillaries.initCode(hub.currentFrame().frame()); + final MessageFrame frame = hub.currentFrame().frame(); + final Bytes32 salt = Bytes32.leftPad(frame.getStackItem(3)); + final Bytes initCode = OperationAncillaries.initCode(frame); final Bytes32 hash = Hash.keccak256(initCode); // TODO: could be done better, we compute the HASH two times + hub.rlpAddr().callRlpAddrCreate2(frame, salt, hash); return new RlpAddrSubFragment((short) 2, deploymentAddress, salt, hash); } case CREATE -> { + hub.rlpAddr().callRlpAddrCreate(); return new RlpAddrSubFragment((short) 1, deploymentAddress, Bytes32.ZERO, Bytes32.ZERO); } default -> throw new IllegalStateException("Unexpected value: " + currentOpCode); diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragment.java index a2edb0ce6c..3e89e38702 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragment.java @@ -59,6 +59,10 @@ public CommonFragment( this.nonStackRowsCounter = nonStackLineCounter; } + private boolean isUnexceptional() { + return Exceptions.none(commonFragmentValues.exceptions); + } + public boolean txReverts() { return commonFragmentValues.txMetadata.statusCode(); } @@ -97,15 +101,14 @@ public Trace trace(Trace trace) { .codeFragmentIndex(commonFragmentValues.codeFragmentIndex) .programCounter(commonFragmentValues.pc) .programCounterNew(commonFragmentValues.pcNew) - .height( - commonFragmentValues.hubProcessingPhase == TX_EXEC ? commonFragmentValues.height : 0) - .heightNew( - commonFragmentValues.hubProcessingPhase == TX_EXEC ? commonFragmentValues.heightNew : 0) + .height(isExec ? commonFragmentValues.height : 0) + .heightNew(isExec ? commonFragmentValues.heightNew : 0) // peeking flags are traced in the respective fragments .gasExpected(Bytes.ofUnsignedLong(commonFragmentValues.gasExpected)) .gasActual(Bytes.ofUnsignedLong(commonFragmentValues.gasActual)) .gasCost(gasCostToTrace()) - .gasNext(Bytes.ofUnsignedLong(isExec ? commonFragmentValues.gasNext : 0)) + .gasNext( + Bytes.ofUnsignedLong(isExec && isUnexceptional() ? commonFragmentValues.gasNext : 0)) .refundCounter(commonFragmentValues.gasRefund) .refundCounterNew(commonFragmentValues.gasRefundNew) .twoLineInstruction(commonFragmentValues.TLI) @@ -116,16 +119,18 @@ public Trace trace(Trace trace) { private Bytes gasCostToTrace() { - if (commonFragmentValues.hubProcessingPhase != TX_EXEC) { + if (commonFragmentValues.hubProcessingPhase != TX_EXEC + || commonFragmentValues.tracedException() == TracedException.STACK_UNDERFLOW + || commonFragmentValues.tracedException() == TracedException.STACK_OVERFLOW + || commonFragmentValues.tracedException() == TracedException.RETURN_DATA_COPY_FAULT + || commonFragmentValues.tracedException() == TracedException.MEMORY_EXPANSION_EXCEPTION + || commonFragmentValues.tracedException() == TracedException.STATIC_FAULT + || commonFragmentValues.tracedException() == TracedException.INVALID_CODE_PREFIX + || commonFragmentValues.tracedException() == TracedException.MAX_CODE_SIZE_EXCEPTION) { return Bytes.EMPTY; } - final boolean oogx = - commonFragmentValues.tracedException() == TracedException.OUT_OF_GAS_EXCEPTION; - final boolean nonOogException = Exceptions.any(commonFragmentValues.exceptions) && !oogx; - if (nonOogException) { - return Bytes.EMPTY; - } + // TODO @Olivier: special care for CALL's and CREATE's return Bytes.ofUnsignedLong(commonFragmentValues.gasCost); } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragmentValues.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragmentValues.java index 68a03f7ef8..b7837fa05d 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragmentValues.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/common/CommonFragmentValues.java @@ -168,7 +168,7 @@ public void setTracedException(TracedException tracedException) { static int computePcNew( final Hub hub, final int pc, boolean noStackException, boolean hubInExecPhase) { - OpCode opCode = hub.opCode(); + final OpCode opCode = hub.opCode(); if (!(noStackException && hubInExecPhase)) { return 0; } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/imc/mmu/MmuCall.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/imc/mmu/MmuCall.java index 6df4d494a4..24f768a262 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/imc/mmu/MmuCall.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/imc/mmu/MmuCall.java @@ -140,7 +140,7 @@ public class MmuCall implements TraceSubFragment, PostTransactionDefer { private int exoSum = 0; public void dontTraceMe() { - this.traceMe = false; + traceMe = false; } private MmuCall updateExoSum(final int exoValue) { @@ -802,9 +802,9 @@ public Trace trace(Trace trace, State.TxState.Stamps stamps) { return trace .pMiscMmuFlag(true) .pMiscMmuInst(instruction) - .pMiscMmuTgtId(targetId) - .pMiscMmuSrcId(sourceId) - .pMiscMmuAuxId(auxId) + .pMiscMmuTgtId(targetId()) + .pMiscMmuSrcId(sourceId()) + .pMiscMmuAuxId(auxId()) .pMiscMmuSrcOffsetHi(sourceOffset.hi()) .pMiscMmuSrcOffsetLo(sourceOffset.lo()) .pMiscMmuTgtOffsetLo(targetOffset.lo()) diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/storage/StorageFragment.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/storage/StorageFragment.java index 36e94b2d97..04821a2871 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/storage/StorageFragment.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/fragment/storage/StorageFragment.java @@ -85,8 +85,6 @@ public Trace trace(Trace trace) { .pStorageValueCurrIsZero(valueCurrent.isZero()) .pStorageValueNextIsCurr(valueNext.equals(valueCurrent)) .pStorageValueNextIsZero(valueNext.isZero()) - .pStorageValueNextIsOrig(valueNext.equals(valueOriginal)) - .pStorageUnconstrainedFirst(isFirstOccurrence) - .pStorageUnconstrainedFinal(isFinalOccurrence); + .pStorageValueNextIsOrig(valueNext.equals(valueOriginal)); } } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/CreateSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/CreateSection.java index 1d34dc0892..81e6d2bf77 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/CreateSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/CreateSection.java @@ -255,7 +255,7 @@ public void resolveUponContextEntry(Hub hub) { public void resolveAtContextReEntry(Hub hub, CallFrame frame) { final boolean deploymentSuccess = !frame.frame().getStackItem(0).isZero(); - if (!deploymentSuccess) { + if (deploymentSuccess) { scenarioFragment.setScenario(CREATE_NON_EMPTY_INIT_CODE_SUCCESS_WONT_REVERT); } else { scenarioFragment.setScenario(CREATE_NON_EMPTY_INIT_CODE_FAILURE_WONT_REVERT); diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/LogSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/LogSection.java index 467ff93112..d0900ee783 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/LogSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/LogSection.java @@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.*; import net.consensys.linea.zktracer.module.hub.Hub; -import net.consensys.linea.zktracer.module.hub.defer.PostRollbackDefer; import net.consensys.linea.zktracer.module.hub.defer.PostTransactionDefer; import net.consensys.linea.zktracer.module.hub.fragment.ContextFragment; import net.consensys.linea.zktracer.module.hub.fragment.imc.ImcFragment; @@ -26,15 +25,12 @@ import net.consensys.linea.zktracer.module.hub.fragment.imc.mmu.MmuCall; import net.consensys.linea.zktracer.module.hub.signals.Exceptions; import net.consensys.linea.zktracer.runtime.LogData; -import net.consensys.linea.zktracer.runtime.callstack.CallFrame; import org.hyperledger.besu.datatypes.Transaction; -import org.hyperledger.besu.evm.frame.MessageFrame; import org.hyperledger.besu.evm.worldstate.WorldView; -public class LogSection extends TraceSection implements PostRollbackDefer, PostTransactionDefer { +public class LogSection extends TraceSection implements PostTransactionDefer { private MmuCall mmuCall; - private boolean logReverted = false; public LogSection(Hub hub) { super(hub, maxNumberOfRows(hub)); @@ -81,7 +77,6 @@ public LogSection(Hub hub) { if (mmuCall != null) { imcFragment.callMmu(mmuCall); - hub.defers().scheduleForPostRollback(this, hub.currentFrame()); } } @@ -91,18 +86,15 @@ private static short maxNumberOfRows(Hub hub) { + (Exceptions.staticFault(hub.pch().exceptions()) ? 2 : 3)); } - @Override - public void resolvePostRollback(Hub hub, MessageFrame messageFrame, CallFrame callFrame) { - logReverted = true; - if (mmuCall != null) { - mmuCall.dontTraceMe(); - } - } - @Override public void resolvePostTransaction( Hub hub, WorldView state, Transaction tx, boolean isSuccessful) { - if (!logReverted) { + final boolean logReverted = commonValues.callFrame().willRevert(); + if (logReverted) { + if (mmuCall != null) { + mmuCall.dontTraceMe(); + } + } else { final int logStamp = hub.state.stamps().incrementLogStamp(); commonValues.logStamp(logStamp); if (mmuCall != null) { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/MsizeSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/MsizeSection.java new file mode 100644 index 0000000000..f2576dab44 --- /dev/null +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/MsizeSection.java @@ -0,0 +1,29 @@ +/* + * Copyright Consensys Software Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package net.consensys.linea.zktracer.module.hub.section; + +import net.consensys.linea.zktracer.module.hub.Hub; +import net.consensys.linea.zktracer.module.hub.fragment.imc.ImcFragment; +import net.consensys.linea.zktracer.module.hub.fragment.imc.MxpCall; + +public class MsizeSection extends TraceSection { + public MsizeSection(Hub hub) { + super(hub, (short) 3); + + final MxpCall mxpCall = new MxpCall(hub); + final ImcFragment imcFragment = ImcFragment.empty(hub).callMxp(mxpCall); + this.addStackAndFragments(hub, imcFragment); + } +} diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TraceSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TraceSection.java index 5d39d66563..a96079e30c 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TraceSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TraceSection.java @@ -157,39 +157,37 @@ private int computeContextNumberNew() { : 0; } - private List makeStackFragments(final Hub hub, CallFrame f) { - final List r = new ArrayList<>(2); - Stack snapshot = f.stack().snapshot(); - if (f.pending().lines().isEmpty()) { - for (int i = 0; i < (f.opCodeData().numberOfStackRows()); i++) { - r.add( + private List makeStackFragments(final Hub hub, CallFrame currentFrame) { + final List stackFragments = new ArrayList<>(2); + final Stack snapshot = currentFrame.stack().snapshot(); + if (currentFrame.pending().lines().isEmpty()) { + for (int i = 0; i < (currentFrame.opCodeData().numberOfStackRows()); i++) { + stackFragments.add( StackFragment.prepare( hub, snapshot, new StackLine().asStackItems(), hub.pch().exceptions(), hub.pch().abortingConditions().snapshot(), - Hub.GAS_PROJECTOR.of(f.frame(), f.opCode()), - f.isDeployment(), - f.willRevert(), + Hub.GAS_PROJECTOR.of(currentFrame.frame(), currentFrame.opCode()), + currentFrame.isDeployment(), commonValues)); } } else { - for (StackLine line : f.pending().lines()) { - r.add( + for (StackLine line : currentFrame.pending().lines()) { + stackFragments.add( StackFragment.prepare( hub, snapshot, line.asStackItems(), hub.pch().exceptions(), hub.pch().abortingConditions().snapshot(), - Hub.GAS_PROJECTOR.of(f.frame(), f.opCode()), - f.isDeployment(), - f.willRevert(), + Hub.GAS_PROJECTOR.of(currentFrame.frame(), currentFrame.opCode()), + currentFrame.isDeployment(), commonValues)); } } - return r; + return stackFragments; } public void triggerHashInfo(Bytes hash) { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TxFinalizationSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TxFinalizationSection.java index 951f2ba9fa..56116364ef 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TxFinalizationSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/TxFinalizationSection.java @@ -36,8 +36,8 @@ public class TxFinalizationSection extends TraceSection implements PostTransacti private final AccountSnapshot senderSnapshotBeforeFinalization; private final AccountSnapshot recipientSnapshotBeforeFinalization; private final AccountSnapshot coinbaseSnapshotBeforeTxFinalization; - private @Setter AccountSnapshot senderAccountAfterTxFinalization; - private @Setter AccountSnapshot recipientAccountAfterTxFinalization; + private @Setter AccountSnapshot senderSnapshotAfterTxFinalization; + private @Setter AccountSnapshot recipientSnapshotAfterTxFinalization; private @Setter AccountSnapshot coinbaseSnapshotAfterFinalization; public TxFinalizationSection(Hub hub, WorldView world) { @@ -75,12 +75,12 @@ public void resolvePostTransaction( final boolean coinbaseWarmth = txMetadata.isCoinbaseWarmAtTransactionEnd(); final Address senderAddress = senderSnapshotBeforeFinalization.address(); - senderAccountAfterTxFinalization = AccountSnapshot.canonical(hub, senderAddress); - senderAccountAfterTxFinalization.turnOnWarmth(); // purely constraints based + senderSnapshotAfterTxFinalization = AccountSnapshot.canonical(hub, senderAddress); + senderSnapshotAfterTxFinalization.turnOnWarmth(); // purely constraints based final Address recipientAddress = recipientSnapshotBeforeFinalization.address(); - recipientAccountAfterTxFinalization = AccountSnapshot.canonical(hub, recipientAddress); - recipientAccountAfterTxFinalization.turnOnWarmth(); // purely constraints based + recipientSnapshotAfterTxFinalization = AccountSnapshot.canonical(hub, recipientAddress); + recipientSnapshotAfterTxFinalization.turnOnWarmth(); // purely constraints based final Address coinbaseAddress = coinbaseSnapshotBeforeTxFinalization.address(); coinbaseSnapshotAfterFinalization = AccountSnapshot.canonical(hub, coinbaseAddress); @@ -90,10 +90,15 @@ public void resolvePostTransaction( checkArgument(isSuccessful == txMetadata.statusCode()); // TODO: do we switch off the deployment status at the end of a deployment ? - // checkArgument(!deploymentInfo.getDeploymentStatus(senderAddress), "The sender may not be - // under deployment"); - // checkArgument(!deploymentInfo.getDeploymentStatus(recipientAddress), ""); - // checkArgument(!deploymentInfo.getDeploymentStatus(coinbaseAddress), ""); + checkArgument( + !deploymentInfo.getDeploymentStatus(senderAddress), + "The sender may not be under deployment"); + checkArgument( + !deploymentInfo.getDeploymentStatus(recipientAddress), + "The recipient may not be under deployment"); + checkArgument( + !deploymentInfo.getDeploymentStatus(coinbaseAddress), + "The coinbase may not be under deployment"); if (isSuccessful) { successfulFinalization(hub); @@ -111,7 +116,7 @@ private void successfulFinalization(Hub hub) { .accountFragment() .make( senderSnapshotBeforeFinalization, - senderAccountAfterTxFinalization, + senderSnapshotAfterTxFinalization, DomSubStampsSubFragment.standardDomSubStamps(hub.stamp(), 0)); AccountFragment coinbaseAccountFragment = @@ -162,7 +167,7 @@ private void unsuccessfulFinalization(Hub hub) { .accountFragment() .make( senderSnapshotBeforeFinalization, - senderAccountAfterTxFinalization, + senderSnapshotAfterTxFinalization, DomSubStampsSubFragment.standardDomSubStamps(hub.stamp(), 0)); AccountFragment recipientAccountFragment = @@ -170,7 +175,7 @@ private void unsuccessfulFinalization(Hub hub) { .accountFragment() .make( recipientSnapshotBeforeFinalization, - recipientAccountAfterTxFinalization, + recipientSnapshotAfterTxFinalization, DomSubStampsSubFragment.standardDomSubStamps(hub.stamp(), 1)); AccountFragment coinbaseAccountFragment = diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/call/CallSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/call/CallSection.java index b1eef6c89d..1ac0988f63 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/call/CallSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/call/CallSection.java @@ -27,6 +27,7 @@ import java.util.Optional; import java.util.function.BiFunction; +import lombok.Getter; import lombok.Setter; import net.consensys.linea.zktracer.module.hub.AccountSnapshot; import net.consensys.linea.zktracer.module.hub.Factories; @@ -118,6 +119,8 @@ public class CallSection extends TraceSection public StpCall stpCall; private PrecompileSubsection precompileSubsection; + @Getter private MemorySpan callProvidedReturnDataTargetSpan; + public CallSection(Hub hub) { super(hub, maxNumberOfLines(hub)); @@ -177,8 +180,8 @@ public CallSection(Hub hub) { currentFrame.childSpanningSection(this); final boolean callCanTransferValue = currentFrame.opCode().callCanTransferValue(); - currentFrame.returnDataTargetInCaller( - returnDataMemorySpan(currentFrame.frame(), callCanTransferValue)); + callProvidedReturnDataTargetSpan = + returnDataMemorySpan(currentFrame.frame(), callCanTransferValue); value = callCanTransferValue diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/copy/ReturnDataCopySection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/copy/ReturnDataCopySection.java index 02f927d077..391de07995 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/copy/ReturnDataCopySection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/copy/ReturnDataCopySection.java @@ -38,8 +38,8 @@ public ReturnDataCopySection(Hub hub) { imcFragment.callOob(oobCall); this.addStack(hub); - this.addFragment(currentContext); this.addFragment(imcFragment); + this.addFragment(currentContext); final short exceptions = hub.pch().exceptions(); final boolean returnDataCopyException = oobCall.isRdcx(); diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/halt/RevertSection.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/halt/RevertSection.java index f64e5fa42c..d160bff285 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/halt/RevertSection.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/section/halt/RevertSection.java @@ -23,6 +23,7 @@ import net.consensys.linea.zktracer.module.hub.fragment.imc.mmu.MmuCall; import net.consensys.linea.zktracer.module.hub.section.TraceSection; import net.consensys.linea.zktracer.module.hub.signals.Exceptions; +import net.consensys.linea.zktracer.runtime.callstack.CallFrame; public class RevertSection extends TraceSection { @@ -54,8 +55,8 @@ public RevertSection(Hub hub) { return; } - // The XAHOY case - ///////////////// + // The XAHOY = 0 case + ///////////////////// checkArgument(Exceptions.none(exceptions)); final boolean triggerMmu = @@ -69,8 +70,14 @@ public RevertSection(Hub hub) { imcFragment.callMmu(mmuCall); } + final CallFrame callFrame = hub.currentFrame(); final ContextFragment currentContext = ContextFragment.readCurrentContextData(hub); - final ContextFragment parentContext = ContextFragment.executionProvidesEmptyReturnData(hub); - this.addFragments(currentContext, parentContext); + final ContextFragment updateCallerReturnData = + ContextFragment.executionProvidesReturnData( + hub, + hub.callStack().getById(callFrame.callerId()).contextNumber(), + callFrame.contextNumber()); + + this.addFragments(currentContext, updateCallerReturnData); } } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Exceptions.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Exceptions.java index 2a30c57010..7a77786ca3 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Exceptions.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Exceptions.java @@ -122,13 +122,13 @@ private static boolean isInvalidOpcode(final OpCode opCode) { } private static boolean isStackUnderflow(final MessageFrame frame, OpCodeData opCodeData) { - return frame.stackSize() < opCodeData.stackSettings().nbRemoved(); + return frame.stackSize() < opCodeData.stackSettings().delta(); } private static boolean isStackOverflow(final MessageFrame frame, OpCodeData opCodeData) { return frame.stackSize() - + opCodeData.stackSettings().nbAdded() - - opCodeData.stackSettings().nbRemoved() + + opCodeData.stackSettings().alpha() + - opCodeData.stackSettings().delta() > 1024; } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Signals.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Signals.java index b42efe11ad..3596eb8d03 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Signals.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/hub/signals/Signals.java @@ -50,9 +50,6 @@ public class Signals { @Getter private boolean wcp; @Getter private boolean shf; - @Getter private boolean gas; // TODO: should die - @Getter private boolean rlpAddr; // TODO: should die - private final PlatformController platformController; public void reset() { @@ -64,9 +61,6 @@ public void reset() { mod = false; wcp = false; shf = false; - - gas = false; - rlpAddr = false; } public Signals snapshot() { @@ -79,10 +73,6 @@ public Signals snapshot() { r.mod = this.mod; r.wcp = this.wcp; r.shf = this.shf; - - r.gas = this.gas; - r.rlpAddr = this.rlpAddr; - return r; } @@ -98,11 +88,6 @@ public void prepare(MessageFrame frame, PlatformController platformController, H final OpCode opCode = hub.opCode(); final short ex = platformController.exceptions(); - // this.gas coincides with CONTEXT_MAY_CHANGE - this.gas = - Exceptions.any(ex) - || AUTOMATIC_GAS_MODULE_TRIGGER.contains(hub.opCodeData().instructionFamily()); - if (Exceptions.stackException(ex)) { return; } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/rlpaddr/RlpAddr.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/rlpaddr/RlpAddr.java index d38d883570..46980af5f1 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/module/rlpaddr/RlpAddr.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/module/rlpaddr/RlpAddr.java @@ -30,8 +30,6 @@ import static net.consensys.linea.zktracer.types.Utils.bitDecomposition; import static net.consensys.linea.zktracer.types.Utils.leftPadTo; import static net.consensys.linea.zktracer.types.Utils.rightPadTo; -import static org.hyperledger.besu.crypto.Hash.keccak256; -import static org.hyperledger.besu.evm.internal.Words.clampedToLong; import java.math.BigInteger; import java.nio.MappedByteBuffer; @@ -85,49 +83,35 @@ public void traceStartTx(WorldView world, TransactionProcessingMetadata txMetaDa final Address senderAddress = tx.getSender(); final long nonce = tx.getNonce(); final Bytes32 rawTo = getCreateRawAddress(senderAddress, nonce); - RlpAddrOperation chunk = + final RlpAddrOperation operation = new RlpAddrOperation( rawTo, OpCode.CREATE, longToUnsignedBigInteger(nonce), senderAddress); - operations.add(chunk); + operations.add(operation); trm.callTrimming(rawTo); } } - // TODO : this should die, make sure we trigger it in the right place - @Override - public void tracePreOpcode(MessageFrame frame) { - final OpCode opcode = hub.opCode(); - switch (opcode) { - case CREATE -> { - final Address currentAddress = frame.getRecipientAddress(); - final Bytes32 rawCreateAddress = getCreateRawAddress(frame); - RlpAddrOperation chunk = - new RlpAddrOperation( - rawCreateAddress, - OpCode.CREATE, - longToUnsignedBigInteger(frame.getWorldUpdater().get(currentAddress).getNonce()), - currentAddress); - this.operations.add(chunk); - this.trm.callTrimming(rawCreateAddress); - } - case CREATE2 -> { - final Address sender = frame.getRecipientAddress(); - - final Bytes32 salt = Bytes32.leftPad(frame.getStackItem(3)); - - final long offset = clampedToLong(frame.getStackItem(1)); - final long length = clampedToLong(frame.getStackItem(2)); - final Bytes initCode = frame.shadowReadMemory(offset, length); - final Bytes32 hash = keccak256(initCode); - - final Bytes32 rawCreate2Address = getCreate2RawAddress(sender, salt, hash); + public void callRlpAddrCreate() { + final MessageFrame frame = hub.currentFrame().frame(); + final Address currentAddress = frame.getRecipientAddress(); + final Bytes32 rawCreateAddress = getCreateRawAddress(frame); + final RlpAddrOperation operation = + new RlpAddrOperation( + rawCreateAddress, + OpCode.CREATE, + longToUnsignedBigInteger(frame.getWorldUpdater().get(currentAddress).getNonce()), + currentAddress); + operations.add(operation); + hub.trm().callTrimming(rawCreateAddress); + } - final RlpAddrOperation chunk = - new RlpAddrOperation(rawCreate2Address, OpCode.CREATE2, sender, salt, hash); - operations.add(chunk); - trm.callTrimming(rawCreate2Address); - } - } + public void callRlpAddrCreate2(MessageFrame frame, Bytes32 salt, Bytes32 hash) { + final Address currentAddress = frame.getRecipientAddress(); + final Bytes32 rawCreate2Address = getCreate2RawAddress(currentAddress, salt, hash); + final RlpAddrOperation operation = + new RlpAddrOperation(rawCreate2Address, OpCode.CREATE2, currentAddress, salt, hash); + operations.add(operation); + hub.trm().callTrimming(rawCreate2Address); } private void traceCreate2(int stamp, RlpAddrOperation chunk, Trace trace) { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallFrame.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallFrame.java index d0f4847cf7..6b32e78872 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallFrame.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallFrame.java @@ -15,8 +15,6 @@ package net.consensys.linea.zktracer.runtime.callstack; -import static com.google.common.base.Preconditions.*; - import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -48,13 +46,13 @@ public class CallFrame { @Setter public int universalParentReturnDataContextNumber; /** the position of this {@link CallFrame} in the {@link CallStack}. */ - @Getter private int id; + @Getter private final int id; /** the context number of the frame, i.e. the hub stamp at its creation */ @Getter private final int contextNumber; /** the depth of this CallFrame within its call hierarchy. */ - @Getter private int depth; + @Getter private final int depth; /** true iff the current context was spawned by a deployment transaction or a CREATE(2) opcode */ @Getter private boolean isDeployment; @@ -125,18 +123,18 @@ public void rememberGasNextBeforePausing() { } /** the ether amount given to this frame. */ - @Getter private Wei value = Wei.fromHexString("0xBadF00d"); // Marker for debugging + @Getter private final Wei value; /** the gas given to this frame. */ @Getter private long gasStipend; /** the call data given to this frame. */ - @Getter CallDataInfo callDataInfo; + @Getter private final CallDataInfo callDataInfo; /** the latest child context to have been called from this frame */ @Getter @Setter private int returnDataContextNumber = 0; - /** the data returned by the latest callee. */ + /** the data returned by the latest child context. */ @Getter @Setter private Bytes returnData = Bytes.EMPTY; /** returnData position within the latest callee memory space. */ @@ -149,7 +147,7 @@ public void rememberGasNextBeforePausing() { @Getter @Setter private MemorySpan outputDataSpan; /** where this frame is expected to write its outputData within its parent's memory space. */ - @Getter @Setter private MemorySpan returnDataTargetInCaller = MemorySpan.empty(); + @Getter private final MemorySpan returnDataTargetInCaller; @Getter @Setter private boolean selfReverts = false; @Getter @Setter private boolean getsReverted = false; @@ -183,23 +181,10 @@ public static void updateParentContextReturnData( this.contextNumber = contextNumber; accountAddress = origin; callDataInfo = new CallDataInfo(callData, 0, callData.size(), contextNumber); - } - - // TODO: should die ? - /** Create a PRECOMPILE_RETURN_DATA callFrame */ - CallFrame( - final int contextNumber, - final Bytes precompileResult, - final int returnDataOffset, - final Address precompileAddress) { - checkArgument( - returnDataOffset == 0 || precompileAddress == Address.MODEXP, - "ReturnDataOffset is 0 for all precompile except Modexp"); - type = CallFrameType.PRECOMPILE_RETURN_DATA; - this.contextNumber = contextNumber; - outputData = precompileResult; - outputDataSpan = new MemorySpan(returnDataOffset, precompileResult.size()); - accountAddress = precompileAddress; + returnDataTargetInCaller = MemorySpan.empty(); + value = Wei.ZERO; + id = -1; + depth = -1; } /** Create an empty call frame. */ @@ -209,6 +194,10 @@ public static void updateParentContextReturnData( accountAddress = Address.ZERO; callerId = -1; callDataInfo = new CallDataInfo(Bytes.EMPTY, 0, 0, 0); + returnDataTargetInCaller = MemorySpan.empty(); + depth = 0; + value = Wei.ZERO; + id = -1; } /** @@ -251,7 +240,8 @@ public static void updateParentContextReturnData( int callerId, Bytes callData, long callDataOffset, - long callDataSize) { + long callDataSize, + MemorySpan returnDataTargetInCaller) { this.type = type; this.id = id; this.contextNumber = contextNumber; @@ -270,7 +260,7 @@ public static void updateParentContextReturnData( new CallDataInfo(callData, callDataOffset, callDataSize, callDataContextNumber); this.outputDataSpan = MemorySpan.empty(); this.returnDataSpan = MemorySpan.empty(); - this.returnDataTargetInCaller = MemorySpan.empty(); + this.returnDataTargetInCaller = returnDataTargetInCaller; } public boolean isRoot() { diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallStack.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallStack.java index 4074270469..1bbbf9a145 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallStack.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/callstack/CallStack.java @@ -24,6 +24,7 @@ import lombok.experimental.Accessors; import net.consensys.linea.zktracer.module.hub.Hub; import net.consensys.linea.zktracer.types.Bytecode; +import net.consensys.linea.zktracer.types.MemorySpan; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Wei; @@ -57,36 +58,6 @@ public final class CallStack { /** a "pointer" to the currentId {@link CallFrame} in frames. */ private int currentId; - public void newPrecompileResult( - final int hubStamp, - final Bytes precompileResult, - final int returnDataOffset, - final Address precompileAddress) { - - final CallFrame newFrame = - new CallFrame( - CallFrameType.PRECOMPILE_RETURN_DATA, - this.callFrames.size(), - hubStamp, - this.depth, - false, - Wei.ZERO, - 0, - precompileAddress, - -1, - precompileAddress, - -1, - Bytecode.EMPTY, - precompileAddress, - -1, - this.currentId, - precompileResult, - returnDataOffset, - precompileResult.size()); - - this.callFrames.add(newFrame); - } - public void newRootContext( int contextNumber, Address from, @@ -115,7 +86,8 @@ public void newRootContext( callData, 0, callData.size(), - callDataContextNumber); + callDataContextNumber, + MemorySpan.empty()); this.currentId = this.callFrames.size() - 1; } @@ -146,11 +118,11 @@ public void newTransactionCallDataContext(int transactionCallDataContextNumber, callData, 0, callData.size(), - transactionCallDataContextNumber + transactionCallDataContextNumber, // useless // useless // useless - ); + MemorySpan.empty()); this.currentId = this.callFrames.size() - 1; } @@ -213,7 +185,8 @@ public void enter( Bytes inputData, long callDataOffset, long callDataSize, - long callDataContextNumber) { + long callDataContextNumber, + MemorySpan returnDataTargetInCaller) { final int callerId = this.depth == -1 ? -1 : this.currentId; final int newCallFrameId = this.callFrames.size(); this.depth += 1; @@ -241,7 +214,8 @@ public void enter( callerId, callData, callDataOffset, - callDataSize); + callDataSize, + returnDataTargetInCaller); this.callFrames.add(newFrame); this.currentId = newCallFrameId; diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/Stack.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/Stack.java index 0a59f7a165..fb6f799e05 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/Stack.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/Stack.java @@ -15,7 +15,8 @@ package net.consensys.linea.zktracer.runtime.stack; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkArgument; + import lombok.Getter; import net.consensys.linea.zktracer.module.hub.Hub; import net.consensys.linea.zktracer.module.hub.transients.StackHeightCheck; @@ -73,7 +74,8 @@ private void twoZero(MessageFrame frame, StackContext pending) { pending.addLine( new IndexedStackOperation(1, StackItem.pop(height, val1, stackStampWithOffset(0))), - new IndexedStackOperation(2, StackItem.pop(height, val2, stackStampWithOffset(1)))); + new IndexedStackOperation( + 2, StackItem.pop((short) (height - 1), val2, stackStampWithOffset(1)))); } private void zeroOne(MessageFrame ignoredFrame, StackContext pending) { @@ -183,7 +185,7 @@ private void log(MessageFrame frame, StackContext pending) { line2 = new IndexedStackOperation[] { new IndexedStackOperation( - 1, StackItem.pop((short) (height - 2), topic1, stackStampWithOffset(0))), + 1, StackItem.pop((short) (height - 2), topic1, stackStampWithOffset(2))), }; } case LOG2 -> { @@ -237,7 +239,8 @@ private void log(MessageFrame frame, StackContext pending) { } private void copy(MessageFrame frame, StackContext pending) { - if (currentOpcodeData.stackSettings().addressTrimmingInstruction()) { + if (currentOpcodeData.numberOfArguments() == 4) { + // this is the EXTCODECOPY case Bytes val0 = getStack(frame, 0); Bytes val1 = getStack(frame, 1); Bytes val2 = getStack(frame, 2); @@ -251,7 +254,9 @@ private void copy(MessageFrame frame, StackContext pending) { new IndexedStackOperation( 3, StackItem.pop((short) (height - 2), val2, stackStampWithOffset(3))), new IndexedStackOperation(4, StackItem.pop(height, val0, stamp))); + } else { + // this is the CALLDATACOPY, CODECOPY and RETURNDATACOPY case Bytes val1 = getStack(frame, 0); Bytes val2 = getStack(frame, 2); Bytes val3 = getStack(frame, 1); @@ -317,32 +322,31 @@ private void call(MessageFrame frame, StackContext pending) { } private void create(MessageFrame frame, StackContext pending) { - final Bytes val1 = getStack(frame, 1); - final Bytes val2 = getStack(frame, 2); + final Bytes offset = getStack(frame, 1); + final Bytes size = getStack(frame, 2); + final Bytes value = getStack(frame, 0); pending.addLine( new IndexedStackOperation( - 1, StackItem.pop((short) (height - 1), val1, stackStampWithOffset(1))), + 1, StackItem.pop((short) (height - 1), offset, stackStampWithOffset(1))), new IndexedStackOperation( - 2, StackItem.pop((short) (height - 2), val2, stackStampWithOffset(2)))); - // case CREATE2 + 2, StackItem.pop((short) (height - 2), size, stackStampWithOffset(2)))); + if (currentOpcodeData.stackSettings().flag2()) { - final Bytes val3 = getStack(frame, 3); - final Bytes val4 = getStack(frame, 0); + // case CREATE2 + final Bytes salt = getStack(frame, 3); pending.addArmingLine( new IndexedStackOperation( - 2, StackItem.pop((short) (height - 3), val3, stackStampWithOffset(3))), - new IndexedStackOperation(3, StackItem.pop(height, val4, stackStampWithOffset(0))), + 2, StackItem.pop((short) (height - 3), salt, stackStampWithOffset(3))), + new IndexedStackOperation(3, StackItem.pop(height, value, stackStampWithOffset(0))), new IndexedStackOperation( 4, StackItem.push((short) (height - 3), stackStampWithOffset(4)))); } else // case CREATE { - final Bytes val4 = getStack(frame, 0); - pending.addArmingLine( - new IndexedStackOperation(3, StackItem.pop(height, val4, stackStampWithOffset(0))), + new IndexedStackOperation(3, StackItem.pop(height, value, stackStampWithOffset(0))), new IndexedStackOperation( 4, StackItem.push((short) (height - 2), stackStampWithOffset(4)))); } @@ -378,7 +382,7 @@ public void processInstruction(final Hub hub, MessageFrame frame, int stackStamp final short delta = (short) currentOpcodeData.stackSettings().delta(); final short alpha = (short) currentOpcodeData.stackSettings().alpha(); - Preconditions.checkArgument(heightNew == frame.stackSize()); + checkArgument(heightNew == frame.stackSize()); height = (short) frame.stackSize(); heightNew -= delta; heightNew += alpha; @@ -395,7 +399,7 @@ public void processInstruction(final Hub hub, MessageFrame frame, int stackStamp hub.transients().conflation().stackHeightChecksForStackUnderflows().add(checkForUnderflow); if (isNewCheckForStackUnderflow) { final boolean underflowDetected = hub.wcp().callLT(height, delta); - Preconditions.checkArgument(underflowDetected == (status == Status.UNDERFLOW)); + checkArgument(underflowDetected == (status == Status.UNDERFLOW)); } // stack overflow checks happen only if no stack underflow was detected @@ -405,7 +409,7 @@ public void processInstruction(final Hub hub, MessageFrame frame, int stackStamp hub.transients().conflation().stackHeightChecksForStackOverflows().add(checkForOverflow); if (isNewCheckForStackOverflow) { final boolean overflowDetected = hub.wcp().callGT(heightNew, MAX_STACK_SIZE); - Preconditions.checkArgument(overflowDetected == (status == Status.OVERFLOW)); + checkArgument(overflowDetected == (status == Status.OVERFLOW)); } } diff --git a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/StackLine.java b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/StackLine.java index 0cabd2a073..d96cd885eb 100644 --- a/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/StackLine.java +++ b/arithmetization/src/main/java/net/consensys/linea/zktracer/runtime/stack/StackLine.java @@ -65,9 +65,7 @@ public StackLine() { * @return a consolidated 4-elements array of the {@link StackItem} – or no-ops */ public List asStackItems() { - StackItem emptyStackItem = empty(); - StackItem[] r = - new StackItem[] {emptyStackItem, emptyStackItem, emptyStackItem, emptyStackItem}; + final StackItem[] r = new StackItem[] {empty(), empty(), empty(), empty()}; for (IndexedStackOperation item : items) { r[item.i()] = item.it(); } diff --git a/arithmetization/src/main/resources/opcodes.yml b/arithmetization/src/main/resources/opcodes.yml index 3219c829ee..7e163803f2 100644 --- a/arithmetization/src/main/resources/opcodes.yml +++ b/arithmetization/src/main/resources/opcodes.yml @@ -312,6 +312,7 @@ opcodes: nbAdded: 1 nbRemoved: 0 staticGas: G_BASE + flag1: true - mnemonic: CALLER value: 0x33 instructionFamily: CONTEXT @@ -407,7 +408,7 @@ opcodes: nbAdded: 1 nbRemoved: 0 staticGas: G_BASE - flag1: true + flag2: true - mnemonic: EXTCODESIZE value: 0x3b instructionFamily: ACCOUNT @@ -428,7 +429,7 @@ opcodes: delta: 4 nbAdded: 0 nbRemoved: 4 - staticGas: G_VERY_LOW + staticGas: G_ZERO flag4: true billing: byWord: @@ -623,6 +624,7 @@ opcodes: nbAdded: 1 nbRemoved: 1 staticGas: S_HUB + flag1: true - mnemonic: SSTORE value: 0x55 instructionFamily: STORAGE @@ -634,7 +636,7 @@ opcodes: nbRemoved: 2 staticGas: S_HUB forbiddenInStatic: true - flag1: true + flag2: true - mnemonic: JUMP value: 0x56 instructionFamily: JUMP diff --git a/arithmetization/src/test/java/net/consensys/linea/zktracer/instructionprocessing/ImmediateRevert.java b/arithmetization/src/test/java/net/consensys/linea/zktracer/instructionprocessing/ImmediateRevert.java new file mode 100644 index 0000000000..8fb2912ab5 --- /dev/null +++ b/arithmetization/src/test/java/net/consensys/linea/zktracer/instructionprocessing/ImmediateRevert.java @@ -0,0 +1,43 @@ +/* + * Copyright Consensys Software Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package net.consensys.linea.zktracer.instructionprocessing; + +import net.consensys.linea.testing.BytecodeCompiler; +import net.consensys.linea.testing.BytecodeRunner; +import net.consensys.linea.zktracer.opcode.OpCode; +import org.junit.jupiter.api.Test; + +public class ImmediateRevert { + + @Test + void testImmediatePop() { + BytecodeRunner.of(BytecodeCompiler.newProgram().op(OpCode.POP).compile()).run(); + } + + @Test + void testPopWithinCreate() { + BytecodeRunner.of( + BytecodeCompiler.newProgram() + .push(0x50) // POP + .push(0) + .op(OpCode.MSTORE8) + .push(1) // size + .push(0) // offset + .push(1) // value + .op(OpCode.CREATE) + .compile()) + .run(); + } +} diff --git a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mmu/MemoryTests.java b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mmu/MemoryTests.java index 306ef6c24e..81593d1ec9 100644 --- a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mmu/MemoryTests.java +++ b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mmu/MemoryTests.java @@ -103,10 +103,10 @@ void returnAfterLog2() { .push(0x20) .op(OpCode.MSTORE) // - .push(0x20) // size - .push(0x10) // offset .push(0xbbbbbbbb) // topic 2 .push(0xaaaaaaaa) // topic 1 + .push(0x20) // size + .push(0x10) // offset .op(OpCode.LOG2) .push("deadbeef00000000deadbeef33333333deadbeefccccccccdeadbeef11111111") .push(0x40) @@ -133,10 +133,10 @@ void revertAfterLog2() { .push(0x20) .op(OpCode.MSTORE) // - .push(0x20) // size - .push(0x10) // offset .push(0xbbbbbbbb) // topic 2 .push(0xaaaaaaaa) // topic 1 + .push(0x20) // size + .push(0x10) // offset .op(OpCode.LOG2) .push("deadbeef00000000deadbeef33333333deadbeefccccccccdeadbeef11111111") .push(0x40) diff --git a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mxp/MxpTest.java b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mxp/MxpTest.java index ba70e798f0..f3df9f09ca 100644 --- a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mxp/MxpTest.java +++ b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/mxp/MxpTest.java @@ -105,6 +105,7 @@ void testMxpEdgeCaseMXPX() { @Test void testMxpRandom() { + // Testing a random program BytecodeCompiler program = BytecodeCompiler.newProgram(); final int INSTRUCTION_COUNT = 4096; diff --git a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/rlpaddr/TestRlpAddress.java b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/rlpaddr/TestRlpAddress.java index 277b8710f8..84f24a8e71 100644 --- a/arithmetization/src/test/java/net/consensys/linea/zktracer/module/rlpaddr/TestRlpAddress.java +++ b/arithmetization/src/test/java/net/consensys/linea/zktracer/module/rlpaddr/TestRlpAddress.java @@ -41,8 +41,6 @@ public class TestRlpAddress { @Test void randDeployment() { - // final ToyWorld.ToyWorldBuilder world = ToyWorld.builder(); - final KeyPair keyPair = new SECP256K1().generateKeyPair(); final Address senderAddress = Address.extract(Hash.hash(keyPair.getPublicKey().getEncodedBytes())); @@ -52,7 +50,6 @@ void randDeployment() { .nonce(randLong()) .address(senderAddress) .build(); - ; final Bytes initCode = BytecodeCompiler.newProgram().push(1).push(1).op(OpCode.SLT).compile(); @@ -67,8 +64,6 @@ void randDeployment() { .payload(initCode) .build(); - Address deploymentAddress = Address.contractAddress(senderAddress, senderAccount.getNonce()); - ToyExecutionEnvironmentV2.builder() .accounts(List.of(senderAccount)) .transaction(tx) diff --git a/linea-constraints b/linea-constraints index 2bba6a0a49..375917ef0f 160000 --- a/linea-constraints +++ b/linea-constraints @@ -1 +1 @@ -Subproject commit 2bba6a0a4937bb22dea062ecf9e2f8e538b8cb4f +Subproject commit 375917ef0f3908e68898c67b7f47e47b3244d3ad diff --git a/testing/src/main/java/net/consensys/linea/testing/BytecodeCompiler.java b/testing/src/main/java/net/consensys/linea/testing/BytecodeCompiler.java index ca71321783..62a96e50cf 100644 --- a/testing/src/main/java/net/consensys/linea/testing/BytecodeCompiler.java +++ b/testing/src/main/java/net/consensys/linea/testing/BytecodeCompiler.java @@ -15,6 +15,8 @@ package net.consensys.linea.testing; +import static net.consensys.linea.zktracer.module.constants.GlobalConstants.EVM_INST_PUSH1; +import static net.consensys.linea.zktracer.module.constants.GlobalConstants.WORD_SIZE; import static net.consensys.linea.zktracer.types.Conversions.bigIntegerToBytes; import java.io.BufferedReader; @@ -275,10 +277,10 @@ public Bytes compile() { * @return current instance */ public BytecodeCompiler incompletePush(final int w, final byte[] bs) { - Preconditions.condition(w > 0 && w <= 32, "Invalid PUSH width"); + Preconditions.condition(w > 0 && w <= WORD_SIZE, "Invalid PUSH width"); Preconditions.condition(bs.length <= w, "PUSH argument must be smaller than the width"); - this.op(OpCode.of(0x5f + w)); + this.op(OpCode.of(EVM_INST_PUSH1 + w - 1)); this.byteCode.add(Bytes.of(bs)); return this; diff --git a/testing/src/main/java/net/consensys/linea/testing/BytecodeRunner.java b/testing/src/main/java/net/consensys/linea/testing/BytecodeRunner.java index d142746a26..cdc203ddf5 100644 --- a/testing/src/main/java/net/consensys/linea/testing/BytecodeRunner.java +++ b/testing/src/main/java/net/consensys/linea/testing/BytecodeRunner.java @@ -102,8 +102,10 @@ public void run(Wei senderBalance, Long gasLimit, List additionalAcc ToyTransaction.builder() .sender(senderAccount) .to(receiverAccount) + .value(Wei.ONE) .keyPair(keyPair) .gasLimit(selectedGasLimit) + .gasPrice(Wei.of(8)) .build(); List accounts = new ArrayList<>();