EigenDA x Arbitrum Nitro Contracts fork diff

diff: ignored:
+1992
-219
+30160
-129

The original nitro codebase can be found at github.com/OffchainLabs/nitro-contracts. And the fork at github.com/Layr-Labs/nitro-contracts.

Added an addSequencerL2BatchFromEigenDA function which process an EigenDA certificate within the inbox. Certificates are verified within the inbox by calling verifyBlob against the EigenDARollupManager contract to remove a trust assumption on the Arbitrum sequencer.

diff --git OffchainLabs/nitro-contracts/src/bridge/IBridge.sol Layr-Labs/nitro-contracts/src/bridge/IBridge.sol index 1137fcd367ffa85e4ba3ce4597fd5df8763b42dc..efa667092273f9610708ffe4ba8fd3e7e8b66087 100644 --- OffchainLabs/nitro-contracts/src/bridge/IBridge.sol +++ Layr-Labs/nitro-contracts/src/bridge/IBridge.sol @@ -20,7 +20,9 @@ SeparateBatchEvent, /// @notice This batch contains no data NoData, /// @notice The data can be found in the 4844 data blobs on this transaction - Blob + Blob, + /// @notice The data can be found via the blob's certificate + EigenDA }   struct TimeBounds {
diff --git OffchainLabs/nitro-contracts/src/bridge/ISequencerInbox.sol Layr-Labs/nitro-contracts/src/bridge/ISequencerInbox.sol index 47db30f003633e79fc86bcd6d5521c83e740e375..d25cf1774afd33ced8b1a681131525b070c9e82b 100644 --- OffchainLabs/nitro-contracts/src/bridge/ISequencerInbox.sol +++ Layr-Labs/nitro-contracts/src/bridge/ISequencerInbox.sol @@ -9,6 +9,10 @@ import "../libraries/IGasRefunder.sol"; import "./IDelayedMessageProvider.sol"; import "./IBridge.sol"; +import "./IRollupManager.sol"; + +import {EigenDARollupUtils} from "@eigenda/eigenda-utils/libraries/EigenDARollupUtils.sol"; +import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol";   interface ISequencerInbox is IDelayedMessageProvider { struct MaxTimeVariation { @@ -27,6 +31,18 @@ uint256 afterDelayedMessagesRead, IBridge.TimeBounds timeBounds, IBridge.BatchDataLocation dataLocation ); + + struct EigenDACert { + EigenDARollupUtils.BlobVerificationProof blobVerificationProof; + IEigenDAServiceManager.BlobHeader blobHeader; + } + + struct SequenceMetadata { + uint256 sequenceNumber; + uint256 afterDelayedMessagesRead; + uint256 prevMessageCount; + uint256 newMessageCount; + }   event OwnerFunctionCalled(uint256 indexed id);   @@ -83,6 +99,12 @@ /// See: https://github.com/OffchainLabs/nitro/blob/69de0603abf6f900a4128cab7933df60cad54ded/arbstate/das_reader.go // solhint-disable-next-line func-name-mixedcase function ZERO_HEAVY_MESSAGE_HEADER_FLAG() external view returns (bytes1);   + /// @dev If the first data byte after the header has this bit set, + /// then the batch data is an eigenDA message + /// See: https://github.com/Layr-Labs/nitro/blob/2ad088cb5943ec50ed8b521c4681561817a602c5/das/eigenda/eigenda.go + // solhint-disable-next-line func-name-mixedcase + function EIGENDA_MESSAGE_HEADER_FLAG() external view returns (bytes1); + function rollup() external view returns (IOwnable);   function isBatchPoster(address) external view returns (bool); @@ -94,6 +116,8 @@ /// @notice The batch poster manager has the ability to change the batch poster addresses /// This enables the batch poster to do key rotation function batchPosterManager() external view returns (address); + + function eigenDARollupManager() external view returns (IRollupManager);   struct DasKeySetInfo { bool isValidKeyset; @@ -179,7 +203,21 @@ uint256 prevMessageCount, uint256 newMessageCount ) external;   + function addSequencerL2BatchFromEigenDA( + uint256 sequenceNumber, + EigenDACert calldata cert, + IGasRefunder gasRefunder, + uint256 afterDelayedMessagesRead, + uint256 prevMessageCount, + uint256 newMessageCount + ) external; + // ---------- onlyRollupOrOwner functions ---------- + /** + * @notice Set the rollup manager contract address + * @param newRollupManager the new rollup manager contract address + */ + function setEigenDARollupManager(address newRollupManager) external;   /** * @notice Set max delay for sequencer inbox
diff --git OffchainLabs/nitro-contracts/src/bridge/SequencerInbox.sol Layr-Labs/nitro-contracts/src/bridge/SequencerInbox.sol index 16a65e7703ac05c59c5c2d78e625105e887fe3c1..3236f942c788f730a01f423ba9a2930e6c8ec07b 100644 --- OffchainLabs/nitro-contracts/src/bridge/SequencerInbox.sol +++ Layr-Labs/nitro-contracts/src/bridge/SequencerInbox.sol @@ -8,6 +8,7 @@ import { AlreadyInit, HadZeroInit, BadPostUpgradeInit, + NotEOA, NotOrigin, DataTooLarge, DelayedBackwards, @@ -46,6 +47,7 @@ import {IGasRefunder} from "../libraries/IGasRefunder.sol"; import {GasRefundEnabled} from "../libraries/GasRefundEnabled.sol"; import "../libraries/ArbitrumChecker.sol"; import {IERC20Bridge} from "./IERC20Bridge.sol"; +import "./IRollupManager.sol";   /** * @title Accepts batches from the sequencer and adds them to the rollup inbox. @@ -124,6 +126,15 @@ // If the chain this SequencerInbox is deployed on is an Arbitrum chain. bool internal immutable hostChainIsArbitrum = ArbitrumChecker.runningOnArbitrum(); // True if the chain this SequencerInbox is deployed on uses custom fee token bool public immutable isUsingFeeToken; + + /// @inheritdoc ISequencerInbox + bytes1 public constant EIGENDA_MESSAGE_HEADER_FLAG = 0xed; + + // gap used to ensure forward compatiblity with newly introduced storage variables + // from upstream offchainlabs/nitro-contracts. Any newly introduced storage vars + // made in subsequent releases should result in decrementing the gap counter + uint256[38] internal __gap; + IRollupManager public eigenDARollupManager;   constructor( uint256 _maxDataSize, @@ -465,6 +476,71 @@ submitBatchSpendingReport(dataHash, seqMessageIndex, block.basefee, blobGas); } }   + function addSequencerL2BatchFromEigenDA( + uint256 sequenceNumber, + EigenDACert calldata cert, + IGasRefunder gasRefunder, + uint256 afterDelayedMessagesRead, + uint256 prevMessageCount, + uint256 newMessageCount + ) external refundsGas(gasRefunder, IReader4844(address(0))) { + if (msg.sender != tx.origin) revert NotOrigin(); + if (!isBatchPoster[msg.sender]) revert NotBatchPoster(); + if (address(msg.sender).code.length > 0) revert NotEOA(); + // Verify that the blob was actually included before continuing + eigenDARollupManager.verifyBlob(cert.blobHeader, cert.blobVerificationProof); + // Form the EigenDA data hash and get the time bounds + (bytes32 dataHash, IBridge.TimeBounds memory timeBounds) = formEigenDADataHash( + cert, + afterDelayedMessagesRead + ); + + ISequencerInbox.SequenceMetadata memory metadata = ISequencerInbox.SequenceMetadata({ + sequenceNumber: sequenceNumber, + afterDelayedMessagesRead: afterDelayedMessagesRead, + prevMessageCount: prevMessageCount, + newMessageCount: newMessageCount + }); + + // Call a helper function to add the sequencer L2 batch + _addSequencerL2Batch(metadata, dataHash, timeBounds); + } + + function _addSequencerL2Batch( + ISequencerInbox.SequenceMetadata memory sequenceMetadata, + bytes32 dataHash, + IBridge.TimeBounds memory timeBounds + ) internal { + ( + uint256 seqMessageIndex, + bytes32 beforeAcc, + bytes32 delayedAcc, + bytes32 afterAcc + ) = addSequencerL2BatchImpl( + dataHash, + sequenceMetadata.afterDelayedMessagesRead, + 0, + sequenceMetadata.prevMessageCount, + sequenceMetadata.newMessageCount + ); + + uint256 sequenceNumber = sequenceMetadata.sequenceNumber; + // Check the sequence number + if (seqMessageIndex != sequenceNumber && sequenceNumber != ~uint256(0)) { + revert BadSequencerNumber(seqMessageIndex, sequenceNumber); + } + + emit SequencerBatchDelivered( + seqMessageIndex, + beforeAcc, + afterAcc, + delayedAcc, + totalDelayedMessagesRead, + timeBounds, + IBridge.BatchDataLocation.EigenDA + ); + } + function addSequencerL2Batch( uint256 sequenceNumber, bytes calldata data, @@ -630,6 +706,24 @@ block.basefee > 0 ? blobCost / block.basefee : 0 ); }   + /// @dev Form a hash of the eigenDA certificate + /// @param afterDelayedMessagesRead The delayed messages count read up to + /// @return The data hash + /// @return The timebounds within which the message should be processed + function formEigenDADataHash( + ISequencerInbox.EigenDACert calldata cert, + uint256 afterDelayedMessagesRead + ) internal view returns (bytes32, IBridge.TimeBounds memory) { + (bytes memory header, IBridge.TimeBounds memory timeBounds) = packHeader( + afterDelayedMessagesRead + ); + + return ( + keccak256(bytes.concat(header, EIGENDA_MESSAGE_HEADER_FLAG, abi.encode(cert))), + timeBounds + ); + } + /// @dev Submit a batch spending report message so that the batch poster can be reimbursed on the rollup /// This function expect msg.sender is tx.origin, and will always record tx.origin as the spender /// @param dataHash The hash of the message the spending report is being submitted for @@ -790,6 +884,11 @@ /// @inheritdoc ISequencerInbox function setBatchPosterManager(address newBatchPosterManager) external onlyRollupOwner { batchPosterManager = newBatchPosterManager; emit OwnerFunctionCalled(5); + } + + function setEigenDARollupManager(address newRollupManager) external onlyRollupOwner { + eigenDARollupManager = IRollupManager(newRollupManager); + emit OwnerFunctionCalled(6); }   function isValidKeysetHash(bytes32 ksHash) external view returns (bool) {
diff --git OffchainLabs/nitro-contracts/src/libraries/Error.sol Layr-Labs/nitro-contracts/src/libraries/Error.sol index 2eb496e7c7bf29a0455180273bf8502262427817..bdafde1dc357ab888fffc3c2a63b560ceb30424f 100644 --- OffchainLabs/nitro-contracts/src/libraries/Error.sol +++ Layr-Labs/nitro-contracts/src/libraries/Error.sol @@ -158,6 +158,9 @@ /// @dev This can only be called by the batch poster error NotBatchPoster();   +/// @dev This can only be called by an EOA account without EIP-7702 enabled +error NotEOA(); + /// @dev The sequence number provided to this message was inconsistent with the number of batches already included error BadSequencerNumber(uint256 stored, uint256 received);   @@ -166,6 +169,9 @@ error BadSequencerMessageNumber(uint256 stored, uint256 received);   /// @dev Tried to create an already valid Data Availability Service keyset error AlreadyValidDASKeyset(bytes32); + +/// @dev The EigenDA certificate provided to the inbox was stale +error ExpiredEigenDACert(uint256 currentBlock, uint256 l1ReferenceBlock);   /// @dev Tried to use or invalidate an already invalid Data Availability Service keyset error NoSuchKeyset(bytes32);
diff --git OffchainLabs/nitro-contracts/src/mocks/SequencerInboxStub.sol Layr-Labs/nitro-contracts/src/mocks/SequencerInboxStub.sol index 49b317020e106da334c6b626066bf97e5377274a..f3f622cdf85c38b807bc7f35ccb825b30c08eeb4 100644 --- OffchainLabs/nitro-contracts/src/mocks/SequencerInboxStub.sol +++ Layr-Labs/nitro-contracts/src/mocks/SequencerInboxStub.sol @@ -5,8 +5,12 @@ pragma solidity ^0.8.0;   import "../bridge/SequencerInbox.sol"; +import "../bridge/EigenDABlobVerifierL2.sol"; + import "../bridge/IEthBridge.sol"; import {INITIALIZATION_MSG_TYPE} from "../libraries/MessageTypes.sol"; + +import "../bridge/IRollupManager.sol";   contract SequencerInboxStub is SequencerInbox { constructor( @@ -24,6 +28,10 @@ futureBlocks = uint64(maxTimeVariation_.futureBlocks); delaySeconds = uint64(maxTimeVariation_.delaySeconds); futureSeconds = uint64(maxTimeVariation_.futureSeconds); isBatchPoster[sequencer_] = true; + + // inject dummy rollup manager dependency for testing + IRollupManager bv = new EigenDABlobVerifierL2(); + eigenDARollupManager = bv; }   function addInitMessage(uint256 chainId) external {
diff --git OffchainLabs/nitro-contracts/test/foundry/SequencerInbox.t.sol Layr-Labs/nitro-contracts/test/foundry/SequencerInbox.t.sol index 92902d68779946e84e5dc39a54039f1aab00488e..90737b265394fc82c7793bd50f64a62d9418186f 100644 --- OffchainLabs/nitro-contracts/test/foundry/SequencerInbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/SequencerInbox.t.sol @@ -8,6 +8,9 @@ import "../../src/bridge/SequencerInbox.sol"; import {ERC20Bridge} from "../../src/bridge/ERC20Bridge.sol"; import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";   +import "../../src/bridge/EigenDABlobVerifierL2.sol"; +import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; + contract RollupMock { address public immutable owner;   @@ -42,7 +45,7 @@ );   Random RAND = new Random(); address rollupOwner = address(137); - uint256 maxDataSize = 10000; + uint256 maxDataSize = 10_000; ISequencerInbox.MaxTimeVariation maxTimeVariation = ISequencerInbox.MaxTimeVariation({ delayBlocks: 10, @@ -53,8 +56,10 @@ }); address dummyInbox = address(139); address proxyAdmin = address(140); IReader4844 dummyReader4844 = IReader4844(address(137)); + IEigenDAServiceManager dummyEigenDAServiceManager = IEigenDAServiceManager(address(138)); + IRollupManager rollupManager = IRollupManager(address(139));   - uint256 public constant MAX_DATA_SIZE = 117964; + uint256 public constant MAX_DATA_SIZE = 117_964;   function deployRollup(bool isArbHosted) internal returns (SequencerInbox, Bridge) { RollupMock rollupMock = new RollupMock(rollupOwner); @@ -123,15 +128,67 @@ return (seqInbox, bridge); }   + // Split the logic that deals with calculating and emitting the spending report into a separate function because of stack too deep limits + function _handleSpendingReport( + IBridge bridge, + SequencerInbox seqInbox, + uint256 delayedMessagesRead, + bytes32 dataHash, + uint256 sequenceNumber, + bool hostChainIsArbitrum + ) internal { + if (!hostChainIsArbitrum) return; // If not Arbitrum, no need to process this part + + // set 0.1 gwei basefee + uint256 basefee = 100_000_000; + vm.fee(basefee); + // 30 gwei TX L1 fees + uint256 l1Fees = 30_000_000_000; + vm.mockCall( + address(0x6c), + abi.encodeWithSignature("getCurrentTxL1GasFees()"), + abi.encode(l1Fees) + ); + uint256 expectedReportedExtraGas = l1Fees / basefee; + + bytes memory spendingReportMsg = abi.encodePacked( + block.timestamp, + msg.sender, + dataHash, + sequenceNumber, + block.basefee, + uint64(expectedReportedExtraGas) + ); + + // spending report + vm.expectEmit(); + emit MessageDelivered( + delayedMessagesRead, + bridge.delayedInboxAccs(delayedMessagesRead - 1), // directly use the call here to reduce a variable + address(seqInbox), + L1MessageType_batchPostingReport, + tx.origin, + keccak256(spendingReportMsg), + block.basefee, + uint64(block.timestamp) + ); + + // spending report event in seq inbox + vm.expectEmit(); + emit InboxMessageDelivered(delayedMessagesRead, spendingReportMsg); + } + function expectEvents( IBridge bridge, SequencerInbox seqInbox, bytes memory data, bool hostChainIsArbitrum, - bool isUsingFeeToken + bool isUsingFeeToken, + bool isUsingEigenDA ) internal { uint256 delayedMessagesRead = bridge.delayedMessageCount(); uint256 sequenceNumber = bridge.sequencerMessageCount(); + IBridge.TimeBounds memory timeBounds; if (block.timestamp > maxTimeVariation.delaySeconds) { timeBounds.minTimestamp = uint64(block.timestamp - maxTimeVariation.delaySeconds); @@ -141,67 +198,54 @@ if (block.number > maxTimeVariation.delayBlocks) { timeBounds.minBlockNumber = uint64(block.number - maxTimeVariation.delayBlocks); } timeBounds.maxBlockNumber = uint64(block.number + maxTimeVariation.futureBlocks); - bytes32 dataHash = keccak256( - bytes.concat( - abi.encodePacked( - timeBounds.minTimestamp, - timeBounds.maxTimestamp, - timeBounds.minBlockNumber, - timeBounds.maxBlockNumber, - uint64(delayedMessagesRead) - ), - data - ) - ); + + bytes32 dataHash; + + if (isUsingEigenDA) { + dataHash = keccak256( + bytes.concat( + abi.encodePacked( + timeBounds.minTimestamp, + timeBounds.maxTimestamp, + timeBounds.minBlockNumber, + timeBounds.maxBlockNumber, + uint64(delayedMessagesRead) + ), + data + ) + ); + } else { + dataHash = keccak256( + bytes.concat( + abi.encodePacked( + timeBounds.minTimestamp, + timeBounds.maxTimestamp, + timeBounds.minBlockNumber, + timeBounds.maxBlockNumber, + uint64(delayedMessagesRead) + ), + data + ) + ); + }   bytes32 beforeAcc = bytes32(0); bytes32 delayedAcc = bridge.delayedInboxAccs(delayedMessagesRead - 1); bytes32 afterAcc = keccak256(abi.encodePacked(beforeAcc, dataHash, delayedAcc));   - if (!isUsingFeeToken) { - uint256 expectedReportedExtraGas = 0; - if (hostChainIsArbitrum) { - // set 0.1 gwei basefee - uint256 basefee = 100000000; - vm.fee(basefee); - // 30 gwei TX L1 fees - uint256 l1Fees = 30000000000; - vm.mockCall( - address(0x6c), - abi.encodeWithSignature("getCurrentTxL1GasFees()"), - abi.encode(l1Fees) - ); - expectedReportedExtraGas = l1Fees / basefee; - } - - bytes memory spendingReportMsg = abi.encodePacked( - block.timestamp, - msg.sender, + if (!isUsingFeeToken && !isUsingEigenDA) { + _handleSpendingReport( + bridge, + seqInbox, + delayedMessagesRead, dataHash, sequenceNumber, - block.basefee, - uint64(expectedReportedExtraGas) - ); - - // spending report - vm.expectEmit(); - emit MessageDelivered( - delayedMessagesRead, - delayedAcc, - address(seqInbox), - L1MessageType_batchPostingReport, - tx.origin, - keccak256(spendingReportMsg), - block.basefee, - uint64(block.timestamp) + hostChainIsArbitrum ); - - // spending report event in seq inbox - vm.expectEmit(); - emit InboxMessageDelivered(delayedMessagesRead, spendingReportMsg); }   // sequencer batch delivered + vm.expectEmit(); emit SequencerBatchDelivered( sequenceNumber, @@ -210,7 +254,45 @@ afterAcc, delayedAcc, delayedMessagesRead, timeBounds, - IBridge.BatchDataLocation.TxInput + !isUsingEigenDA ? IBridge.BatchDataLocation.TxInput : IBridge.BatchDataLocation.EigenDA + ); + } + + bytes invalidHeaderData = + hex"ab4567890a4567890a4567890a4567890a4567890a4567890a4567890a4567890a4567890a"; + + function testAddSequencerL2BatchFromOrigin_InvalidHeader() public { + (SequencerInbox seqInbox, Bridge bridge) = deployRollup(false); + address delayedInboxSender = address(140); + uint8 delayedInboxKind = 3; + bytes32 messageDataHash = RAND.Bytes32(); + bytes memory data = invalidHeaderData; // ab is not any valid header flag + + vm.prank(dummyInbox); + bridge.enqueueDelayedMessage(delayedInboxKind, delayedInboxSender, messageDataHash); + + uint256 subMessageCount = bridge.sequencerReportedSubMessageCount(); + uint256 sequenceNumber = bridge.sequencerMessageCount(); + uint256 delayedMessagesRead = bridge.delayedMessageCount(); + + // set 60 gwei basefee + uint256 basefee = 60000000000; + vm.fee(basefee); + + vm.prank(tx.origin); + vm.expectRevert( + abi.encodeWithSignature( + "InvalidHeaderFlag(bytes1)", + 0xab00000000000000000000000000000000000000000000000000000000000000 + ) + ); + seqInbox.addSequencerL2BatchFromOrigin( + sequenceNumber, + data, + delayedMessagesRead, + IGasRefunder(address(0)), + subMessageCount, + subMessageCount + 1 ); }   @@ -232,9 +314,9 @@ uint256 sequenceNumber = bridge.sequencerMessageCount(); uint256 delayedMessagesRead = bridge.delayedMessageCount();   // set 60 gwei basefee - uint256 basefee = 60000000000; + uint256 basefee = 60_000_000_000; vm.fee(basefee); - expectEvents(bridge, seqInbox, data, false, false); + expectEvents(bridge, seqInbox, data, false, false, false);   vm.prank(tx.origin); seqInbox.addSequencerL2BatchFromOrigin( @@ -351,7 +433,7 @@ uint256 subMessageCount = bridge.sequencerReportedSubMessageCount(); uint256 sequenceNumber = bridge.sequencerMessageCount(); uint256 delayedMessagesRead = bridge.delayedMessageCount();   - expectEvents(bridge, seqInbox, data, true, false); + expectEvents(bridge, seqInbox, data, true, false, false);   vm.prank(tx.origin); seqInbox.addSequencerL2BatchFromOrigin( @@ -379,10 +461,10 @@ uint256 sequenceNumber = bridge.sequencerMessageCount(); uint256 delayedMessagesRead = bridge.delayedMessageCount();   // set 40 gwei basefee - uint256 basefee = 40000000000; + uint256 basefee = 40_000_000_000; vm.fee(basefee);   - expectEvents(IBridge(address(bridge)), seqInbox, data, true, true); + expectEvents(IBridge(address(bridge)), seqInbox, data, true, true, false);   vm.prank(tx.origin); seqInbox.addSequencerL2BatchFromOrigin( @@ -483,6 +565,131 @@ subMessageCount + 1 ); }   + function testAddSequencerL2BatchFromEigenDA() public { + EigenDABlobVerifierL2 rollupManagerImpl = new EigenDABlobVerifierL2(); + (SequencerInbox seqInbox, Bridge bridge) = deployRollup(false); + // update the dummyEigenDAServiceManager to use the holesky serviceManager contract + + vm.startPrank(rollupOwner); + // deploy rollup + seqInbox.setEigenDARollupManager(address(rollupManagerImpl)); + vm.stopPrank(); + + address delayedInboxSender = address(140); + uint8 delayedInboxKind = 3; + bytes32 messageDataHash = RAND.Bytes32(); + + vm.prank(dummyInbox); + bridge.enqueueDelayedMessage(delayedInboxKind, delayedInboxSender, messageDataHash); + + ( + IEigenDAServiceManager.BlobHeader memory blobHeader, + EigenDARollupUtils.BlobVerificationProof memory blobVerificationProof + ) = readAndParseBlobInfo(); + ISequencerInbox.EigenDACert memory cert = ISequencerInbox.EigenDACert({ + blobHeader: blobHeader, + blobVerificationProof: blobVerificationProof + }); + + bytes memory data = bytes.concat(hex"ed", abi.encode(cert)); + + uint256 subMessageCount = bridge.sequencerReportedSubMessageCount(); + uint256 sequenceNumber = bridge.sequencerMessageCount(); + uint256 delayedMessagesRead = bridge.delayedMessageCount(); + + expectEvents(bridge, seqInbox, data, false, false, true); + + vm.prank(tx.origin); + + seqInbox.addSequencerL2BatchFromEigenDA( + sequenceNumber, + cert, + IGasRefunder(address(0)), + delayedMessagesRead, + subMessageCount, + subMessageCount + 1 + ); + } + + // TODO: put these in jsons later + // create illegal commitment + BN254.G1Point illegalCommitment = + BN254.G1Point({ + X: 11151623676041303181597631684634074376466382703418354161831688442589830350329, + Y: 4222041728992406478862708226745479381252734858741080790666424175645694456140 + }); + + IEigenDAServiceManager.BlobHeader illegalBlobHeader; + + IEigenDAServiceManager.BatchHeader illegalBatchHeader = + IEigenDAServiceManager.BatchHeader({ + blobHeadersRoot: bytes32(0), + quorumNumbers: bytes(""), + signedStakeForQuorums: bytes(""), + referenceBlockNumber: 1 + }); + + IEigenDAServiceManager.BatchMetadata illegalBatchMetadata = + IEigenDAServiceManager.BatchMetadata({ + batchHeader: illegalBatchHeader, + signatoryRecordHash: bytes32(0), + confirmationBlockNumber: 1 + }); + + EigenDARollupUtils.BlobVerificationProof illegalBlobVerificationProof = + EigenDARollupUtils.BlobVerificationProof({ + batchId: 1, + blobIndex: 1, + batchMetadata: illegalBatchMetadata, + inclusionProof: bytes(""), + quorumIndices: bytes("") + }); + + function testAddSequencerL2BatchFrom() public { + // finish filling out the illegalBlobHeader + illegalBlobHeader.commitment = illegalCommitment; + illegalBlobHeader.dataLength = 20; + illegalBlobHeader.quorumBlobParams.push( + IEigenDAServiceManager.QuorumBlobParam({ + quorumNumber: uint8(1), + adversaryThresholdPercentage: uint8(1), + confirmationThresholdPercentage: uint8(1), + chunkLength: uint32(1) + }) + ); + + ISequencerInbox.EigenDACert memory illegalCert = ISequencerInbox.EigenDACert({ + blobHeader: illegalBlobHeader, + blobVerificationProof: illegalBlobVerificationProof + }); + + // change the eigenDAServiceManager to use the holesky testnet contract + (SequencerInbox seqInbox, Bridge bridge) = deployRollup(false); + address delayedInboxSender = address(140); + uint8 delayedInboxKind = 3; + bytes32 messageDataHash = RAND.Bytes32(); + bytes memory data = biggerData; // 00 is BROTLI_MESSAGE_HEADER_FLAG + + vm.prank(dummyInbox); + bridge.enqueueDelayedMessage(delayedInboxKind, delayedInboxSender, messageDataHash); + + uint256 subMessageCount = bridge.sequencerReportedSubMessageCount(); + uint256 sequenceNumber = bridge.sequencerMessageCount(); + uint256 delayedMessagesRead = bridge.delayedMessageCount(); + + vm.prank(tx.origin); + + vm.expectRevert(); + seqInbox.addSequencerL2BatchFromEigenDA( + sequenceNumber, + illegalCert, + IGasRefunder(address(0)), + delayedMessagesRead, + subMessageCount, + subMessageCount + 1 + ); + } + function testPostUpgradeInitAlreadyInit() public returns (SequencerInbox, SequencerInbox) { (SequencerInbox seqInbox, ) = deployRollup(false); SequencerInbox seqInboxImpl = new SequencerInbox(maxDataSize, dummyReader4844, false); @@ -610,5 +817,110 @@ delaySeconds: delaySeconds, futureSeconds: futureSeconds }) ); + } + + function readAndParseBlobInfo() + public + returns ( + IEigenDAServiceManager.BlobHeader memory, + EigenDARollupUtils.BlobVerificationProof memory + ) + { + string memory json = vm.readFile("test/foundry/blob_info/blob_info.json"); + + // parse the blob header + + IEigenDAServiceManager.BlobHeader memory blobHeader; + + BN254.G1Point memory commitment = BN254.G1Point({ + X: uint256(vm.parseJsonInt(json, ".blob_info.blob_header.commitment.x")), + Y: uint256(vm.parseJsonInt(json, ".blob_info.blob_header.commitment.y")) + }); + + blobHeader.commitment = commitment; + blobHeader.dataLength = uint32( + uint256(vm.parseJsonInt(json, ".blob_info.blob_header.data_length")) + ); + + //bytes memory quorumParamsBytes = vm.parseJson(json, ".blob_info.blob_header.blob_quorum_params"); + + // TODO: Parse these from the array, for some reason parsing them reads in the wrong order + IEigenDAServiceManager.QuorumBlobParam[] + memory quorumParams = new IEigenDAServiceManager.QuorumBlobParam[](2); + + quorumParams[0].quorumNumber = 0; + quorumParams[0].adversaryThresholdPercentage = 33; + quorumParams[0].confirmationThresholdPercentage = 55; + quorumParams[0].chunkLength = 1; + + quorumParams[1].quorumNumber = 1; + quorumParams[1].adversaryThresholdPercentage = 33; + quorumParams[1].confirmationThresholdPercentage = 55; + quorumParams[1].chunkLength = 1; + + blobHeader.quorumBlobParams = quorumParams; + + // parse the blob verification proof + + IEigenDAServiceManager.BatchHeader memory batchHeader = IEigenDAServiceManager.BatchHeader({ + blobHeadersRoot: vm.parseJsonBytes32( + json, + ".blob_info.blob_verification_proof.batch_metadata.batch_header.batch_root" + ), + quorumNumbers: vm.parseJsonBytes( + json, + ".blob_info.blob_verification_proof.batch_metadata.batch_header.quorum_numbers" + ), + signedStakeForQuorums: vm.parseJsonBytes( + json, + ".blob_info.blob_verification_proof.batch_metadata.batch_header.quorum_signed_percentages" + ), + referenceBlockNumber: uint32( + uint256( + vm.parseJsonUint( + json, + ".blob_info.blob_verification_proof.batch_metadata.batch_header.reference_block_number" + ) + ) + ) + }); + + IEigenDAServiceManager.BatchMetadata memory batchMetadata = IEigenDAServiceManager + .BatchMetadata({ + batchHeader: batchHeader, + signatoryRecordHash: vm.parseJsonBytes32( + json, + ".blob_info.blob_verification_proof.batch_metadata.signatory_record_hash" + ), + confirmationBlockNumber: uint32( + uint256( + vm.parseJsonUint( + json, + ".blob_info.blob_verification_proof.batch_metadata.confirmation_block_number" + ) + ) + ) + }); + + EigenDARollupUtils.BlobVerificationProof memory blobVerificationProof = EigenDARollupUtils + .BlobVerificationProof({ + batchId: uint32( + uint256(vm.parseJsonUint(json, ".blob_info.blob_verification_proof.batch_id")) + ), + blobIndex: uint32( + uint256(vm.parseJsonUint(json, ".blob_info.blob_verification_proof.blob_index")) + ), + batchMetadata: batchMetadata, + inclusionProof: vm.parseJsonBytes( + json, + ".blob_info.blob_verification_proof.inclusion_proof" + ), + quorumIndices: vm.parseJsonBytes( + json, + ".blob_info.blob_verification_proof.quorum_indexes" + ) + }); + console.logBytes32(keccak256(abi.encode(blobHeader))); + return (blobHeader, blobVerificationProof); } }
diff --git OffchainLabs/nitro-contracts/test/foundry/blob_info/blob_info.json Layr-Labs/nitro-contracts/test/foundry/blob_info/blob_info.json new file mode 100644 index 0000000000000000000000000000000000000000..90b4937af684423bcf1de0a8877e4a029331d7a7 --- /dev/null +++ Layr-Labs/nitro-contracts/test/foundry/blob_info/blob_info.json @@ -0,0 +1,44 @@ +{ + "request_id": "316638323561613266303032306566376366393164666133306461343636386437393163356434383234666338653431333534623839656330353739356162332d33313337333133393335333233373333333633303336333133363333333533303330333133363266333032663333333332663331326633333333326665336230633434323938666331633134396166626634633839393666623932343237616534316534363439623933346361343935393931623738353262383535", + "blob_info": { + "blob_header": { + "commitment": { + "x": "0x2569a1994232d43b210e860d876c0bbc8d7f22dc0b8ae17d4c369ce7c2d33c26", + "y": "0x14f8198412fea43aaeb4a5355600d0fe3f175ea2f5d7246a7c6472c453fcde53" + }, + "data_length": 1, + "blob_quorum_params": [ + { + "quorum_number": 0, + "adversary_threshold_percentage": 33, + "confirmation_threshold_percentage": 55, + "chunk_length": 1 + }, + { + "quorum_number": 1, + "adversary_threshold_percentage": 33, + "confirmation_threshold_percentage": 55, + "chunk_length": 1 + } + ] + }, + "blob_verification_proof": { + "batch_id": 21103, + "blob_index": 1905, + "batch_metadata": { + "batch_header": { + "batch_root": "d627b55c1f307c37d0543562cdb2e1faf907dd98c1e5f94be62785ac30cca851", + "quorum_numbers": "0001", + "quorum_signed_percentages": "6362", + "reference_block_number": 1820787 + }, + "signatory_record_hash": "390703dea190bab4fc41037a72055dfe8ad3df2cf359a15dca3ebe601c4a0bd9", + "fee": "00", + "confirmation_block_number": 1820926, + "batch_header_hash": "f38003c8fed893238c3e8712efe1149333ed86a163fffdb77c98595fa76454aa" + }, + "inclusion_proof": "75ad90fbbde05f97f78dd7908f85a45c4e851cc29b796b70f78cf704a6e32815089c0d4db7fafbb64881a16d7f85e0e8c87129295a31a33e496cde48b1d08c8355754e58189833af2acd177159cd5f433420f335089f657643b85bef9d5701972354f1d752a9d31fce3ca7773c341b8aa729c88a2b3a2bb678c166f563b33f622c587b69c2ec92c998385010f08dc4170a08747c42e23ef429b67cf505a471d0eed3f79adb6a4d781e242ff800c29214f8fbf4f57d7d57ea48082f54e52d7f759afd178572e6986ba7ef6e9050184332eebd04cec473279188ae2a0f780d2ed69a0b17cfa3962bc09162db8b469ae8a38e3db31042338457f765c77f6b28cdd7e14df7b2c40f27f32bd7d4907816fb2655e06414a5b180ade4ebe295662c007428e2141faccaee62f177305df72d1f3b0f8dfc90235272f9a741af4eae6af6dc7bce2ce5f9c820c78fe436beaeef9b6734702cfc3d7863fac39ed52dc3061a1cf4f895c0797e6aff0a6076044102b00663e5e74f5ec53e4621312b98f4c74a7e", + "quorum_indexes": "0001" + } + } +}
diff --git OffchainLabs/nitro-contracts/test/storage/SequencerInbox Layr-Labs/nitro-contracts/test/storage/SequencerInbox index c53e775e3d1e7abe11040213863470bd65a48e59..97c536bb048e34cbb32778345ea1ea812d8759a6 100644 --- OffchainLabs/nitro-contracts/test/storage/SequencerInbox +++ Layr-Labs/nitro-contracts/test/storage/SequencerInbox @@ -1,14 +1,33 @@ + +╭-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|-----------------------------|----------------------------------------------------------|------|--------|-------|----------------------------------------------| ++===============================================================================================================================================================+ | totalDelayedMessagesRead | uint256 | 0 | 0 | 32 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | bridge | contract IBridge | 1 | 0 | 20 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | rollup | contract IOwnable | 2 | 0 | 20 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | isBatchPoster | mapping(address => bool) | 3 | 0 | 32 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | __LEGACY_MAX_TIME_VARIATION | struct ISequencerInbox.MaxTimeVariation | 4 | 0 | 128 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | dasKeySetInfo | mapping(bytes32 => struct ISequencerInbox.DasKeySetInfo) | 8 | 0 | 32 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | isSequencer | mapping(address => bool) | 9 | 0 | 32 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | delayBlocks | uint64 | 10 | 0 | 8 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | futureBlocks | uint64 | 10 | 8 | 8 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | delaySeconds | uint64 | 10 | 16 | 8 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | futureSeconds | uint64 | 10 | 24 | 8 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| | batchPosterManager | address | 11 | 0 | 20 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| +| __gap | uint256[38] | 12 | 0 | 1216 | src/bridge/SequencerInbox.sol:SequencerInbox | +|-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------| +| eigenDARollupManager | contract IRollupManager | 50 | 0 | 20 | src/bridge/SequencerInbox.sol:SequencerInbox | +╰-----------------------------+----------------------------------------------------------+------+--------+-------+----------------------------------------------╯ +

Introduce two new dependency contracts:

  • EigenDABlobVerifierL1: verifies blobs when the rollup parent chain is Ethereum.

  • EigenDABlobVerifierL2: “verifies” blobs when the rollup parent chain isn’t Ethereum. This is effectively a noop since EigenDA blobs can only be verified on Ethereum given required access to the EigenDAServiceManager.

Both of these contracts implement the IRollupManager interface which is referenced via the SequencerInbox.

diff --git OffchainLabs/nitro-contracts/scripts/local-deployment/deployBlobVerifierL1.ts Layr-Labs/nitro-contracts/scripts/local-deployment/deployBlobVerifierL1.ts new file mode 100644 index 0000000000000000000000000000000000000000..ace6f346e04d9ae6f099f9eb35e16bbc08d72819 --- /dev/null +++ Layr-Labs/nitro-contracts/scripts/local-deployment/deployBlobVerifierL1.ts @@ -0,0 +1,62 @@ +import { ethers } from 'hardhat' +import '@nomiclabs/hardhat-ethers' +import { deployBlobVerifierL1 } from '../deploymentUtils' +import { promises as fs } from 'fs' + +async function main() { + /// read env vars needed for deployment + let childChainName = process.env.CHILD_CHAIN_NAME as string + if (!childChainName) { + throw new Error('CHILD_CHAIN_NAME not set') + } + + let deployerPrivKey = process.env.DEPLOYER_PRIVKEY as string + if (!deployerPrivKey) { + throw new Error('DEPLOYER_PRIVKEY not set') + } + + let parentChainRpc = process.env.PARENT_CHAIN_RPC as string + if (!parentChainRpc) { + throw new Error('PARENT_CHAIN_RPC not set') + } + + let eigenDAServiceManagerAddress = process.env + .EIGENDA_SERVICE_MANAGER_ADDRESS as string + if (!eigenDAServiceManagerAddress) { + throw new Error('EIGENDA_SERVICE_MANAGER_ADDRESS not set') + } + + if (!process.env.PARENT_CHAIN_ID) { + throw new Error('PARENT_CHAIN_ID not set') + } + + const deployerWallet = new ethers.Wallet( + deployerPrivKey, + new ethers.providers.JsonRpcProvider(parentChainRpc) + ) + + // deploy templates and rollup creator + const blobVerifierL1 = await deployBlobVerifierL1( + 'EigenDABlobVerifierL1', + deployerWallet, + [eigenDAServiceManagerAddress], + true + ) + console.log('BlobVerifierL1 deployed at', blobVerifierL1.address) + + /// store deployment address + // chain deployment info + const verifierDeploymentInfo = 'blob_verifier_l1_deploy.json' + await fs.writeFile( + verifierDeploymentInfo, + JSON.stringify(blobVerifierL1.address, null, 2), + 'utf8' + ) +} + +main() + .then(() => process.exit(0)) + .catch((error: Error) => { + console.error(error) + process.exit(1) + })
diff --git OffchainLabs/nitro-contracts/src/bridge/EigenDABlobVerifierL1.sol Layr-Labs/nitro-contracts/src/bridge/EigenDABlobVerifierL1.sol new file mode 100644 index 0000000000000000000000000000000000000000..bb3e01708e9dfbf5fc2de004b9183bd7751b1174 --- /dev/null +++ Layr-Labs/nitro-contracts/src/bridge/EigenDABlobVerifierL1.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "./IRollupManager.sol"; +import {ExpiredEigenDACert} from "../libraries/Error.sol"; + +contract EigenDABlobVerifierL1 is IRollupManager { + IEigenDAServiceManager public immutable EIGEN_DA_SERVICE_MANAGER; + uint256 internal constant MAX_CERTIFICATE_DRIFT = 100; + + constructor(address _eigenDAServiceManager) { + EIGEN_DA_SERVICE_MANAGER = IEigenDAServiceManager(_eigenDAServiceManager); + } + + function verifyBlob( + IEigenDAServiceManager.BlobHeader calldata blobHeader, + EigenDARollupUtils.BlobVerificationProof calldata blobVerificationProof + ) external view { + /* + Verify that the certificate is less than 2 epochs old from the L1 confirmation block number + This is to prevent timing attacks where the sequencer could submit an expired or close to expired + certificate which could impact liveness of full nodes as well as the safety of the bridge + */ + if ( + (blobVerificationProof.batchMetadata.confirmationBlockNumber + MAX_CERTIFICATE_DRIFT) < + block.number + ) { + revert ExpiredEigenDACert( + block.number, + blobVerificationProof.batchMetadata.confirmationBlockNumber + MAX_CERTIFICATE_DRIFT + ); + } + + EigenDARollupUtils.verifyBlob(blobHeader, EIGEN_DA_SERVICE_MANAGER, blobVerificationProof); + } +}
diff --git OffchainLabs/nitro-contracts/src/bridge/EigenDABlobVerifierL2.sol Layr-Labs/nitro-contracts/src/bridge/EigenDABlobVerifierL2.sol new file mode 100644 index 0000000000000000000000000000000000000000..b5cdd32bf112290b9419f1ad7cb447aa45347ed5 --- /dev/null +++ Layr-Labs/nitro-contracts/src/bridge/EigenDABlobVerifierL2.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "./IRollupManager.sol"; + +contract EigenDABlobVerifierL2 is IRollupManager { + function verifyBlob( + IEigenDAServiceManager.BlobHeader calldata blobHeader, + EigenDARollupUtils.BlobVerificationProof calldata blobVerificationProof + ) external view { + //EigenDA blob verifcation is only supported on L1 currently + } +}
diff --git OffchainLabs/nitro-contracts/src/bridge/IRollupManager.sol Layr-Labs/nitro-contracts/src/bridge/IRollupManager.sol new file mode 100644 index 0000000000000000000000000000000000000000..41c75777700e518365a0d0d93b0e287053346c47 --- /dev/null +++ Layr-Labs/nitro-contracts/src/bridge/IRollupManager.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import {EigenDARollupUtils} from "@eigenda/eigenda-utils/libraries/EigenDARollupUtils.sol"; +import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol"; + +interface IRollupManager { + function verifyBlob( + IEigenDAServiceManager.BlobHeader calldata blobHeader, + EigenDARollupUtils.BlobVerificationProof calldata blobVerificationProof + ) external view; +}
diff --git OffchainLabs/nitro-contracts/test/foundry/EigenDABlobVerifierL1.t.sol Layr-Labs/nitro-contracts/test/foundry/EigenDABlobVerifierL1.t.sol new file mode 100644 index 0000000000000000000000000000000000000000..5ffeb6b24caf69487e67df844422a81f3f78cd36 --- /dev/null +++ Layr-Labs/nitro-contracts/test/foundry/EigenDABlobVerifierL1.t.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "forge-std/Test.sol"; +import "../../src/bridge/EigenDABlobVerifierL1.sol"; +import "../../src/libraries/Error.sol"; +import {EigenDARollupUtils} from "@eigenda/eigenda-utils/libraries/EigenDARollupUtils.sol"; +import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol"; +import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; +import {SequencerInboxTest} from "./SequencerInbox.t.sol"; +import {ExpiredEigenDACert} from "../../src/libraries/Error.sol"; + +contract EigenDABlobVerifierL1Test is Test { + EigenDABlobVerifierL1 public verifier; + IEigenDAServiceManager dummyEigenDAServiceManager = IEigenDAServiceManager(address(138)); + + SequencerInboxTest inboxTest = new SequencerInboxTest(); + + function setUp() public { + // Deploy the verifier contract with a mock EigenDA Service Manager + verifier = new EigenDABlobVerifierL1(address(dummyEigenDAServiceManager)); + } + + function testCertificateTooOld() public { + ( + IEigenDAServiceManager.BlobHeader memory blobHeader, + EigenDARollupUtils.BlobVerificationProof memory blobVerificationProof + ) = inboxTest.readAndParseBlobInfo(); + + // Set the confirmation block number to be MAX_CERTIFICATE_DRIFT + 1 + blobVerificationProof.batchMetadata.confirmationBlockNumber = 0; + + vm.roll(101); + vm.expectRevert(abi.encodeWithSelector(ExpiredEigenDACert.selector, block.number, 100)); + + verifier.verifyBlob(blobHeader, blobVerificationProof); + } + + function testCertificateWithinSafetyBound() public { + ( + IEigenDAServiceManager.BlobHeader memory blobHeader, + EigenDARollupUtils.BlobVerificationProof memory blobVerificationProof + ) = inboxTest.readAndParseBlobInfo(); + + // Set the confirmation block number to be MAX_CERTIFICATE_DRIFT + 1 + blobVerificationProof.batchMetadata.confirmationBlockNumber = 100; + + vm.roll(101); + vm.expectRevert(bytes("")); + + verifier.verifyBlob(blobHeader, blobVerificationProof); + } +}

Updated rollup creator to:

  • support a freezing access modifier which permanently pauses contract functionality and prohibits users from deploying subsequent parent chain system contracts. This is done to prevent users from utilizing older rollup creators mapped to outdated system contracts.

  • handle the EigenDARollupManager contract address as a constructor argument

Also extended deployment scripts to deploy blob verifier contract based on parent chain context and wire the contract via deployment parameters.

diff --git OffchainLabs/nitro-contracts/scripts/deploymentUtils.ts Layr-Labs/nitro-contracts/scripts/deploymentUtils.ts index 582ae67db25997bc247e8b6ff8da49124cad20b4..64128fe8233bed107df6130c9b274042acf41426 100644 --- OffchainLabs/nitro-contracts/scripts/deploymentUtils.ts +++ Layr-Labs/nitro-contracts/scripts/deploymentUtils.ts @@ -11,6 +11,7 @@ import { ArbOwner__factory, ArbSys__factory, CacheManager__factory, + EigenDABlobVerifierL1__factory, } from '../build/types'   const INIT_CACHE_SIZE = 536870912 @@ -63,6 +64,7 @@ constructorArgs: any[] = [], verify: boolean = true, overrides?: Overrides ): Promise<Contract> { + console.log('Deploying contract EigenDA x Arbitrum', contractName) const factory: ContractFactory = await ethers.getContractFactory(contractName) const connectedFactory: ContractFactory = factory.connect(signer)   @@ -81,17 +83,70 @@ return contract }   +// Deploy blob verifier for the EigendaRollupManager +// argument for rollup creator deployment on L1 +// TODO: This logic will be deprecated in the future in favor of +// embedding verifications into the service manager directl +export async function deployBlobVerifierL1( + contractName: string, + signer: any, + constructorArgs: any[] = [], + verify: boolean = true, + overrides?: Overrides +): Promise<Contract> { + console.log('Deploying contract EigenDA x Arbitrum', contractName) + const eigenDARollupUtils = await deployContract( + 'EigenDARollupUtils', + signer, + [], + verify + ) + console.log('EigenDARollupUtils deployed at', eigenDARollupUtils.address) + + const eigenda_blob_verifier = (await ethers.getContractFactory(contractName, { + libraries: { + EigenDARollupUtils: eigenDARollupUtils.address, + }, + })) as EigenDABlobVerifierL1__factory + + const connectedFactory: ContractFactory = + eigenda_blob_verifier.connect(signer) + + let deploymentArgs = [...constructorArgs] + if (overrides) { + deploymentArgs.push(overrides) + } + + const contract: Contract = await connectedFactory.deploy(...deploymentArgs) + await contract.deployTransaction.wait() + console.log(`New ${contractName} created at address:`, contract.address) + + if (verify) + await verifyContract(contractName, contract.address, constructorArgs) + + return contract +} + // Deploy upgrade executor from imported bytecode export async function deployUpgradeExecutor(signer: any): Promise<Contract> { + console.log('Deploying contract EigenDA x Arbitrum UpgradeExecutor') const upgradeExecutorFac = await ethers.getContractFactory( UpgradeExecutorABI, UpgradeExecutorBytecode ) const connectedFactory: ContractFactory = upgradeExecutorFac.connect(signer) const upgradeExecutor = await connectedFactory.deploy() + await upgradeExecutor.deployTransaction.wait() + console.log('Upgrade executor deployed at', upgradeExecutor.address) return upgradeExecutor }   +const L1ServiceManagers = { + 1: '0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0', // Ethereum + 5: '0xa3b1689Ab85409B15e07d2ED50A6EA9905074Ee5', // Goerli + 17000: '0xD4A7E1Bd8015057293f0D0A557088c286942e84b', // Holesky (testnet) +} + // Function to handle all deployments of core contracts using deployContract function export async function deployAllContracts( signer: any, @@ -99,6 +154,18 @@ maxDataSize: BigNumber, verify: boolean = true ): Promise<Record<string, Contract>> { const isOnArb = await _isRunningOnArbitrum(signer) + const chainId = signer.provider.network.chainId + + // If signer is on L1, deploy EigenDABlobVerifierL1 with EigenDAServiceManager as constructor argument + // If signer is on L2, deploy EigenDABlobVerifierL2; blob verifier is used as eigenDARollupManager as part of rollup creation + const eigenDARollupManager = L1ServiceManagers.hasOwnProperty(chainId) + ? await deployBlobVerifierL1( + 'EigenDABlobVerifierL1', + signer, + [L1ServiceManagers[chainId as keyof typeof L1ServiceManagers]], + verify + ) + : await deployContract('EigenDABlobVerifierL2', signer, [], verify)   const ethBridge = await deployContract('Bridge', signer, [], verify) const reader4844 = isOnArb @@ -227,6 +294,7 @@ verify ) const deployHelper = await deployContract('DeployHelper', signer, [], verify) return { + ethSequencerInbox, bridgeCreator, prover0, proverMem, @@ -241,6 +309,7 @@ validatorUtils, validatorWalletCreator, rollupCreator, deployHelper, + eigenDARollupManager, } }
diff --git OffchainLabs/nitro-contracts/scripts/local-deployment/createRollup.ts Layr-Labs/nitro-contracts/scripts/local-deployment/createRollup.ts new file mode 100644 index 0000000000000000000000000000000000000000..8db1e4988be79a15df73b9c89a3638f905d53297 --- /dev/null +++ Layr-Labs/nitro-contracts/scripts/local-deployment/createRollup.ts @@ -0,0 +1,106 @@ +import { ethers } from 'hardhat' +import '@nomiclabs/hardhat-ethers' +import { deployAllContracts, deployBlobVerifierL1 } from '../deploymentUtils' +import { createRollup } from '../rollupCreation' +import { promises as fs } from 'fs' +import { BigNumber } from 'ethers' +import { RollupAdminLogic__factory } from '../../build/types' + +async function main() { + /// read env vars needed for deployment + let childChainName = process.env.CHILD_CHAIN_NAME as string + if (!childChainName) { + throw new Error('CHILD_CHAIN_NAME not set') + } + + let deployerPrivKey = process.env.DEPLOYER_PRIVKEY as string + if (!deployerPrivKey) { + throw new Error('DEPLOYER_PRIVKEY not set') + } + + let parentChainRpc = process.env.PARENT_CHAIN_RPC as string + if (!parentChainRpc) { + throw new Error('PARENT_CHAIN_RPC not set') + } + + if (!process.env.PARENT_CHAIN_ID) { + throw new Error('PARENT_CHAIN_ID not set') + } + + const deployerWallet = new ethers.Wallet( + deployerPrivKey, + new ethers.providers.JsonRpcProvider(parentChainRpc) + ) + + /// get fee token address, if undefined use address(0) to have ETH as fee token + let feeToken = process.env.FEE_TOKEN_ADDRESS as string + if (!feeToken) { + feeToken = ethers.constants.AddressZero + } + console.log('Fee token address:', feeToken) + + const rollupCreatorAddress = process.env.ROLLUP_CREATOR as string + if (!rollupCreatorAddress) { + throw new Error('ROLLUP_CREATOR not set') + } + const rollupCreatorFac = await ethers.getContractFactory('RollupCreator') + const rollupCreator = rollupCreatorFac.attach(rollupCreatorAddress) + + const eigenDARollupManager = process.env.EIGENDA_ROLLUP_MANAGER as string + if (!eigenDARollupManager) { + throw new Error('EIGENDA_ROLLUP_MANAGER not set') + } + + /// Create rollup + const chainId = (await deployerWallet.provider.getNetwork()).chainId + console.log( + 'Create rollup on top of chain', + chainId, + 'using RollupCreator', + rollupCreator.address + ) + const result = await createRollup( + deployerWallet, + true, + rollupCreator.address, + feeToken, + eigenDARollupManager + ) + + if (!result) { + throw new Error('Rollup creation failed') + } + + const { rollupCreationResult, chainInfo } = result + + /// store deployment address + // chain deployment info + const chainDeploymentInfo = + process.env.CHAIN_DEPLOYMENT_INFO !== undefined + ? process.env.CHAIN_DEPLOYMENT_INFO + : 'deploy.json' + await fs.writeFile( + chainDeploymentInfo, + JSON.stringify(rollupCreationResult, null, 2), + 'utf8' + ) + + // child chain info + chainInfo['chain-name'] = childChainName + const childChainInfo = + process.env.CHILD_CHAIN_INFO !== undefined + ? process.env.CHILD_CHAIN_INFO + : 'l2_chain_info.json' + await fs.writeFile( + childChainInfo, + JSON.stringify([chainInfo], null, 2), + 'utf8' + ) +} + +main() + .then(() => process.exit(0)) + .catch((error: Error) => { + console.error(error) + process.exit(1) + })
diff --git OffchainLabs/nitro-contracts/scripts/local-deployment/deployCreator.ts Layr-Labs/nitro-contracts/scripts/local-deployment/deployCreator.ts new file mode 100644 index 0000000000000000000000000000000000000000..067a575c2567d0ad5835ac48daf73dc5a1e8ad9e --- /dev/null +++ Layr-Labs/nitro-contracts/scripts/local-deployment/deployCreator.ts @@ -0,0 +1,88 @@ +import { ethers } from 'hardhat' +import '@nomiclabs/hardhat-ethers' +import { deployAllContracts, deployBlobVerifierL1 } from '../deploymentUtils' +import { createRollup } from '../rollupCreation' +import { promises as fs } from 'fs' +import { BigNumber } from 'ethers' +import { RollupAdminLogic__factory } from '../../build/types' + +async function main() { + /// read env vars needed for deployment + let childChainName = process.env.CHILD_CHAIN_NAME as string + if (!childChainName) { + throw new Error('CHILD_CHAIN_NAME not set') + } + + let deployerPrivKey = process.env.DEPLOYER_PRIVKEY as string + if (!deployerPrivKey) { + throw new Error('DEPLOYER_PRIVKEY not set') + } + + let parentChainRpc = process.env.PARENT_CHAIN_RPC as string + if (!parentChainRpc) { + throw new Error('PARENT_CHAIN_RPC not set') + } + + if (!process.env.PARENT_CHAIN_ID) { + throw new Error('PARENT_CHAIN_ID not set') + } + + const deployerWallet = new ethers.Wallet( + deployerPrivKey, + new ethers.providers.JsonRpcProvider(parentChainRpc) + ) + + const maxDataSize = + process.env.MAX_DATA_SIZE !== undefined + ? ethers.BigNumber.from(process.env.MAX_DATA_SIZE) + : ethers.BigNumber.from(117964) + + /// get fee token address, if undefined use address(0) to have ETH as fee token + let feeToken = process.env.FEE_TOKEN_ADDRESS as string + if (!feeToken) { + feeToken = ethers.constants.AddressZero + } + console.log('Fee token address:', feeToken) + + // deploy templates and rollup creator + console.log('Deploy RollupCreator') + + const contracts = await deployAllContracts(deployerWallet, maxDataSize, false) + + console.log('Set templates on the Rollup Creator') + await ( + await contracts.rollupCreator.setTemplates( + contracts.bridgeCreator.address, + contracts.osp.address, + contracts.challengeManager.address, + contracts.rollupAdmin.address, + contracts.rollupUser.address, + contracts.upgradeExecutor.address, + contracts.validatorUtils.address, + contracts.validatorWalletCreator.address, + contracts.deployHelper.address, + { gasLimit: BigNumber.from('300000') } + ) + ).wait() + + console.log('Rollup creator is ready for rollup creation') + + /// store deployment address + // chain deployment info + const chainDeploymentInfo = + process.env.CHAIN_DEPLOYMENT_INFO !== undefined + ? process.env.CHAIN_DEPLOYMENT_INFO + : 'rollupCreatorContracts.json' + await fs.writeFile( + chainDeploymentInfo, + JSON.stringify(contracts, null, 2), + 'utf8' + ) +} + +main() + .then(() => process.exit(0)) + .catch((error: Error) => { + console.error(error) + process.exit(1) + })
diff --git OffchainLabs/nitro-contracts/scripts/local-deployment/deployCreatorAndCreateRollup.ts Layr-Labs/nitro-contracts/scripts/local-deployment/deployCreatorAndCreateRollup.ts index 1a63b2f76841e73ab47b7c8b4d02482bc0bad6ba..1705f80c726dde0365e055fa02c639933e60818c 100644 --- OffchainLabs/nitro-contracts/scripts/local-deployment/deployCreatorAndCreateRollup.ts +++ Layr-Labs/nitro-contracts/scripts/local-deployment/deployCreatorAndCreateRollup.ts @@ -74,7 +74,8 @@ const result = await createRollup( deployerWallet, true, contracts.rollupCreator.address, - feeToken + feeToken, + contracts.eigenDARollupManager.address )   if (!result) {
diff --git OffchainLabs/nitro-contracts/scripts/rollupCreation.ts Layr-Labs/nitro-contracts/scripts/rollupCreation.ts index e70b82dcb38567f619d6f9b1763de67118ca621d..36d866bffd4ae91a6e46020ea6bdcc015737d82a 100644 --- OffchainLabs/nitro-contracts/scripts/rollupCreation.ts +++ Layr-Labs/nitro-contracts/scripts/rollupCreation.ts @@ -61,7 +61,8 @@ export async function createRollup( signer: Signer, isDevDeployment: boolean, rollupCreatorAddress: string, - feeToken: string + feeToken: string, + eigenDARollupManager: string ): Promise<{ rollupCreationResult: RollupCreationResult chainInfo: ChainInfo @@ -101,7 +102,11 @@ // Call the createRollup function console.log('Calling createRollup to generate a new rollup ...') const deployParams = isDevDeployment - ? await _getDevRollupConfig(feeToken, validatorWalletCreator) + ? await _getDevRollupConfig( + eigenDARollupManager, + feeToken, + validatorWalletCreator + ) : { config: config.rollupConfig, validators: config.validators, @@ -111,6 +116,7 @@ deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FER_PER_GAS, batchPosters: config.batchPosters, batchPosterManager: config.batchPosterManager, + eigenDARollupManager: eigenDARollupManager, }   const createRollupTx = await rollupCreator.createRollup(deployParams, { @@ -229,6 +235,7 @@ return null }   async function _getDevRollupConfig( + rollupManager: string, feeToken: string, validatorWalletCreator: string ) { @@ -329,6 +336,7 @@ deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FER_PER_GAS, batchPosters: batchPosters, batchPosterManager: batchPosterManager, + eigenDARollupManager: rollupManager, }   function _createValidatorAddress(
diff --git OffchainLabs/nitro-contracts/src/rollup/RollupCreator.sol Layr-Labs/nitro-contracts/src/rollup/RollupCreator.sol index 61351cfe7fc4632ef611015c2688762de1a1a0ac..79a51737d0d0538d582c84095733486c3017a6db 100644 --- OffchainLabs/nitro-contracts/src/rollup/RollupCreator.sol +++ Layr-Labs/nitro-contracts/src/rollup/RollupCreator.sol @@ -40,9 +40,19 @@ uint256 maxDataSize; address nativeToken; bool deployFactoriesToL2; uint256 maxFeePerGasForRetryables; - //// @dev The address of the batch poster, not used when set to zero address address[] batchPosters; address batchPosterManager; + address eigenDARollupManager; + } + + modifier onlyUnfrozen() { + require(!deploymentFrozen, "Deployment no longer permitted from this RollupCreator"); + _; + } + + modifier onlyOnce() { + require(!templatesSet, "Templates already set"); + _; }   BridgeCreator public bridgeCreator; @@ -57,6 +67,9 @@ address public validatorWalletCreator;   DeployHelper public l2FactoriesDeployer;   + bool public templatesSet; + bool public deploymentFrozen; + constructor() Ownable() {}   // creator receives back excess fees (for deploying L2 factories) so it can refund the caller @@ -72,7 +85,7 @@ IUpgradeExecutor _upgradeExecutorLogic, address _validatorUtils, address _validatorWalletCreator, DeployHelper _l2FactoriesDeployer - ) external onlyOwner { + ) external onlyOwner onlyOnce { bridgeCreator = _bridgeCreator; osp = _osp; challengeManagerTemplate = _challengeManagerLogic; @@ -82,6 +95,8 @@ upgradeExecutorLogic = _upgradeExecutorLogic; validatorUtils = _validatorUtils; validatorWalletCreator = _validatorWalletCreator; l2FactoriesDeployer = _l2FactoriesDeployer; + + templatesSet = true; emit TemplatesUpdated(); }   @@ -92,11 +107,11 @@ * @dev - UpgradeExecutor should be the owner of rollup * @dev - UpgradeExecutor should be the owner of proxyAdmin which manages bridge contracts * @dev - config.rollupOwner should have executor role on upgradeExecutor * @dev - Bridge should have a single inbox and outbox - * @dev - Validators and batch poster should be set if provided + * @dev - Validators, batch posters and batch poster manager should be set if provided * @param deployParams The parameters for the rollup deployment. It consists of: * - config The configuration for the rollup - * - batchPoster The address of the batch poster, not used when set to zero address * - validators The list of validator addresses, not used when set to empty list + * - maxDataSize Max size of the calldata that can be posted * - nativeToken Address of the custom fee token used by rollup. If rollup is ETH-based address(0) should be provided * - deployFactoriesToL2 Whether to deploy L2 factories using retryable tickets. If true, retryables need to be paid for in native currency. * Deploying factories via retryable tickets at rollup creation time is the most reliable method to do it since it @@ -104,12 +119,15 @@ * doesn't require paying the L1 gas. If deployment is not done as part of rollup creation TX, there is a risk that * anyone can try to deploy factories and potentially burn the nonce 0 (ie. due to gas price spike when doing direct * L2 TX). That would mean we permanently lost capability to deploy deterministic factory at expected address. * - maxFeePerGasForRetryables price bid for L2 execution. - * - dataHashReader The address of the data hash reader used to read blob hashes + * - batchPosters The list of batch poster addresses, not used when set to empty list + * - batchPosterManager The address which has the ability to rotate batch poster keys + * - eigenDARollupManager The address of the EigenDABlobVerifier contract * @return The address of the newly created rollup */ function createRollup(RollupDeploymentParams memory deployParams) public payable + onlyUnfrozen returns (address) { { @@ -196,6 +214,9 @@ if (deployParams.batchPosterManager != address(0)) { bridgeContracts.sequencerInbox.setBatchPosterManager(deployParams.batchPosterManager); }   + // Setting EigenDAServiceManager and EigenDARollupManager + bridgeContracts.sequencerInbox.setEigenDARollupManager(deployParams.eigenDARollupManager); + // Call setValidator on the newly created rollup contract just if validator set is not empty if (deployParams.validators.length != 0) { bool[] memory _vals = new bool[](deployParams.validators.length); @@ -230,6 +251,10 @@ address(validatorUtils), address(validatorWalletCreator) ); return address(rollup); + } + + function freezeDeployment() external onlyOwner { + deploymentFrozen = true; }   function _deployUpgradeExecutor(address rollupOwner, ProxyAdmin proxyAdmin)
diff --git OffchainLabs/nitro-contracts/test/foundry/RollupCreator.t.sol Layr-Labs/nitro-contracts/test/foundry/RollupCreator.t.sol index 68b8ebe243219242cf2a41f1f2220b6d6ae324c0..18db81b45e6f019bf6b9ed3693062c48a55e5791 100644 --- OffchainLabs/nitro-contracts/test/foundry/RollupCreator.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/RollupCreator.t.sol @@ -28,6 +28,8 @@ IRollupAdmin public rollupAdmin; IRollupUser public rollupUser; DeployHelper public deployHelper; IReader4844 dummyReader4844 = IReader4844(address(137)); + IEigenDAServiceManager dummyEigenDAServiceManager = IEigenDAServiceManager(address(138)); + IRollupManager rollupManager = IRollupManager(address(139));   // 1 gwei uint256 public constant MAX_FEE_PER_GAS = 1_000_000_000; @@ -125,6 +127,9 @@ address[] memory validators = new address[](2); validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2");   + address eigenDASvcManager = makeAddr("eigenDASvcManager"); + address eigenDARollupManager = makeAddr("rollupManager"); + RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator .RollupDeploymentParams({ config: config, @@ -134,8 +139,10 @@ maxDataSize: MAX_DATA_SIZE, nativeToken: address(0), deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager + batchPosterManager: batchPosterManager, + eigenDARollupManager: eigenDARollupManager }); + address rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams ); @@ -280,6 +287,7 @@ address batchPosterManager = makeAddr("batch poster manager"); address[] memory validators = new address[](2); validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2"); + address eigenDARollupManager = makeAddr("rollupManager");   RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator .RollupDeploymentParams({ @@ -290,7 +298,8 @@ maxDataSize: MAX_DATA_SIZE, nativeToken: nativeToken, deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager + batchPosterManager: batchPosterManager, + eigenDARollupManager: eigenDARollupManager });   address rollupAddress = rollupCreator.createRollup(deployParams); @@ -398,6 +407,101 @@ "Invalid executor role" ); }   + function test_freezeDeployment() public { + vm.startPrank(deployer); + + rollupCreator.freezeDeployment(); + assertTrue(rollupCreator.deploymentFrozen(), "rollupCreator not frozen"); + + ISequencerInbox.MaxTimeVariation memory timeVars = ISequencerInbox.MaxTimeVariation( + ((60 * 60 * 24) / 15), + 12, + 60 * 60 * 24, + 60 * 60 + ); + Config memory config = Config({ + confirmPeriodBlocks: 20, + extraChallengeTimeBlocks: 200, + stakeToken: address(0), + baseStake: 1000, + wasmModuleRoot: keccak256("wasm"), + owner: rollupOwner, + loserStakeEscrow: address(200), + chainId: 1337, + chainConfig: "abc", + genesisBlockNum: 15_000_000, + sequencerInboxMaxTimeVariation: timeVars + }); + + // prepare funds + uint256 factoryDeploymentFunds = 1 ether; + vm.deal(deployer, factoryDeploymentFunds); + + /// deploy rollup + address[] memory batchPosters = new address[](1); + batchPosters[0] = makeAddr("batch poster 1"); + address batchPosterManager = makeAddr("batch poster manager"); + address[] memory validators = new address[](2); + validators[0] = makeAddr("validator1"); + validators[1] = makeAddr("validator2"); + + address eigenDARollupManager = makeAddr("rollupManager"); + + RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator + .RollupDeploymentParams({ + config: config, + batchPosters: batchPosters, + validators: validators, + maxDataSize: MAX_DATA_SIZE, + nativeToken: address(0), + deployFactoriesToL2: true, + maxFeePerGasForRetryables: MAX_FEE_PER_GAS, + batchPosterManager: batchPosterManager, + eigenDARollupManager: eigenDARollupManager + }); + + vm.expectRevert("Deployment no longer permitted from this RollupCreator"); + rollupCreator.createRollup{value: factoryDeploymentFunds}(deployParams); + + vm.stopPrank(); + } + + function test_setTemplates_onlyOnce() public { + vm.startPrank(deployer); + + BridgeCreator bridgeCreator = new BridgeCreator(ethBasedTemplates, erc20BasedTemplates); + + IUpgradeExecutor upgradeExecutorLogic = new UpgradeExecutorMock(); + + ( + IOneStepProofEntry ospEntry, + IChallengeManager challengeManager, + IRollupAdmin _rollupAdmin, + IRollupUser _rollupUser + ) = _prepareRollupDeployment(); + + rollupAdmin = _rollupAdmin; + rollupUser = _rollupUser; + + ValidatorUtils validatorUtils = new ValidatorUtils(); + ValidatorWalletCreator validatorWalletCreator = new ValidatorWalletCreator(); + + vm.expectRevert("Templates already set"); + rollupCreator.setTemplates( + bridgeCreator, + ospEntry, + challengeManager, + _rollupAdmin, + _rollupUser, + upgradeExecutorLogic, + address(validatorUtils), + address(validatorWalletCreator), + deployHelper + ); + + vm.stopPrank(); + } + function test_upgrade() public { vm.startPrank(deployer);   @@ -433,6 +537,7 @@ address batchPosterManager = makeAddr("batch poster manager"); address[] memory validators = new address[](2); validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2"); + address eigenDARollupManager = makeAddr("rollupManager");   RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator .RollupDeploymentParams({ @@ -443,7 +548,8 @@ maxDataSize: MAX_DATA_SIZE, nativeToken: address(0), deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager + batchPosterManager: batchPosterManager, + eigenDARollupManager: eigenDARollupManager }); address rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams

Extended the one step prover HostIO to process a polynomial opening proof for an EigenDA preimage type using the BN254 curve. Since the pairing requires points on BN254’s G2 group, which are inaccessible on-chain, we introduce a new value (gamma) which is a hash generated off-chain.

diff --git OffchainLabs/nitro-contracts/src/osp/OneStepProverHostIo.sol Layr-Labs/nitro-contracts/src/osp/OneStepProverHostIo.sol index f5f124d2def15fbefe81dc952f191700187fe6ce..77dca1b7f6c95fe8df82a06d08ebeaf2d82ab662 100644 --- OffchainLabs/nitro-contracts/src/osp/OneStepProverHostIo.sol +++ Layr-Labs/nitro-contracts/src/osp/OneStepProverHostIo.sol @@ -14,6 +14,8 @@ import "./IOneStepProver.sol"; import "../bridge/Messages.sol"; import "../bridge/IBridge.sol";   +import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; + contract OneStepProverHostIo is IOneStepProver { using GlobalStateLib for GlobalState; using MachineLib for Machine; @@ -29,6 +31,87 @@ uint256 private constant INBOX_NUM = 2; uint64 private constant INBOX_HEADER_LEN = 40; uint64 private constant DELAYED_HEADER_LEN = 112 + 1;   + using BN254 for uint256[4]; + using BN254 for uint256[3]; + using BN254 for uint256[12]; + + // AlphaG1 + // This is from the SRS points being used. + // This is the point at index 1, since index 0 is the generator value of the G1 group. + BN254.G1Point private ALPHA_G1 = + BN254.G1Point( + 5421624913032980671919055010798735843841011930764711817607050648427876929258, + 12995821280260994872112541311010834261076556242291585164372488699033268245381 + ); + + function computeGamma( + uint256 z, + uint256 y, + uint256[2] memory p, + uint256[4] memory alpha_minus_z_g2, + uint256[2] memory proof, + BN254.G1Point memory alpha_minus_z_g1 + ) internal pure returns (uint256) { + // Encode the variables and compute the keccak256 hash + bytes32 hash = keccak256( + abi.encodePacked( + z, + y, + p[0], + p[1], + alpha_minus_z_g2[0], + alpha_minus_z_g2[1], + alpha_minus_z_g2[2], + alpha_minus_z_g2[3], + proof[0], + proof[1], + alpha_minus_z_g1.X, + alpha_minus_z_g1.Y + ) + ); + return uint256(hash) % BN254.FR_MODULUS; + } + + // e((P - y) + gamma . (alpha - z), G2) = e((Q + gamma), (alpha - z)) + function VerifyKzgProofWithG1Equivalence( + uint256[2] memory commitment, + uint256 y, + uint256[2] memory proof, + uint256 z, + uint256[4] memory alpha_minus_z_g2 + ) public view returns (bool) { + BN254.G1Point memory yG1Neg = BN254.negate(BN254.scalar_mul(BN254.generatorG1(), y)); + BN254.G1Point memory P_minus_y = BN254.plus( + BN254.G1Point(commitment[0], commitment[1]), + yG1Neg + ); + + // zG1 + BN254.G1Point memory zG1Neg = BN254.negate(BN254.scalar_mul(BN254.generatorG1(), z)); + + // (alphaG1 - zG1) + BN254.G1Point memory alpha_minus_z_g1 = BN254.plus(ALPHA_G1, zG1Neg); + + // gamma + uint256 gamma = computeGamma(z, y, commitment, alpha_minus_z_g2, proof, alpha_minus_z_g1); + + // gamma . (alpha - z)G1 + BN254.G1Point memory gamma_alpha_minus_z_g1 = BN254.scalar_mul(alpha_minus_z_g1, gamma); + + // gammaG1 + BN254.G1Point memory gammaG1 = BN254.scalar_mul(BN254.generatorG1(), gamma); + + // Q + gamma + BN254.G1Point memory q_plus_gamma = BN254.plus(BN254.G1Point(proof[0], proof[1]), gammaG1); + BN254.G1Point memory lhsG1 = BN254.plus(P_minus_y, gamma_alpha_minus_z_g1); + // The order is switched in the arbitrator already. It is passed as x_c1, x_c0, y_c1, y_c0 + BN254.G2Point memory alpha_minus_z_g2_point = BN254.G2Point( + [alpha_minus_z_g2[0], alpha_minus_z_g2[1]], + [alpha_minus_z_g2[2], alpha_minus_z_g2[3]] + ); + return BN254.pairing(lhsG1, BN254.negGeneratorG2(), q_plus_gamma, alpha_minus_z_g2_point); + } + function setLeafByte( bytes32 oldLeaf, uint256 idx, @@ -125,6 +208,12 @@ require(modExpOutput.length == 32, "MODEXP_WRONG_LENGTH"); return uint256(bytes32(modExpOutput)); }   + uint256 internal constant BN_254_PRIMITIVE_ROOT_OF_UNITY = + 19103219067921713944291392827692070036145651957329286315305642004821462161904; + + // see: https://github.com/Layr-Labs/eigenda/blob/master/disperser/apiserver/server.go#L35 + uint256 internal constant eigenDAMaxFieldElementsPerBlob = (2 * 1024 * 1024) / 32; + function executeReadPreImage( ExecutionContext calldata, Machine memory mach, @@ -236,6 +325,92 @@ require(bytes32(kzgProof[32:64]) == bytes32(z), "KZG_PROOF_WRONG_Z");   extracted = kzgProof[64:96]; } + } else if (inst.argumentData == 3) { + // The machine is asking for a EigenDA versioned hash preimage + + require(proofType == 0, "UNKNOWN_EIGENDA_PREIMAGE_PROOF"); + + bytes calldata kzgProof = proof[proofOffset:]; + + // NOTE we are expecting the following layout for our proof data, similar + // to that expected for the point evaluation precompile + // [0:32] - evaluation point + // [32:64] - expected output + // [64:192] - g2TauMinusG2z + // [192:256] - kzg commitment (g1 point) + // [256:320] - proof (g1 point) + // [320:352] - preimage length + + { + uint256[2] memory kzgCommitment = [ + uint256(bytes32(kzgProof[192:224])), + uint256(bytes32(kzgProof[224:256])) + ]; + uint256[4] memory alphaMinusG2 = [ + uint256(bytes32(kzgProof[64:96])), + uint256(bytes32(kzgProof[96:128])), + uint256(bytes32(kzgProof[128:160])), + uint256(bytes32(kzgProof[160:192])) + ]; + uint256[2] memory proofUint256 = [ + uint256(bytes32(kzgProof[256:288])), + uint256(bytes32(kzgProof[288:320])) + ]; + uint256 z = uint256(bytes32(kzgProof[0:32])); + uint256 y = uint256(bytes32(kzgProof[32:64])); + uint32 length_u32 = uint32(uint256(bytes32(kzgProof[320:352]))); + + require(kzgCommitment[0] < BN254.FP_MODULUS, "COMMIT_X_LARGER_THAN_FIELD"); + require(kzgCommitment[1] < BN254.FP_MODULUS, "COMMIT_Y_LARGER_THAN_FIELD"); + + require(proofUint256[0] < BN254.FP_MODULUS, "PROOF_X_LARGER_THAN_FIELD"); + require(proofUint256[1] < BN254.FP_MODULUS, "PROOF_Y_LARGER_THAN_FIELD"); + + require(z < BN254.FR_MODULUS, "Z_LARGER_THAN_FIELD"); + require(y < BN254.FR_MODULUS, "Y_LARGER_THAN_FIELD"); + + require( + keccak256(abi.encodePacked(kzgProof[192:256], length_u32)) == leafContents, + "BN254_KZG_PROOF_WRONG_HASH" + ); + + // must be valid proof + require( + VerifyKzgProofWithG1Equivalence( + kzgCommitment, + y, + proofUint256, + z, + alphaMinusG2 + ), + "INVALID_BN254_KZG_PROOF" + ); + } + + // read the preimage length + uint32 preimage_length = uint32(uint256(bytes32(kzgProof[320:352]))); + + // If preimageOffset is greater than or equal to the blob size, leave extracted empty and call it here. + if (preimageOffset < preimage_length) { + // preimageOffset was required to be 32 byte aligned above + uint256 tmp = preimageOffset / 32; + // First, we get the root of unity of order 2**fieldElementsPerBlob. + // We start with a root of unity of order 2**32 and then raise it to + // the power of (2**32)/fieldElementsPerBlob to get root of unity we need. + uint256 rootOfUnityPower = ((1 << 28) / preimage_length) * 32; + // Then, we raise the root of unity to the power of bitReversedIndex, + // to retrieve this word of the KZG commitment. + rootOfUnityPower *= tmp; + // z is the point the polynomial is evaluated at to retrieve this word of data + uint256 z = modExp256( + BN_254_PRIMITIVE_ROOT_OF_UNITY, + rootOfUnityPower, + BN254.FR_MODULUS + ); + require(bytes32(kzgProof[0:32]) == bytes32(z), "KZG_PROOF_WRONG_Z"); + + extracted = kzgProof[32:64]; + } } else { revert("UNKNOWN_PREIMAGE_TYPE"); } @@ -645,5 +820,21 @@ revert("INVALID_MEMORY_OPCODE"); }   impl(execCtx, mach, mod, inst, proof); + } + + // G2_SRS_1 + + //note might be useful to give back to the bn library + uint256 internal constant G2Taux1 = + 21039730876973405969844107393779063362038454413254731404052240341412356318284; + uint256 internal constant G2Taux0 = + 7912312892787135728292535536655271843828059318189722219035249994421084560563; + uint256 internal constant G2Tauy1 = + 7586489485579523767759120334904353546627445333297951253230866312564920951171; + uint256 internal constant G2Tauy0 = + 18697407556011630376420900106252341752488547575648825575049647403852275261247; + + function g2Tau() internal pure returns (BN254.G2Point memory) { + return BN254.G2Point({X: [G2Taux1, G2Taux0], Y: [G2Tauy1, G2Tauy0]}); } }
diff --git OffchainLabs/nitro-contracts/test/foundry/Bn254KZG.t.sol Layr-Labs/nitro-contracts/test/foundry/Bn254KZG.t.sol new file mode 100644 index 0000000000000000000000000000000000000000..26d0296ebce1f98628c87201748885f41f4fdffc --- /dev/null +++ Layr-Labs/nitro-contracts/test/foundry/Bn254KZG.t.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import "../../src/osp/OneStepProverHostIo.sol"; +import "forge-std/Test.sol"; + +contract VerifyKzgBN245Commitment is Test { + OneStepProverHostIo public osp; + + function setUp() public { + osp = new OneStepProverHostIo(); + } + + function testVerifyCommitment() public { + uint256 commitX = 19070058680970706162154662779699659917241938423048978712039328696898981234708; + uint256 commitY = 11823711927945062212181456259672826202645633805996688691575607391116183704220; + uint256 evaluationY = 124448554745810004944228143885327110275920855486363883336842102793103679599; + + uint256[2] memory commit = [commitX, commitY]; + + uint256 proofX = 3494873036786265278705899204171091912768379376170087008335233101540628332609; + uint256 proofY = 8608960508439403080401521741368234568803206554328273041427052980854260749148; + + uint256[2] memory proofArray = [proofX, proofY]; + + uint256 z = 1; + + uint256 alphaMinusZG2x0 = 3835064393148581205232814970864979673787834430112792762416742772525023890054; + uint256 alphaMinusZG2x1 = 21870966891160875056996525725939836296469570838755910925871109003952938425221; + uint256 alphaMinusZG2y0 = 1003462328537511635851373881294094113215131010279982437048829782051523402493; + uint256 alphaMinusZG2y1 = 1812648663781569755056741449255719259077856056456933971984290530760064403988; + + uint256[4] memory alphaMinusZG2 = [ + alphaMinusZG2x0, + alphaMinusZG2x1, + alphaMinusZG2y0, + alphaMinusZG2y1 + ]; + + assertTrue( + osp.VerifyKzgProofWithG1Equivalence(commit, evaluationY, proofArray, z, alphaMinusZG2) + ); + + // Test with bad z which should fail + + uint256 bad_z = 69; + assertFalse( + osp.VerifyKzgProofWithG1Equivalence( + commit, + evaluationY, + proofArray, + bad_z, + alphaMinusZG2 + ) + ); + } +}

Updated to latest to solidity (v8.12.0) to ensure compatibility with [@eigenda-utils](https://www.npmjs.com/package/@eigenda/eigenda-utils) library. Also changed repo NPM package namespace to that of EigenDA.

diff --git OffchainLabs/nitro-contracts/foundry.toml Layr-Labs/nitro-contracts/foundry.toml index 1bb66e837965d7b9d74733e6e78122dd8b3feade..a74a7db239c1d27ecac106b97aecced2bde3ff49 100644 --- OffchainLabs/nitro-contracts/foundry.toml +++ Layr-Labs/nitro-contracts/foundry.toml @@ -7,11 +7,13 @@ cache_path = 'forge-cache/sol' optimizer = true optimizer_runs = 100 via_ir = false -solc_version = '0.8.9' +solc_version = '0.8.12' remappings = ['ds-test/=lib/forge-std/lib/ds-test/src/', 'forge-std/=lib/forge-std/src/', '@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/', '@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/'] + +fs_permissions = [{ access = "read", path = "./test/foundry/blob_info"}]   [profile.yul] src = 'yul'
diff --git OffchainLabs/nitro-contracts/hardhat.config.ts Layr-Labs/nitro-contracts/hardhat.config.ts index 35c7adc8472dc653142623f98994a3b34d1449d0..571d357e8695c748fdc975a628fa590f5012bd6f 100644 --- OffchainLabs/nitro-contracts/hardhat.config.ts +++ Layr-Labs/nitro-contracts/hardhat.config.ts @@ -15,7 +15,7 @@ const solidity = { compilers: [ { - version: '0.8.9', + version: '0.8.12', settings: { optimizer: { enabled: true, @@ -26,7 +26,7 @@ }, ], overrides: { 'src/rollup/RollupUserLogic.sol': { - version: '0.8.9', + version: '0.8.12', settings: { optimizer: { enabled: true, @@ -92,6 +92,18 @@ url: 'https://mainnet.infura.io/v3/' + process.env['INFURA_KEY'], enabled: process.env['SHOULD_FORK'] === '1', }, }, + base: { + url: '' + process.env['BASE_MAINNET_RPC'], + accounts: process.env['MAINNET_PRIVKEY'] + ? [process.env['MAINNET_PRIVKEY']] + : [], + }, + baseSepolia: { + url: '' + process.env['BASE_SEPOLIA_RPC'], + accounts: process.env['DEVNET_PRIVKEY'] + ? [process.env['DEVNET_PRIVKEY']] + : [], + }, mainnet: { url: 'https://mainnet.infura.io/v3/' + process.env['INFURA_KEY'], accounts: process.env['MAINNET_PRIVKEY'] @@ -104,6 +116,12 @@ accounts: process.env['DEVNET_PRIVKEY'] ? [process.env['DEVNET_PRIVKEY']] : [], }, + holesky: { + url: 'https://holesky.infura.io/v3/' + process.env['INFURA_KEY'], + accounts: process.env['DEVNET_PRIVKEY'] + ? [process.env['DEVNET_PRIVKEY']] + : [], + }, sepolia: { url: 'https://sepolia.infura.io/v3/' + process.env['INFURA_KEY'], accounts: process.env['DEVNET_PRIVKEY'] @@ -155,6 +173,7 @@ apiKey: { mainnet: process.env['ETHERSCAN_API_KEY'], goerli: process.env['ETHERSCAN_API_KEY'], sepolia: process.env['ETHERSCAN_API_KEY'], + holesky: process.env['ETHERSCAN_API_KEY'], rinkeby: process.env['ETHERSCAN_API_KEY'], arbitrumOne: process.env['ARBISCAN_API_KEY'], arbitrumTestnet: process.env['ARBISCAN_API_KEY'], @@ -200,6 +219,6 @@ outDir: 'build/types', target: 'ethers-v5', }, contractSizer: { - strict: true - } + strict: true, + }, }
diff --git OffchainLabs/nitro-contracts/yarn.lock Layr-Labs/nitro-contracts/yarn.lock index 00d8467d7e2c30d1fb5918c71e7ac6519e5cd5b1..9be2e7f3c9e1c7f4b098bb6d529e607b9910b337 100644 --- OffchainLabs/nitro-contracts/yarn.lock +++ Layr-Labs/nitro-contracts/yarn.lock @@ -46,6 +46,11 @@ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9"   +"@eigenda/eigenda-utils@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@eigenda/eigenda-utils/-/eigenda-utils-2.0.0.tgz#4a2b179d2b41cc7d4ccfbff4aef210b5fa23d1ca" + integrity sha512-aijRWVPZWw3WA7sZHu1lmYRwQxWqK51YcZPq/QkyyfVsVqHJQdW3zUpuyKLesH1jVkfcQ3f1LdFPZTonvj8oIg== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -893,22 +898,17 @@ dependencies: "@openzeppelin/contracts" "4.7.3" "@openzeppelin/contracts-upgradeable" "4.7.3"   -"@openzeppelin/contracts-upgradeable@4.5.2": - version "4.5.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz#90d9e47bacfd8693bfad0ac8a394645575528d05" - integrity sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA== +"@openzeppelin-upgrades/contracts@npm:@openzeppelin/contracts-upgradeable@4.7": + version "4.7.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz#f1d606e2827d409053f3e908ba4eb8adb1dd6995" + integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==   -"@openzeppelin/contracts-upgradeable@4.7.3": +"@openzeppelin/contracts-upgradeable@4.7", "@openzeppelin/contracts-upgradeable@4.7.3": version "4.7.3" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz#f1d606e2827d409053f3e908ba4eb8adb1dd6995" integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==   -"@openzeppelin/contracts@4.5.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.5.0.tgz#3fd75d57de172b3743cdfc1206883f56430409cc" - integrity sha512-fdkzKPYMjrRiPK6K4y64e6GzULR7R7RwxSigHS8DDp7aWDeoReqsQI+cxHV1UuhAqX69L1lAaWDxenfP+xiqzA== - -"@openzeppelin/contracts@4.7.3": +"@openzeppelin/contracts@4.7", "@openzeppelin/contracts@4.7.3": version "4.7.3" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.7.3.tgz#939534757a81f8d69cc854c7692805684ff3111e" integrity sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw==
diff --git OffchainLabs/nitro-contracts/.github/workflows/contract-tests.yml Layr-Labs/nitro-contracts/.github/workflows/contract-tests.yml index 22a89750645b55fbe6f460a676b375bae917fa4f..da994c58d213054310031df6c8557816e7460161 100644 --- OffchainLabs/nitro-contracts/.github/workflows/contract-tests.yml +++ Layr-Labs/nitro-contracts/.github/workflows/contract-tests.yml @@ -37,7 +37,7 @@ - name: Build run: forge test tests: name: Contract tests - runs-on: ubuntu-8 + runs-on: ubuntu-latest defaults: run: shell: bash @@ -110,71 +110,78 @@ fail_ci_if_error: false files: ./contracts/coverage.json verbose: false token: ${{ secrets.CODECOV_TOKEN }} - test-4844: - name: 4844 tests - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive   - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly + # TODO: This is test is failing due testnode referencing a latest target when running + # a prysm ETH validator. This causes config ingestion to fail and the resource to fail to spin up. + # This has already been patched upstream and will need to be incorporated within the next rebasing. + # test-4844: + # name: 4844 tests + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # with: + # submodules: recursive   - - uses: OffchainLabs/actions/run-nitro-test-node@test-node-args - with: - nitro-testnode-ref: deneb-integration - args: --pos - no-token-bridge: true + # - name: Install Foundry + # uses: foundry-rs/foundry-toolchain@v1 + # with: + # version: nightly   - - name: Setup nodejs - uses: actions/setup-node@v2 - with: - node-version: 18 - cache: 'yarn' - cache-dependency-path: '**/yarn.lock' + # - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main + # with: + # args: --pos + # no-token-bridge: true   - - name: Install dependencies - run: yarn install + # - name: Setup nodejs + # uses: actions/setup-node@v2 + # with: + # node-version: 18 + # cache: 'yarn' + # cache-dependency-path: '**/yarn.lock'   - - name: Build - run: yarn build:all + # - name: Install dependencies + # run: yarn install   - - name: Test 4844 - run: yarn test:4844 - test-e2e: - name: Test e2e - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive + # - name: Build + # run: yarn build:all   - - uses: OffchainLabs/actions/run-nitro-test-node@main - with: - l3-node: true - no-token-bridge: true - no-l3-token-bridge: true - nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}' + # - name: Test 4844 + # run: yarn test:4844   - - name: Setup node/yarn - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'yarn' - cache-dependency-path: '**/yarn.lock' + # NOTE: OCL disables theses tests by default, not worth fixing until + # they are supported upstream + # SEE for ref: https://github.com/OffchainLabs/nitro-contracts/blob/94999b3e2d3b4b7f8e771cc458b9eb229620dd8f/.github/workflows/contract-tests.yml#L153-L247 + # test-e2e: + # name: Test e2e + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # with: + # submodules: recursive   - - name: Install packages - run: yarn + # - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main + # with: + # l3-node: true + # no-token-bridge: true + # no-l3-token-bridge: true + # nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'   - - name: Compile contracts - run: yarn build + # - name: Setup node/yarn + # uses: actions/setup-node@v3 + # with: + # node-version: 18 + # cache: 'yarn' + # cache-dependency-path: '**/yarn.lock' + + # - name: Install packages + # run: yarn + + # - name: Compile contracts + # run: yarn build   - - name: Run e2e tests - run: yarn test:e2e - test-e2e-custom-fee-token: + # - name: Run e2e tests + # run: yarn test:e2e + test-e2e-custom-fee-token-eigenda: name: Test e2e custom fee token runs-on: ubuntu-latest steps: @@ -182,12 +189,13 @@ - uses: actions/checkout@v3 with: submodules: recursive   - - uses: OffchainLabs/actions/run-nitro-test-node@main + - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main with: l3-node: true args: --l3-fee-token no-token-bridge: true no-l3-token-bridge: true + eigenda: true nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'   - name: Setup node/yarn @@ -205,34 +213,34 @@ run: yarn build   - name: Run e2e tests run: yarn test:e2e - test-e2e-fee-token-6-decimals: - name: Test e2e fee token with 6 decimals - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive + # test-e2e-fee-token-6-decimals: + # name: Test e2e fee token with 6 decimals + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # with: + # submodules: recursive   - - uses: OffchainLabs/actions/run-nitro-test-node@main - with: - l3-node: true - args: --l3-fee-token --l3-fee-token-decimals 6 - no-token-bridge: true - no-l3-token-bridge: true - nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}' + # - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main + # with: + # l3-node: true + # args: --l3-fee-token --l3-fee-token-decimals 6 + # no-token-bridge: true + # no-l3-token-bridge: true + # nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'   - - name: Setup node/yarn - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'yarn' - cache-dependency-path: '**/yarn.lock' + # - name: Setup node/yarn + # uses: actions/setup-node@v3 + # with: + # node-version: 18 + # cache: 'yarn' + # cache-dependency-path: '**/yarn.lock'   - - name: Install packages - run: yarn + # - name: Install packages + # run: yarn   - - name: Compile contracts - run: yarn build + # - name: Compile contracts + # run: yarn build   - - name: Run e2e tests - run: yarn test:e2e + # - name: Run e2e tests + # run: yarn test:e2e
diff --git OffchainLabs/nitro-contracts/.github/workflows/pages.yml Layr-Labs/nitro-contracts/.github/workflows/pages.yml new file mode 100644 index 0000000000000000000000000000000000000000..0c9df0812c3c3cbda019fb11be6aa05400858d9f --- /dev/null +++ Layr-Labs/nitro-contracts/.github/workflows/pages.yml @@ -0,0 +1,48 @@ +name: Build, publish, & host forkdiff github-pages +permissions: + contents: read + pages: write + id-token: write +on: + workflow_dispatch: + push: + branches: + - eigenda + +jobs: + build: + concurrency: ci-${{ github.ref }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1000 # make sure to fetch the old commit we diff against + + - name: Build forkdiff + uses: 'docker://protolambda/forkdiff:0.1.0' + with: + args: -repo=/github/workspace -fork=/github/workspace/fork.yaml -out=/github/workspace/index.html + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4
diff --git OffchainLabs/nitro-contracts/.github/workflows/slither.yml Layr-Labs/nitro-contracts/.github/workflows/slither.yml index 87fa4e3fd3b50493a697a88e52b48e31725b9e7f..b6bd237832f4189f741ee145ca30bea3f57967f2 100644 --- OffchainLabs/nitro-contracts/.github/workflows/slither.yml +++ Layr-Labs/nitro-contracts/.github/workflows/slither.yml @@ -1,25 +1,27 @@ -name: Slither Analysis +# NOTE: Slither was outputting results irrespective of upstream. Currently +# disabling and will circle back in the future. +# name: Slither Analysis   -on: - workflow_dispatch: - pull_request: +# on: +# workflow_dispatch: +# pull_request:   -jobs: - analyze: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 +# jobs: +# analyze: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4   - - name: Run Slither - uses: crytic/slither-action@v0.4.0 - id: slither - with: - sarif: results.sarif - fail-on: medium - slither-args: --skip-assembly +# - name: Run Slither +# uses: crytic/slither-action@v0.4.0 +# id: slither +# with: +# sarif: results.sarif +# fail-on: medium +# slither-args: --skip-assembly   - - name: Upload SARIF file - if: always() - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: ${{ steps.slither.outputs.sarif }} +# - name: Upload SARIF file +# if: always() +# uses: github/codeql-action/upload-sarif@v3 +# with: +# sarif_file: ${{ steps.slither.outputs.sarif }}
diff --git OffchainLabs/nitro-contracts/fork.yaml Layr-Labs/nitro-contracts/fork.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e4b12b167cb9ba8eb434a6d9d08939b4d2a6b6bd --- /dev/null +++ Layr-Labs/nitro-contracts/fork.yaml @@ -0,0 +1,107 @@ +title: "layr-labs/nitro-contracts" # Define the HTML page title +logo: "logo.png" +footer: | # define the footer with markdown + [Nitro](https://github.com/Layr-Labs/nitro) fork overview &middot created with [Forkdiff](https://github.com/protolambda/forkdiff) +base: + name: OffchainLabs/nitro-contracts + url: https://github.com/OffchainLabs/nitro-contracts + hash: c60b18dc7cf7d1809616d737e9061f3ecc9f28a6 +fork: + name: Layr-Labs/nitro-contracts + url: https://github.com/Layr-Labs/nitro-contracts + ref: refs/heads/eigenda +def: + title: "EigenDA x Arbitrum Nitro Contracts fork diff" + description: | # description in markdown + The original nitro codebase can be found at [`github.com/OffchainLabs/nitro-contracts`](https://github.com/OffchainLabs/nitro). + And the fork at [`github.com/Layr-Labs/nitro-contracts`](https://github.com/Layr-Labs/nitro). + + sub: + - title: "Sequencer Inbox" + description: | + Added an `addSequencerL2BatchFromEigenDA` function which process an EigenDA certificate within the inbox. + Certificates are verified within the inbox by calling `verifyBlob` against the `EigenDARollupManager` contract + to remove a trust assumption on the Arbitrum sequencer. + globs: + - "src/bridge/SequencerInbox.sol" + - "src/bridge/ISequencerInbox.sol" + - "src/bridge/IBridge.sol" + - "src/libraries/Error.sol" + - "test/foundry/blob_info/blob_info.json" + - "test/storage/SequencerInbox" + - "test/foundry/SequencerInbox.t.sol" + - "src/mocks/SequencerInboxStub.sol" + + - title: Blob Verification + description: | + Introduce two new dependency contracts: + + * `EigenDABlobVerifierL1`: verifies blobs when the rollup parent chain is Ethereum. + + * `EigenDABlobVerifierL2`: "verifies" blobs when the rollup parent chain isn't Ethereum. This is effectively + a noop since EigenDA blobs can only be verified on Ethereum given required access to the `EigenDAServiceManager`. + + Both of these contracts implement the `IRollupManager` interface which is referenced via the `SequencerInbox`. + + globs: + - "src/bridge/EigenDABlobVerifierL1.sol" + - "src/bridge/EigenDABlobVerifierL2.sol" + - "test/foundry/EigenDABlobVerifierL1.t.sol" + - "src/bridge/IRollupManager.sol" + - "scripts/local-deployment/deployBlobVerifierL1.ts" + + + - title: Rollup Creator + description: | + Updated rollup creator to: + + * support a `freezing` access modifier which permanently pauses contract functionality and prohibits users + from deploying subsequent parent chain system contracts. This is done to prevent users from utilizing older rollup creators mapped to + outdated system contracts. + + * handle the `EigenDARollupManager` contract address as a constructor argument + + Also extended deployment scripts to deploy blob verifier contract based on parent chain context and + wire the contract via deployment parameters. + + globs: + - "src/rollup/RollupCreator.sol" + - "test/foundry/RollupCreator.t.sol" + - "scripts/local-deployment/deployCreator.ts" + - "scripts/local-deployment/deployCreatorAndCreateRollup.ts" + - "scripts/rollupCreation.ts" + - "scripts/local-deployment/createRollup.ts" + - "scripts/deploymentUtils.ts" + + - title: One Step Proving + description: | + Extended the one step prover HostIO to process a polynomial opening proof for an EigenDA preimage type using the BN254 curve. + Since the pairing requires points on BN254's G2 group, which are inaccessible on-chain, we introduce a new value (`gamma`) which is + a hash generated off-chain. + + globs: + - "src/osp/OneStepProverHostIo.sol" + - "test/foundry/Bn254KZG.t.sol" + + - title: Package management + description: | + Updated to latest to solidity (`v8.12.0`) to ensure compatibility with `[@eigenda-utils](https://www.npmjs.com/package/@eigenda/eigenda-utils)` library. + Also changed repo NPM package namespace to that of EigenDA. + + globs: + - "yarn.lock" + - "foundry.toml" + - "hardhat.config.ts" + + + +ignore: + - "slither.db.json" + - "test/foundry/ChallengeManager.t.sol" + - "test/foundry/CacheManager.t.sol" + - "test/foundry/ERC20Inbox.t.sol" + - "test/foundry/ERC20Outbox.t.sol" + - "test/foundry/ERC20RollupEventInbox.t.sol" + - "test/foundry/RollupEventInbox.t.sol" + - "test/foundry/Outbox.t.sol" + - "test/foundry/ERC20Bridge.t.sol"
diff --git OffchainLabs/nitro-contracts/package.json Layr-Labs/nitro-contracts/package.json index ef489de8b18b98a9a6e0b893ff8cb160516cf0ac..ee309f7b6c8a0dd4ad41270ab001575ed52eaba5 100644 --- OffchainLabs/nitro-contracts/package.json +++ Layr-Labs/nitro-contracts/package.json @@ -1,12 +1,12 @@ { - "name": "@arbitrum/nitro-contracts", - "version": "2.1.0", - "description": "Layer 2 precompiles and rollup for Arbitrum Nitro", + "name": "@eigenda/nitro-contracts", + "version": "2.1.0-production", + "description": "Layer 2 precompiles and rollup for Arbitrum Nitro x EigenDA", "author": "Offchain Labs, Inc.", "license": "BUSL-1.1", "repository": { "type": "git", - "url": "git+https://github.com/offchainlabs/nitro-contracts.git" + "url": "git+https://github.com/layr-labs/nitro-contracts.git" }, "files": [ "src/", @@ -15,7 +15,7 @@ "build/contracts/@openzeppelin", "out/yul/Reader4844.yul/Reader4844.json" ], "bugs": { - "url": "https://github.com/offchainlabs/nitro-contracts/issues" + "url": "https://github.com/layr-labs/nitro-contracts/issues" }, "scripts": { "audit:ci": "audit-ci --config ./audit-ci.jsonc", @@ -33,9 +33,10 @@ "prettier:solidity": "prettier --write src/**/*.sol", "format": "prettier './**/*.{js,json,ts,yml,sol}' --write && yarn run lint:test --fix", "build:0.6": "INTERFACE_TESTER_SOLC_VERSION=0.6.9 yarn run build", "build:0.7": "INTERFACE_TESTER_SOLC_VERSION=0.7.0 yarn run build", + "build:0.8.12": "INTERFACE_TESTER_SOLC_VERSION=0.8.12 yarn run build", "test": "DISABLE_GAS_REPORTER=true hardhat --network hardhat test test/contract/*.spec.ts", "test:4844": "DISABLE_GAS_REPORTER=true hardhat --network hardhat test test/contract/*.spec.4844.ts", - "test:compatibility": "yarn run build:0.6 && yarn run build:0.7", + "test:compatibility": "yarn run build:0.8.12", "test:storage": "./test/storage/test.bash", "test:signatures": "./test/signatures/test-sigs.bash", "test:e2e": "hardhat test test/e2e/*.ts", @@ -48,14 +49,16 @@ "deploy-cachemanager-testnode": "hardhat run scripts/local-deployment/deployCacheManager.ts" }, "dependencies": { "@offchainlabs/upgrade-executor": "1.1.0-beta.0", - "@openzeppelin/contracts": "4.5.0", - "@openzeppelin/contracts-upgradeable": "4.5.2", + "@openzeppelin-upgrades/contracts": "npm:@openzeppelin/contracts-upgradeable@4.7", + "@openzeppelin/contracts": "4.7", + "@openzeppelin/contracts-upgradeable": "4.7", "patch-package": "^6.4.7", "solady": "0.0.182" }, "private": false, "devDependencies": { "@arbitrum/sdk": "^3.4.1", + "@eigenda/eigenda-utils": "2.0.0", "@ethersproject/providers": "^5.7.2", "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.3.0-beta.13", "@nomiclabs/hardhat-etherscan": "^3.1.0",
diff --git OffchainLabs/nitro-contracts/test/contract/arbRollup.spec.ts Layr-Labs/nitro-contracts/test/contract/arbRollup.spec.ts index 79281abce9d1cd677f5505f1283345dca2f1b79a..196ef0f66a24e32640e82aa28ed5dd7f671efd70 100644 --- OffchainLabs/nitro-contracts/test/contract/arbRollup.spec.ts +++ Layr-Labs/nitro-contracts/test/contract/arbRollup.spec.ts @@ -299,6 +299,7 @@ nativeToken: ethers.constants.AddressZero, deployFactoriesToL2: true, maxFeePerGasForRetryables: maxFeePerGas, batchPosterManager: await batchPosterManager.getAddress(), + eigenDARollupManager: ethers.constants.AddressZero, }   const response = await rollupCreator.createRollup(deployParams, {
diff --git OffchainLabs/nitro-contracts/test/e2e/orbitChain.ts Layr-Labs/nitro-contracts/test/e2e/orbitChain.ts index 25cd3039f239f609daffd5759944c1dd521da6bb..541720a6f267fe38fa8c1b55fb4adc26c862caa7 100644 --- OffchainLabs/nitro-contracts/test/e2e/orbitChain.ts +++ Layr-Labs/nitro-contracts/test/e2e/orbitChain.ts @@ -834,6 +834,8 @@ maxDataSize, nativeToken: nativeTokenAddress, deployFactoriesToL2, maxFeePerGasForRetryables, + eigenDARollupManager: '0x0000000000000000000000000000000000000000', // no need to deploy actual rollup manager + // for test flow }   /// deploy it
diff --git OffchainLabs/nitro-contracts/test/signatures/RollupCreator Layr-Labs/nitro-contracts/test/signatures/RollupCreator index 6c6f761ad7f4f215cf587f04ff7123004e6c12ad..579b3bffd80e4bbba1b3c65a9684d91d61debd61 100644 --- OffchainLabs/nitro-contracts/test/signatures/RollupCreator +++ Layr-Labs/nitro-contracts/test/signatures/RollupCreator @@ -1,7 +1,9 @@ { "bridgeCreator()": "f860cefa", "challengeManagerTemplate()": "9c683d10", - "createRollup(((uint64,uint64,address,uint256,bytes32,address,address,uint256,string,uint64,(uint256,uint256,uint256,uint256)),address[],uint256,address,bool,uint256,address[],address))": "331f9b0b", + "createRollup(((uint64,uint64,address,uint256,bytes32,address,address,uint256,string,uint64,(uint256,uint256,uint256,uint256)),address[],uint256,address,bool,uint256,address[],address,address))": "d1e1d36a", + "deploymentFrozen()": "e7fb6dea", + "freezeDeployment()": "d7c0a724", "l2FactoriesDeployer()": "ac0425bc", "osp()": "f26a62c6", "owner()": "8da5cb5b", @@ -9,6 +11,7 @@ "renounceOwnership()": "715018a6", "rollupAdminLogic()": "9dba3241", "rollupUserLogic()": "9d4798e3", "setTemplates(address,address,address,address,address,address,address,address,address)": "ac9a97b4", + "templatesSet()": "843d7b1a", "transferOwnership(address)": "f2fde38b", "upgradeExecutorLogic()": "030cb85e", "validatorUtils()": "014cc92c",
diff --git OffchainLabs/nitro-contracts/test/signatures/SequencerInbox Layr-Labs/nitro-contracts/test/signatures/SequencerInbox index 18c3db0293ca6307c6165cb0c9f893cf1cd2b456..6239cb99fa3cbfe32bcb2e3ee5df22c53e17c5c5 100644 --- OffchainLabs/nitro-contracts/test/signatures/SequencerInbox +++ Layr-Labs/nitro-contracts/test/signatures/SequencerInbox @@ -3,17 +3,20 @@ "BROTLI_MESSAGE_HEADER_FLAG()": "16af91a7", "DAS_MESSAGE_HEADER_FLAG()": "f60a5091", "DATA_AUTHENTICATED_FLAG()": "e5a358c8", "DATA_BLOB_HEADER_FLAG()": "2cbf74e5", + "EIGENDA_MESSAGE_HEADER_FLAG()": "a683eed8", "HEADER_LENGTH()": "27957a49", "TREE_DAS_MESSAGE_HEADER_FLAG()": "6c890450", "ZERO_HEAVY_MESSAGE_HEADER_FLAG()": "02c99275", "addSequencerL2Batch(uint256,bytes,uint256,address,uint256,uint256)": "e0bc9729", "addSequencerL2BatchFromBlobs(uint256,uint256,address,uint256,uint256)": "3e5aa082", + "addSequencerL2BatchFromEigenDA(uint256,((uint32,uint32,((bytes32,bytes,bytes,uint32),bytes32,uint32),bytes,bytes),((uint256,uint256),uint32,(uint8,uint8,uint8,uint32)[])),address,uint256,uint256,uint256)": "283d8225", "addSequencerL2BatchFromOrigin(uint256,bytes,uint256,address)": "6f12b0c9", "addSequencerL2BatchFromOrigin(uint256,bytes,uint256,address,uint256,uint256)": "8f111f3c", "batchCount()": "06f13056", "batchPosterManager()": "cc2a1a0c", "bridge()": "e78cea92", "dasKeySetInfo(bytes32)": "715ea34b", + "eigenDARollupManager()": "b7198a93", "forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)": "f1981578", "getKeysetCreationBlock(bytes32)": "258f0495", "inboxAccs(uint256)": "d9dd67ab", @@ -30,6 +33,7 @@ "reader4844()": "8d910dde", "removeDelayAfterFork()": "96cc5c78", "rollup()": "cb23bcb5", "setBatchPosterManager(address)": "1ff64790", + "setEigenDARollupManager(address)": "27f32e06", "setIsBatchPoster(address,bool)": "6e7df3e7", "setIsSequencer(address,bool)": "1f956632", "setMaxTimeVariation((uint256,uint256,uint256,uint256))": "b31761f8",
diff --git OffchainLabs/nitro-contracts/test/storage/Bridge Layr-Labs/nitro-contracts/test/storage/Bridge index 9ed7f48a2e586258d4a3a845a6ea8ea139bfb501..86988009cd45ece0130b3bae631625c32a7428ae 100644 --- OffchainLabs/nitro-contracts/test/storage/Bridge +++ Layr-Labs/nitro-contracts/test/storage/Bridge @@ -1,15 +1,31 @@ + +╭----------------------------------+------------------------------------------------+------+--------+-------+------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|----------------------------------|------------------------------------------------|------|--------|-------|------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/bridge/Bridge.sol:Bridge | ++==========================================================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | _initializing | bool | 0 | 1 | 1 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | allowedDelayedInboxesMap | mapping(address => struct AbsBridge.InOutInfo) | 1 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | allowedOutboxesMap | mapping(address => struct AbsBridge.InOutInfo) | 2 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | allowedDelayedInboxList | address[] | 3 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | allowedOutboxList | address[] | 4 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | _activeOutbox | address | 5 | 0 | 20 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | delayedInboxAccs | bytes32[] | 6 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | sequencerInboxAccs | bytes32[] | 7 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | rollup | contract IOwnable | 8 | 0 | 20 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | sequencerInbox | address | 9 | 0 | 20 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | sequencerReportedSubMessageCount | uint256 | 10 | 0 | 32 | src/bridge/Bridge.sol:Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+------------------------------| | __gap | uint256[40] | 11 | 0 | 1280 | src/bridge/Bridge.sol:Bridge | +╰----------------------------------+------------------------------------------------+------+--------+-------+------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/CacheManager Layr-Labs/nitro-contracts/test/storage/CacheManager index 199a48d0859ac264d3ddf56f29040e8b63d40611..33fa261bbe4ad23d9639ea5d736cc749f87ba36b 100644 --- OffchainLabs/nitro-contracts/test/storage/CacheManager +++ Layr-Labs/nitro-contracts/test/storage/CacheManager @@ -1,10 +1,21 @@ + +╭---------------+-----------------------------+------+--------+-------+-----------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|---------------|-----------------------------|------|--------|-------|-----------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/chain/CacheManager.sol:CacheManager | ++===============================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | bids | struct MinHeapLib.Heap | 1 | 0 | 32 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | entries | struct CacheManager.Entry[] | 2 | 0 | 32 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | cacheSize | uint64 | 3 | 0 | 8 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | queueSize | uint64 | 3 | 8 | 8 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | decay | uint64 | 3 | 16 | 8 | src/chain/CacheManager.sol:CacheManager | +|---------------+-----------------------------+------+--------+-------+-----------------------------------------| | isPaused | bool | 3 | 24 | 1 | src/chain/CacheManager.sol:CacheManager | +╰---------------+-----------------------------+------+--------+-------+-----------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/ChallengeManager Layr-Labs/nitro-contracts/test/storage/ChallengeManager index 15c3f1166fed6795ba1563cc6bfab7f4a79f8d30..2c8291997ff80fe572ccdbd1b419e1925154e382 100644 --- OffchainLabs/nitro-contracts/test/storage/ChallengeManager +++ Layr-Labs/nitro-contracts/test/storage/ChallengeManager @@ -1,9 +1,19 @@ + +╭------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|------------------------|---------------------------------------------------|------|--------|-------|-----------------------------------------------------| ++==========================================================================================================================================================+ | totalChallengesCreated | uint64 | 0 | 0 | 8 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | challenges | mapping(uint256 => struct ChallengeLib.Challenge) | 1 | 0 | 32 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | resultReceiver | contract IChallengeResultReceiver | 2 | 0 | 20 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | sequencerInbox | contract ISequencerInbox | 3 | 0 | 20 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | bridge | contract IBridge | 4 | 0 | 20 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | osp | contract IOneStepProofEntry | 5 | 0 | 20 | src/challenge/ChallengeManager.sol:ChallengeManager | +|------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------| | ospCond | mapping(bytes32 => contract IOneStepProofEntry) | 6 | 0 | 32 | src/challenge/ChallengeManager.sol:ChallengeManager | +╰------------------------+---------------------------------------------------+------+--------+-------+-----------------------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/ERC20Bridge Layr-Labs/nitro-contracts/test/storage/ERC20Bridge index 7e00cd68341cca272001c805ab54e477d45a2505..e3cdffc705c8655abdc67e1385a0cb0fd96ea2d6 100644 --- OffchainLabs/nitro-contracts/test/storage/ERC20Bridge +++ Layr-Labs/nitro-contracts/test/storage/ERC20Bridge @@ -1,17 +1,35 @@ + +╭----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|----------------------------------|------------------------------------------------|------|--------|-------|----------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/bridge/ERC20Bridge.sol:ERC20Bridge | ++====================================================================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | allowedDelayedInboxesMap | mapping(address => struct AbsBridge.InOutInfo) | 1 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | allowedOutboxesMap | mapping(address => struct AbsBridge.InOutInfo) | 2 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | allowedDelayedInboxList | address[] | 3 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | allowedOutboxList | address[] | 4 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | _activeOutbox | address | 5 | 0 | 20 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | delayedInboxAccs | bytes32[] | 6 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | sequencerInboxAccs | bytes32[] | 7 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | rollup | contract IOwnable | 8 | 0 | 20 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | sequencerInbox | address | 9 | 0 | 20 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | sequencerReportedSubMessageCount | uint256 | 10 | 0 | 32 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | __gap | uint256[40] | 11 | 0 | 1280 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | nativeToken | address | 51 | 0 | 20 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +|----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------| | nativeTokenDecimals | uint8 | 51 | 20 | 1 | src/bridge/ERC20Bridge.sol:ERC20Bridge | +╰----------------------------------+------------------------------------------------+------+--------+-------+----------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/ERC20Inbox Layr-Labs/nitro-contracts/test/storage/ERC20Inbox index 58f398df8d0b152a6b8bc03cc3f3e76b248a965d..66badb19504d6952b28ab0be60de7557be5d0de8 100644 --- OffchainLabs/nitro-contracts/test/storage/ERC20Inbox +++ Layr-Labs/nitro-contracts/test/storage/ERC20Inbox @@ -1,12 +1,25 @@ + +╭------------------+--------------------------+------+--------+-------+--------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|--------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/bridge/ERC20Inbox.sol:ERC20Inbox | ++============================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | __gap | uint256[50] | 1 | 0 | 1600 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | _paused | bool | 51 | 0 | 1 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | __gap | uint256[49] | 52 | 0 | 1568 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | bridge | contract IBridge | 101 | 0 | 20 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | sequencerInbox | contract ISequencerInbox | 102 | 0 | 20 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | allowListEnabled | bool | 102 | 20 | 1 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | isAllowed | mapping(address => bool) | 103 | 0 | 32 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +|------------------+--------------------------+------+--------+-------+--------------------------------------| | __gap | uint256[47] | 104 | 0 | 1504 | src/bridge/ERC20Inbox.sol:ERC20Inbox | +╰------------------+--------------------------+------+--------+-------+--------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/ERC20Outbox Layr-Labs/nitro-contracts/test/storage/ERC20Outbox index 09e2c38cb8b4b3f74ac38e5608156c82a7e97429..ddd0b5fef2ba330d4ea22f0a7c095622006fb6e3 100644 --- OffchainLabs/nitro-contracts/test/storage/ERC20Outbox +++ Layr-Labs/nitro-contracts/test/storage/ERC20Outbox @@ -1,8 +1,17 @@ + +╭---------+--------------------------------+------+--------+-------+----------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|---------|--------------------------------|------|--------|-------|----------------------------------------| ++===========================================================================================================+ | rollup | address | 0 | 0 | 20 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +|---------+--------------------------------+------+--------+-------+----------------------------------------| | bridge | contract IBridge | 1 | 0 | 20 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +|---------+--------------------------------+------+--------+-------+----------------------------------------| | spent | mapping(uint256 => bytes32) | 2 | 0 | 32 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +|---------+--------------------------------+------+--------+-------+----------------------------------------| | roots | mapping(bytes32 => bytes32) | 3 | 0 | 32 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +|---------+--------------------------------+------+--------+-------+----------------------------------------| | context | struct AbsOutbox.L2ToL1Context | 4 | 0 | 128 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +|---------+--------------------------------+------+--------+-------+----------------------------------------| | __gap | uint256[42] | 8 | 0 | 1344 | src/bridge/ERC20Outbox.sol:ERC20Outbox | +╰---------+--------------------------------+------+--------+-------+----------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/Inbox Layr-Labs/nitro-contracts/test/storage/Inbox index 0551822e39b8d42c8bf57830395196ed7583ab39..43b224e4f7f082fda649e0486d7440f3940f817d 100644 --- OffchainLabs/nitro-contracts/test/storage/Inbox +++ Layr-Labs/nitro-contracts/test/storage/Inbox @@ -1,12 +1,25 @@ + +╭------------------+--------------------------+------+--------+-------+----------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|----------------------------| -| _initialized | bool | 0 | 0 | 1 | src/bridge/Inbox.sol:Inbox | ++==================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | _initializing | bool | 0 | 1 | 1 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | __gap | uint256[50] | 1 | 0 | 1600 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | _paused | bool | 51 | 0 | 1 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | __gap | uint256[49] | 52 | 0 | 1568 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | bridge | contract IBridge | 101 | 0 | 20 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | sequencerInbox | contract ISequencerInbox | 102 | 0 | 20 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | allowListEnabled | bool | 102 | 20 | 1 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | isAllowed | mapping(address => bool) | 103 | 0 | 32 | src/bridge/Inbox.sol:Inbox | +|------------------+--------------------------+------+--------+-------+----------------------------| | __gap | uint256[47] | 104 | 0 | 1504 | src/bridge/Inbox.sol:Inbox | +╰------------------+--------------------------+------+--------+-------+----------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/Outbox Layr-Labs/nitro-contracts/test/storage/Outbox index d161ae3bef3842ce3bd20f654a26c61a85074872..854a39c920bc9ccf97edf8683e5d526c80e4a0a6 100644 --- OffchainLabs/nitro-contracts/test/storage/Outbox +++ Layr-Labs/nitro-contracts/test/storage/Outbox @@ -1,8 +1,17 @@ + +╭---------+--------------------------------+------+--------+-------+------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|---------|--------------------------------|------|--------|-------|------------------------------| ++=================================================================================================+ | rollup | address | 0 | 0 | 20 | src/bridge/Outbox.sol:Outbox | +|---------+--------------------------------+------+--------+-------+------------------------------| | bridge | contract IBridge | 1 | 0 | 20 | src/bridge/Outbox.sol:Outbox | +|---------+--------------------------------+------+--------+-------+------------------------------| | spent | mapping(uint256 => bytes32) | 2 | 0 | 32 | src/bridge/Outbox.sol:Outbox | +|---------+--------------------------------+------+--------+-------+------------------------------| | roots | mapping(bytes32 => bytes32) | 3 | 0 | 32 | src/bridge/Outbox.sol:Outbox | +|---------+--------------------------------+------+--------+-------+------------------------------| | context | struct AbsOutbox.L2ToL1Context | 4 | 0 | 128 | src/bridge/Outbox.sol:Outbox | +|---------+--------------------------------+------+--------+-------+------------------------------| | __gap | uint256[42] | 8 | 0 | 1344 | src/bridge/Outbox.sol:Outbox | +╰---------+--------------------------------+------+--------+-------+------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/RollupAdminLogic Layr-Labs/nitro-contracts/test/storage/RollupAdminLogic index 8e3dc844e00e438afc6bd3e12f26c6d13ae4d5d0..6d0f4d3392d8f48254291589dd4017cb1486cc15 100644 --- OffchainLabs/nitro-contracts/test/storage/RollupAdminLogic +++ Layr-Labs/nitro-contracts/test/storage/RollupAdminLogic @@ -1,39 +1,79 @@ + +╭----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|----------------------------|-----------------------------------------------|------|--------|-------|--------------------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | ++=======================================================================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | __gap | uint256[50] | 1 | 0 | 1600 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _paused | bool | 51 | 0 | 1 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | __gap | uint256[49] | 52 | 0 | 1568 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | confirmPeriodBlocks | uint64 | 101 | 0 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | extraChallengeTimeBlocks | uint64 | 101 | 8 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | chainId | uint256 | 102 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | baseStake | uint256 | 103 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | wasmModuleRoot | bytes32 | 104 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | inbox | contract IInboxBase | 105 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | bridge | contract IBridge | 106 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | outbox | contract IOutbox | 107 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | sequencerInbox | contract ISequencerInbox | 108 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | rollupEventInbox | contract IRollupEventInbox | 109 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | challengeManager | contract IChallengeManager | 110 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | validatorUtils | address | 111 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | validatorWalletCreator | address | 112 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | loserStakeEscrow | address | 113 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | stakeToken | address | 114 | 0 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | minimumAssertionPeriod | uint256 | 115 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | isValidator | mapping(address => bool) | 116 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _latestConfirmed | uint64 | 117 | 0 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _firstUnresolvedNode | uint64 | 117 | 8 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _latestNodeCreated | uint64 | 117 | 16 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _lastStakeBlock | uint64 | 117 | 24 | 8 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _nodes | mapping(uint64 => struct Node) | 118 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _nodeStakers | mapping(uint64 => mapping(address => bool)) | 119 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _stakerList | address[] | 120 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _stakerMap | mapping(address => struct IRollupCore.Staker) | 121 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _zombies | struct RollupCore.Zombie[] | 122 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _withdrawableFunds | mapping(address => uint256) | 123 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | totalWithdrawableFunds | uint256 | 124 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | rollupDeploymentBlock | uint256 | 125 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | validatorWhitelistDisabled | bool | 126 | 0 | 1 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | anyTrustFastConfirmer | address | 126 | 1 | 20 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------| | _nodeCreatedAtArbSysBlock | mapping(uint64 => uint256) | 127 | 0 | 32 | src/rollup/RollupAdminLogic.sol:RollupAdminLogic | +╰----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/RollupCore Layr-Labs/nitro-contracts/test/storage/RollupCore index 1349cece226ed29304c695049259f4423a59e47c..70ca90241292b997127b9cc168515b574730e8ff 100644 --- OffchainLabs/nitro-contracts/test/storage/RollupCore +++ Layr-Labs/nitro-contracts/test/storage/RollupCore @@ -1,39 +1,79 @@ + +╭----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|----------------------------|-----------------------------------------------|------|--------|-------|--------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/rollup/RollupCore.sol:RollupCore | ++===========================================================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | __gap | uint256[50] | 1 | 0 | 1600 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _paused | bool | 51 | 0 | 1 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | __gap | uint256[49] | 52 | 0 | 1568 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | confirmPeriodBlocks | uint64 | 101 | 0 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | extraChallengeTimeBlocks | uint64 | 101 | 8 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | chainId | uint256 | 102 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | baseStake | uint256 | 103 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | wasmModuleRoot | bytes32 | 104 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | inbox | contract IInboxBase | 105 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | bridge | contract IBridge | 106 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | outbox | contract IOutbox | 107 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | sequencerInbox | contract ISequencerInbox | 108 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | rollupEventInbox | contract IRollupEventInbox | 109 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | challengeManager | contract IChallengeManager | 110 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | validatorUtils | address | 111 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | validatorWalletCreator | address | 112 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | loserStakeEscrow | address | 113 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | stakeToken | address | 114 | 0 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | minimumAssertionPeriod | uint256 | 115 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | isValidator | mapping(address => bool) | 116 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _latestConfirmed | uint64 | 117 | 0 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _firstUnresolvedNode | uint64 | 117 | 8 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _latestNodeCreated | uint64 | 117 | 16 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _lastStakeBlock | uint64 | 117 | 24 | 8 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _nodes | mapping(uint64 => struct Node) | 118 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _nodeStakers | mapping(uint64 => mapping(address => bool)) | 119 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _stakerList | address[] | 120 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _stakerMap | mapping(address => struct IRollupCore.Staker) | 121 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _zombies | struct RollupCore.Zombie[] | 122 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _withdrawableFunds | mapping(address => uint256) | 123 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | totalWithdrawableFunds | uint256 | 124 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | rollupDeploymentBlock | uint256 | 125 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | validatorWhitelistDisabled | bool | 126 | 0 | 1 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | anyTrustFastConfirmer | address | 126 | 1 | 20 | src/rollup/RollupCore.sol:RollupCore | +|----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------| | _nodeCreatedAtArbSysBlock | mapping(uint64 => uint256) | 127 | 0 | 32 | src/rollup/RollupCore.sol:RollupCore | +╰----------------------------+-----------------------------------------------+------+--------+-------+--------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/test/storage/RollupUserLogic Layr-Labs/nitro-contracts/test/storage/RollupUserLogic index 5fd459185d293ac1300fd77e0def8ab46cf8774c..0adba0dd6494f99fc4fe977971b22be5f80f5aaf 100644 --- OffchainLabs/nitro-contracts/test/storage/RollupUserLogic +++ Layr-Labs/nitro-contracts/test/storage/RollupUserLogic @@ -1,39 +1,79 @@ + +╭----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------╮ | Name | Type | Slot | Offset | Bytes | Contract | -|----------------------------|-----------------------------------------------|------|--------|-------|------------------------------------------------| -| _initialized | bool | 0 | 0 | 1 | src/rollup/RollupUserLogic.sol:RollupUserLogic | ++=====================================================================================================================================================+ +| _initialized | uint8 | 0 | 0 | 1 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _initializing | bool | 0 | 1 | 1 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | __gap | uint256[50] | 1 | 0 | 1600 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _paused | bool | 51 | 0 | 1 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | __gap | uint256[49] | 52 | 0 | 1568 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | confirmPeriodBlocks | uint64 | 101 | 0 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | extraChallengeTimeBlocks | uint64 | 101 | 8 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | chainId | uint256 | 102 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | baseStake | uint256 | 103 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | wasmModuleRoot | bytes32 | 104 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | inbox | contract IInboxBase | 105 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | bridge | contract IBridge | 106 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | outbox | contract IOutbox | 107 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | sequencerInbox | contract ISequencerInbox | 108 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | rollupEventInbox | contract IRollupEventInbox | 109 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | challengeManager | contract IChallengeManager | 110 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | validatorUtils | address | 111 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | validatorWalletCreator | address | 112 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | loserStakeEscrow | address | 113 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | stakeToken | address | 114 | 0 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | minimumAssertionPeriod | uint256 | 115 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | isValidator | mapping(address => bool) | 116 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _latestConfirmed | uint64 | 117 | 0 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _firstUnresolvedNode | uint64 | 117 | 8 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _latestNodeCreated | uint64 | 117 | 16 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _lastStakeBlock | uint64 | 117 | 24 | 8 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _nodes | mapping(uint64 => struct Node) | 118 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _nodeStakers | mapping(uint64 => mapping(address => bool)) | 119 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _stakerList | address[] | 120 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _stakerMap | mapping(address => struct IRollupCore.Staker) | 121 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _zombies | struct RollupCore.Zombie[] | 122 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _withdrawableFunds | mapping(address => uint256) | 123 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | totalWithdrawableFunds | uint256 | 124 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | rollupDeploymentBlock | uint256 | 125 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | validatorWhitelistDisabled | bool | 126 | 0 | 1 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | anyTrustFastConfirmer | address | 126 | 1 | 20 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +|----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------| | _nodeCreatedAtArbSysBlock | mapping(uint64 => uint256) | 127 | 0 | 32 | src/rollup/RollupUserLogic.sol:RollupUserLogic | +╰----------------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------╯ +
diff --git OffchainLabs/nitro-contracts/slither.db.json Layr-Labs/nitro-contracts/slither.db.json index fcd0154050ff779decb4dbdba266796a278dbc1f..ea8708691cf0816aef513b2f530bc6d5f39f5043 100644 --- OffchainLabs/nitro-contracts/slither.db.json +++ Layr-Labs/nitro-contracts/slither.db.json @@ -1 +1,29954 @@ -[{"elements": [{"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6765, "length": 327, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [172, 173, 174, 175, 176, 177, 178, 179, 180], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26098, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)"}}, {"type": "node", "name": "require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH)", "source_mapping": {"start": 6959, "length": 73, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [178], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6765, "length": 327, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [172, 173, 174, 175, 176, 177, 178, 179, 180], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26098, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)"}}}}], "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#172-180) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH) (src/rollup/RollupUserLogic.sol#178)\n", "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L172-L180) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH)](src/rollup/RollupUserLogic.sol#L178)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L172-L180", "id": "5f473ab9e03dab343568520a0a4dbeeba01a25e79b6d1a03c351b331a00f4e3b", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "variable", "name": "anyTrustFastConfirmer", "source_mapping": {"start": 2460, "length": 36, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [80], "starting_column": 5, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6793, "length": 334, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)"}}], "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#176-180)\n", "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L176-L180)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L80", "id": "7588d31598e0049c45ba6922d304b0edadbf1308b5a8af9527dffbbc4dc61ac4", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21211, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", "source_mapping": {"start": 22554, "length": 69, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [542], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21211, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}, {"type": "node", "name": "baseStake * multiplier", "source_mapping": {"start": 22702, "length": 29, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [546], "starting_column": 9, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21211, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#501-547) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#542)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#546)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L501-L547) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L542)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L546)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L501-L547", "id": "c6b99e53c65770259b3301c94d2bc1a08086bddcc14611a28cdd3ac02bb85aab", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21211, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier == 0", "source_mapping": {"start": 22637, "length": 15, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [543], "starting_column": 13, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21211, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#501-547) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#543)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L501-L547) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L543)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L501-L547", "id": "cd03d61e7b54e2afdbbc53bb1658f1e1bb0ff6071019d4e450c88b97ab1ef062", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6793, "length": 334, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)"}}, {"type": "node", "name": "require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH)", "source_mapping": {"start": 6986, "length": 81, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [178], "starting_column": 9, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6793, "length": 334, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)"}}}}], "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#176-180) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH) (src/rollup/RollupUserLogic.sol#178)\n", "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L176-L180) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH)](src/rollup/RollupUserLogic.sol#L178)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L180", "id": "19ca8615fd5f71005c78c7230011930b328c1949f9594bef453bbe022663a85d", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26420, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [640, 641, 642, 643], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}, {"type": "node", "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", "source_mapping": {"start": 26557, "length": 68, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [642], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26420, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [640, 641, 642, 643], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}}}], "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#640-643) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#642)\n", "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L640-L643) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L642)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L640-L643", "id": "5b92a43a048601d647a680d472499f14a3b778f80130e8c058351203f5d5fd5a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7909, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}, {"type": "node", "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", "source_mapping": {"start": 8371, "length": 72, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [213], "starting_column": 9, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7909, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}}}], "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#200-215) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#213)\n", "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L200-L215) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L213)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L200-L215", "id": "ccbd0d521b15fdf53a5989679bae528b0dc5388bbbb4c4fdc19a8b9bd9f86879", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "createChallenge", "source_mapping": {"start": 13265, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}, {"type": "node", "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", "source_mapping": {"start": 15808, "length": 398, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [374, 375, 376, 377, 378, 379, 380, 381, 382, 383], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13265, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", "source_mapping": {"start": 16750, "length": 317, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409], "starting_column": 9, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallengeHelper", "source_mapping": {"start": 16402, "length": 672, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", "source_mapping": {"start": 16242, "length": 56, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [385], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13265, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26133, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker1].currentChallenge = challenge", "source_mapping": {"start": 13618, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [384], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker2].currentChallenge = challenge", "source_mapping": {"start": 13676, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [385], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#315-388):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#374-383)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#399-409)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#385)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L315-L388):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L374-L383)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L399-L409)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L385)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L315-L388", "id": "2b29c60586106261585a7463cf78d2dc6e7c2d56072499e590e932df559d24bb", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "anyTrustFastConfirmer", "source_mapping": {"start": 2460, "length": 36, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [80], "starting_column": 5, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6800, "length": 401, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180, 181], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)"}}], "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-181)\n", "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L181)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L80", "id": "73f909a3e549c85be9403f39fd73d421a43658f2516798cb75e1788e512992f2", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21285, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", "source_mapping": {"start": 22628, "length": 69, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [543], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21285, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}, {"type": "node", "name": "baseStake * multiplier", "source_mapping": {"start": 22776, "length": 29, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [547], "starting_column": 9, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21285, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#502-548) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#543)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#547)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L502-L548) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L543)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L547)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L502-L548", "id": "a06a90d9213a90fab9e69dcb5ff30aff7af9ca537f078f891088bb6e179d0c41", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21285, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier == 0", "source_mapping": {"start": 22711, "length": 15, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [544], "starting_column": 13, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21285, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#502-548) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#544)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L502-L548) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L544)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L502-L548", "id": "f0540633dca6b3c5acc4f012e6533bb6b22a026d8ff3b90b8585b50c348b0d5d", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6800, "length": 401, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180, 181], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)"}}, {"type": "node", "name": "require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH)", "source_mapping": {"start": 7074, "length": 67, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [179], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6800, "length": 401, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180, 181], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)"}}}}], "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-181) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH) (src/rollup/RollupUserLogic.sol#179)\n", "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L181) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH)](src/rollup/RollupUserLogic.sol#L179)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L181", "id": "d81d8afbfd2634a30a7859c5a5e586e9810463b8236da8bf559155d43b58a230", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26494, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [641, 642, 643, 644], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}, {"type": "node", "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", "source_mapping": {"start": 26631, "length": 68, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [643], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26494, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [641, 642, 643, 644], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}}}], "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#641-644) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#643)\n", "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L641-L644) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L643)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L641-L644", "id": "3323048300e79cff852072e2a5dd523379c0c9072bfb004b3ba5bd0d09c86c3f", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7983, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}, {"type": "node", "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", "source_mapping": {"start": 8445, "length": 72, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [214], "starting_column": 9, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7983, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}}}], "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#201-216) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#214)\n", "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L201-L216) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L214)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L201-L216", "id": "45ab4c7ef9266f342edc09390b14e6ebbb5742734ae6570773770ba6b1be22df", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "createChallenge", "source_mapping": {"start": 13339, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}, {"type": "node", "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", "source_mapping": {"start": 15882, "length": 398, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383, 384], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13339, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", "source_mapping": {"start": 16824, "length": 317, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410], "starting_column": 9, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallengeHelper", "source_mapping": {"start": 16476, "length": 672, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", "source_mapping": {"start": 16316, "length": 56, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [386], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13339, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 26207, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker1].currentChallenge = challenge", "source_mapping": {"start": 13618, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [384], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker2].currentChallenge = challenge", "source_mapping": {"start": 13676, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [385], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#316-389):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#375-384)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#400-410)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#386)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L316-L389):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L375-L384)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L400-L410)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L386)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L316-L389", "id": "0c968d1b20454d8fd452f65b003e0966ae923df9d1ef17996b29defd85f3dc9e", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}, {"type": "node", "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", "source_mapping": {"start": 10156, "length": 399, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) sends eth to arbitrary user\n\tDangerous calls:\n\t- IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#87-96)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) sends eth to arbitrary user\n\tDangerous calls:\n\t- [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L87-L96)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", "id": "58b5f7a8d77486bc6173862a853121ecdf5d9979f84cc2e05b66e0f0fd11218c", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "perform", "source_mapping": {"start": 10685, "length": 1095, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}, {"type": "node", "name": "address(msg.sender).transfer(address(this).balance)", "source_mapping": {"start": 11712, "length": 51, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [142], "starting_column": 13, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10685, "length": 1095, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}], "description": "DeployHelper.perform(address,address,uint256) (src/rollup/DeployHelper.sol#102-144) sends eth to arbitrary user\n\tDangerous calls:\n\t- address(msg.sender).transfer(address(this).balance) (src/rollup/DeployHelper.sol#142)\n", "markdown": "[DeployHelper.perform(address,address,uint256)](src/rollup/DeployHelper.sol#L102-L144) sends eth to arbitrary user\n\tDangerous calls:\n\t- [address(msg.sender).transfer(address(this).balance)](src/rollup/DeployHelper.sol#L142)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L102-L144", "id": "ce5c492f55419016b34eb4e4de36fb8212599a42274960d6402d10a63f45ad40", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "anyTrustFastConfirmer", "source_mapping": {"start": 2460, "length": 36, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [80], "starting_column": 5, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "fastConfirmNextNode", "source_mapping": {"start": 6703, "length": 225, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [175, 176, 177, 178], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "fastConfirmNextNode(bytes32,bytes32)"}}], "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32) (src/rollup/RollupUserLogic.sol#175-178)\n", "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L175-L178)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L80", "id": "18d2bfd017f6e3f4e743eb058275a178a0fd6d2d88265a51e06df0a8d6cd6473", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}, {"type": "node", "name": "feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals))", "source_mapping": {"start": 9268, "length": 62, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [66], "starting_column": 17, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}, {"type": "node", "name": "feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount", "source_mapping": {"start": 9393, "length": 62, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [68], "starting_column": 21, "ending_column": 83}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) performs a multiplication on the result of a division:\n\t- feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals)) (src/rollup/DeployHelper.sol#66)\n\t- feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount (src/rollup/DeployHelper.sol#68)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) performs a multiplication on the result of a division:\n\t- [feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals))](src/rollup/DeployHelper.sol#L66)\n\t- [feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount](src/rollup/DeployHelper.sol#L68)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", "id": "4fb20a676d1f3bfb16ac2bd8d3fe3bbb5a365c9934ae12d86b9b88967edde290", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_scaleDownToNativeDecimals", "source_mapping": {"start": 13092, "length": 449, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 12840, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334], "starting_column": 1, "ending_column": 2}}, "signature": "_scaleDownToNativeDecimals(uint256,uint8)"}}, {"type": "node", "name": "scaledAmount = amount / (10 ** (18 - decimals))", "source_mapping": {"start": 13302, "length": 45, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [326], "starting_column": 13, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "_scaleDownToNativeDecimals", "source_mapping": {"start": 13092, "length": 449, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 12840, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334], "starting_column": 1, "ending_column": 2}}, "signature": "_scaleDownToNativeDecimals(uint256,uint8)"}}}}, {"type": "node", "name": "scaledAmount * (10 ** (18 - decimals)) < amount", "source_mapping": {"start": 13402, "length": 45, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [328], "starting_column": 17, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "_scaleDownToNativeDecimals", "source_mapping": {"start": 13092, "length": 449, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 12840, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334], "starting_column": 1, "ending_column": 2}}, "signature": "_scaleDownToNativeDecimals(uint256,uint8)"}}}}], "description": "RollupCreator._scaleDownToNativeDecimals(uint256,uint8) (src/rollup/RollupCreator.sol#319-333) performs a multiplication on the result of a division:\n\t- scaledAmount = amount / (10 ** (18 - decimals)) (src/rollup/RollupCreator.sol#326)\n\t- scaledAmount * (10 ** (18 - decimals)) < amount (src/rollup/RollupCreator.sol#328)\n", "markdown": "[RollupCreator._scaleDownToNativeDecimals(uint256,uint8)](src/rollup/RollupCreator.sol#L319-L333) performs a multiplication on the result of a division:\n\t- [scaledAmount = amount / (10 ** (18 - decimals))](src/rollup/RollupCreator.sol#L326)\n\t- [scaledAmount * (10 ** (18 - decimals)) < amount](src/rollup/RollupCreator.sol#L328)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L319-L333", "id": "dfee0ddb602c8f74926e48357bc4e6a51a2881e92e8dc12e111f59780c4affb8", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21012, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", "source_mapping": {"start": 22355, "length": 69, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [540], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21012, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}, {"type": "node", "name": "baseStake * multiplier", "source_mapping": {"start": 22503, "length": 29, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [544], "starting_column": 9, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21012, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#499-545) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#540)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#544)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L499-L545) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L540)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L544)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L499-L545", "id": "2803a8de725e2165f69c9445b653745db069a7cfd61b8cc7b16da012952dc7f5", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createNewNode", "source_mapping": {"start": 20694, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}, {"type": "node", "name": "require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)", "source_mapping": {"start": 21435, "length": 193, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [583, 584, 585, 586, 587], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20694, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}}}], "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#564-678) uses a dangerous strict equality:\n\t- require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH) (src/rollup/RollupCore.sol#583-587)\n", "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L564-L678) uses a dangerous strict equality:\n\t- [require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)](src/rollup/RollupCore.sol#L583-L587)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L564-L678", "id": "a6975dd3860f8b5f0ecafe0488b0b42245ca3c01b6eb97806a28024e4594f214", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "createNewNode", "source_mapping": {"start": 20694, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}, {"type": "node", "name": "require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)", "source_mapping": {"start": 23889, "length": 144, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [636, 637, 638, 639], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20694, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}}}], "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#564-678) uses a dangerous strict equality:\n\t- require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH) (src/rollup/RollupCore.sol#636-639)\n", "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L564-L678) uses a dangerous strict equality:\n\t- [require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)](src/rollup/RollupCore.sol#L636-L639)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L564-L678", "id": "3b3dac1beaad095c507198b6bb9f705f811752b33542b85f5e042f86bec5fb00", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21012, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier == 0", "source_mapping": {"start": 22438, "length": 15, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [541], "starting_column": 13, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 21012, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#499-545) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#541)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L499-L545) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L541)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L499-L545", "id": "d6f41cb5c33b4595428f9030c7e4c9a13c4023ba81089f63456a41d8784bd753", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26221, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [638, 639, 640, 641], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}, {"type": "node", "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", "source_mapping": {"start": 26358, "length": 68, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [640], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 26221, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [638, 639, 640, 641], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}}}], "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#638-641) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#640)\n", "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L638-L641) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L640)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L638-L641", "id": "7bbbccc60c30858495f1002fa4f96507c8f35e5225b241a5dab5ec293383b044", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7710, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}, {"type": "node", "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", "source_mapping": {"start": 8172, "length": 72, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [211], "starting_column": 9, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 7710, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}}}], "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#198-213) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#211)\n", "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L198-L213) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L211)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L198-L213", "id": "8e5cdf0b77d052567cdd55e34a5291c9b1e139a5df0033fdf1de430263047d89", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "node", "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)", "source_mapping": {"start": 10820, "length": 198, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10685, "length": 1095, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}, {"type": "node", "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)", "source_mapping": {"start": 10820, "length": 198, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10685, "length": 1095, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}], "description": "Multiple retryable tickets created in the same function:\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#107-114)\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#107-114)\n", "markdown": "Multiple retryable tickets created in the same function:\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L107-L114)\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L107-L114)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L107-L114", "id": "f31d620e4b82e77afe7ac6649042f283243e9582402f79ba35dacb2026ef6aa7", "check": "out-of-order-retryable", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createChallenge", "source_mapping": {"start": 13066, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}, {"type": "node", "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", "source_mapping": {"start": 15609, "length": 398, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [372, 373, 374, 375, 376, 377, 378, 379, 380, 381], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13066, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", "source_mapping": {"start": 16551, "length": 317, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407], "starting_column": 9, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallengeHelper", "source_mapping": {"start": 16203, "length": 672, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", "source_mapping": {"start": 16043, "length": 56, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [383], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 13066, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25934, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker1].currentChallenge = challenge", "source_mapping": {"start": 13618, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [384], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker2].currentChallenge = challenge", "source_mapping": {"start": 13676, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [385], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13491, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#313-386):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#372-381)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#397-407)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#383)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L313-L386):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L372-L381)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L397-L407)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L383)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L313-L386", "id": "c426748e54bb463a55d94c54cd2dffbe8b77ffd98bce03600799e5fe749a7b1d", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 1225, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 12161, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}, {"type": "node", "name": "executeBridgeCall(to,amountToUnlock,data)", "source_mapping": {"start": 8479, "length": 43, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [226], "starting_column": 9, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 1225, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 12161, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "(success,returndata) = bridge.executeCall(to,value,data)", "source_mapping": {"start": 10189, "length": 77, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [279], "starting_column": 9, "ending_column": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "executeBridgeCall", "source_mapping": {"start": 10067, "length": 594, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 12161, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335], "starting_column": 1, "ending_column": 2}}, "signature": "executeBridgeCall(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "context = prevContext", "source_mapping": {"start": 8533, "length": 21, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [228], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 1225, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 12161, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "context"}}], "description": "Reentrancy in AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-229):\n\tExternal calls:\n\t- executeBridgeCall(to,amountToUnlock,data) (src/bridge/AbsOutbox.sol#226)\n\t\t- (success,returndata) = bridge.executeCall(to,value,data) (src/bridge/AbsOutbox.sol#279)\n\tState variables written after the call(s):\n\t- context = prevContext (src/bridge/AbsOutbox.sol#228)\n\tAbsOutbox.context (src/bridge/AbsOutbox.sol#51) can be used in cross function reentrancies:\n\t- AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-229)\n\t- AbsOutbox.initialize(IBridge) (src/bridge/AbsOutbox.sol#63-79)\n\t- AbsOutbox.l2ToL1Block() (src/bridge/AbsOutbox.sol#118-123)\n\t- AbsOutbox.l2ToL1EthBlock() (src/bridge/AbsOutbox.sol#126-131)\n\t- AbsOutbox.l2ToL1OutputId() (src/bridge/AbsOutbox.sol#147-152)\n\t- AbsOutbox.l2ToL1Sender() (src/bridge/AbsOutbox.sol#110-115)\n\t- AbsOutbox.l2ToL1Timestamp() (src/bridge/AbsOutbox.sol#134-139)\n\t- AbsOutbox.postUpgradeInit() (src/bridge/AbsOutbox.sol#81-92)\n", "markdown": "Reentrancy in [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L229):\n\tExternal calls:\n\t- [executeBridgeCall(to,amountToUnlock,data)](src/bridge/AbsOutbox.sol#L226)\n\t\t- [(success,returndata) = bridge.executeCall(to,value,data)](src/bridge/AbsOutbox.sol#L279)\n\tState variables written after the call(s):\n\t- [context = prevContext](src/bridge/AbsOutbox.sol#L228)\n\t[AbsOutbox.context](src/bridge/AbsOutbox.sol#L51) can be used in cross function reentrancies:\n\t- [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L229)\n\t- [AbsOutbox.initialize(IBridge)](src/bridge/AbsOutbox.sol#L63-L79)\n\t- [AbsOutbox.l2ToL1Block()](src/bridge/AbsOutbox.sol#L118-L123)\n\t- [AbsOutbox.l2ToL1EthBlock()](src/bridge/AbsOutbox.sol#L126-L131)\n\t- [AbsOutbox.l2ToL1OutputId()](src/bridge/AbsOutbox.sol#L147-L152)\n\t- [AbsOutbox.l2ToL1Sender()](src/bridge/AbsOutbox.sol#L110-L115)\n\t- [AbsOutbox.l2ToL1Timestamp()](src/bridge/AbsOutbox.sol#L134-L139)\n\t- [AbsOutbox.postUpgradeInit()](src/bridge/AbsOutbox.sol#L81-L92)\n", "first_markdown_element": "src/bridge/AbsOutbox.sol#L196-L229", "id": "b42ba1855895a9ed1833beaf1f3c481a846ec27a28578623d5aca757932249c1", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 15056, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}, {"type": "node", "name": "challengeManager.clearChallenge(chall)", "source_mapping": {"start": 10950, "length": 38, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [271], "starting_column": 13, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 15056, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "clearChallenge(stakerA[i])", "source_mapping": {"start": 10870, "length": 26, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [269], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 15056, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "staker.currentChallenge = NO_CHAL_INDEX", "source_mapping": {"start": 13178, "length": 39, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [370], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "clearChallenge", "source_mapping": {"start": 13053, "length": 171, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [368, 369, 370, 371], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "clearChallenge(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "clearChallenge(stakerB[i])", "source_mapping": {"start": 10910, "length": 26, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [270], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 15056, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "staker.currentChallenge = NO_CHAL_INDEX", "source_mapping": {"start": 13178, "length": 39, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [370], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "clearChallenge", "source_mapping": {"start": 13053, "length": 171, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [368, 369, 370, 371], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24629, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679], "starting_column": 1, "ending_column": 2}}, "signature": "clearChallenge(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in RollupAdminLogic.forceResolveChallenge(address[],address[]) (src/rollup/RollupAdminLogic.sol#258-274):\n\tExternal calls:\n\t- challengeManager.clearChallenge(chall) (src/rollup/RollupAdminLogic.sol#271)\n\tState variables written after the call(s):\n\t- clearChallenge(stakerA[i]) (src/rollup/RollupAdminLogic.sol#269)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#370)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- clearChallenge(stakerB[i]) (src/rollup/RollupAdminLogic.sol#270)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#370)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n", "markdown": "Reentrancy in [RollupAdminLogic.forceResolveChallenge(address[],address[])](src/rollup/RollupAdminLogic.sol#L258-L274):\n\tExternal calls:\n\t- [challengeManager.clearChallenge(chall)](src/rollup/RollupAdminLogic.sol#L271)\n\tState variables written after the call(s):\n\t- [clearChallenge(stakerA[i])](src/rollup/RollupAdminLogic.sol#L269)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L370)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [clearChallenge(stakerB[i])](src/rollup/RollupAdminLogic.sol#L270)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L370)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n", "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L258-L274", "id": "3a149381278a1de4529bcf77f84d92625154d32ad83406ea2d17142b95cb4a53", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}, {"type": "node", "name": "IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:})", "source_mapping": {"start": 9674, "length": 451, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:}) (src/rollup/DeployHelper.sol#75-85)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:})](src/rollup/DeployHelper.sol#L75-L85)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", "id": "bc3bd802cf43553ebdde2f5a650bd37e2ba8471fe3f9de0d0bdbfad1fced1d00", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}, {"type": "node", "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", "source_mapping": {"start": 10156, "length": 399, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#87-96)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L87-L96)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", "id": "fb1bf81f56dbacb484c41b74ff6b97327ed3ab06f9599b6d9c236b51f9a320ad", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}, {"type": "node", "name": "IInboxBase(inbox).sendL2Message(payload)", "source_mapping": {"start": 10632, "length": 40, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [99], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8525, "length": 2154, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 525, "length": 11692, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IInboxBase(inbox).sendL2Message(payload) (src/rollup/DeployHelper.sol#99)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IInboxBase(inbox).sendL2Message(payload)](src/rollup/DeployHelper.sol#L99)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", "id": "1c1cb22c16963df7619b9d485774b3c8fbd70bb511ebd2becbfca1ad7bd77e50", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "deploy", "source_mapping": {"start": 660, "length": 435, "filename_relative": "src/rollup/FactoryDeployerHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", "filename_short": "src/rollup/FactoryDeployerHelper.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FactoryDeployerHelper", "source_mapping": {"start": 373, "length": 724, "filename_relative": "src/rollup/FactoryDeployerHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", "filename_short": "src/rollup/FactoryDeployerHelper.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "starting_column": 1, "ending_column": 2}}, "signature": "deploy(address,uint256)"}}, {"type": "node", "name": "IERC20(feeToken).transferFrom(msg.sender,inbox,amount)", "source_mapping": {"start": 955, "length": 56, "filename_relative": "src/rollup/FactoryDeployerHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", "filename_short": "src/rollup/FactoryDeployerHelper.sol", "is_dependency": false, "lines": [22], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "deploy", "source_mapping": {"start": 660, "length": 435, "filename_relative": "src/rollup/FactoryDeployerHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", "filename_short": "src/rollup/FactoryDeployerHelper.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FactoryDeployerHelper", "source_mapping": {"start": 373, "length": 724, "filename_relative": "src/rollup/FactoryDeployerHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", "filename_short": "src/rollup/FactoryDeployerHelper.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "starting_column": 1, "ending_column": 2}}, "signature": "deploy(address,uint256)"}}}}], "description": "FactoryDeployerHelper.deploy(address,uint256) (src/rollup/FactoryDeployerHelper.sol#17-24) ignores return value by IERC20(feeToken).transferFrom(msg.sender,inbox,amount) (src/rollup/FactoryDeployerHelper.sol#22)\n", "markdown": "[FactoryDeployerHelper.deploy(address,uint256)](src/rollup/FactoryDeployerHelper.sol#L17-L24) ignores return value by [IERC20(feeToken).transferFrom(msg.sender,inbox,amount)](src/rollup/FactoryDeployerHelper.sol#L22)\n", "first_markdown_element": "src/rollup/FactoryDeployerHelper.sol#L17-L24", "id": "b61f6cd7e1b9dac16bde231f4604f5082f9d2bb1141b083d7b0c790237076ce2", "check": "unchecked-transfer", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}, {"type": "node", "name": "index == entries.length", "source_mapping": {"start": 9123, "length": 23, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [255], "starting_column": 13, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}}], "description": "CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#255)\n", "markdown": "[CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L255)\n", "first_markdown_element": "src/chain/CacheManager.sol#L240-L261", "id": "d628a546b26bab7d17e51242113a300dee8b63d78108aa14fa547838f7c984b2", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheProgram(program)", "source_mapping": {"start": 9005, "length": 36, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [252], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 9092, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheProgram(program) (src/chain/CacheManager.sol#252)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#254)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#196-205)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", "markdown": "Reentrancy in [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheProgram(program)](src/chain/CacheManager.sol#L252)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L254)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L196-L205)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", "first_markdown_element": "src/chain/CacheManager.sol#L240-L261", "id": "e3c59613b5f55bcaed6f72836989cdf48eec69a17bd181502982fefee7611e78", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 9356, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [264, 265, 266, 267, 268, 269, 270], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9469, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [266], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 9356, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [264, 265, 266, 267, 268, 269, 270], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "delete entries[index]", "source_mapping": {"start": 9605, "length": 21, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [269], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 9356, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [264, 265, 266, 267, 268, 269, 270], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#269)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L269)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", "first_markdown_element": "src/chain/CacheManager.sol#L264-L270", "id": "da879b6db94b2d7e9b0b7ac41852a5d4daca51e4947137749f0329b126127352", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "evictAll", "source_mapping": {"start": 2880, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}, {"type": "node", "name": "evictPrograms(type()(uint256).max)", "source_mapping": {"start": 2929, "length": 32, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [90], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2880, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9469, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [266], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 9356, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [264, 265, 266, 267, 268, 269, 270], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "delete entries", "source_mapping": {"start": 2971, "length": 14, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [91], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2880, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#89-92):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#90)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#91)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L90)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L91)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", "first_markdown_element": "src/chain/CacheManager.sol#L89-L92", "id": "02366c421ff860e2f8a1d8cd1d277a7c7b74585fbb7afb043f28e6cf527b3d68", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "placeBid", "source_mapping": {"start": 6437, "length": 420, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(address)"}}, {"type": "node", "name": "(bid,index) = _makeSpace(asm)", "source_mapping": {"start": 6745, "length": 45, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [189], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6437, "length": 420, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9469, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [266], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 9356, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [264, 265, 266, 267, 268, 269, 270], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,program,codehash,asm,index)", "source_mapping": {"start": 6800, "length": 50, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [190], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6437, "length": 420, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheProgram(program)", "source_mapping": {"start": 9005, "length": 36, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [252], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,program,codehash,asm,index)", "source_mapping": {"start": 6800, "length": 50, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [190], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6437, "length": 420, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries.push(entry)", "source_mapping": {"start": 9162, "length": 19, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256], "starting_column": 13, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries[index] = entry", "source_mapping": {"start": 9212, "length": 22, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [258], "starting_column": 13, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "_addBid(bid,program,codehash,asm,index)", "source_mapping": {"start": 6800, "length": 50, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [190], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6437, "length": 420, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 9092, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8665, "length": 636, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 10045, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,address,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager.placeBid(address) (src/chain/CacheManager.sol#179-191):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#189)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- ARB_WASM_CACHE.cacheProgram(program) (src/chain/CacheManager.sol#252)\n\tState variables written after the call(s):\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#256)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#258)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- queueSize += size (src/chain/CacheManager.sol#254)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#196-205)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", "markdown": "Reentrancy in [CacheManager.placeBid(address)](src/chain/CacheManager.sol#L179-L191):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L189)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [ARB_WASM_CACHE.cacheProgram(program)](src/chain/CacheManager.sol#L252)\n\tState variables written after the call(s):\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L256)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L258)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L254)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L196-L205)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", "first_markdown_element": "src/chain/CacheManager.sol#L179-L191", "id": "0c16e4db0a475c13c57a12b678c8c00c11806c69f841246d0fbbc7448bde8935", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}, {"type": "node", "name": "index == entries.length", "source_mapping": {"start": 8731, "length": 23, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [247], "starting_column": 13, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}}], "description": "CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#247)\n", "markdown": "[CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L247)\n", "first_markdown_element": "src/chain/CacheManager.sol#L233-L253", "id": "4c098b01c2961dc5b2294e0f72e7cf015b9600b3d18b28ada01a3659da0d5e6f", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheCodehash(code)", "source_mapping": {"start": 8615, "length": 34, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [244], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 8700, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [246], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#244)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#246)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#189-198)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", "markdown": "Reentrancy in [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L244)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L246)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L189-L198)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", "first_markdown_element": "src/chain/CacheManager.sol#L233-L253", "id": "b9f6ea80a6accee7014dea8d7e8b56ddc8f2ed2255b688758266f20c2bbf230e", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8955, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256, 257, 258, 259, 260, 261, 262], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9068, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [258], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8955, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256, 257, 258, 259, 260, 261, 262], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "delete entries[index]", "source_mapping": {"start": 9204, "length": 21, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [261], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8955, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256, 257, 258, 259, 260, 261, 262], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#261)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L261)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", "first_markdown_element": "src/chain/CacheManager.sol#L256-L262", "id": "4848413594e9f06020a2a4a3b7755e0ac5f0d7f7c22946958b361b50e6ce4a52", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "evictAll", "source_mapping": {"start": 2863, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}, {"type": "node", "name": "evictPrograms(type()(uint256).max)", "source_mapping": {"start": 2912, "length": 32, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [90], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2863, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9068, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [258], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8955, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256, 257, 258, 259, 260, 261, 262], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "delete entries", "source_mapping": {"start": 2954, "length": 14, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [91], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2863, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#89-92):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#90)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#91)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L90)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L91)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", "first_markdown_element": "src/chain/CacheManager.sol#L89-L92", "id": "bf120df8d715208381d983040d42897d8dcac47177e732ee5496cde132d2f231", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "placeBid", "source_mapping": {"start": 6125, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}, {"type": "node", "name": "(bid,index) = _makeSpace(asm)", "source_mapping": {"start": 6389, "length": 45, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [182], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6125, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 9068, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [258], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8955, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256, 257, 258, 259, 260, 261, 262], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6444, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [183], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6125, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheCodehash(code)", "source_mapping": {"start": 8615, "length": 34, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [244], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6444, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [183], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6125, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries.push(entry)", "source_mapping": {"start": 8770, "length": 19, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries[index] = entry", "source_mapping": {"start": 8820, "length": 22, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [250], "starting_column": 13, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6444, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [183], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 6125, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 8700, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [246], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8300, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 471, "length": 9644, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager.placeBid(bytes32) (src/chain/CacheManager.sol#173-184):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#182)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#244)\n\tState variables written after the call(s):\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#248)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#250)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- queueSize += size (src/chain/CacheManager.sol#246)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#189-198)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", "markdown": "Reentrancy in [CacheManager.placeBid(bytes32)](src/chain/CacheManager.sol#L173-L184):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L182)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L244)\n\tState variables written after the call(s):\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L248)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L250)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L246)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L189-L198)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", "first_markdown_element": "src/chain/CacheManager.sol#L173-L184", "id": "436212c386c26726839a1cf3068734d839e7b01aab9f4594d2df94fcad8587cf", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}, {"type": "node", "name": "l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)", "source_mapping": {"start": 10973, "length": 77, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [268], "starting_column": 13, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}}}, {"type": "node", "name": "(sent,None) = msg.sender.call{value: address(this).balance}()", "source_mapping": {"start": 11161, "length": 65, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [272], "starting_column": 13, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}}}], "description": "RollupCreator._deployFactories(address,address,uint256) (src/rollup/RollupCreator.sol#255-285) sends eth to arbitrary user\n\tDangerous calls:\n\t- l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas) (src/rollup/RollupCreator.sol#268)\n\t- (sent,None) = msg.sender.call{value: address(this).balance}() (src/rollup/RollupCreator.sol#272)\n", "markdown": "[RollupCreator._deployFactories(address,address,uint256)](src/rollup/RollupCreator.sol#L255-L285) sends eth to arbitrary user\n\tDangerous calls:\n\t- [l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)](src/rollup/RollupCreator.sol#L268)\n\t- [(sent,None) = msg.sender.call{value: address(this).balance}()](src/rollup/RollupCreator.sol#L272)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L255-L285", "id": "33e46ab503ffc67db10a32c76db44b3d71085e8ccabf978afab4963ab79410b7", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}, {"type": "node", "name": "index == entries.length", "source_mapping": {"start": 8531, "length": 23, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [245], "starting_column": 13, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}}], "description": "CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#245)\n", "markdown": "[CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L245)\n", "first_markdown_element": "src/chain/CacheManager.sol#L231-L251", "id": "3a781781186cbb842796b829845aa7945c024854a5354a602603028bf3bf838a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "executeLinkModule", "source_mapping": {"start": 16420, "length": 1090, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "(userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)", "source_mapping": {"start": 16918, "length": 141, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [448, 449, 450, 451, 452], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "executeLinkModule", "source_mapping": {"start": 16420, "length": 1090, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#433-464) ignores return value by (userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0) (src/osp/OneStepProverHostIo.sol#448-452)\n", "markdown": "[OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L433-L464) ignores return value by [(userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)](src/osp/OneStepProverHostIo.sol#L448-L452)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L433-L464", "id": "92ac837d702aee6d12fc38548f7f338739ba47bacbb9aa683450dead6b522b68", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1168, "length": 3662, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 10198, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "(err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0)", "source_mapping": {"start": 3641, "length": 79, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [106], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1168, "length": 3662, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 10198, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#36-131) ignores return value by (err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0) (src/osp/OneStepProverMemory.sol#106)\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L36-L131) ignores return value by [(err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0)](src/osp/OneStepProverMemory.sol#L106)\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L36-L131", "id": "b002aa15c2eafad3b5923f9ca2204b8ea235c930c19b94647b519331fc1abc4c", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}, {"type": "node", "name": "(None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates()", "source_mapping": {"start": 5121, "length": 115, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [117, 118], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}}}], "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates() (src/rollup/RollupCreator.sol#117-118)\n", "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates()](src/rollup/RollupCreator.sol#L117-L118)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", "id": "6ac2b9112a4ee35d3925d1fe7a7ff08b6979520c84e24a42eba70d56c25bfb49", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}, {"type": "node", "name": "(None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates()", "source_mapping": {"start": 5509, "length": 121, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [125, 126], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}}}], "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates() (src/rollup/RollupCreator.sol#125-126)\n", "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates()](src/rollup/RollupCreator.sol#L125-L126)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", "id": "a4a7309cfe7707c52e24933155fba88b888f432e0f2bd5db4106b9577b09fab3", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "lastProvedLeafContents", "source_mapping": {"start": 7133, "length": 30, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [192], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryStore", "source_mapping": {"start": 4836, "length": 3663, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 10198, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedLeafContents (src/osp/OneStepProverMemory.sol#192) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedLeafContents](src/osp/OneStepProverMemory.sol#L192) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L192", "id": "00c7e5f6fcc242a5d65ca8b940bee5979b1e5fae2dfaad3a0f8f2ba6c6cd7a99", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 1364, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 2649, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}, {"type": "node", "name": "segmentLength = selection.oldSegmentsLength / oldChallengeDegree", "source_mapping": {"start": 1611, "length": 64, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [57], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 1364, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 2649, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}}}, {"type": "node", "name": "segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition", "source_mapping": {"start": 1784, "length": 87, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [59], "starting_column": 9, "ending_column": 96}, "type_specific_fields": {"parent": {"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 1364, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 2649, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}}}], "description": "ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection) (src/challenge/ChallengeLib.sol#51-63) performs a multiplication on the result of a division:\n\t- segmentLength = selection.oldSegmentsLength / oldChallengeDegree (src/challenge/ChallengeLib.sol#57)\n\t- segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition (src/challenge/ChallengeLib.sol#59)\n", "markdown": "[ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection)](src/challenge/ChallengeLib.sol#L51-L63) performs a multiplication on the result of a division:\n\t- [segmentLength = selection.oldSegmentsLength / oldChallengeDegree](src/challenge/ChallengeLib.sol#L57)\n\t- [segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition](src/challenge/ChallengeLib.sol#L59)\n", "first_markdown_element": "src/challenge/ChallengeLib.sol#L51-L63", "id": "a4b93976a94b1cf6b99dc623ae954b79e816fc108466f521511aaa71a571ee62", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4469, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "rootOfUnityPower = (1 << 32) / fieldElementsPerBlob", "source_mapping": {"start": 9247, "length": 59, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [229], "starting_column": 17, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4469, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "rootOfUnityPower *= bitReversedIndex", "source_mapping": {"start": 9474, "length": 36, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [232], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4469, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#128-250) performs a multiplication on the result of a division:\n\t- rootOfUnityPower = (1 << 32) / fieldElementsPerBlob (src/osp/OneStepProverHostIo.sol#229)\n\t- rootOfUnityPower *= bitReversedIndex (src/osp/OneStepProverHostIo.sol#232)\n", "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L128-L250) performs a multiplication on the result of a division:\n\t- [rootOfUnityPower = (1 << 32) / fieldElementsPerBlob](src/osp/OneStepProverHostIo.sol#L229)\n\t- [rootOfUnityPower *= bitReversedIndex](src/osp/OneStepProverHostIo.sol#L232)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L128-L250", "id": "f0b43f8c42c636a0a6c208ac9bd013cf20177f73df6cf1ea5ab40b7aec7a50ca", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheCodehash(code)", "source_mapping": {"start": 8415, "length": 34, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [242], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 8500, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [244], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#242)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#244)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#25) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#122-150)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#187-196)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#25)\n", "markdown": "Reentrancy in [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L242)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L244)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L25) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L122-L150)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L187-L196)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L25)\n", "first_markdown_element": "src/chain/CacheManager.sol#L231-L251", "id": "7cafef621b24ce7927bcb6c53b9a6c824466abcd138ed1f43bd4a38e07637b19", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8755, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254, 255, 256, 257, 258, 259, 260], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 8868, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8755, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254, 255, 256, 257, 258, 259, 260], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "delete entries[index]", "source_mapping": {"start": 9004, "length": 21, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [259], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8755, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254, 255, 256, 257, 258, 259, 260], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#259)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n", "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L259)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n", "first_markdown_element": "src/chain/CacheManager.sol#L254-L260", "id": "1400e2c01607b2bdf7010ad99c436ef2db92c4122f6340a3ca3e5664bc80c983", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "evictAll", "source_mapping": {"start": 2663, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [87, 88, 89, 90], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}, {"type": "node", "name": "evictPrograms(type()(uint256).max)", "source_mapping": {"start": 2712, "length": 32, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [88], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2663, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [87, 88, 89, 90], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 8868, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8755, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254, 255, 256, 257, 258, 259, 260], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "delete entries", "source_mapping": {"start": 2754, "length": 14, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [89], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "evictAll", "source_mapping": {"start": 2663, "length": 112, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [87, 88, 89, 90], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "evictAll()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}], "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#87-90):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#88)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#89)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n", "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L88)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L89)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n", "first_markdown_element": "src/chain/CacheManager.sol#L87-L90", "id": "e453de7fb42e742ec25db94618c0bc9d52db23aecc625992da375d6e46e61fa8", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "placeBid", "source_mapping": {"start": 5925, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}, {"type": "node", "name": "(bid,index) = _makeSpace(asm)", "source_mapping": {"start": 6189, "length": 45, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [180], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 5925, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", "source_mapping": {"start": 8868, "length": 40, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [256], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_deleteEntry", "source_mapping": {"start": 8755, "length": 277, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [254, 255, 256, 257, 258, 259, 260], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_deleteEntry(uint192,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6244, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [181], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 5925, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ARB_WASM_CACHE.cacheCodehash(code)", "source_mapping": {"start": 8415, "length": 34, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [242], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6244, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [181], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 5925, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries.push(entry)", "source_mapping": {"start": 8570, "length": 19, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [246], "starting_column": 13, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "entries[index] = entry", "source_mapping": {"start": 8620, "length": 22, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "entries"}}, {"type": "node", "name": "_addBid(bid,codehash,asm,index)", "source_mapping": {"start": 6244, "length": 41, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [181], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "placeBid", "source_mapping": {"start": 5925, "length": 367, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "placeBid(bytes32)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}, {"type": "node", "name": "queueSize += size", "source_mapping": {"start": 8500, "length": 17, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [244], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "_addBid", "source_mapping": {"start": 8100, "length": 600, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_addBid(uint192,bytes32,uint64,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "queueSize"}}], "description": "Reentrancy in CacheManager.placeBid(bytes32) (src/chain/CacheManager.sol#171-182):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#180)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#242)\n\tState variables written after the call(s):\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#246)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#248)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- queueSize += size (src/chain/CacheManager.sol#244)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#25) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#122-150)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#187-196)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#25)\n", "markdown": "Reentrancy in [CacheManager.placeBid(bytes32)](src/chain/CacheManager.sol#L171-L182):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L180)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L242)\n\tState variables written after the call(s):\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L246)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L248)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L244)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L25) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L122-L150)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L187-L196)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L25)\n", "first_markdown_element": "src/chain/CacheManager.sol#L171-L182", "id": "1e0701041bd439420af2077b392bf8fa2ccd25ae29d0d785daec5e92d76ecbb8", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "internalStack", "source_mapping": {"start": 1753, "length": 31, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [52], "starting_column": 9, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "getStartMachineHash", "source_mapping": {"start": 1158, "length": 1300, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProofEntry", "source_mapping": {"start": 407, "length": 7601, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], "starting_column": 1, "ending_column": 2}}, "signature": "getStartMachineHash(bytes32,bytes32)"}}}}], "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).internalStack (src/osp/OneStepProofEntry.sol#52) is a local variable never initialized\n", "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).internalStack](src/osp/OneStepProofEntry.sol#L52) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProofEntry.sol#L52", "id": "fb3b9ad9a22662ab3a9d3f187478b9833041da23c79103d4346a16da071526e9", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "frameStack", "source_mapping": {"start": 1794, "length": 34, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "getStartMachineHash", "source_mapping": {"start": 1158, "length": 1300, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProofEntry", "source_mapping": {"start": 407, "length": 7601, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], "starting_column": 1, "ending_column": 2}}, "signature": "getStartMachineHash(bytes32,bytes32)"}}}}], "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).frameStack (src/osp/OneStepProofEntry.sol#53) is a local variable never initialized\n", "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).frameStack](src/osp/OneStepProofEntry.sol#L53) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProofEntry.sol#L53", "id": "2dd21e12ec5d5965b5bd41d82bb252991172e100ac1f78846fb692a07fd06c26", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "lastProvedLeafContents", "source_mapping": {"start": 2178, "length": 30, "filename_relative": "src/state/ModuleMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", "filename_short": "src/state/ModuleMemory.sol", "is_dependency": false, "lines": [73], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "load", "source_mapping": {"start": 1729, "length": 1164, "filename_relative": "src/state/ModuleMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", "filename_short": "src/state/ModuleMemory.sol", "is_dependency": false, "lines": [53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ModuleMemoryLib", "source_mapping": {"start": 298, "length": 2597, "filename_relative": "src/state/ModuleMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", "filename_short": "src/state/ModuleMemory.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92], "starting_column": 1, "ending_column": 2}}, "signature": "load(ModuleMemory,uint256,uint256,bytes,uint256)"}}}}], "description": "ModuleMemoryLib.load(ModuleMemory,uint256,uint256,bytes,uint256).lastProvedLeafContents (src/state/ModuleMemory.sol#73) is a local variable never initialized\n", "markdown": "[ModuleMemoryLib.load(ModuleMemory,uint256,uint256,bytes,uint256).lastProvedLeafContents](src/state/ModuleMemory.sol#L73) is a local variable never initialized\n", "first_markdown_element": "src/state/ModuleMemory.sol#L73", "id": "ddf8f7daccaffa622915e6d24c5497c3801c89f4969af443509e576747d091fe", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "emptyMultiStack", "source_mapping": {"start": 1838, "length": 33, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [54], "starting_column": 9, "ending_column": 42}, "type_specific_fields": {"parent": {"type": "function", "name": "getStartMachineHash", "source_mapping": {"start": 1158, "length": 1300, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProofEntry", "source_mapping": {"start": 407, "length": 7601, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], "starting_column": 1, "ending_column": 2}}, "signature": "getStartMachineHash(bytes32,bytes32)"}}}}], "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).emptyMultiStack (src/osp/OneStepProofEntry.sol#54) is a local variable never initialized\n", "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).emptyMultiStack](src/osp/OneStepProofEntry.sol#L54) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProofEntry.sol#L54", "id": "5c6acbea6429303780ccb1049265a5d97162a57ddda1d6d332f3201bff526332", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "min", "source_mapping": {"start": 7701, "length": 11, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [218], "starting_column": 9, "ending_column": 20}, "type_specific_fields": {"parent": {"type": "function", "name": "_makeSpace", "source_mapping": {"start": 7478, "length": 592, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CacheManager", "source_mapping": {"start": 350, "length": 9565, "filename_relative": "src/chain/CacheManager.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", "filename_short": "src/chain/CacheManager.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283], "starting_column": 1, "ending_column": 2}}, "signature": "_makeSpace(uint64)"}}}}], "description": "CacheManager._makeSpace(uint64).min (src/chain/CacheManager.sol#218) is a local variable never initialized\n", "markdown": "[CacheManager._makeSpace(uint64).min](src/chain/CacheManager.sol#L218) is a local variable never initialized\n", "first_markdown_element": "src/chain/CacheManager.sol#L218", "id": "73850e9ef891d5f054eb989dce18e9362ba7349b4f2237be464bcaeab7c4fe54", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "proveOneStep", "source_mapping": {"start": 3092, "length": 4914, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProofEntry", "source_mapping": {"start": 407, "length": 7601, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], "starting_column": 1, "ending_column": 2}}, "signature": "proveOneStep(ExecutionContext,uint256,bytes32,bytes)"}}, {"type": "node", "name": "mach.setPcFromRecovery()", "source_mapping": {"start": 7887, "length": 24, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [197], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "proveOneStep", "source_mapping": {"start": 3092, "length": 4914, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProofEntry", "source_mapping": {"start": 407, "length": 7601, "filename_relative": "src/osp/OneStepProofEntry.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", "filename_short": "src/osp/OneStepProofEntry.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203], "starting_column": 1, "ending_column": 2}}, "signature": "proveOneStep(ExecutionContext,uint256,bytes32,bytes)"}}}}], "description": "OneStepProofEntry.proveOneStep(ExecutionContext,uint256,bytes32,bytes) (src/osp/OneStepProofEntry.sol#91-202) ignores return value by mach.setPcFromRecovery() (src/osp/OneStepProofEntry.sol#197)\n", "markdown": "[OneStepProofEntry.proveOneStep(ExecutionContext,uint256,bytes32,bytes)](src/osp/OneStepProofEntry.sol#L91-L202) ignores return value by [mach.setPcFromRecovery()](src/osp/OneStepProofEntry.sol#L197)\n", "first_markdown_element": "src/osp/OneStepProofEntry.sol#L91-L202", "id": "1e2dda001e02cbbabef97b698cc66ccc8052b4444a6785554ba4d649b6511550", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeDrop", "source_mapping": {"start": 1726, "length": 185, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [61, 62, 63, 64, 65, 66, 67, 68], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 18300, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538], "starting_column": 1, "ending_column": 2}}, "signature": "executeDrop(Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "mach.valueStack.pop()", "source_mapping": {"start": 1883, "length": 21, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [67], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "executeDrop", "source_mapping": {"start": 1726, "length": 185, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [61, 62, 63, 64, 65, 66, 67, 68], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 18300, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538], "starting_column": 1, "ending_column": 2}}, "signature": "executeDrop(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeDrop(Machine,Module,Instruction,bytes) (src/osp/OneStepProver0.sol#61-68) ignores return value by mach.valueStack.pop() (src/osp/OneStepProver0.sol#67)\n", "markdown": "[OneStepProver0.executeDrop(Machine,Module,Instruction,bytes)](src/osp/OneStepProver0.sol#L61-L68) ignores return value by [mach.valueStack.pop()](src/osp/OneStepProver0.sol#L67)\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L61-L68", "id": "eba4f716555f696a91fc8ad9e049846421a7a6ad85a83865fb641cf1b9b27c54", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10247, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}, {"type": "node", "name": "(afterDelayedMsg,None) = Deserialize.u64(message,32)", "source_mapping": {"start": 10532, "length": 50, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [260], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10247, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#252-274) ignores return value by (afterDelayedMsg,None) = Deserialize.u64(message,32) (src/osp/OneStepProverHostIo.sol#260)\n", "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L252-L274) ignores return value by [(afterDelayedMsg,None) = Deserialize.u64(message,32)](src/osp/OneStepProverHostIo.sol#L260)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L252-L274", "id": "7a935ab3d3995d6dce7a8ceebf4df0c402dd5ffa259ff05c1b75422e65f9a5ed", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "validateDelayedInbox", "source_mapping": {"start": 11137, "length": 916, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)"}}, {"type": "node", "name": "(sender,None) = Deserialize.u256(message,1)", "source_mapping": {"start": 11660, "length": 41, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [292], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "validateDelayedInbox", "source_mapping": {"start": 11137, "length": 916, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#276-301) ignores return value by (sender,None) = Deserialize.u256(message,1) (src/osp/OneStepProverHostIo.sol#292)\n", "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L276-L301) ignores return value by [(sender,None) = Deserialize.u256(message,1)](src/osp/OneStepProverHostIo.sol#L292)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L276-L301", "id": "81ff5b93f212262122b563d7d9aa8ed5b61e0fe74edfe59c06accd2ae77a46ca", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeLinkModule", "source_mapping": {"start": 16420, "length": 1090, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "(userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)", "source_mapping": {"start": 16918, "length": 141, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [448, 449, 450, 451, 452], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "executeLinkModule", "source_mapping": {"start": 16420, "length": 1090, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#433-464) ignores return value by (userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0) (src/osp/OneStepProverHostIo.sol#448-452)\n", "markdown": "[OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L433-L464) ignores return value by [(userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)](src/osp/OneStepProverHostIo.sol#L448-L452)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L433-L464", "id": "ca4b4a9a8f6f270a10c0e390a10831708cbcfc0bfa398fc3f21331bfbd5fc479", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeSwitchCoThread", "source_mapping": {"start": 21302, "length": 1074, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "mach.setRecoveryFromPc(uint32(inst.argumentData))", "source_mapping": {"start": 22273, "length": 49, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [597], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "executeSwitchCoThread", "source_mapping": {"start": 21302, "length": 1074, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 502, "length": 23583, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "starting_column": 1, "ending_column": 2}}, "signature": "executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#572-600) ignores return value by mach.setRecoveryFromPc(uint32(inst.argumentData)) (src/osp/OneStepProverHostIo.sol#597)\n", "markdown": "[OneStepProverHostIo.executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L572-L600) ignores return value by [mach.setRecoveryFromPc(uint32(inst.argumentData))](src/osp/OneStepProverHostIo.sol#L597)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L572-L600", "id": "ac3b6c8d13d7ed575d28aeae91d5e7c25757469f13c56cd8ec10843535deca31", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1168, "length": 3662, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 10198, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "(err,value) = mod.moduleMemory.load(index,readBytes,proof,0)", "source_mapping": {"start": 3641, "length": 79, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [106], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1168, "length": 3662, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 10198, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#36-131) ignores return value by (err,value) = mod.moduleMemory.load(index,readBytes,proof,0) (src/osp/OneStepProverMemory.sol#106)\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L36-L131) ignores return value by [(err,value) = mod.moduleMemory.load(index,readBytes,proof,0)](src/osp/OneStepProverMemory.sol#L106)\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L36-L131", "id": "df6a63edce47eb17310486af71173d172b59ec0187bd5f84df01a3e0bbd022c2", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "offset", "source_mapping": {"start": 7752, "length": 18, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [241], "starting_column": 13, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 7332, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 18300, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)", "source_mapping": {"start": 9359, "length": 59, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [277], "starting_column": 13, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 7332, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 18300, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "(functionPointer,offset) = Deserialize.value(proof,offset)", "source_mapping": {"start": 9432, "length": 60, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [278], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 7332, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 18300, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset (src/osp/OneStepProver0.sol#241) is written in both\n\t(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset) (src/osp/OneStepProver0.sol#277)\n\t(functionPointer,offset) = Deserialize.value(proof,offset) (src/osp/OneStepProver0.sol#278)\n", "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset](src/osp/OneStepProver0.sol#L241) is written in both\n\t[(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)](src/osp/OneStepProver0.sol#L277)\n\t[(functionPointer,offset) = Deserialize.value(proof,offset)](src/osp/OneStepProver0.sol#L278)\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L241", "id": "d6a42f778bdb10ec1cc4e3ae5bd1d2a66edf8c14085e20de930344608bd29bd2", "check": "write-after-write", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "refundsGas", "source_mapping": {"start": 721, "length": 2143, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundEnabled", "source_mapping": {"start": 309, "length": 2557, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "starting_column": 1, "ending_column": 2}}, "signature": "refundsGas(IGasRefunder,IReader4844)"}}, {"type": "node", "name": "calldataWords = (calldataSize + 31) / 32", "source_mapping": {"start": 960, "length": 48, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [22], "starting_column": 13, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "refundsGas", "source_mapping": {"start": 721, "length": 2143, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundEnabled", "source_mapping": {"start": 309, "length": 2557, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "starting_column": 1, "ending_column": 2}}, "signature": "refundsGas(IGasRefunder,IReader4844)"}}}}, {"type": "node", "name": "startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512", "source_mapping": {"start": 1130, "length": 60, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [24], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "refundsGas", "source_mapping": {"start": 721, "length": 2143, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundEnabled", "source_mapping": {"start": 309, "length": 2557, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "starting_column": 1, "ending_column": 2}}, "signature": "refundsGas(IGasRefunder,IReader4844)"}}}}], "description": "GasRefundEnabled.refundsGas(IGasRefunder,IReader4844) (src/libraries/GasRefundEnabled.sol#17-51) performs a multiplication on the result of a division:\n\t- calldataWords = (calldataSize + 31) / 32 (src/libraries/GasRefundEnabled.sol#22)\n\t- startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512 (src/libraries/GasRefundEnabled.sol#24)\n", "markdown": "[GasRefundEnabled.refundsGas(IGasRefunder,IReader4844)](src/libraries/GasRefundEnabled.sol#L17-L51) performs a multiplication on the result of a division:\n\t- [calldataWords = (calldataSize + 31) / 32](src/libraries/GasRefundEnabled.sol#L22)\n\t- [startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512](src/libraries/GasRefundEnabled.sol#L24)\n", "first_markdown_element": "src/libraries/GasRefundEnabled.sol#L17-L51", "id": "bb26256ad08f6833c6e0395d78c4b8a1182860d966d17803ac727cde7719e8b6", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "node", "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)", "source_mapping": {"start": 10207, "length": 201, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10012, "length": 1157, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}, {"type": "node", "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)", "source_mapping": {"start": 10207, "length": 201, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10012, "length": 1157, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}], "description": "Multiple retryable tickets created in the same function:\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#96-103)\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#96-103)\n", "markdown": "Multiple retryable tickets created in the same function:\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L96-L103)\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L96-L103)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L96-L103", "id": "5d40acc11dbb925c7e8ac930729d7231aea71007192a71ca36b451cad7a17520", "check": "out-of-order-retryable", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_executeLowLevelCall", "source_mapping": {"start": 1379, "length": 299, "filename_relative": "src/bridge/Bridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", "filename_short": "src/bridge/Bridge.sol", "is_dependency": false, "lines": [42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 702, "length": 1090, "filename_relative": "src/bridge/Bridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", "filename_short": "src/bridge/Bridge.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 1, "ending_column": 2}}, "signature": "_executeLowLevelCall(address,uint256,bytes)"}}, {"type": "node", "name": "(success,returnData) = to.call{value: value}(data)", "source_mapping": {"start": 1620, "length": 51, "filename_relative": "src/bridge/Bridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", "filename_short": "src/bridge/Bridge.sol", "is_dependency": false, "lines": [48], "starting_column": 9, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "_executeLowLevelCall", "source_mapping": {"start": 1379, "length": 299, "filename_relative": "src/bridge/Bridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", "filename_short": "src/bridge/Bridge.sol", "is_dependency": false, "lines": [42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Bridge", "source_mapping": {"start": 702, "length": 1090, "filename_relative": "src/bridge/Bridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", "filename_short": "src/bridge/Bridge.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 1, "ending_column": 2}}, "signature": "_executeLowLevelCall(address,uint256,bytes)"}}}}], "description": "Bridge._executeLowLevelCall(address,uint256,bytes) (src/bridge/Bridge.sol#42-49) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,returnData) = to.call{value: value}(data) (src/bridge/Bridge.sol#48)\n", "markdown": "[Bridge._executeLowLevelCall(address,uint256,bytes)](src/bridge/Bridge.sol#L42-L49) sends eth to arbitrary user\n\tDangerous calls:\n\t- [(success,returnData) = to.call{value: value}(data)](src/bridge/Bridge.sol#L48)\n", "first_markdown_element": "src/bridge/Bridge.sol#L42-L49", "id": "52aa149e251bcbda3478032a3845253462c6d80e50cde35746a072dd6dd226a6", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}, {"type": "node", "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", "source_mapping": {"start": 9483, "length": 399, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) sends eth to arbitrary user\n\tDangerous calls:\n\t- IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#74-83)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) sends eth to arbitrary user\n\tDangerous calls:\n\t- [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L74-L83)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", "id": "e0479a62ad4830e7fe86da8c84b5e23beb3117b4fad5a10981cccab1ed4d7fef", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "perform", "source_mapping": {"start": 10012, "length": 1157, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}, {"type": "node", "name": "address(msg.sender).transfer(address(this).balance)", "source_mapping": {"start": 11101, "length": 51, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [131], "starting_column": 13, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "perform", "source_mapping": {"start": 10012, "length": 1157, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "perform(address,address,uint256)"}}}}], "description": "DeployHelper.perform(address,address,uint256) (src/rollup/DeployHelper.sol#89-133) sends eth to arbitrary user\n\tDangerous calls:\n\t- address(msg.sender).transfer(address(this).balance) (src/rollup/DeployHelper.sol#131)\n", "markdown": "[DeployHelper.perform(address,address,uint256)](src/rollup/DeployHelper.sol#L89-L133) sends eth to arbitrary user\n\tDangerous calls:\n\t- [address(msg.sender).transfer(address(this).balance)](src/rollup/DeployHelper.sol#L131)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L89-L133", "id": "9ffb800c52b7ebc92a4117369762770d49beb52d8f7f0c4c53742745d88e75c4", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}, {"type": "node", "name": "l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)", "source_mapping": {"start": 10973, "length": 77, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [268], "starting_column": 13, "ending_column": 90}, "type_specific_fields": {"parent": {"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}}}, {"type": "node", "name": "(sent) = msg.sender.call{value: address(this).balance}()", "source_mapping": {"start": 11161, "length": 65, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [272], "starting_column": 13, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "_deployFactories", "source_mapping": {"start": 10566, "length": 1163, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "_deployFactories(address,address,uint256)"}}}}], "description": "RollupCreator._deployFactories(address,address,uint256) (src/rollup/RollupCreator.sol#255-285) sends eth to arbitrary user\n\tDangerous calls:\n\t- l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas) (src/rollup/RollupCreator.sol#268)\n\t- (sent) = msg.sender.call{value: address(this).balance}() (src/rollup/RollupCreator.sol#272)\n", "markdown": "[RollupCreator._deployFactories(address,address,uint256)](src/rollup/RollupCreator.sol#L255-L285) sends eth to arbitrary user\n\tDangerous calls:\n\t- [l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)](src/rollup/RollupCreator.sol#L268)\n\t- [(sent) = msg.sender.call{value: address(this).balance}()](src/rollup/RollupCreator.sol#L272)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L255-L285", "id": "76dc4e58fa8c5850af786b5521aa4b4047660ca4b5cfdc3ec6d2b34a27bf414d", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "calculateRoot", "source_mapping": {"start": 987, "length": 872, "filename_relative": "src/libraries/MerkleLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", "filename_short": "src/libraries/MerkleLib.sol", "is_dependency": false, "lines": [28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerkleLib", "source_mapping": {"start": 254, "length": 1607, "filename_relative": "src/libraries/MerkleLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", "filename_short": "src/libraries/MerkleLib.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "starting_column": 1, "ending_column": 2}}, "signature": "calculateRoot(bytes32[],uint256,bytes32)"}}, {"type": "node", "name": "(route & (1 << i)) == 0", "source_mapping": {"start": 1371, "length": 23, "filename_relative": "src/libraries/MerkleLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", "filename_short": "src/libraries/MerkleLib.sol", "is_dependency": false, "lines": [38], "starting_column": 17, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "calculateRoot", "source_mapping": {"start": 987, "length": 872, "filename_relative": "src/libraries/MerkleLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", "filename_short": "src/libraries/MerkleLib.sol", "is_dependency": false, "lines": [28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerkleLib", "source_mapping": {"start": 254, "length": 1607, "filename_relative": "src/libraries/MerkleLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", "filename_short": "src/libraries/MerkleLib.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "starting_column": 1, "ending_column": 2}}, "signature": "calculateRoot(bytes32[],uint256,bytes32)"}}}}], "description": "MerkleLib.calculateRoot(bytes32[],uint256,bytes32) (src/libraries/MerkleLib.sol#28-56) contains an incorrect shift operation: (route & (1 << i)) == 0 (src/libraries/MerkleLib.sol#38)\n", "markdown": "[MerkleLib.calculateRoot(bytes32[],uint256,bytes32)](src/libraries/MerkleLib.sol#L28-L56) contains an incorrect shift operation: [(route & (1 << i)) == 0](src/libraries/MerkleLib.sol#L38)\n", "first_markdown_element": "src/libraries/MerkleLib.sol#L28-L56", "id": "5c3db261bcf096a853ed1cbf065868696b577e437b35616c25ee3da2af6bc0d7", "check": "incorrect-shift", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "confirmPeriodBlocks", "source_mapping": {"start": 848, "length": 33, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [30], "starting_column": 5, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "_validatorIsAfk", "source_mapping": {"start": 1426, "length": 349, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "_validatorIsAfk()"}}, {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "function", "name": "addStaker", "source_mapping": {"start": 16226, "length": 666, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "addStaker(uint64,address)"}}, {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}], "description": "RollupCore.confirmPeriodBlocks (src/rollup/RollupCore.sol#30) is never initialized. It is used in:\n\t- AbsRollupUserLogic._validatorIsAfk() (src/rollup/RollupUserLogic.sol#47-54)\n\t- AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523)\n\t- RollupCore.addStaker(uint64,address) (src/rollup/RollupCore.sol#449-465)\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", "markdown": "[RollupCore.confirmPeriodBlocks](src/rollup/RollupCore.sol#L30) is never initialized. It is used in:\n\t- [AbsRollupUserLogic._validatorIsAfk()](src/rollup/RollupUserLogic.sol#L47-L54)\n\t- [AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523)\n\t- [RollupCore.addStaker(uint64,address)](src/rollup/RollupCore.sol#L449-L465)\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L30", "id": "a4b24bce5aba1839e99647d1a79bb6ee736796ffa0b26da1ff6de3bf0cad25a2", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "extraChallengeTimeBlocks", "source_mapping": {"start": 887, "length": 38, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [31], "starting_column": 5, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "createChallenge", "source_mapping": {"start": 12264, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}], "description": "RollupCore.extraChallengeTimeBlocks (src/rollup/RollupCore.sol#31) is never initialized. It is used in:\n\t- AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#291-364)\n", "markdown": "[RollupCore.extraChallengeTimeBlocks](src/rollup/RollupCore.sol#L31) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L291-L364)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L31", "id": "da3953abca5cd200b13fe48850b6aa7652681e329be2738fada97e811ccf823c", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "baseStake", "source_mapping": {"start": 959, "length": 24, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [33], "starting_column": 5, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}], "description": "RollupCore.baseStake (src/rollup/RollupCore.sol#33) is never initialized. It is used in:\n\t- AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523)\n", "markdown": "[RollupCore.baseStake](src/rollup/RollupCore.sol#L33) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L33", "id": "e38524abb8244a635c7bb2fbd1c2e3be4f6f4c45b66589d5c431018eaec19736", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "wasmModuleRoot", "source_mapping": {"start": 989, "length": 29, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [34], "starting_column": 5, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}], "description": "RollupCore.wasmModuleRoot (src/rollup/RollupCore.sol#34) is never initialized. It is used in:\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", "markdown": "[RollupCore.wasmModuleRoot](src/rollup/RollupCore.sol#L34) is never initialized. It is used in:\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L34", "id": "ba1b0a9663907f65e34f85d9522781abdfd536250f5ca9c3ce00e5d5fd99e0e5", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "bridge", "source_mapping": {"start": 1054, "length": 21, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [37], "starting_column": 5, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}], "description": "RollupCore.bridge (src/rollup/RollupCore.sol#37) is never initialized. It is used in:\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", "markdown": "[RollupCore.bridge](src/rollup/RollupCore.sol#L37) is never initialized. It is used in:\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L37", "id": "083aba2c7a6498e3f6b62bd57041243e85867ce1e7deb7e73af230c8a3fda57c", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "outbox", "source_mapping": {"start": 1081, "length": 21, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [38], "starting_column": 5, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "confirmNode", "source_mapping": {"start": 10760, "length": 573, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "confirmNode(uint64,bytes32,bytes32)"}}], "description": "RollupCore.outbox (src/rollup/RollupCore.sol#38) is never initialized. It is used in:\n\t- RollupCore.confirmNode(uint64,bytes32,bytes32) (src/rollup/RollupCore.sol#306-322)\n", "markdown": "[RollupCore.outbox](src/rollup/RollupCore.sol#L38) is never initialized. It is used in:\n\t- [RollupCore.confirmNode(uint64,bytes32,bytes32)](src/rollup/RollupCore.sol#L306-L322)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L38", "id": "0e386868f4529a31d9469b3b0f8148977860a53590d8f94171666883bbbe4c3d", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "challengeManager", "source_mapping": {"start": 1198, "length": 50, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [41], "starting_column": 5, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "createChallengeHelper", "source_mapping": {"start": 15401, "length": 672, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)"}}, {"type": "function", "name": "completeChallenge", "source_mapping": {"start": 16300, "length": 484, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [393, 394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "completeChallenge(uint256,address,address)"}}], "description": "RollupCore.challengeManager (src/rollup/RollupCore.sol#41) is never initialized. It is used in:\n\t- AbsRollupUserLogic.createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256) (src/rollup/RollupUserLogic.sol#366-386)\n\t- AbsRollupUserLogic.completeChallenge(uint256,address,address) (src/rollup/RollupUserLogic.sol#393-402)\n", "markdown": "[RollupCore.challengeManager](src/rollup/RollupCore.sol#L41) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)](src/rollup/RollupUserLogic.sol#L366-L386)\n\t- [AbsRollupUserLogic.completeChallenge(uint256,address,address)](src/rollup/RollupUserLogic.sol#L393-L402)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L41", "id": "22c612a6037a18832e2adecba9cb92ae47a8af1b6ad06cd807e2930e95704f7f", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "loserStakeEscrow", "source_mapping": {"start": 1485, "length": 31, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [48], "starting_column": 5, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "completeChallengeImpl", "source_mapping": {"start": 16790, "length": 1104, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "completeChallengeImpl(address,address)"}}], "description": "RollupCore.loserStakeEscrow (src/rollup/RollupCore.sol#48) is never initialized. It is used in:\n\t- AbsRollupUserLogic.completeChallengeImpl(address,address) (src/rollup/RollupUserLogic.sol#404-423)\n", "markdown": "[RollupCore.loserStakeEscrow](src/rollup/RollupCore.sol#L48) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.completeChallengeImpl(address,address)](src/rollup/RollupUserLogic.sol#L404-L423)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L48", "id": "c7bcdadad2017983801efa1f09090e62d03f763f4327a3ff8eae213d33849120", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "stakeToken", "source_mapping": {"start": 1522, "length": 25, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [49], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "isERC20Enabled", "source_mapping": {"start": 2244, "length": 110, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [68, 69, 70], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "isERC20Enabled()"}}], "description": "RollupCore.stakeToken (src/rollup/RollupCore.sol#49) is never initialized. It is used in:\n\t- AbsRollupUserLogic.isERC20Enabled() (src/rollup/RollupUserLogic.sol#68-70)\n", "markdown": "[RollupCore.stakeToken](src/rollup/RollupCore.sol#L49) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.isERC20Enabled()](src/rollup/RollupUserLogic.sol#L68-L70)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L49", "id": "762ea8af9375f2dee07c120ca7a44b367b72fbd357f74ed8397e8540a17d87b6", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "minimumAssertionPeriod", "source_mapping": {"start": 1553, "length": 37, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [50], "starting_column": 5, "ending_column": 42}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "stakeOnNewNode", "source_mapping": {"start": 7704, "length": 1684, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnNewNode(Assertion,bytes32,uint256)"}}], "description": "RollupCore.minimumAssertionPeriod (src/rollup/RollupCore.sol#50) is never initialized. It is used in:\n\t- AbsRollupUserLogic.stakeOnNewNode(Assertion,bytes32,uint256) (src/rollup/RollupUserLogic.sol#198-233)\n", "markdown": "[RollupCore.minimumAssertionPeriod](src/rollup/RollupCore.sol#L50) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.stakeOnNewNode(Assertion,bytes32,uint256)](src/rollup/RollupUserLogic.sol#L198-L233)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L50", "id": "01fe9c1889403593f4723665fd7724b4e31b63dd3689c5816cb6d147d16dbf42", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "isValidator", "source_mapping": {"start": 1597, "length": 43, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [52], "starting_column": 5, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}], "description": "RollupCore.isValidator (src/rollup/RollupCore.sol#52) is never initialized. It is used in:\n", "markdown": "[RollupCore.isValidator](src/rollup/RollupCore.sol#L52) is never initialized. It is used in:\n", "first_markdown_element": "src/rollup/RollupCore.sol#L52", "id": "f316200e22d3febd4d78fe211de5d864b1b65169f67e03191ea884e8b60055ae", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "variable", "name": "stakeToken", "source_mapping": {"start": 1522, "length": 25, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [49], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "isERC20Enabled", "source_mapping": {"start": 2244, "length": 110, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [68, 69, 70], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "isERC20Enabled()"}}, {"type": "function", "name": "withdrawStakerFunds", "source_mapping": {"start": 30568, "length": 400, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20RollupUserLogic", "source_mapping": {"start": 28020, "length": 3167, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769], "starting_column": 1, "ending_column": 2}}, "signature": "withdrawStakerFunds()"}}, {"type": "function", "name": "receiveTokens", "source_mapping": {"start": 30974, "length": 211, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [763, 764, 765, 766, 767, 768], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20RollupUserLogic", "source_mapping": {"start": 28020, "length": 3167, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769], "starting_column": 1, "ending_column": 2}}, "signature": "receiveTokens(uint256)"}}], "description": "RollupCore.stakeToken (src/rollup/RollupCore.sol#49) is never initialized. It is used in:\n\t- AbsRollupUserLogic.isERC20Enabled() (src/rollup/RollupUserLogic.sol#68-70)\n\t- ERC20RollupUserLogic.withdrawStakerFunds() (src/rollup/RollupUserLogic.sol#750-761)\n\t- ERC20RollupUserLogic.receiveTokens(uint256) (src/rollup/RollupUserLogic.sol#763-768)\n", "markdown": "[RollupCore.stakeToken](src/rollup/RollupCore.sol#L49) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.isERC20Enabled()](src/rollup/RollupUserLogic.sol#L68-L70)\n\t- [ERC20RollupUserLogic.withdrawStakerFunds()](src/rollup/RollupUserLogic.sol#L750-L761)\n\t- [ERC20RollupUserLogic.receiveTokens(uint256)](src/rollup/RollupUserLogic.sol#L763-L768)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L49", "id": "388304453678fb7cb187225ae4a8eef1f46c80d072185688bad31640b221fb6d", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 3040, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 4325, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}, {"type": "node", "name": "segmentLength = selection.oldSegmentsLength / oldChallengeDegree", "source_mapping": {"start": 3287, "length": 64, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [102], "starting_column": 9, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 3040, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 4325, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}}}, {"type": "node", "name": "segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition", "source_mapping": {"start": 3460, "length": 87, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [104], "starting_column": 9, "ending_column": 96}, "type_specific_fields": {"parent": {"type": "function", "name": "extractChallengeSegment", "source_mapping": {"start": 3040, "length": 682, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 4325, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 1, "ending_column": 2}}, "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)"}}}}], "description": "ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection) (src/challenge/ChallengeLib.sol#96-108) performs a multiplication on the result of a division:\n\t- segmentLength = selection.oldSegmentsLength / oldChallengeDegree (src/challenge/ChallengeLib.sol#102)\n\t- segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition (src/challenge/ChallengeLib.sol#104)\n", "markdown": "[ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection)](src/challenge/ChallengeLib.sol#L96-L108) performs a multiplication on the result of a division:\n\t- [segmentLength = selection.oldSegmentsLength / oldChallengeDegree](src/challenge/ChallengeLib.sol#L102)\n\t- [segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition](src/challenge/ChallengeLib.sol#L104)\n", "first_markdown_element": "src/challenge/ChallengeLib.sol#L96-L108", "id": "e1c80d5388c10fc3c7985b252a3988308fb524570c5772733ff6da1f68ae3665", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4302, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "rootOfUnityPower = (1 << 32) / fieldElementsPerBlob", "source_mapping": {"start": 9080, "length": 59, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [224], "starting_column": 17, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4302, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "rootOfUnityPower *= bitReversedIndex", "source_mapping": {"start": 9307, "length": 36, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [227], "starting_column": 17, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4302, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#123-245) performs a multiplication on the result of a division:\n\t- rootOfUnityPower = (1 << 32) / fieldElementsPerBlob (src/osp/OneStepProverHostIo.sol#224)\n\t- rootOfUnityPower *= bitReversedIndex (src/osp/OneStepProverHostIo.sol#227)\n", "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L123-L245) performs a multiplication on the result of a division:\n\t- [rootOfUnityPower = (1 << 32) / fieldElementsPerBlob](src/osp/OneStepProverHostIo.sol#L224)\n\t- [rootOfUnityPower *= bitReversedIndex](src/osp/OneStepProverHostIo.sol#L227)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L123-L245", "id": "544b092c0dd6ff4838cb1cbaa7af3a7e9ba4011548b519524ea1c0f49488ba8a", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", "source_mapping": {"start": 21553, "length": 69, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [518], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}, {"type": "node", "name": "baseStake * multiplier", "source_mapping": {"start": 21701, "length": 29, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [522], "starting_column": 9, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#518)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#522)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L518)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L522)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L477-L523", "id": "d8acf03a6b7c6bb0b8a091fbcc3c5657b15d7180c1edc798c1b2b66b27895d5d", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "onGasSpent", "source_mapping": {"start": 5994, "length": 3002, "filename_relative": "src/bridge/GasRefunder.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", "filename_short": "src/bridge/GasRefunder.sol", "is_dependency": false, "lines": [174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefunder", "source_mapping": {"start": 916, "length": 8082, "filename_relative": "src/bridge/GasRefunder.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", "filename_short": "src/bridge/GasRefunder.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 1, "ending_column": 2}}, "signature": "onGasSpent(address,uint256,uint256)"}}, {"type": "node", "name": "ownBalance == 0", "source_mapping": {"start": 6260, "length": 15, "filename_relative": "src/bridge/GasRefunder.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", "filename_short": "src/bridge/GasRefunder.sol", "is_dependency": false, "lines": [183], "starting_column": 13, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "onGasSpent", "source_mapping": {"start": 5994, "length": 3002, "filename_relative": "src/bridge/GasRefunder.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", "filename_short": "src/bridge/GasRefunder.sol", "is_dependency": false, "lines": [174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefunder", "source_mapping": {"start": 916, "length": 8082, "filename_relative": "src/bridge/GasRefunder.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", "filename_short": "src/bridge/GasRefunder.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 1, "ending_column": 2}}, "signature": "onGasSpent(address,uint256,uint256)"}}}}], "description": "GasRefunder.onGasSpent(address,uint256,uint256) (src/bridge/GasRefunder.sol#174-256) uses a dangerous strict equality:\n\t- ownBalance == 0 (src/bridge/GasRefunder.sol#183)\n", "markdown": "[GasRefunder.onGasSpent(address,uint256,uint256)](src/bridge/GasRefunder.sol#L174-L256) uses a dangerous strict equality:\n\t- [ownBalance == 0](src/bridge/GasRefunder.sol#L183)\n", "first_markdown_element": "src/bridge/GasRefunder.sol#L174-L256", "id": "7130559f3bef7fa36dc1a06a74ba5036fede4a8f9a9b7aa15356ff38ae92691a", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "getKeysetCreationBlock", "source_mapping": {"start": 30911, "length": 262, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [800, 801, 802, 803, 804], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "getKeysetCreationBlock(bytes32)"}}, {"type": "node", "name": "ksInfo.creationBlock == 0", "source_mapping": {"start": 31066, "length": 25, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [802], "starting_column": 13, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "getKeysetCreationBlock", "source_mapping": {"start": 30911, "length": 262, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [800, 801, 802, 803, 804], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "getKeysetCreationBlock(bytes32)"}}}}], "description": "SequencerInbox.getKeysetCreationBlock(bytes32) (src/bridge/SequencerInbox.sol#800-804) uses a dangerous strict equality:\n\t- ksInfo.creationBlock == 0 (src/bridge/SequencerInbox.sol#802)\n", "markdown": "[SequencerInbox.getKeysetCreationBlock(bytes32)](src/bridge/SequencerInbox.sol#L800-L804) uses a dangerous strict equality:\n\t- [ksInfo.creationBlock == 0](src/bridge/SequencerInbox.sol#L802)\n", "first_markdown_element": "src/bridge/SequencerInbox.sol#L800-L804", "id": "8d08f988c853ddc93c73c73c2ffb4eab98ae44f427249e22931a28dd9e0d9616", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}, {"type": "node", "name": "require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)", "source_mapping": {"start": 21393, "length": 193, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [582, 583, 584, 585, 586], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}}}], "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677) uses a dangerous strict equality:\n\t- require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH) (src/rollup/RollupCore.sol#582-586)\n", "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677) uses a dangerous strict equality:\n\t- [require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)](src/rollup/RollupCore.sol#L582-L586)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L563-L677", "id": "d127dddc177369c36ad1c5bef7eb43c1a61fc683b55406bc72a59dc5596e864b", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}, {"type": "node", "name": "require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)", "source_mapping": {"start": 23847, "length": 144, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [635, 636, 637, 638], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}}}], "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677) uses a dangerous strict equality:\n\t- require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH) (src/rollup/RollupCore.sol#635-638)\n", "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677) uses a dangerous strict equality:\n\t- [require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)](src/rollup/RollupCore.sol#L635-L638)\n", "first_markdown_element": "src/rollup/RollupCore.sol#L563-L677", "id": "dfac2423a21baf2a37b1dd8b95efc0128475cfb15a4f40d0cc542e69ff413c79", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_validatorIsAfk", "source_mapping": {"start": 1426, "length": 349, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "_validatorIsAfk()"}}, {"type": "node", "name": "latestNode.createdAtBlock == 0", "source_mapping": {"start": 1566, "length": 30, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [49], "starting_column": 13, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_validatorIsAfk", "source_mapping": {"start": 1426, "length": 349, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [47, 48, 49, 50, 51, 52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "_validatorIsAfk()"}}}}], "description": "AbsRollupUserLogic._validatorIsAfk() (src/rollup/RollupUserLogic.sol#47-54) uses a dangerous strict equality:\n\t- latestNode.createdAtBlock == 0 (src/rollup/RollupUserLogic.sol#49)\n", "markdown": "[AbsRollupUserLogic._validatorIsAfk()](src/rollup/RollupUserLogic.sol#L47-L54) uses a dangerous strict equality:\n\t- [latestNode.createdAtBlock == 0](src/rollup/RollupUserLogic.sol#L49)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L47-L54", "id": "27da8dd2563854302dbb23b92013f4ff6bae23b8f09a7843b7bd073905bc04e7", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}, {"type": "node", "name": "multiplier == 0", "source_mapping": {"start": 21636, "length": 15, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [519], "starting_column": 13, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "currentRequiredStake", "source_mapping": {"start": 20210, "length": 1527, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "currentRequiredStake(uint256,uint64,uint256)"}}}}], "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#519)\n", "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L519)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L477-L523", "id": "46c10604345612b1526f352cacc87cc039daedff5beba654f8f07a5fdc228a45", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 25419, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [616, 617, 618, 619], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}, {"type": "node", "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", "source_mapping": {"start": 25556, "length": 68, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [618], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "requireUnchallengedStaker", "source_mapping": {"start": 25419, "length": 212, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [616, 617, 618, 619], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "requireUnchallengedStaker(address)"}}}}], "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#616-619) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#618)\n", "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L616-L619) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L618)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L616-L619", "id": "1e95eacfdcf4026b8e9c94f14922ed3f0a0ec1b366b7d354316a8dbcdb09add8", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 6908, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}, {"type": "node", "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", "source_mapping": {"start": 7370, "length": 72, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [189], "starting_column": 9, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "stakeOnExistingNode", "source_mapping": {"start": 6908, "length": 583, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "stakeOnExistingNode(uint64,bytes32)"}}}}], "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-191) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#189)\n", "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L191) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L189)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L191", "id": "4507b4ce50a7c39ed1ba1cdbee0a87e257d071a80d56ccf457734f2c8f166b64", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "addSequencerL2BatchImpl", "source_mapping": {"start": 26211, "length": 1103, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)"}}, {"type": "node", "name": "(seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount)", "source_mapping": {"start": 26792, "length": 207, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [692, 693, 694, 695, 696, 697], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "addSequencerL2BatchImpl", "source_mapping": {"start": 26211, "length": 1103, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "totalDelayedMessagesRead = afterDelayedMessagesRead", "source_mapping": {"start": 27010, "length": 51, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [699], "starting_column": 9, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "addSequencerL2BatchImpl", "source_mapping": {"start": 26211, "length": 1103, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "totalDelayedMessagesRead"}}], "description": "Reentrancy in SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256) (src/bridge/SequencerInbox.sol#674-705):\n\tExternal calls:\n\t- (seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount) (src/bridge/SequencerInbox.sol#692-697)\n\tState variables written after the call(s):\n\t- totalDelayedMessagesRead = afterDelayedMessagesRead (src/bridge/SequencerInbox.sol#699)\n\tSequencerInbox.totalDelayedMessagesRead (src/bridge/SequencerInbox.sol#58) can be used in cross function reentrancies:\n\t- SequencerInbox.addSequencerL2Batch(uint256,bytes,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#468-519)\n\t- SequencerInbox.addSequencerL2BatchFromBlobs(uint256,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#407-466)\n\t- SequencerInbox.addSequencerL2BatchFromOrigin(uint256,bytes,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#355-405)\n\t- SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256) (src/bridge/SequencerInbox.sol#674-705)\n\t- SequencerInbox.forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32) (src/bridge/SequencerInbox.sol#284-343)\n\t- SequencerInbox.totalDelayedMessagesRead (src/bridge/SequencerInbox.sol#58)\n", "markdown": "Reentrancy in [SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)](src/bridge/SequencerInbox.sol#L674-L705):\n\tExternal calls:\n\t- [(seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount)](src/bridge/SequencerInbox.sol#L692-L697)\n\tState variables written after the call(s):\n\t- [totalDelayedMessagesRead = afterDelayedMessagesRead](src/bridge/SequencerInbox.sol#L699)\n\t[SequencerInbox.totalDelayedMessagesRead](src/bridge/SequencerInbox.sol#L58) can be used in cross function reentrancies:\n\t- [SequencerInbox.addSequencerL2Batch(uint256,bytes,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L468-L519)\n\t- [SequencerInbox.addSequencerL2BatchFromBlobs(uint256,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L407-L466)\n\t- [SequencerInbox.addSequencerL2BatchFromOrigin(uint256,bytes,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L355-L405)\n\t- [SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)](src/bridge/SequencerInbox.sol#L674-L705)\n\t- [SequencerInbox.forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)](src/bridge/SequencerInbox.sol#L284-L343)\n\t- [SequencerInbox.totalDelayedMessagesRead](src/bridge/SequencerInbox.sol#L58)\n", "first_markdown_element": "src/bridge/SequencerInbox.sol#L674-L705", "id": "b38d9bf0df554a08cf1b8bb6d468b87dd156690f340b399262fff373086c5825", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createChallenge", "source_mapping": {"start": 12264, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}, {"type": "node", "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", "source_mapping": {"start": 14807, "length": 398, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [350, 351, 352, 353, 354, 355, 356, 357, 358, 359], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 12264, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", "source_mapping": {"start": 15749, "length": 317, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385], "starting_column": 9, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallengeHelper", "source_mapping": {"start": 15401, "length": 672, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", "source_mapping": {"start": 15241, "length": 56, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [361], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "createChallenge", "source_mapping": {"start": 12264, "length": 3131, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsRollupUserLogic", "source_mapping": {"start": 501, "length": 25132, "filename_relative": "src/rollup/RollupUserLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", "filename_short": "src/rollup/RollupUserLogic.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620], "starting_column": 1, "ending_column": 2}}, "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker1].currentChallenge = challenge", "source_mapping": {"start": 13576, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [383], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13449, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [378, 379, 380, 381, 382, 383, 384, 385], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "_stakerMap[staker2].currentChallenge = challenge", "source_mapping": {"start": 13634, "length": 48, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [384], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "challengeStarted", "source_mapping": {"start": 13449, "length": 240, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [378, 379, 380, 381, 382, 383, 384, 385], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "challengeStarted(address,address,uint64)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#291-364):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#350-359)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#375-385)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#361)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#383)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#378-385)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#392-398)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#507-511)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#488-500)\n", "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L291-L364):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L350-L359)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L375-L385)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L361)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L383)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L378-L385)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L392-L398)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L507-L511)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L488-L500)\n", "first_markdown_element": "src/rollup/RollupUserLogic.sol#L291-L364", "id": "af65892a907a109b6f58d5895c29425a5794647abc20793593b6461989e07fb6", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 990, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 11504, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}, {"type": "node", "name": "executeBridgeCall(to,value,data)", "source_mapping": {"start": 8253, "length": 34, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [222], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 990, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 11504, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "(success,returndata) = bridge.executeCall(to,value,data)", "source_mapping": {"start": 9954, "length": 77, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [275], "starting_column": 9, "ending_column": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "executeBridgeCall", "source_mapping": {"start": 9832, "length": 594, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 11504, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 1, "ending_column": 2}}, "signature": "executeBridgeCall(address,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "context = prevContext", "source_mapping": {"start": 8298, "length": 21, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [224], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "executeTransactionImpl", "source_mapping": {"start": 7336, "length": 990, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsOutbox", "source_mapping": {"start": 698, "length": 11504, "filename_relative": "src/bridge/AbsOutbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", "filename_short": "src/bridge/AbsOutbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326], "starting_column": 1, "ending_column": 2}}, "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "context"}}], "description": "Reentrancy in AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-225):\n\tExternal calls:\n\t- executeBridgeCall(to,value,data) (src/bridge/AbsOutbox.sol#222)\n\t\t- (success,returndata) = bridge.executeCall(to,value,data) (src/bridge/AbsOutbox.sol#275)\n\tState variables written after the call(s):\n\t- context = prevContext (src/bridge/AbsOutbox.sol#224)\n\tAbsOutbox.context (src/bridge/AbsOutbox.sol#51) can be used in cross function reentrancies:\n\t- AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-225)\n\t- AbsOutbox.initialize(IBridge) (src/bridge/AbsOutbox.sol#63-79)\n\t- AbsOutbox.l2ToL1Block() (src/bridge/AbsOutbox.sol#118-123)\n\t- AbsOutbox.l2ToL1EthBlock() (src/bridge/AbsOutbox.sol#126-131)\n\t- AbsOutbox.l2ToL1OutputId() (src/bridge/AbsOutbox.sol#147-152)\n\t- AbsOutbox.l2ToL1Sender() (src/bridge/AbsOutbox.sol#110-115)\n\t- AbsOutbox.l2ToL1Timestamp() (src/bridge/AbsOutbox.sol#134-139)\n\t- AbsOutbox.postUpgradeInit() (src/bridge/AbsOutbox.sol#81-92)\n", "markdown": "Reentrancy in [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L225):\n\tExternal calls:\n\t- [executeBridgeCall(to,value,data)](src/bridge/AbsOutbox.sol#L222)\n\t\t- [(success,returndata) = bridge.executeCall(to,value,data)](src/bridge/AbsOutbox.sol#L275)\n\tState variables written after the call(s):\n\t- [context = prevContext](src/bridge/AbsOutbox.sol#L224)\n\t[AbsOutbox.context](src/bridge/AbsOutbox.sol#L51) can be used in cross function reentrancies:\n\t- [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L225)\n\t- [AbsOutbox.initialize(IBridge)](src/bridge/AbsOutbox.sol#L63-L79)\n\t- [AbsOutbox.l2ToL1Block()](src/bridge/AbsOutbox.sol#L118-L123)\n\t- [AbsOutbox.l2ToL1EthBlock()](src/bridge/AbsOutbox.sol#L126-L131)\n\t- [AbsOutbox.l2ToL1OutputId()](src/bridge/AbsOutbox.sol#L147-L152)\n\t- [AbsOutbox.l2ToL1Sender()](src/bridge/AbsOutbox.sol#L110-L115)\n\t- [AbsOutbox.l2ToL1Timestamp()](src/bridge/AbsOutbox.sol#L134-L139)\n\t- [AbsOutbox.postUpgradeInit()](src/bridge/AbsOutbox.sol#L81-L92)\n", "first_markdown_element": "src/bridge/AbsOutbox.sol#L196-L225", "id": "426e61b097c321e642232d0d55da1f37bdf8bba9a4d0f425a61dc187192ef9ed", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 14555, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}, {"type": "node", "name": "challengeManager.clearChallenge(chall)", "source_mapping": {"start": 10950, "length": 38, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [271], "starting_column": 13, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 14555, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "clearChallenge(stakerA[i])", "source_mapping": {"start": 10870, "length": 26, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [269], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 14555, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "staker.currentChallenge = NO_CHAL_INDEX", "source_mapping": {"start": 13136, "length": 39, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [369], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "clearChallenge", "source_mapping": {"start": 13011, "length": 171, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [367, 368, 369, 370], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "clearChallenge(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "clearChallenge(stakerB[i])", "source_mapping": {"start": 10910, "length": 26, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [270], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "forceResolveChallenge", "source_mapping": {"start": 10412, "length": 631, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 14555, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382], "starting_column": 1, "ending_column": 2}}, "signature": "forceResolveChallenge(address[],address[])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}, {"type": "node", "name": "staker.currentChallenge = NO_CHAL_INDEX", "source_mapping": {"start": 13136, "length": 39, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [369], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "clearChallenge", "source_mapping": {"start": 13011, "length": 171, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [367, 368, 369, 370], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "clearChallenge(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_stakerMap"}}], "description": "Reentrancy in RollupAdminLogic.forceResolveChallenge(address[],address[]) (src/rollup/RollupAdminLogic.sol#258-274):\n\tExternal calls:\n\t- challengeManager.clearChallenge(chall) (src/rollup/RollupAdminLogic.sol#271)\n\tState variables written after the call(s):\n\t- clearChallenge(stakerA[i]) (src/rollup/RollupAdminLogic.sol#269)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#369)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n\t- clearChallenge(stakerB[i]) (src/rollup/RollupAdminLogic.sol#270)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#369)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n", "markdown": "Reentrancy in [RollupAdminLogic.forceResolveChallenge(address[],address[])](src/rollup/RollupAdminLogic.sol#L258-L274):\n\tExternal calls:\n\t- [challengeManager.clearChallenge(chall)](src/rollup/RollupAdminLogic.sol#L271)\n\tState variables written after the call(s):\n\t- [clearChallenge(stakerA[i])](src/rollup/RollupAdminLogic.sol#L269)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L369)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n\t- [clearChallenge(stakerB[i])](src/rollup/RollupAdminLogic.sol#L270)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L369)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n", "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L258-L274", "id": "2e21893be44131693ea2dfb272622853fa44deea082e4c78e0bbd132c84af93e", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "u64Vals", "source_mapping": {"start": 6924, "length": 24, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [226], "starting_column": 9, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "globalState", "source_mapping": {"start": 6617, "length": 684, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Deserialize", "source_mapping": {"start": 450, "length": 9161, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302], "starting_column": 1, "ending_column": 2}}, "signature": "globalState(bytes,uint256)"}}}}], "description": "Deserialize.globalState(bytes,uint256).u64Vals (src/state/Deserialize.sol#226) is a local variable never initialized\n", "markdown": "[Deserialize.globalState(bytes,uint256).u64Vals](src/state/Deserialize.sol#L226) is a local variable never initialized\n", "first_markdown_element": "src/state/Deserialize.sol#L226", "id": "b49e20832cf227724d4b048fc859ce00efa36bda00bb2d354df6861b1e5b65c8", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "funcIdx", "source_mapping": {"start": 6151, "length": 14, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [194], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 5971, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).funcIdx (src/osp/OneStepProver0.sol#194) is a local variable never initialized\n", "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).funcIdx](src/osp/OneStepProver0.sol#L194) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L194", "id": "0b3ea27e34dd552b3d33e544c7732699f56da1be9d675526040264c6f35cf115", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "sourceBits", "source_mapping": {"start": 12021, "length": 16, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [400], "starting_column": 9, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "function", "name": "executeExtendSameType", "source_mapping": {"start": 11827, "length": 1476, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMath", "source_mapping": {"start": 362, "length": 16325, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524], "starting_column": 1, "ending_column": 2}}, "signature": "executeExtendSameType(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).sourceBits (src/osp/OneStepProverMath.sol#400) is a local variable never initialized\n", "markdown": "[OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).sourceBits](src/osp/OneStepProverMath.sol#L400) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMath.sol#L400", "id": "7e6b4db4655b21a377a13a4c03fdcc62f8c4e56c5ecdf979c82afb0985a1fac5", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "part", "source_mapping": {"start": 1123, "length": 17, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [38], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "proveWithFullPreimage", "source_mapping": {"start": 954, "length": 572, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "HashProofHelper", "source_mapping": {"start": 388, "length": 5264, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154], "starting_column": 1, "ending_column": 2}}, "signature": "proveWithFullPreimage(bytes,uint64)"}}}}], "description": "HashProofHelper.proveWithFullPreimage(bytes,uint64).part (src/osp/HashProofHelper.sol#38) is a local variable never initialized\n", "markdown": "[HashProofHelper.proveWithFullPreimage(bytes,uint64).part](src/osp/HashProofHelper.sol#L38) is a local variable never initialized\n", "first_markdown_element": "src/osp/HashProofHelper.sol#L38", "id": "9f6b190b96895f4cfb0f3db956545a55f4132aa16c8af057e7257d7fd2c5de43", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "ty", "source_mapping": {"start": 1685, "length": 12, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [49], "starting_column": 9, "ending_column": 21}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMemory.sol#49) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMemory.sol#L49) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L49", "id": "d44b109a885f9f18431fcbd810bf7f45b9f86b4749430739056c0786ab2d150e", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "impl", "source_mapping": {"start": 11151, "length": 120, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [296, 297, 298], "starting_column": 9, "ending_column": 22}, "type_specific_fields": {"parent": {"type": "function", "name": "executeOneStep", "source_mapping": {"start": 10780, "length": 1055, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverMemory.sol#296-298) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverMemory.sol#L296-L298) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L296-L298", "id": "c0081c68be4899b530be0e0720e9713a3d42b71364ad4392c42fd165ec162d1e", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "beforeAcc", "source_mapping": {"start": 11222, "length": 17, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [278], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "validateDelayedInbox", "source_mapping": {"start": 10970, "length": 916, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes).beforeAcc (src/osp/OneStepProverHostIo.sol#278) is a local variable never initialized\n", "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes).beforeAcc](src/osp/OneStepProverHostIo.sol#L278) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L278", "id": "dab8df6b27e88ad0e415842d20e13cd455e0d5f0c84fa74d2906eefd6d1e06f0", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "impl", "source_mapping": {"start": 14734, "length": 120, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [477, 478, 479], "starting_column": 9, "ending_column": 22}, "type_specific_fields": {"parent": {"type": "function", "name": "executeOneStep", "source_mapping": {"start": 14363, "length": 2322, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMath", "source_mapping": {"start": 362, "length": 16325, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524], "starting_column": 1, "ending_column": 2}}, "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMath.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverMath.sol#477-479) is a local variable never initialized\n", "markdown": "[OneStepProverMath.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverMath.sol#L477-L479) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMath.sol#L477-L479", "id": "7bb129f3bd93db0e9c1579c8ab353fe86d0d54b40d421f4a568ab9279ce8b6cb", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "internalStack", "source_mapping": {"start": 1959, "length": 31, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [63], "starting_column": 9, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "getStartMachineHash", "source_mapping": {"start": 1364, "length": 1078, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 4325, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 1, "ending_column": 2}}, "signature": "getStartMachineHash(bytes32,bytes32)"}}}}], "description": "ChallengeLib.getStartMachineHash(bytes32,bytes32).internalStack (src/challenge/ChallengeLib.sol#63) is a local variable never initialized\n", "markdown": "[ChallengeLib.getStartMachineHash(bytes32,bytes32).internalStack](src/challenge/ChallengeLib.sol#L63) is a local variable never initialized\n", "first_markdown_element": "src/challenge/ChallengeLib.sol#L63", "id": "2b6e1af0735464f525ca02dac16210c75f5e60fdd4f5020e646e82eccdf94e2a", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "frameStack", "source_mapping": {"start": 2000, "length": 34, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "getStartMachineHash", "source_mapping": {"start": 1364, "length": 1078, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ChallengeLib", "source_mapping": {"start": 272, "length": 4325, "filename_relative": "src/challenge/ChallengeLib.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", "filename_short": "src/challenge/ChallengeLib.sol", "is_dependency": false, "lines": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "starting_column": 1, "ending_column": 2}}, "signature": "getStartMachineHash(bytes32,bytes32)"}}}}], "description": "ChallengeLib.getStartMachineHash(bytes32,bytes32).frameStack (src/challenge/ChallengeLib.sol#64) is a local variable never initialized\n", "markdown": "[ChallengeLib.getStartMachineHash(bytes32,bytes32).frameStack](src/challenge/ChallengeLib.sol#L64) is a local variable never initialized\n", "first_markdown_element": "src/challenge/ChallengeLib.sol#L64", "id": "e2c13e88a674b7d15f66c38811493b28e3d768158293153c3761365faf8e45c7", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "signed", "source_mapping": {"start": 1734, "length": 11, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [51], "starting_column": 9, "ending_column": 20}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).signed (src/osp/OneStepProverMemory.sol#51) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).signed](src/osp/OneStepProverMemory.sol#L51) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L51", "id": "494ad26e42522ed318b7143deadf6e22863a94ac35e1bc7e431f680c09e99249", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "extracted", "source_mapping": {"start": 5123, "length": 22, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [147], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReadPreImage", "source_mapping": {"start": 4302, "length": 5772, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes).extracted (src/osp/OneStepProverHostIo.sol#147) is a local variable never initialized\n", "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes).extracted](src/osp/OneStepProverHostIo.sol#L147) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L147", "id": "b8f149ef07d9b5bf6a4fd2772d951ef00e1136d5728509097c74a6d35fb7419a", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "delayedAcc", "source_mapping": {"start": 10502, "length": 18, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [258], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10080, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).delayedAcc (src/osp/OneStepProverHostIo.sol#258) is a local variable never initialized\n", "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).delayedAcc](src/osp/OneStepProverHostIo.sol#L258) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L258", "id": "a4af275d7732b756f493da186504395ee7b6705d359094ed504be4cb2382a71f", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "state256", "source_mapping": {"start": 4683, "length": 27, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [127], "starting_column": 13, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "keccakUpdate", "source_mapping": {"start": 3663, "length": 1486, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "HashProofHelper", "source_mapping": {"start": 388, "length": 5264, "filename_relative": "src/osp/HashProofHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", "filename_short": "src/osp/HashProofHelper.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154], "starting_column": 1, "ending_column": 2}}, "signature": "keccakUpdate(HashProofHelper.KeccakState,bytes,bool)"}}}}], "description": "HashProofHelper.keccakUpdate(HashProofHelper.KeccakState,bytes,bool).state256 (src/osp/HashProofHelper.sol#127) is a local variable never initialized\n", "markdown": "[HashProofHelper.keccakUpdate(HashProofHelper.KeccakState,bytes,bool).state256](src/osp/HashProofHelper.sol#L127) is a local variable never initialized\n", "first_markdown_element": "src/osp/HashProofHelper.sol#L127", "id": "b10eafcd668276e8f081740d67fa003ef0534d1520e371c18e96833214fc3ff2", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "beforeAcc", "source_mapping": {"start": 10475, "length": 17, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [257], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10080, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).beforeAcc (src/osp/OneStepProverHostIo.sol#257) is a local variable never initialized\n", "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).beforeAcc](src/osp/OneStepProverHostIo.sol#L257) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L257", "id": "93458ecce4030168b57a5b4b9bddf11e556bda0b87b21572901703776f8a4a4d", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "memoryFrame", "source_mapping": {"start": 21082, "length": 38, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [575], "starting_column": 9, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "createNewNode", "source_mapping": {"start": 20652, "length": 4618, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCore", "source_mapping": {"start": 685, "length": 24587, "filename_relative": "src/rollup/RollupCore.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", "filename_short": "src/rollup/RollupCore.sol", "is_dependency": false, "lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678], "starting_column": 1, "ending_column": 2}}, "signature": "createNewNode(Assertion,uint64,uint256,bytes32)"}}}}], "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32).memoryFrame (src/rollup/RollupCore.sol#575) is a local variable never initialized\n", "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32).memoryFrame](src/rollup/RollupCore.sol#L575) is a local variable never initialized\n", "first_markdown_element": "src/rollup/RollupCore.sol#L575", "id": "22d3572f5fd9e44b1a0e455ebf3a57c571e31a392c713a5313ed78cdb5bdd79d", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "bounds", "source_mapping": {"start": 7906, "length": 32, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [214], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "getTimeBounds", "source_mapping": {"start": 7813, "length": 740, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SequencerInbox", "source_mapping": {"start": 1909, "length": 29266, "filename_relative": "src/bridge/SequencerInbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", "filename_short": "src/bridge/SequencerInbox.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805], "starting_column": 1, "ending_column": 2}}, "signature": "getTimeBounds()"}}}}], "description": "SequencerInbox.getTimeBounds().bounds (src/bridge/SequencerInbox.sol#214) is a local variable never initialized\n", "markdown": "[SequencerInbox.getTimeBounds().bounds](src/bridge/SequencerInbox.sol#L214) is a local variable never initialized\n", "first_markdown_element": "src/bridge/SequencerInbox.sol#L214", "id": "a9ab2d44723c17809429f069881bb97a07e53966e1c848cc3083baebb7d26ceb", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "ty", "source_mapping": {"start": 6351, "length": 12, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [171], "starting_column": 13, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryStore", "source_mapping": {"start": 6107, "length": 3663, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMemory.sol#171) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMemory.sol#L171) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L171", "id": "565f5e19fbe1a69065e4ef47ec789739a56008570ac09324d5995e298652f2be", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "ty", "source_mapping": {"start": 1158, "length": 12, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 21}, "type_specific_fields": {"parent": {"type": "function", "name": "executeConstPush", "source_mapping": {"start": 954, "length": 732, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeConstPush(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeConstPush(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProver0.sol#44) is a local variable never initialized\n", "markdown": "[OneStepProver0.executeConstPush(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProver0.sol#L44) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L44", "id": "f3a4bd8740f9565ecd548a3027588ef6a9ab1fab50a47ee9989dff0a450c0d81", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "emptyGlobalState", "source_mapping": {"start": 3120, "length": 35, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [78], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "createInitialNode", "source_mapping": {"start": 3046, "length": 662, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupAdminLogic", "source_mapping": {"start": 590, "length": 14555, "filename_relative": "src/rollup/RollupAdminLogic.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", "filename_short": "src/rollup/RollupAdminLogic.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382], "starting_column": 1, "ending_column": 2}}, "signature": "createInitialNode()"}}}}], "description": "RollupAdminLogic.createInitialNode().emptyGlobalState (src/rollup/RollupAdminLogic.sol#78) is a local variable never initialized\n", "markdown": "[RollupAdminLogic.createInitialNode().emptyGlobalState](src/rollup/RollupAdminLogic.sol#L78) is a local variable never initialized\n", "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L78", "id": "b104a1c9b21db741f0eff33cad88bcd28b01251cf7cb2ac69372f55f19cc56b2", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "lastProvedLeafContents", "source_mapping": {"start": 4304, "length": 30, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [121], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).lastProvedLeafContents (src/osp/OneStepProverMemory.sol#121) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).lastProvedLeafContents](src/osp/OneStepProverMemory.sol#L121) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L121", "id": "162cb33b9534bc21104309b21e51a798ebe240718727aed3b174e3802daec4c1", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "bytes32Vals", "source_mapping": {"start": 6885, "length": 29, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [225], "starting_column": 9, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "globalState", "source_mapping": {"start": 6617, "length": 684, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Deserialize", "source_mapping": {"start": 450, "length": 9161, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302], "starting_column": 1, "ending_column": 2}}, "signature": "globalState(bytes,uint256)"}}}}], "description": "Deserialize.globalState(bytes,uint256).bytes32Vals (src/state/Deserialize.sol#225) is a local variable never initialized\n", "markdown": "[Deserialize.globalState(bytes,uint256).bytes32Vals](src/state/Deserialize.sol#L225) is a local variable never initialized\n", "first_markdown_element": "src/state/Deserialize.sol#L225", "id": "347c23c28d92854b0181184cb13878043e27048bb6b0d14e6f9f24d733477f80", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "status", "source_mapping": {"start": 7495, "length": 20, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [243], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "machine", "source_mapping": {"start": 7307, "length": 1811, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Deserialize", "source_mapping": {"start": 450, "length": 9161, "filename_relative": "src/state/Deserialize.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", "filename_short": "src/state/Deserialize.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302], "starting_column": 1, "ending_column": 2}}, "signature": "machine(bytes,uint256)"}}}}], "description": "Deserialize.machine(bytes,uint256).status (src/state/Deserialize.sol#243) is a local variable never initialized\n", "markdown": "[Deserialize.machine(bytes,uint256).status](src/state/Deserialize.sol#L243) is a local variable never initialized\n", "first_markdown_element": "src/state/Deserialize.sol#L243", "id": "b0bb66b3aaa5e859564fcf69ddd9c518a2dff55461b2e23469e57954ece88023", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "sourceTy", "source_mapping": {"start": 13504, "length": 18, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [443], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReinterpret", "source_mapping": {"start": 13309, "length": 1048, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMath", "source_mapping": {"start": 362, "length": 16325, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524], "starting_column": 1, "ending_column": 2}}, "signature": "executeReinterpret(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).sourceTy (src/osp/OneStepProverMath.sol#443) is a local variable never initialized\n", "markdown": "[OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).sourceTy](src/osp/OneStepProverMath.sol#L443) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMath.sol#L443", "id": "19cc2967641f968047d8174e2ba3152038af798b63c42b1bb55dd59287a923a7", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "writeBytes", "source_mapping": {"start": 6286, "length": 17, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [168], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryStore", "source_mapping": {"start": 6107, "length": 3663, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).writeBytes (src/osp/OneStepProverMemory.sol#168) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).writeBytes](src/osp/OneStepProverMemory.sol#L168) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L168", "id": "f573681c354f3fdccf310c43fad70c2f0994cf3b3de20432e01071bd6a3981de", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "destTy", "source_mapping": {"start": 13478, "length": 16, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [442], "starting_column": 9, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "function", "name": "executeReinterpret", "source_mapping": {"start": 13309, "length": 1048, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMath", "source_mapping": {"start": 362, "length": 16325, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524], "starting_column": 1, "ending_column": 2}}, "signature": "executeReinterpret(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).destTy (src/osp/OneStepProverMath.sol#442) is a local variable never initialized\n", "markdown": "[OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).destTy](src/osp/OneStepProverMath.sol#L442) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMath.sol#L442", "id": "0c40a87502e42085a3fc0a61f202e687aed2386c6fe161376f0f0b2f16a4c9c5", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "ty", "source_mapping": {"start": 11999, "length": 12, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [399], "starting_column": 9, "ending_column": 21}, "type_specific_fields": {"parent": {"type": "function", "name": "executeExtendSameType", "source_mapping": {"start": 11827, "length": 1476, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMath", "source_mapping": {"start": 362, "length": 16325, "filename_relative": "src/osp/OneStepProverMath.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", "filename_short": "src/osp/OneStepProverMath.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524], "starting_column": 1, "ending_column": 2}}, "signature": "executeExtendSameType(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMath.sol#399) is a local variable never initialized\n", "markdown": "[OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMath.sol#L399) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMath.sol#L399", "id": "d5801e7c2f23eb0d6bc004590ab2e75879037d149be714c34ab3b066e1c4b819", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "readBytes", "source_mapping": {"start": 1707, "length": 17, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).readBytes (src/osp/OneStepProverMemory.sol#50) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).readBytes](src/osp/OneStepProverMemory.sol#L50) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L50", "id": "09c1e38d961440cc644e890e7e165ecd2073dd96901441ae9b2b9c939257cc6f", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "frame", "source_mapping": {"start": 1824, "length": 28, "filename_relative": "src/rollup/BridgeCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", "filename_short": "src/rollup/BridgeCreator.sol", "is_dependency": false, "lines": [58], "starting_column": 9, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "_createBridge", "source_mapping": {"start": 1674, "length": 1017, "filename_relative": "src/rollup/BridgeCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", "filename_short": "src/rollup/BridgeCreator.sol", "is_dependency": false, "lines": [54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "BridgeCreator", "source_mapping": {"start": 676, "length": 3074, "filename_relative": "src/rollup/BridgeCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", "filename_short": "src/rollup/BridgeCreator.sol", "is_dependency": false, "lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], "starting_column": 1, "ending_column": 2}}, "signature": "_createBridge(address,BridgeCreator.BridgeContracts)"}}}}], "description": "BridgeCreator._createBridge(address,BridgeCreator.BridgeContracts).frame (src/rollup/BridgeCreator.sol#58) is a local variable never initialized\n", "markdown": "[BridgeCreator._createBridge(address,BridgeCreator.BridgeContracts).frame](src/rollup/BridgeCreator.sol#L58) is a local variable never initialized\n", "first_markdown_element": "src/rollup/BridgeCreator.sol#L58", "id": "4c4998aea345771ab95ff74b35dc261d24cfbcc254dff7368e71dcded4e6b088", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "impl", "source_mapping": {"start": 14921, "length": 120, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [444, 445, 446], "starting_column": 9, "ending_column": 22}, "type_specific_fields": {"parent": {"type": "function", "name": "executeOneStep", "source_mapping": {"start": 14550, "length": 2514, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProver0.sol#444-446) is a local variable never initialized\n", "markdown": "[OneStepProver0.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProver0.sol#L444-L446) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L444-L446", "id": "bf9df19313618417269a105ecd5b4cf0c22530264701877ed554d77b7886b033", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "impl", "source_mapping": {"start": 16165, "length": 193, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [425, 426, 427, 428, 429, 430, 431], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "executeOneStep", "source_mapping": {"start": 15786, "length": 1210, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverHostIo.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverHostIo.sol#425-431) is a local variable never initialized\n", "markdown": "[OneStepProverHostIo.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverHostIo.sol#L425-L431) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L425-L431", "id": "fd4baa84dfad7402f9c850b2abb8c959fa89f0a0f27d7a4d985504eafa596460", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "node", "source_mapping": {"start": 2394, "length": 16, "filename_relative": "src/rollup/Node.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", "filename_short": "src/rollup/Node.sol", "is_dependency": false, "lines": [69], "starting_column": 9, "ending_column": 25}, "type_specific_fields": {"parent": {"type": "function", "name": "createNode", "source_mapping": {"start": 2149, "length": 636, "filename_relative": "src/rollup/Node.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", "filename_short": "src/rollup/Node.sol", "is_dependency": false, "lines": [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "NodeLib", "source_mapping": {"start": 1752, "length": 2186, "filename_relative": "src/rollup/Node.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", "filename_short": "src/rollup/Node.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113], "starting_column": 1, "ending_column": 2}}, "signature": "createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32)"}}}}], "description": "NodeLib.createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32).node (src/rollup/Node.sol#69) is a local variable never initialized\n", "markdown": "[NodeLib.createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32).node](src/rollup/Node.sol#L69) is a local variable never initialized\n", "first_markdown_element": "src/rollup/Node.sol#L69", "id": "2fbc6226a17bd364563caa94e1c97858f74f9cd682e6c1096bb46cf3ce114daf", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "lastProvedMerkle", "source_mapping": {"start": 8359, "length": 35, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [220], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryStore", "source_mapping": {"start": 6107, "length": 3663, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedMerkle (src/osp/OneStepProverMemory.sol#220) is a local variable never initialized\n", "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedMerkle](src/osp/OneStepProverMemory.sol#L220) is a local variable never initialized\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L220", "id": "970df6569838c064f8c23181f94aa7553a41b5a23c53e802d29cd0162f7d4f2b", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "initialize", "source_mapping": {"start": 969, "length": 447, "filename_relative": "src/bridge/ERC20Inbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", "filename_short": "src/bridge/ERC20Inbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Inbox", "source_mapping": {"start": 789, "length": 4172, "filename_relative": "src/bridge/ERC20Inbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", "filename_short": "src/bridge/ERC20Inbox.sol", "is_dependency": false, "lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(IBridge,ISequencerInbox)"}}, {"type": "node", "name": "IERC20(nativeToken).approve(address(bridge),type()(uint256).max)", "source_mapping": {"start": 1346, "length": 63, "filename_relative": "src/bridge/ERC20Inbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", "filename_short": "src/bridge/ERC20Inbox.sol", "is_dependency": false, "lines": [36], "starting_column": 9, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 969, "length": 447, "filename_relative": "src/bridge/ERC20Inbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", "filename_short": "src/bridge/ERC20Inbox.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Inbox", "source_mapping": {"start": 789, "length": 4172, "filename_relative": "src/bridge/ERC20Inbox.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", "filename_short": "src/bridge/ERC20Inbox.sol", "is_dependency": false, "lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(IBridge,ISequencerInbox)"}}}}], "description": "ERC20Inbox.initialize(IBridge,ISequencerInbox) (src/bridge/ERC20Inbox.sol#27-37) ignores return value by IERC20(nativeToken).approve(address(bridge),type()(uint256).max) (src/bridge/ERC20Inbox.sol#36)\n", "markdown": "[ERC20Inbox.initialize(IBridge,ISequencerInbox)](src/bridge/ERC20Inbox.sol#L27-L37) ignores return value by [IERC20(nativeToken).approve(address(bridge),type()(uint256).max)](src/bridge/ERC20Inbox.sol#L36)\n", "first_markdown_element": "src/bridge/ERC20Inbox.sol#L27-L37", "id": "02a7ce9e0718ec474776a6c6466ec2120335f60d5d537c682d2d0b48b02e328e", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "refundsGas", "source_mapping": {"start": 721, "length": 2143, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundEnabled", "source_mapping": {"start": 309, "length": 2557, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "starting_column": 1, "ending_column": 2}}, "signature": "refundsGas(IGasRefunder,IReader4844)"}}, {"type": "node", "name": "gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize)", "source_mapping": {"start": 2764, "length": 83, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [49], "starting_column": 13, "ending_column": 96}, "type_specific_fields": {"parent": {"type": "function", "name": "refundsGas", "source_mapping": {"start": 721, "length": 2143, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "GasRefundEnabled", "source_mapping": {"start": 309, "length": 2557, "filename_relative": "src/libraries/GasRefundEnabled.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", "filename_short": "src/libraries/GasRefundEnabled.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "starting_column": 1, "ending_column": 2}}, "signature": "refundsGas(IGasRefunder,IReader4844)"}}}}], "description": "GasRefundEnabled.refundsGas(IGasRefunder,IReader4844) (src/libraries/GasRefundEnabled.sol#17-51) ignores return value by gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize) (src/libraries/GasRefundEnabled.sol#49)\n", "markdown": "[GasRefundEnabled.refundsGas(IGasRefunder,IReader4844)](src/libraries/GasRefundEnabled.sol#L17-L51) ignores return value by [gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize)](src/libraries/GasRefundEnabled.sol#L49)\n", "first_markdown_element": "src/libraries/GasRefundEnabled.sol#L17-L51", "id": "dd7d7f9070537fa235923aa2a3f52a440202d201a28033828f3cfb6418df3676", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeDrop", "source_mapping": {"start": 1692, "length": 185, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeDrop(Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "mach.valueStack.pop()", "source_mapping": {"start": 1849, "length": 21, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [66], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "executeDrop", "source_mapping": {"start": 1692, "length": 185, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeDrop(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeDrop(Machine,Module,Instruction,bytes) (src/osp/OneStepProver0.sol#60-67) ignores return value by mach.valueStack.pop() (src/osp/OneStepProver0.sol#66)\n", "markdown": "[OneStepProver0.executeDrop(Machine,Module,Instruction,bytes)](src/osp/OneStepProver0.sol#L60-L67) ignores return value by [mach.valueStack.pop()](src/osp/OneStepProver0.sol#L66)\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L60-L67", "id": "12bf5611aeaa1ce8c4037f42705c38eef1245905dff7bc27604a5c8290de634b", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10080, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}, {"type": "node", "name": "(afterDelayedMsg,None) = Deserialize.u64(message,32)", "source_mapping": {"start": 10365, "length": 50, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [255], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "validateSequencerInbox", "source_mapping": {"start": 10080, "length": 884, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#247-269) ignores return value by (afterDelayedMsg,None) = Deserialize.u64(message,32) (src/osp/OneStepProverHostIo.sol#255)\n", "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L247-L269) ignores return value by [(afterDelayedMsg,None) = Deserialize.u64(message,32)](src/osp/OneStepProverHostIo.sol#L255)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L247-L269", "id": "8e9dac288df9bcd5afd57ce5afd7d08f223411c09b70bf9486fbdce8c99e8a4e", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "validateDelayedInbox", "source_mapping": {"start": 10970, "length": 916, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)"}}, {"type": "node", "name": "(sender,None) = Deserialize.u256(message,1)", "source_mapping": {"start": 11493, "length": 41, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [287], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "validateDelayedInbox", "source_mapping": {"start": 10970, "length": 916, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverHostIo", "source_mapping": {"start": 433, "length": 16565, "filename_relative": "src/osp/OneStepProverHostIo.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", "filename_short": "src/osp/OneStepProverHostIo.sol", "is_dependency": false, "lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "starting_column": 1, "ending_column": 2}}, "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)"}}}}], "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#271-296) ignores return value by (sender,None) = Deserialize.u256(message,1) (src/osp/OneStepProverHostIo.sol#287)\n", "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L271-L296) ignores return value by [(sender,None) = Deserialize.u256(message,1)](src/osp/OneStepProverHostIo.sol#L287)\n", "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L271-L296", "id": "06e60ad1cf7b2c761d007d2174aab9de589f5fb917c2547582fac31386b8bf17", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}, {"type": "node", "name": "(lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset)", "source_mapping": {"start": 4658, "length": 212, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133], "starting_column": 17, "ending_column": 18}, "type_specific_fields": {"parent": {"type": "function", "name": "executeMemoryLoad", "source_mapping": {"start": 1507, "length": 4594, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProverMemory", "source_mapping": {"start": 368, "length": 11469, "filename_relative": "src/osp/OneStepProverMemory.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", "filename_short": "src/osp/OneStepProverMemory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313], "starting_column": 1, "ending_column": 2}}, "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#43-160) ignores return value by (lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset) (src/osp/OneStepProverMemory.sol#128-133)\n", "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L43-L160) ignores return value by [(lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset)](src/osp/OneStepProverMemory.sol#L128-L133)\n", "first_markdown_element": "src/osp/OneStepProverMemory.sol#L43-L160", "id": "ab8910cb7fbab9ad8b4fcabf66567df3327f36c637f318ceaf3df0ea258b2a1d", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}, {"type": "node", "name": "IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:})", "source_mapping": {"start": 9018, "length": 434, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:}) (src/rollup/DeployHelper.sol#62-72)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:})](src/rollup/DeployHelper.sol#L62-L72)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", "id": "b577066c87e9c3fd8db423a41c6f80870945020f8f55d5dd38041b1894b9af5a", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}, {"type": "node", "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", "source_mapping": {"start": 9483, "length": 399, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83], "starting_column": 13, "ending_column": 15}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#74-83)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L74-L83)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", "id": "08d31a6c6d79a1ee2e015f8b5e35c4ed5b9293c91824de95a577f6e382ac73bd", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}, {"type": "node", "name": "IInboxBase(inbox).sendL2Message(payload)", "source_mapping": {"start": 9959, "length": 40, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [86], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_fundAndDeploy", "source_mapping": {"start": 8513, "length": 1493, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DeployHelper", "source_mapping": {"start": 513, "length": 11093, "filename_relative": "src/rollup/DeployHelper.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", "filename_short": "src/rollup/DeployHelper.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149], "starting_column": 1, "ending_column": 2}}, "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)"}}}}], "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IInboxBase(inbox).sendL2Message(payload) (src/rollup/DeployHelper.sol#86)\n", "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IInboxBase(inbox).sendL2Message(payload)](src/rollup/DeployHelper.sol#L86)\n", "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", "id": "b4a84cbb13a9ec2260cb5bdf5bf9641492e27e04195d23e819c7abac1a906e14", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeSecondaryToAndCall", "source_mapping": {"start": 2306, "length": 313, "filename_relative": "src/libraries/AdminFallbackProxy.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", "filename_short": "src/libraries/AdminFallbackProxy.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DoubleLogicERC1967Upgrade", "source_mapping": {"start": 525, "length": 3364, "filename_relative": "src/libraries/AdminFallbackProxy.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", "filename_short": "src/libraries/AdminFallbackProxy.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeSecondaryToAndCall(address,bytes,bool)"}}, {"type": "node", "name": "Address.functionDelegateCall(newImplementation,data)", "source_mapping": {"start": 2549, "length": 53, "filename_relative": "src/libraries/AdminFallbackProxy.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", "filename_short": "src/libraries/AdminFallbackProxy.sol", "is_dependency": false, "lines": [67], "starting_column": 13, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "function", "name": "_upgradeSecondaryToAndCall", "source_mapping": {"start": 2306, "length": 313, "filename_relative": "src/libraries/AdminFallbackProxy.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", "filename_short": "src/libraries/AdminFallbackProxy.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DoubleLogicERC1967Upgrade", "source_mapping": {"start": 525, "length": 3364, "filename_relative": "src/libraries/AdminFallbackProxy.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", "filename_short": "src/libraries/AdminFallbackProxy.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeSecondaryToAndCall(address,bytes,bool)"}}}}], "description": "DoubleLogicERC1967Upgrade._upgradeSecondaryToAndCall(address,bytes,bool) (src/libraries/AdminFallbackProxy.sol#60-69) ignores return value by Address.functionDelegateCall(newImplementation,data) (src/libraries/AdminFallbackProxy.sol#67)\n", "markdown": "[DoubleLogicERC1967Upgrade._upgradeSecondaryToAndCall(address,bytes,bool)](src/libraries/AdminFallbackProxy.sol#L60-L69) ignores return value by [Address.functionDelegateCall(newImplementation,data)](src/libraries/AdminFallbackProxy.sol#L67)\n", "first_markdown_element": "src/libraries/AdminFallbackProxy.sol#L60-L69", "id": "47e0b452924c566df231e1282a84ce0091600869b7eac2442aebf277bfcb6455", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}, {"type": "node", "name": "(ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates()", "source_mapping": {"start": 5121, "length": 115, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [117, 118], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}}}], "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates() (src/rollup/RollupCreator.sol#117-118)\n", "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates()](src/rollup/RollupCreator.sol#L117-L118)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", "id": "ab1f7532bdfa2da03ac0035addb1594f2610bdbf697232a9b6207e2345bfd5a7", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}, {"type": "node", "name": "(erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates()", "source_mapping": {"start": 5509, "length": 121, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [125, 126], "starting_column": 13, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "createRollup", "source_mapping": {"start": 4904, "length": 5018, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "RollupCreator", "source_mapping": {"start": 703, "length": 11028, "filename_relative": "src/rollup/RollupCreator.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", "filename_short": "src/rollup/RollupCreator.sol", "is_dependency": false, "lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286], "starting_column": 1, "ending_column": 2}}, "signature": "createRollup(RollupCreator.RollupDeploymentParams)"}}}}], "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates() (src/rollup/RollupCreator.sol#125-126)\n", "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates()](src/rollup/RollupCreator.sol#L125-L126)\n", "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", "id": "66c2e2cbe1d68bc0695a2c75ad2b2ad0c7a15d7d1455bb4ae31a64aeece91d52", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_activeOutbox", "source_mapping": {"start": 1410, "length": 30, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [45], "starting_column": 5, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsBridge", "source_mapping": {"start": 995, "length": 9716, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308], "starting_column": 1, "ending_column": 2}}}}, {"type": "node", "name": "_activeOutbox = msg.sender", "source_mapping": {"start": 6961, "length": 26, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [218], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCall", "source_mapping": {"start": 6606, "length": 870, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsBridge", "source_mapping": {"start": 995, "length": 9716, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308], "starting_column": 1, "ending_column": 2}}, "signature": "executeCall(address,uint256,bytes)"}}}}, {"type": "node", "name": "_activeOutbox = prevOutbox", "source_mapping": {"start": 7380, "length": 26, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [225], "starting_column": 9, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCall", "source_mapping": {"start": 6606, "length": 870, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AbsBridge", "source_mapping": {"start": 995, "length": 9716, "filename_relative": "src/bridge/AbsBridge.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", "filename_short": "src/bridge/AbsBridge.sol", "is_dependency": false, "lines": [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308], "starting_column": 1, "ending_column": 2}}, "signature": "executeCall(address,uint256,bytes)"}}}}], "description": "AbsBridge._activeOutbox (src/bridge/AbsBridge.sol#45) is written in both\n\t_activeOutbox = msg.sender (src/bridge/AbsBridge.sol#218)\n\t_activeOutbox = prevOutbox (src/bridge/AbsBridge.sol#225)\n", "markdown": "[AbsBridge._activeOutbox](src/bridge/AbsBridge.sol#L45) is written in both\n\t[_activeOutbox = msg.sender](src/bridge/AbsBridge.sol#L218)\n\t[_activeOutbox = prevOutbox](src/bridge/AbsBridge.sol#L225)\n", "first_markdown_element": "src/bridge/AbsBridge.sol#L45", "id": "b37c58023a3ec214b040ae7619219597fa970084995f29f74c24648d6f1ba59f", "check": "write-after-write", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "variable", "name": "offset", "source_mapping": {"start": 6391, "length": 18, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [201], "starting_column": 13, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 5971, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)", "source_mapping": {"start": 7998, "length": 59, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [237], "starting_column": 13, "ending_column": 72}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 5971, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}, {"type": "node", "name": "(functionPointer,offset) = Deserialize.value(proof,offset)", "source_mapping": {"start": 8071, "length": 60, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [238], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "executeCallIndirect", "source_mapping": {"start": 5971, "length": 3565, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OneStepProver0", "source_mapping": {"start": 362, "length": 16704, "filename_relative": "src/osp/OneStepProver0.sol", "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", "filename_short": "src/osp/OneStepProver0.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494], "starting_column": 1, "ending_column": 2}}, "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)"}}}}], "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset (src/osp/OneStepProver0.sol#201) is written in both\n\t(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset) (src/osp/OneStepProver0.sol#237)\n\t(functionPointer,offset) = Deserialize.value(proof,offset) (src/osp/OneStepProver0.sol#238)\n", "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset](src/osp/OneStepProver0.sol#L201) is written in both\n\t[(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)](src/osp/OneStepProver0.sol#L237)\n\t[(functionPointer,offset) = Deserialize.value(proof,offset)](src/osp/OneStepProver0.sol#L238)\n", "first_markdown_element": "src/osp/OneStepProver0.sol#L201", "id": "a2b254b166a5aad9092374dafd67aae05d0d84bd0d8079074f9addfc91926e56", "check": "write-after-write", "impact": "Medium", "confidence": "High"}] \ No newline at end of file +[ + { + "elements": [ + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6765, + "length": 327, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [172, 173, 174, 175, 176, 177, 178, 179, 180], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26098, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH)", + "source_mapping": { + "start": 6959, + "length": 73, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [178], + "starting_column": 9, + "ending_column": 82 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6765, + "length": 327, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [172, 173, 174, 175, 176, 177, 178, 179, 180], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26098, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#172-180) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH) (src/rollup/RollupUserLogic.sol#178)\n", + "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L172-L180) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WH)](src/rollup/RollupUserLogic.sol#L178)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L172-L180", + "id": "5f473ab9e03dab343568520a0a4dbeeba01a25e79b6d1a03c351b331a00f4e3b", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "anyTrustFastConfirmer", + "source_mapping": { + "start": 2460, + "length": 36, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 5, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6793, + "length": 334, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)" + } + } + ], + "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#176-180)\n", + "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L176-L180)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L80", + "id": "7588d31598e0049c45ba6922d304b0edadbf1308b5a8af9527dffbbc4dc61ac4", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21211, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", + "source_mapping": { + "start": 22554, + "length": 69, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [542], + "starting_column": 9, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21211, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + }, + { + "type": "node", + "name": "baseStake * multiplier", + "source_mapping": { + "start": 22702, + "length": 29, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [546], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21211, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#501-547) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#542)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#546)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L501-L547) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L542)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L546)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L501-L547", + "id": "c6b99e53c65770259b3301c94d2bc1a08086bddcc14611a28cdd3ac02bb85aab", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21211, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier == 0", + "source_mapping": { + "start": 22637, + "length": 15, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [543], + "starting_column": 13, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21211, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#501-547) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#543)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L501-L547) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L543)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L501-L547", + "id": "cd03d61e7b54e2afdbbc53bb1658f1e1bb0ff6071019d4e450c88b97ab1ef062", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6793, + "length": 334, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH)", + "source_mapping": { + "start": 6986, + "length": 81, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [178], + "starting_column": 9, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6793, + "length": 334, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32) (src/rollup/RollupUserLogic.sol#176-180) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH) (src/rollup/RollupUserLogic.sol#178)\n", + "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L176-L180) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(firstUnresolvedNode()).nodeHash,WRONG_HASH)](src/rollup/RollupUserLogic.sol#L178)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L180", + "id": "19ca8615fd5f71005c78c7230011930b328c1949f9594bef453bbe022663a85d", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26420, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [640, 641, 642, 643], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + }, + { + "type": "node", + "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", + "source_mapping": { + "start": 26557, + "length": 68, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [642], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26420, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [640, 641, 642, 643], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#640-643) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#642)\n", + "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L640-L643) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L642)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L640-L643", + "id": "5b92a43a048601d647a680d472499f14a3b778f80130e8c058351203f5d5fd5a", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7909, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", + "source_mapping": { + "start": 8371, + "length": 72, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [213], + "starting_column": 9, + "ending_column": 81 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7909, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#200-215) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#213)\n", + "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L200-L215) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L213)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L200-L215", + "id": "ccbd0d521b15fdf53a5989679bae528b0dc5388bbbb4c4fdc19a8b9bd9f86879", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13265, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + }, + { + "type": "node", + "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", + "source_mapping": { + "start": 15808, + "length": 398, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [374, 375, 376, 377, 378, 379, 380, 381, 382, 383], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13265, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", + "source_mapping": { + "start": 16750, + "length": 317, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409], + "starting_column": 9, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallengeHelper", + "source_mapping": { + "start": 16402, + "length": 672, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", + "source_mapping": { + "start": 16242, + "length": 56, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [385], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13265, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26133, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker1].currentChallenge = challenge", + "source_mapping": { + "start": 13618, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [384], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker2].currentChallenge = challenge", + "source_mapping": { + "start": 13676, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [385], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#315-388):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#374-383)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#399-409)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#385)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", + "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L315-L388):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L374-L383)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L399-L409)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L385)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L315-L388", + "id": "2b29c60586106261585a7463cf78d2dc6e7c2d56072499e590e932df559d24bb", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "anyTrustFastConfirmer", + "source_mapping": { + "start": 2460, + "length": 36, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 5, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6800, + "length": 401, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180, 181], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)" + } + } + ], + "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-181)\n", + "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L181)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L80", + "id": "73f909a3e549c85be9403f39fd73d421a43658f2516798cb75e1788e512992f2", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21285, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", + "source_mapping": { + "start": 22628, + "length": 69, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [543], + "starting_column": 9, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21285, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + }, + { + "type": "node", + "name": "baseStake * multiplier", + "source_mapping": { + "start": 22776, + "length": 29, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [547], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21285, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#502-548) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#543)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#547)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L502-L548) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L543)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L547)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L502-L548", + "id": "a06a90d9213a90fab9e69dcb5ff30aff7af9ca537f078f891088bb6e179d0c41", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21285, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier == 0", + "source_mapping": { + "start": 22711, + "length": 15, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [544], + "starting_column": 13, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21285, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#502-548) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#544)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L502-L548) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L544)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L502-L548", + "id": "f0540633dca6b3c5acc4f012e6533bb6b22a026d8ff3b90b8585b50c348b0d5d", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6800, + "length": 401, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180, 181], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH)", + "source_mapping": { + "start": 7074, + "length": 67, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [179], + "starting_column": 9, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6800, + "length": 401, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [176, 177, 178, 179, 180, 181], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-181) uses a dangerous strict equality:\n\t- require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH) (src/rollup/RollupUserLogic.sol#179)\n", + "markdown": "[AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32,uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L181) uses a dangerous strict equality:\n\t- [require(bool,string)(nodeHash == getNodeStorage(nodeNum).nodeHash,WRONG_HASH)](src/rollup/RollupUserLogic.sol#L179)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L181", + "id": "d81d8afbfd2634a30a7859c5a5e586e9810463b8236da8bf559155d43b58a230", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26494, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [641, 642, 643, 644], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + }, + { + "type": "node", + "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", + "source_mapping": { + "start": 26631, + "length": 68, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [643], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26494, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [641, 642, 643, 644], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#641-644) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#643)\n", + "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L641-L644) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L643)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L641-L644", + "id": "3323048300e79cff852072e2a5dd523379c0c9072bfb004b3ba5bd0d09c86c3f", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7983, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", + "source_mapping": { + "start": 8445, + "length": 72, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [214], + "starting_column": 9, + "ending_column": 81 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7983, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#201-216) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#214)\n", + "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L201-L216) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L214)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L201-L216", + "id": "45ab4c7ef9266f342edc09390b14e6ebbb5742734ae6570773770ba6b1be22df", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13339, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + }, + { + "type": "node", + "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", + "source_mapping": { + "start": 15882, + "length": 398, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383, 384], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13339, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", + "source_mapping": { + "start": 16824, + "length": 317, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410], + "starting_column": 9, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallengeHelper", + "source_mapping": { + "start": 16476, + "length": 672, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", + "source_mapping": { + "start": 16316, + "length": 56, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [386], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13339, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 26207, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker1].currentChallenge = challenge", + "source_mapping": { + "start": 13618, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [384], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker2].currentChallenge = challenge", + "source_mapping": { + "start": 13676, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [385], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#316-389):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#375-384)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#400-410)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#386)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", + "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L316-L389):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L375-L384)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L400-L410)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L386)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L316-L389", + "id": "0c968d1b20454d8fd452f65b003e0966ae923df9d1ef17996b29defd85f3dc9e", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + }, + { + "type": "node", + "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", + "source_mapping": { + "start": 10156, + "length": 399, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) sends eth to arbitrary user\n\tDangerous calls:\n\t- IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#87-96)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) sends eth to arbitrary user\n\tDangerous calls:\n\t- [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L87-L96)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", + "id": "58b5f7a8d77486bc6173862a853121ecdf5d9979f84cc2e05b66e0f0fd11218c", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10685, + "length": 1095, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + }, + { + "type": "node", + "name": "address(msg.sender).transfer(address(this).balance)", + "source_mapping": { + "start": 11712, + "length": 51, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [142], + "starting_column": 13, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10685, + "length": 1095, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper.perform(address,address,uint256) (src/rollup/DeployHelper.sol#102-144) sends eth to arbitrary user\n\tDangerous calls:\n\t- address(msg.sender).transfer(address(this).balance) (src/rollup/DeployHelper.sol#142)\n", + "markdown": "[DeployHelper.perform(address,address,uint256)](src/rollup/DeployHelper.sol#L102-L144) sends eth to arbitrary user\n\tDangerous calls:\n\t- [address(msg.sender).transfer(address(this).balance)](src/rollup/DeployHelper.sol#L142)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L102-L144", + "id": "ce5c492f55419016b34eb4e4de36fb8212599a42274960d6402d10a63f45ad40", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "anyTrustFastConfirmer", + "source_mapping": { + "start": 2460, + "length": 36, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [80], + "starting_column": 5, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "fastConfirmNextNode", + "source_mapping": { + "start": 6703, + "length": 225, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [175, 176, 177, 178], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "fastConfirmNextNode(bytes32,bytes32)" + } + } + ], + "description": "RollupCore.anyTrustFastConfirmer (src/rollup/RollupCore.sol#80) is never initialized. It is used in:\n\t- AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32) (src/rollup/RollupUserLogic.sol#175-178)\n", + "markdown": "[RollupCore.anyTrustFastConfirmer](src/rollup/RollupCore.sol#L80) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.fastConfirmNextNode(bytes32,bytes32)](src/rollup/RollupUserLogic.sol#L175-L178)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L80", + "id": "18d2bfd017f6e3f4e743eb058275a178a0fd6d2d88265a51e06df0a8d6cd6473", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + }, + { + "type": "node", + "name": "feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals))", + "source_mapping": { + "start": 9268, + "length": 62, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [66], + "starting_column": 17, + "ending_column": 79 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount", + "source_mapping": { + "start": 9393, + "length": 62, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [68], + "starting_column": 21, + "ending_column": 83 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) performs a multiplication on the result of a division:\n\t- feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals)) (src/rollup/DeployHelper.sol#66)\n\t- feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount (src/rollup/DeployHelper.sol#68)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) performs a multiplication on the result of a division:\n\t- [feeAmountNativeDenominated = feeAmount / (10 ** (18 - decimals))](src/rollup/DeployHelper.sol#L66)\n\t- [feeAmountNativeDenominated * (10 ** (18 - decimals)) < feeAmount](src/rollup/DeployHelper.sol#L68)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", + "id": "4fb20a676d1f3bfb16ac2bd8d3fe3bbb5a365c9934ae12d86b9b88967edde290", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_scaleDownToNativeDecimals", + "source_mapping": { + "start": 13092, + "length": 449, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 12840, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_scaleDownToNativeDecimals(uint256,uint8)" + } + }, + { + "type": "node", + "name": "scaledAmount = amount / (10 ** (18 - decimals))", + "source_mapping": { + "start": 13302, + "length": 45, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [326], + "starting_column": 13, + "ending_column": 58 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_scaleDownToNativeDecimals", + "source_mapping": { + "start": 13092, + "length": 449, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 12840, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_scaleDownToNativeDecimals(uint256,uint8)" + } + } + } + }, + { + "type": "node", + "name": "scaledAmount * (10 ** (18 - decimals)) < amount", + "source_mapping": { + "start": 13402, + "length": 45, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [328], + "starting_column": 17, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_scaleDownToNativeDecimals", + "source_mapping": { + "start": 13092, + "length": 449, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 12840, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_scaleDownToNativeDecimals(uint256,uint8)" + } + } + } + } + ], + "description": "RollupCreator._scaleDownToNativeDecimals(uint256,uint8) (src/rollup/RollupCreator.sol#319-333) performs a multiplication on the result of a division:\n\t- scaledAmount = amount / (10 ** (18 - decimals)) (src/rollup/RollupCreator.sol#326)\n\t- scaledAmount * (10 ** (18 - decimals)) < amount (src/rollup/RollupCreator.sol#328)\n", + "markdown": "[RollupCreator._scaleDownToNativeDecimals(uint256,uint8)](src/rollup/RollupCreator.sol#L319-L333) performs a multiplication on the result of a division:\n\t- [scaledAmount = amount / (10 ** (18 - decimals))](src/rollup/RollupCreator.sol#L326)\n\t- [scaledAmount * (10 ** (18 - decimals)) < amount](src/rollup/RollupCreator.sol#L328)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L319-L333", + "id": "dfee0ddb602c8f74926e48357bc4e6a51a2881e92e8dc12e111f59780c4affb8", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21012, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", + "source_mapping": { + "start": 22355, + "length": 69, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [540], + "starting_column": 9, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21012, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + }, + { + "type": "node", + "name": "baseStake * multiplier", + "source_mapping": { + "start": 22503, + "length": 29, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [544], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21012, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#499-545) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#540)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#544)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L499-L545) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L540)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L544)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L499-L545", + "id": "2803a8de725e2165f69c9445b653745db069a7cfd61b8cc7b16da012952dc7f5", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20694, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)", + "source_mapping": { + "start": 21435, + "length": 193, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [583, 584, 585, 586, 587], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20694, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + } + } + ], + "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#564-678) uses a dangerous strict equality:\n\t- require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH) (src/rollup/RollupCore.sol#583-587)\n", + "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L564-L678) uses a dangerous strict equality:\n\t- [require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)](src/rollup/RollupCore.sol#L583-L587)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L564-L678", + "id": "a6975dd3860f8b5f0ecafe0488b0b42245ca3c01b6eb97806a28024e4594f214", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20694, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)", + "source_mapping": { + "start": 23889, + "length": 144, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [636, 637, 638, 639], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20694, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + } + } + ], + "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#564-678) uses a dangerous strict equality:\n\t- require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH) (src/rollup/RollupCore.sol#636-639)\n", + "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L564-L678) uses a dangerous strict equality:\n\t- [require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)](src/rollup/RollupCore.sol#L636-L639)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L564-L678", + "id": "3b3dac1beaad095c507198b6bb9f705f811752b33542b85f5e042f86bec5fb00", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21012, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier == 0", + "source_mapping": { + "start": 22438, + "length": 15, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [541], + "starting_column": 13, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 21012, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#499-545) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#541)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L499-L545) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L541)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L499-L545", + "id": "d6f41cb5c33b4595428f9030c7e4c9a13c4023ba81089f63456a41d8784bd753", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26221, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [638, 639, 640, 641], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + }, + { + "type": "node", + "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", + "source_mapping": { + "start": 26358, + "length": 68, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [640], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 26221, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [638, 639, 640, 641], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#638-641) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#640)\n", + "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L638-L641) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L640)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L638-L641", + "id": "7bbbccc60c30858495f1002fa4f96507c8f35e5225b241a5dab5ec293383b044", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7710, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", + "source_mapping": { + "start": 8172, + "length": 72, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [211], + "starting_column": 9, + "ending_column": 81 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 7710, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#198-213) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#211)\n", + "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L198-L213) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L211)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L198-L213", + "id": "8e5cdf0b77d052567cdd55e34a5291c9b1e139a5df0033fdf1de430263047d89", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "node", + "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10820, + "length": 198, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [107, 108, 109, 110, 111, 112, 113, 114], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10685, + "length": 1095, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10820, + "length": 198, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [107, 108, 109, 110, 111, 112, 113, 114], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10685, + "length": 1095, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + } + ], + "description": "Multiple retryable tickets created in the same function:\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#107-114)\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#107-114)\n", + "markdown": "Multiple retryable tickets created in the same function:\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L107-L114)\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,_nativeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L107-L114)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L107-L114", + "id": "f31d620e4b82e77afe7ac6649042f283243e9582402f79ba35dacb2026ef6aa7", + "check": "out-of-order-retryable", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13066, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + }, + { + "type": "node", + "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", + "source_mapping": { + "start": 15609, + "length": 398, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [372, 373, 374, 375, 376, 377, 378, 379, 380, 381], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13066, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", + "source_mapping": { + "start": 16551, + "length": 317, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407], + "starting_column": 9, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallengeHelper", + "source_mapping": { + "start": 16203, + "length": 672, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", + "source_mapping": { + "start": 16043, + "length": 56, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [383], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 13066, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25934, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker1].currentChallenge = challenge", + "source_mapping": { + "start": 13618, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [384], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker2].currentChallenge = challenge", + "source_mapping": { + "start": 13676, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [385], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13491, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [379, 380, 381, 382, 383, 384, 385, 386], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#313-386):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#372-381)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#397-407)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#383)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#385)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#379-386)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#393-399)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#508-512)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#489-501)\n", + "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L313-L386):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L372-L381)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L397-L407)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L383)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L385)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L379-L386)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L393-L399)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L508-L512)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L489-L501)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L313-L386", + "id": "c426748e54bb463a55d94c54cd2dffbe8b77ffd98bce03600799e5fe749a7b1d", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 1225, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 12161, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + }, + { + "type": "node", + "name": "executeBridgeCall(to,amountToUnlock,data)", + "source_mapping": { + "start": 8479, + "length": 43, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [226], + "starting_column": 9, + "ending_column": 52 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 1225, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 12161, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,returndata) = bridge.executeCall(to,value,data)", + "source_mapping": { + "start": 10189, + "length": 77, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [279], + "starting_column": 9, + "ending_column": 86 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeBridgeCall", + "source_mapping": { + "start": 10067, + "length": 594, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 12161, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeBridgeCall(address,uint256,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "context = prevContext", + "source_mapping": { + "start": 8533, + "length": 21, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [228], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 1225, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 12161, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "context" + } + } + ], + "description": "Reentrancy in AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-229):\n\tExternal calls:\n\t- executeBridgeCall(to,amountToUnlock,data) (src/bridge/AbsOutbox.sol#226)\n\t\t- (success,returndata) = bridge.executeCall(to,value,data) (src/bridge/AbsOutbox.sol#279)\n\tState variables written after the call(s):\n\t- context = prevContext (src/bridge/AbsOutbox.sol#228)\n\tAbsOutbox.context (src/bridge/AbsOutbox.sol#51) can be used in cross function reentrancies:\n\t- AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-229)\n\t- AbsOutbox.initialize(IBridge) (src/bridge/AbsOutbox.sol#63-79)\n\t- AbsOutbox.l2ToL1Block() (src/bridge/AbsOutbox.sol#118-123)\n\t- AbsOutbox.l2ToL1EthBlock() (src/bridge/AbsOutbox.sol#126-131)\n\t- AbsOutbox.l2ToL1OutputId() (src/bridge/AbsOutbox.sol#147-152)\n\t- AbsOutbox.l2ToL1Sender() (src/bridge/AbsOutbox.sol#110-115)\n\t- AbsOutbox.l2ToL1Timestamp() (src/bridge/AbsOutbox.sol#134-139)\n\t- AbsOutbox.postUpgradeInit() (src/bridge/AbsOutbox.sol#81-92)\n", + "markdown": "Reentrancy in [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L229):\n\tExternal calls:\n\t- [executeBridgeCall(to,amountToUnlock,data)](src/bridge/AbsOutbox.sol#L226)\n\t\t- [(success,returndata) = bridge.executeCall(to,value,data)](src/bridge/AbsOutbox.sol#L279)\n\tState variables written after the call(s):\n\t- [context = prevContext](src/bridge/AbsOutbox.sol#L228)\n\t[AbsOutbox.context](src/bridge/AbsOutbox.sol#L51) can be used in cross function reentrancies:\n\t- [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L229)\n\t- [AbsOutbox.initialize(IBridge)](src/bridge/AbsOutbox.sol#L63-L79)\n\t- [AbsOutbox.l2ToL1Block()](src/bridge/AbsOutbox.sol#L118-L123)\n\t- [AbsOutbox.l2ToL1EthBlock()](src/bridge/AbsOutbox.sol#L126-L131)\n\t- [AbsOutbox.l2ToL1OutputId()](src/bridge/AbsOutbox.sol#L147-L152)\n\t- [AbsOutbox.l2ToL1Sender()](src/bridge/AbsOutbox.sol#L110-L115)\n\t- [AbsOutbox.l2ToL1Timestamp()](src/bridge/AbsOutbox.sol#L134-L139)\n\t- [AbsOutbox.postUpgradeInit()](src/bridge/AbsOutbox.sol#L81-L92)\n", + "first_markdown_element": "src/bridge/AbsOutbox.sol#L196-L229", + "id": "b42ba1855895a9ed1833beaf1f3c481a846ec27a28578623d5aca757932249c1", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 15056, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + }, + { + "type": "node", + "name": "challengeManager.clearChallenge(chall)", + "source_mapping": { + "start": 10950, + "length": 38, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [271], + "starting_column": 13, + "ending_column": 51 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 15056, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "clearChallenge(stakerA[i])", + "source_mapping": { + "start": 10870, + "length": 26, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [269], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 15056, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "staker.currentChallenge = NO_CHAL_INDEX", + "source_mapping": { + "start": 13178, + "length": 39, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [370], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "clearChallenge", + "source_mapping": { + "start": 13053, + "length": 171, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [368, 369, 370, 371], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "clearChallenge(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "clearChallenge(stakerB[i])", + "source_mapping": { + "start": 10910, + "length": 26, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [270], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 15056, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "staker.currentChallenge = NO_CHAL_INDEX", + "source_mapping": { + "start": 13178, + "length": 39, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [370], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "clearChallenge", + "source_mapping": { + "start": 13053, + "length": 171, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [368, 369, 370, 371], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24629, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "clearChallenge(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in RollupAdminLogic.forceResolveChallenge(address[],address[]) (src/rollup/RollupAdminLogic.sol#258-274):\n\tExternal calls:\n\t- challengeManager.clearChallenge(chall) (src/rollup/RollupAdminLogic.sol#271)\n\tState variables written after the call(s):\n\t- clearChallenge(stakerA[i]) (src/rollup/RollupAdminLogic.sol#269)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#370)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n\t- clearChallenge(stakerB[i]) (src/rollup/RollupAdminLogic.sol#270)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#370)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#186-188)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#368-371)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#177-179)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#543-551)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#195-197)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#351-362)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#149-151)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#159-161)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#168-170)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#407-416)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#422-426)\n", + "markdown": "Reentrancy in [RollupAdminLogic.forceResolveChallenge(address[],address[])](src/rollup/RollupAdminLogic.sol#L258-L274):\n\tExternal calls:\n\t- [challengeManager.clearChallenge(chall)](src/rollup/RollupAdminLogic.sol#L271)\n\tState variables written after the call(s):\n\t- [clearChallenge(stakerA[i])](src/rollup/RollupAdminLogic.sol#L269)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L370)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n\t- [clearChallenge(stakerB[i])](src/rollup/RollupAdminLogic.sol#L270)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L370)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L186-L188)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L368-L371)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L177-L179)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L543-L551)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L195-L197)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L351-L362)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L149-L151)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L159-L161)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L168-L170)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L407-L416)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L422-L426)\n", + "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L258-L274", + "id": "3a149381278a1de4529bcf77f84d92625154d32ad83406ea2d17142b95cb4a53", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:})", + "source_mapping": { + "start": 9674, + "length": 451, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:}) (src/rollup/DeployHelper.sol#75-85)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmountNativeDenominated,data:})](src/rollup/DeployHelper.sol#L75-L85)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", + "id": "bc3bd802cf43553ebdde2f5a650bd37e2ba8471fe3f9de0d0bdbfad1fced1d00", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + }, + { + "type": "node", + "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", + "source_mapping": { + "start": 10156, + "length": 399, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#87-96)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L87-L96)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", + "id": "fb1bf81f56dbacb484c41b74ff6b97327ed3ab06f9599b6d9c236b51f9a320ad", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + }, + { + "type": "node", + "name": "IInboxBase(inbox).sendL2Message(payload)", + "source_mapping": { + "start": 10632, + "length": 40, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [99], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8525, + "length": 2154, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 525, + "length": 11692, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256) (src/rollup/DeployHelper.sol#46-100) ignores return value by IInboxBase(inbox).sendL2Message(payload) (src/rollup/DeployHelper.sol#99)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,address,uint256)](src/rollup/DeployHelper.sol#L46-L100) ignores return value by [IInboxBase(inbox).sendL2Message(payload)](src/rollup/DeployHelper.sol#L99)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L100", + "id": "1c1cb22c16963df7619b9d485774b3c8fbd70bb511ebd2becbfca1ad7bd77e50", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "deploy", + "source_mapping": { + "start": 660, + "length": 435, + "filename_relative": "src/rollup/FactoryDeployerHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", + "filename_short": "src/rollup/FactoryDeployerHelper.sol", + "is_dependency": false, + "lines": [17, 18, 19, 20, 21, 22, 23, 24], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "FactoryDeployerHelper", + "source_mapping": { + "start": 373, + "length": 724, + "filename_relative": "src/rollup/FactoryDeployerHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", + "filename_short": "src/rollup/FactoryDeployerHelper.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deploy(address,uint256)" + } + }, + { + "type": "node", + "name": "IERC20(feeToken).transferFrom(msg.sender,inbox,amount)", + "source_mapping": { + "start": 955, + "length": 56, + "filename_relative": "src/rollup/FactoryDeployerHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", + "filename_short": "src/rollup/FactoryDeployerHelper.sol", + "is_dependency": false, + "lines": [22], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "deploy", + "source_mapping": { + "start": 660, + "length": 435, + "filename_relative": "src/rollup/FactoryDeployerHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", + "filename_short": "src/rollup/FactoryDeployerHelper.sol", + "is_dependency": false, + "lines": [17, 18, 19, 20, 21, 22, 23, 24], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "FactoryDeployerHelper", + "source_mapping": { + "start": 373, + "length": 724, + "filename_relative": "src/rollup/FactoryDeployerHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/FactoryDeployerHelper.sol", + "filename_short": "src/rollup/FactoryDeployerHelper.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "deploy(address,uint256)" + } + } + } + } + ], + "description": "FactoryDeployerHelper.deploy(address,uint256) (src/rollup/FactoryDeployerHelper.sol#17-24) ignores return value by IERC20(feeToken).transferFrom(msg.sender,inbox,amount) (src/rollup/FactoryDeployerHelper.sol#22)\n", + "markdown": "[FactoryDeployerHelper.deploy(address,uint256)](src/rollup/FactoryDeployerHelper.sol#L17-L24) ignores return value by [IERC20(feeToken).transferFrom(msg.sender,inbox,amount)](src/rollup/FactoryDeployerHelper.sol#L22)\n", + "first_markdown_element": "src/rollup/FactoryDeployerHelper.sol#L17-L24", + "id": "b61f6cd7e1b9dac16bde231f4604f5082f9d2bb1141b083d7b0c790237076ce2", + "check": "unchecked-transfer", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "index == entries.length", + "source_mapping": { + "start": 9123, + "length": 23, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [255], + "starting_column": 13, + "ending_column": 36 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + } + } + ], + "description": "CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#255)\n", + "markdown": "[CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L255)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L240-L261", + "id": "d628a546b26bab7d17e51242113a300dee8b63d78108aa14fa547838f7c984b2", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheProgram(program)", + "source_mapping": { + "start": 9005, + "length": 36, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [252], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 9092, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheProgram(program) (src/chain/CacheManager.sol#252)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#254)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#196-205)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", + "markdown": "Reentrancy in [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheProgram(program)](src/chain/CacheManager.sol#L252)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L254)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L196-L205)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L240-L261", + "id": "e3c59613b5f55bcaed6f72836989cdf48eec69a17bd181502982fefee7611e78", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 9356, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [264, 265, 266, 267, 268, 269, 270], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9469, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [266], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 9356, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [264, 265, 266, 267, 268, 269, 270], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "delete entries[index]", + "source_mapping": { + "start": 9605, + "length": 21, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [269], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 9356, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [264, 265, 266, 267, 268, 269, 270], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#269)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", + "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L269)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L264-L270", + "id": "da879b6db94b2d7e9b0b7ac41852a5d4daca51e4947137749f0329b126127352", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2880, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + }, + { + "type": "node", + "name": "evictPrograms(type()(uint256).max)", + "source_mapping": { + "start": 2929, + "length": 32, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2880, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9469, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [266], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 9356, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [264, 265, 266, 267, 268, 269, 270], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "delete entries", + "source_mapping": { + "start": 2971, + "length": 14, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 23 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2880, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#89-92):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#90)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#91)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", + "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L90)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L91)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L89-L92", + "id": "02366c421ff860e2f8a1d8cd1d277a7c7b74585fbb7afb043f28e6cf527b3d68", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6437, + "length": 420, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(address)" + } + }, + { + "type": "node", + "name": "(bid,index) = _makeSpace(asm)", + "source_mapping": { + "start": 6745, + "length": 45, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [189], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6437, + "length": 420, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9469, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [266], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 9356, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [264, 265, 266, 267, 268, 269, 270], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,program,codehash,asm,index)", + "source_mapping": { + "start": 6800, + "length": 50, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [190], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6437, + "length": 420, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(address)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheProgram(program)", + "source_mapping": { + "start": 9005, + "length": 36, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [252], + "starting_column": 9, + "ending_column": 45 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,program,codehash,asm,index)", + "source_mapping": { + "start": 6800, + "length": 50, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [190], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6437, + "length": 420, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries.push(entry)", + "source_mapping": { + "start": 9162, + "length": 19, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256], + "starting_column": 13, + "ending_column": 32 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries[index] = entry", + "source_mapping": { + "start": 9212, + "length": 22, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [258], + "starting_column": 13, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "_addBid(bid,program,codehash,asm,index)", + "source_mapping": { + "start": 6800, + "length": 50, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [190], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6437, + "length": 420, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 9092, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8665, + "length": 636, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 10045, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/user/src/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,address,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager.placeBid(address) (src/chain/CacheManager.sol#179-191):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#189)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#266)\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- ARB_WASM_CACHE.cacheProgram(program) (src/chain/CacheManager.sol#252)\n\tState variables written after the call(s):\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#256)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#258)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n\t- _addBid(bid,program,codehash,asm,index) (src/chain/CacheManager.sol#190)\n\t\t- queueSize += size (src/chain/CacheManager.sol#254)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,address,bytes32,uint64,uint64) (src/chain/CacheManager.sol#240-261)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#264-270)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#222-237)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#196-205)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", + "markdown": "Reentrancy in [CacheManager.placeBid(address)](src/chain/CacheManager.sol#L179-L191):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L189)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L266)\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [ARB_WASM_CACHE.cacheProgram(program)](src/chain/CacheManager.sol#L252)\n\tState variables written after the call(s):\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L256)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L258)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n\t- [_addBid(bid,program,codehash,asm,index)](src/chain/CacheManager.sol#L190)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L254)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,address,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L240-L261)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L264-L270)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L222-L237)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L196-L205)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L179-L191", + "id": "0c16e4db0a475c13c57a12b678c8c00c11806c69f841246d0fbbc7448bde8935", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "index == entries.length", + "source_mapping": { + "start": 8731, + "length": 23, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [247], + "starting_column": 13, + "ending_column": 36 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + } + } + ], + "description": "CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#247)\n", + "markdown": "[CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L247)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L233-L253", + "id": "4c098b01c2961dc5b2294e0f72e7cf015b9600b3d18b28ada01a3659da0d5e6f", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheCodehash(code)", + "source_mapping": { + "start": 8615, + "length": 34, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [244], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 8700, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [246], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#244)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#246)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#189-198)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", + "markdown": "Reentrancy in [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L244)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L246)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L189-L198)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L233-L253", + "id": "b9f6ea80a6accee7014dea8d7e8b56ddc8f2ed2255b688758266f20c2bbf230e", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8955, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256, 257, 258, 259, 260, 261, 262], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9068, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [258], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8955, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256, 257, 258, 259, 260, 261, 262], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "delete entries[index]", + "source_mapping": { + "start": 9204, + "length": 21, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [261], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8955, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256, 257, 258, 259, 260, 261, 262], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#261)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", + "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L261)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L256-L262", + "id": "4848413594e9f06020a2a4a3b7755e0ac5f0d7f7c22946958b361b50e6ce4a52", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2863, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + }, + { + "type": "node", + "name": "evictPrograms(type()(uint256).max)", + "source_mapping": { + "start": 2912, + "length": 32, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [90], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2863, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9068, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [258], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8955, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256, 257, 258, 259, 260, 261, 262], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "delete entries", + "source_mapping": { + "start": 2954, + "length": 14, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [91], + "starting_column": 9, + "ending_column": 23 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2863, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89, 90, 91, 92], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#89-92):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#90)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#91)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n", + "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L90)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L91)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L89-L92", + "id": "bf120df8d715208381d983040d42897d8dcac47177e732ee5496cde132d2f231", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6125, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + }, + { + "type": "node", + "name": "(bid,index) = _makeSpace(asm)", + "source_mapping": { + "start": 6389, + "length": 45, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [182], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6125, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 9068, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [258], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8955, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256, 257, 258, 259, 260, 261, 262], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6444, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [183], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6125, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheCodehash(code)", + "source_mapping": { + "start": 8615, + "length": 34, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [244], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6444, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [183], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6125, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries.push(entry)", + "source_mapping": { + "start": 8770, + "length": 19, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [248], + "starting_column": 13, + "ending_column": 32 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries[index] = entry", + "source_mapping": { + "start": 8820, + "length": 22, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [250], + "starting_column": 13, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6444, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [183], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 6125, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 8700, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [246], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8300, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 471, + "length": 9644, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/home/chris/lab/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager.placeBid(bytes32) (src/chain/CacheManager.sol#173-184):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#182)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#258)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#244)\n\tState variables written after the call(s):\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#248)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#250)\n\tCacheManager.entries (src/chain/CacheManager.sol#24) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.entries (src/chain/CacheManager.sol#24)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#89-92)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#104-106)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#110-120)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#183)\n\t\t- queueSize += size (src/chain/CacheManager.sol#246)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#27) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#233-253)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#256-262)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#215-230)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#124-152)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#189-198)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#27)\n", + "markdown": "Reentrancy in [CacheManager.placeBid(bytes32)](src/chain/CacheManager.sol#L173-L184):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L182)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L258)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L244)\n\tState variables written after the call(s):\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L248)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L250)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L24) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L24)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L89-L92)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L104-L106)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L110-L120)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L183)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L246)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L27) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L233-L253)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L256-L262)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L215-L230)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L124-L152)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L189-L198)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L27)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L173-L184", + "id": "436212c386c26726839a1cf3068734d839e7b01aab9f4594d2df94fcad8587cf", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + }, + { + "type": "node", + "name": "l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10973, + "length": 77, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [268], + "starting_column": 13, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "(sent,None) = msg.sender.call{value: address(this).balance}()", + "source_mapping": { + "start": 11161, + "length": 65, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [272], + "starting_column": 13, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + } + } + } + ], + "description": "RollupCreator._deployFactories(address,address,uint256) (src/rollup/RollupCreator.sol#255-285) sends eth to arbitrary user\n\tDangerous calls:\n\t- l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas) (src/rollup/RollupCreator.sol#268)\n\t- (sent,None) = msg.sender.call{value: address(this).balance}() (src/rollup/RollupCreator.sol#272)\n", + "markdown": "[RollupCreator._deployFactories(address,address,uint256)](src/rollup/RollupCreator.sol#L255-L285) sends eth to arbitrary user\n\tDangerous calls:\n\t- [l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)](src/rollup/RollupCreator.sol#L268)\n\t- [(sent,None) = msg.sender.call{value: address(this).balance}()](src/rollup/RollupCreator.sol#L272)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L255-L285", + "id": "33e46ab503ffc67db10a32c76db44b3d71085e8ccabf978afab4963ab79410b7", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "index == entries.length", + "source_mapping": { + "start": 8531, + "length": 23, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [245], + "starting_column": 13, + "ending_column": 36 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + } + } + ], + "description": "CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251) uses a dangerous strict equality:\n\t- index == entries.length (src/chain/CacheManager.sol#245)\n", + "markdown": "[CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251) uses a dangerous strict equality:\n\t- [index == entries.length](src/chain/CacheManager.sol#L245)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L231-L251", + "id": "3a781781186cbb842796b829845aa7945c024854a5354a602603028bf3bf838a", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "executeLinkModule", + "source_mapping": { + "start": 16420, + "length": 1090, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "(userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)", + "source_mapping": { + "start": 16918, + "length": 141, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [448, 449, 450, 451, 452], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeLinkModule", + "source_mapping": { + "start": 16420, + "length": 1090, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#433-464) ignores return value by (userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0) (src/osp/OneStepProverHostIo.sol#448-452)\n", + "markdown": "[OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L433-L464) ignores return value by [(userMod,offset,None) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)](src/osp/OneStepProverHostIo.sol#L448-L452)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L433-L464", + "id": "92ac837d702aee6d12fc38548f7f338739ba47bacbb9aa683450dead6b522b68", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1168, + "length": 3662, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 10198, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "(err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0)", + "source_mapping": { + "start": 3641, + "length": 79, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [106], + "starting_column": 9, + "ending_column": 88 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1168, + "length": 3662, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 10198, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#36-131) ignores return value by (err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0) (src/osp/OneStepProverMemory.sol#106)\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L36-L131) ignores return value by [(err,value,None) = mod.moduleMemory.load(index,readBytes,proof,0)](src/osp/OneStepProverMemory.sol#L106)\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L36-L131", + "id": "b002aa15c2eafad3b5923f9ca2204b8ea235c930c19b94647b519331fc1abc4c", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + }, + { + "type": "node", + "name": "(None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates()", + "source_mapping": { + "start": 5121, + "length": 115, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [117, 118], + "starting_column": 13, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + } + } + } + ], + "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates() (src/rollup/RollupCreator.sol#117-118)\n", + "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(None,ethSequencerInbox,ethInbox,None,None) = bridgeCreator.ethBasedTemplates()](src/rollup/RollupCreator.sol#L117-L118)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", + "id": "6ac2b9112a4ee35d3925d1fe7a7ff08b6979520c84e24a42eba70d56c25bfb49", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + }, + { + "type": "node", + "name": "(None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates()", + "source_mapping": { + "start": 5509, + "length": 121, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [125, 126], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + } + } + } + ], + "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates() (src/rollup/RollupCreator.sol#125-126)\n", + "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(None,erc20SequencerInbox,erc20Inbox,None,None) = bridgeCreator.erc20BasedTemplates()](src/rollup/RollupCreator.sol#L125-L126)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", + "id": "a4a7309cfe7707c52e24933155fba88b888f432e0f2bd5db4106b9577b09fab3", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "lastProvedLeafContents", + "source_mapping": { + "start": 7133, + "length": 30, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [192], + "starting_column": 9, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryStore", + "source_mapping": { + "start": 4836, + "length": 3663, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 10198, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedLeafContents (src/osp/OneStepProverMemory.sol#192) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedLeafContents](src/osp/OneStepProverMemory.sol#L192) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L192", + "id": "00c7e5f6fcc242a5d65ca8b940bee5979b1e5fae2dfaad3a0f8f2ba6c6cd7a99", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 1364, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 2649, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + }, + { + "type": "node", + "name": "segmentLength = selection.oldSegmentsLength / oldChallengeDegree", + "source_mapping": { + "start": 1611, + "length": 64, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [57], + "starting_column": 9, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 1364, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 2649, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + } + } + }, + { + "type": "node", + "name": "segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition", + "source_mapping": { + "start": 1784, + "length": 87, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [59], + "starting_column": 9, + "ending_column": 96 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 1364, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 2649, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + } + } + } + ], + "description": "ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection) (src/challenge/ChallengeLib.sol#51-63) performs a multiplication on the result of a division:\n\t- segmentLength = selection.oldSegmentsLength / oldChallengeDegree (src/challenge/ChallengeLib.sol#57)\n\t- segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition (src/challenge/ChallengeLib.sol#59)\n", + "markdown": "[ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection)](src/challenge/ChallengeLib.sol#L51-L63) performs a multiplication on the result of a division:\n\t- [segmentLength = selection.oldSegmentsLength / oldChallengeDegree](src/challenge/ChallengeLib.sol#L57)\n\t- [segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition](src/challenge/ChallengeLib.sol#L59)\n", + "first_markdown_element": "src/challenge/ChallengeLib.sol#L51-L63", + "id": "a4b93976a94b1cf6b99dc623ae954b79e816fc108466f521511aaa71a571ee62", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4469, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "rootOfUnityPower = (1 << 32) / fieldElementsPerBlob", + "source_mapping": { + "start": 9247, + "length": 59, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [229], + "starting_column": 17, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4469, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "rootOfUnityPower *= bitReversedIndex", + "source_mapping": { + "start": 9474, + "length": 36, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [232], + "starting_column": 17, + "ending_column": 53 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4469, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#128-250) performs a multiplication on the result of a division:\n\t- rootOfUnityPower = (1 << 32) / fieldElementsPerBlob (src/osp/OneStepProverHostIo.sol#229)\n\t- rootOfUnityPower *= bitReversedIndex (src/osp/OneStepProverHostIo.sol#232)\n", + "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L128-L250) performs a multiplication on the result of a division:\n\t- [rootOfUnityPower = (1 << 32) / fieldElementsPerBlob](src/osp/OneStepProverHostIo.sol#L229)\n\t- [rootOfUnityPower *= bitReversedIndex](src/osp/OneStepProverHostIo.sol#L232)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L128-L250", + "id": "f0b43f8c42c636a0a6c208ac9bd013cf20177f73df6cf1ea5ab40b7aec7a50ca", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheCodehash(code)", + "source_mapping": { + "start": 8415, + "length": 34, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [242], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 8500, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [244], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251):\n\tExternal calls:\n\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#242)\n\tState variables written after the call(s):\n\t- queueSize += size (src/chain/CacheManager.sol#244)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#25) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#122-150)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#187-196)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#25)\n", + "markdown": "Reentrancy in [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L242)\n\tState variables written after the call(s):\n\t- [queueSize += size](src/chain/CacheManager.sol#L244)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L25) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L122-L150)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L187-L196)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L25)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L231-L251", + "id": "7cafef621b24ce7927bcb6c53b9a6c824466abcd138ed1f43bd4a38e07637b19", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8755, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254, 255, 256, 257, 258, 259, 260], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 8868, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8755, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254, 255, 256, 257, 258, 259, 260], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "delete entries[index]", + "source_mapping": { + "start": 9004, + "length": 21, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [259], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8755, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254, 255, 256, 257, 258, 259, 260], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260):\n\tExternal calls:\n\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\tState variables written after the call(s):\n\t- delete entries[index] (src/chain/CacheManager.sol#259)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n", + "markdown": "Reentrancy in [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260):\n\tExternal calls:\n\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\tState variables written after the call(s):\n\t- [delete entries[index]](src/chain/CacheManager.sol#L259)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L254-L260", + "id": "1400e2c01607b2bdf7010ad99c436ef2db92c4122f6340a3ca3e5664bc80c983", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2663, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [87, 88, 89, 90], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + }, + { + "type": "node", + "name": "evictPrograms(type()(uint256).max)", + "source_mapping": { + "start": 2712, + "length": 32, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [88], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2663, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [87, 88, 89, 90], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 8868, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8755, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254, 255, 256, 257, 258, 259, 260], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "delete entries", + "source_mapping": { + "start": 2754, + "length": 14, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [89], + "starting_column": 9, + "ending_column": 23 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "evictAll", + "source_mapping": { + "start": 2663, + "length": 112, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [87, 88, 89, 90], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "evictAll()" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + } + ], + "description": "Reentrancy in CacheManager.evictAll() (src/chain/CacheManager.sol#87-90):\n\tExternal calls:\n\t- evictPrograms(type()(uint256).max) (src/chain/CacheManager.sol#88)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\tState variables written after the call(s):\n\t- delete entries (src/chain/CacheManager.sol#89)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n", + "markdown": "Reentrancy in [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90):\n\tExternal calls:\n\t- [evictPrograms(type()(uint256).max)](src/chain/CacheManager.sol#L88)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\tState variables written after the call(s):\n\t- [delete entries](src/chain/CacheManager.sol#L89)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L87-L90", + "id": "e453de7fb42e742ec25db94618c0bc9d52db23aecc625992da375d6e46e61fa8", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 5925, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + }, + { + "type": "node", + "name": "(bid,index) = _makeSpace(asm)", + "source_mapping": { + "start": 6189, + "length": 45, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [180], + "starting_column": 9, + "ending_column": 54 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 5925, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.evictCodehash(entry.code)", + "source_mapping": { + "start": 8868, + "length": 40, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [256], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deleteEntry", + "source_mapping": { + "start": 8755, + "length": 277, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [254, 255, 256, 257, 258, 259, 260], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deleteEntry(uint192,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6244, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [181], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 5925, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "ARB_WASM_CACHE.cacheCodehash(code)", + "source_mapping": { + "start": 8415, + "length": 34, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [242], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6244, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [181], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 5925, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries.push(entry)", + "source_mapping": { + "start": 8570, + "length": 19, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [246], + "starting_column": 13, + "ending_column": 32 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "entries[index] = entry", + "source_mapping": { + "start": 8620, + "length": 22, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [248], + "starting_column": 13, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "entries" + } + }, + { + "type": "node", + "name": "_addBid(bid,codehash,asm,index)", + "source_mapping": { + "start": 6244, + "length": 41, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [181], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "placeBid", + "source_mapping": { + "start": 5925, + "length": 367, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "placeBid(bytes32)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + }, + { + "type": "node", + "name": "queueSize += size", + "source_mapping": { + "start": 8500, + "length": 17, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [244], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_addBid", + "source_mapping": { + "start": 8100, + "length": 600, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_addBid(uint192,bytes32,uint64,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "queueSize" + } + } + ], + "description": "Reentrancy in CacheManager.placeBid(bytes32) (src/chain/CacheManager.sol#171-182):\n\tExternal calls:\n\t- (bid,index) = _makeSpace(asm) (src/chain/CacheManager.sol#180)\n\t\t- ARB_WASM_CACHE.evictCodehash(entry.code) (src/chain/CacheManager.sol#256)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- ARB_WASM_CACHE.cacheCodehash(code) (src/chain/CacheManager.sol#242)\n\tState variables written after the call(s):\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- entries.push(entry) (src/chain/CacheManager.sol#246)\n\t\t- entries[index] = entry (src/chain/CacheManager.sol#248)\n\tCacheManager.entries (src/chain/CacheManager.sol#22) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.entries (src/chain/CacheManager.sol#22)\n\t- CacheManager.evictAll() (src/chain/CacheManager.sol#87-90)\n\t- CacheManager.getEntries() (src/chain/CacheManager.sol#102-104)\n\t- CacheManager.getSmallestEntries(uint256) (src/chain/CacheManager.sol#108-118)\n\t- _addBid(bid,codehash,asm,index) (src/chain/CacheManager.sol#181)\n\t\t- queueSize += size (src/chain/CacheManager.sol#244)\n\tCacheManager.queueSize (src/chain/CacheManager.sol#25) can be used in cross function reentrancies:\n\t- CacheManager._addBid(uint192,bytes32,uint64,uint64) (src/chain/CacheManager.sol#231-251)\n\t- CacheManager._deleteEntry(uint192,uint64) (src/chain/CacheManager.sol#254-260)\n\t- CacheManager._makeSpace(uint64) (src/chain/CacheManager.sol#213-228)\n\t- CacheManager.getMinBid(uint64) (src/chain/CacheManager.sol#122-150)\n\t- CacheManager.makeSpace(uint64) (src/chain/CacheManager.sol#187-196)\n\t- CacheManager.queueSize (src/chain/CacheManager.sol#25)\n", + "markdown": "Reentrancy in [CacheManager.placeBid(bytes32)](src/chain/CacheManager.sol#L171-L182):\n\tExternal calls:\n\t- [(bid,index) = _makeSpace(asm)](src/chain/CacheManager.sol#L180)\n\t\t- [ARB_WASM_CACHE.evictCodehash(entry.code)](src/chain/CacheManager.sol#L256)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [ARB_WASM_CACHE.cacheCodehash(code)](src/chain/CacheManager.sol#L242)\n\tState variables written after the call(s):\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [entries.push(entry)](src/chain/CacheManager.sol#L246)\n\t\t- [entries[index] = entry](src/chain/CacheManager.sol#L248)\n\t[CacheManager.entries](src/chain/CacheManager.sol#L22) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.entries](src/chain/CacheManager.sol#L22)\n\t- [CacheManager.evictAll()](src/chain/CacheManager.sol#L87-L90)\n\t- [CacheManager.getEntries()](src/chain/CacheManager.sol#L102-L104)\n\t- [CacheManager.getSmallestEntries(uint256)](src/chain/CacheManager.sol#L108-L118)\n\t- [_addBid(bid,codehash,asm,index)](src/chain/CacheManager.sol#L181)\n\t\t- [queueSize += size](src/chain/CacheManager.sol#L244)\n\t[CacheManager.queueSize](src/chain/CacheManager.sol#L25) can be used in cross function reentrancies:\n\t- [CacheManager._addBid(uint192,bytes32,uint64,uint64)](src/chain/CacheManager.sol#L231-L251)\n\t- [CacheManager._deleteEntry(uint192,uint64)](src/chain/CacheManager.sol#L254-L260)\n\t- [CacheManager._makeSpace(uint64)](src/chain/CacheManager.sol#L213-L228)\n\t- [CacheManager.getMinBid(uint64)](src/chain/CacheManager.sol#L122-L150)\n\t- [CacheManager.makeSpace(uint64)](src/chain/CacheManager.sol#L187-L196)\n\t- [CacheManager.queueSize](src/chain/CacheManager.sol#L25)\n", + "first_markdown_element": "src/chain/CacheManager.sol#L171-L182", + "id": "1e0701041bd439420af2077b392bf8fa2ccd25ae29d0d785daec5e92d76ecbb8", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "internalStack", + "source_mapping": { + "start": 1753, + "length": 31, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [52], + "starting_column": 9, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getStartMachineHash", + "source_mapping": { + "start": 1158, + "length": 1300, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProofEntry", + "source_mapping": { + "start": 407, + "length": 7601, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getStartMachineHash(bytes32,bytes32)" + } + } + } + } + ], + "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).internalStack (src/osp/OneStepProofEntry.sol#52) is a local variable never initialized\n", + "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).internalStack](src/osp/OneStepProofEntry.sol#L52) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProofEntry.sol#L52", + "id": "fb3b9ad9a22662ab3a9d3f187478b9833041da23c79103d4346a16da071526e9", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "frameStack", + "source_mapping": { + "start": 1794, + "length": 34, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [53], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getStartMachineHash", + "source_mapping": { + "start": 1158, + "length": 1300, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProofEntry", + "source_mapping": { + "start": 407, + "length": 7601, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getStartMachineHash(bytes32,bytes32)" + } + } + } + } + ], + "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).frameStack (src/osp/OneStepProofEntry.sol#53) is a local variable never initialized\n", + "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).frameStack](src/osp/OneStepProofEntry.sol#L53) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProofEntry.sol#L53", + "id": "2dd21e12ec5d5965b5bd41d82bb252991172e100ac1f78846fb692a07fd06c26", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "lastProvedLeafContents", + "source_mapping": { + "start": 2178, + "length": 30, + "filename_relative": "src/state/ModuleMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", + "filename_short": "src/state/ModuleMemory.sol", + "is_dependency": false, + "lines": [73], + "starting_column": 9, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "load", + "source_mapping": { + "start": 1729, + "length": 1164, + "filename_relative": "src/state/ModuleMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", + "filename_short": "src/state/ModuleMemory.sol", + "is_dependency": false, + "lines": [ + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ModuleMemoryLib", + "source_mapping": { + "start": 298, + "length": 2597, + "filename_relative": "src/state/ModuleMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/ModuleMemory.sol", + "filename_short": "src/state/ModuleMemory.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "load(ModuleMemory,uint256,uint256,bytes,uint256)" + } + } + } + } + ], + "description": "ModuleMemoryLib.load(ModuleMemory,uint256,uint256,bytes,uint256).lastProvedLeafContents (src/state/ModuleMemory.sol#73) is a local variable never initialized\n", + "markdown": "[ModuleMemoryLib.load(ModuleMemory,uint256,uint256,bytes,uint256).lastProvedLeafContents](src/state/ModuleMemory.sol#L73) is a local variable never initialized\n", + "first_markdown_element": "src/state/ModuleMemory.sol#L73", + "id": "ddf8f7daccaffa622915e6d24c5497c3801c89f4969af443509e576747d091fe", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "emptyMultiStack", + "source_mapping": { + "start": 1838, + "length": 33, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [54], + "starting_column": 9, + "ending_column": 42 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getStartMachineHash", + "source_mapping": { + "start": 1158, + "length": 1300, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProofEntry", + "source_mapping": { + "start": 407, + "length": 7601, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getStartMachineHash(bytes32,bytes32)" + } + } + } + } + ], + "description": "OneStepProofEntry.getStartMachineHash(bytes32,bytes32).emptyMultiStack (src/osp/OneStepProofEntry.sol#54) is a local variable never initialized\n", + "markdown": "[OneStepProofEntry.getStartMachineHash(bytes32,bytes32).emptyMultiStack](src/osp/OneStepProofEntry.sol#L54) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProofEntry.sol#L54", + "id": "5c6acbea6429303780ccb1049265a5d97162a57ddda1d6d332f3201bff526332", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "min", + "source_mapping": { + "start": 7701, + "length": 11, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [218], + "starting_column": 9, + "ending_column": 20 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_makeSpace", + "source_mapping": { + "start": 7478, + "length": 592, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "CacheManager", + "source_mapping": { + "start": 350, + "length": 9565, + "filename_relative": "src/chain/CacheManager.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/chain/CacheManager.sol", + "filename_short": "src/chain/CacheManager.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_makeSpace(uint64)" + } + } + } + } + ], + "description": "CacheManager._makeSpace(uint64).min (src/chain/CacheManager.sol#218) is a local variable never initialized\n", + "markdown": "[CacheManager._makeSpace(uint64).min](src/chain/CacheManager.sol#L218) is a local variable never initialized\n", + "first_markdown_element": "src/chain/CacheManager.sol#L218", + "id": "73850e9ef891d5f054eb989dce18e9362ba7349b4f2237be464bcaeab7c4fe54", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "proveOneStep", + "source_mapping": { + "start": 3092, + "length": 4914, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProofEntry", + "source_mapping": { + "start": 407, + "length": 7601, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "proveOneStep(ExecutionContext,uint256,bytes32,bytes)" + } + }, + { + "type": "node", + "name": "mach.setPcFromRecovery()", + "source_mapping": { + "start": 7887, + "length": 24, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [197], + "starting_column": 13, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proveOneStep", + "source_mapping": { + "start": 3092, + "length": 4914, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProofEntry", + "source_mapping": { + "start": 407, + "length": 7601, + "filename_relative": "src/osp/OneStepProofEntry.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProofEntry.sol", + "filename_short": "src/osp/OneStepProofEntry.sol", + "is_dependency": false, + "lines": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "proveOneStep(ExecutionContext,uint256,bytes32,bytes)" + } + } + } + } + ], + "description": "OneStepProofEntry.proveOneStep(ExecutionContext,uint256,bytes32,bytes) (src/osp/OneStepProofEntry.sol#91-202) ignores return value by mach.setPcFromRecovery() (src/osp/OneStepProofEntry.sol#197)\n", + "markdown": "[OneStepProofEntry.proveOneStep(ExecutionContext,uint256,bytes32,bytes)](src/osp/OneStepProofEntry.sol#L91-L202) ignores return value by [mach.setPcFromRecovery()](src/osp/OneStepProofEntry.sol#L197)\n", + "first_markdown_element": "src/osp/OneStepProofEntry.sol#L91-L202", + "id": "1e2dda001e02cbbabef97b698cc66ccc8052b4444a6785554ba4d649b6511550", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeDrop", + "source_mapping": { + "start": 1726, + "length": 185, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 18300, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeDrop(Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "mach.valueStack.pop()", + "source_mapping": { + "start": 1883, + "length": 21, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeDrop", + "source_mapping": { + "start": 1726, + "length": 185, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [61, 62, 63, 64, 65, 66, 67, 68], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 18300, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeDrop(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeDrop(Machine,Module,Instruction,bytes) (src/osp/OneStepProver0.sol#61-68) ignores return value by mach.valueStack.pop() (src/osp/OneStepProver0.sol#67)\n", + "markdown": "[OneStepProver0.executeDrop(Machine,Module,Instruction,bytes)](src/osp/OneStepProver0.sol#L61-L68) ignores return value by [mach.valueStack.pop()](src/osp/OneStepProver0.sol#L67)\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L61-L68", + "id": "eba4f716555f696a91fc8ad9e049846421a7a6ad85a83865fb641cf1b9b27c54", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10247, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + }, + { + "type": "node", + "name": "(afterDelayedMsg,None) = Deserialize.u64(message,32)", + "source_mapping": { + "start": 10532, + "length": 50, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [260], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10247, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#252-274) ignores return value by (afterDelayedMsg,None) = Deserialize.u64(message,32) (src/osp/OneStepProverHostIo.sol#260)\n", + "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L252-L274) ignores return value by [(afterDelayedMsg,None) = Deserialize.u64(message,32)](src/osp/OneStepProverHostIo.sol#L260)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L252-L274", + "id": "7a935ab3d3995d6dce7a8ceebf4df0c402dd5ffa259ff05c1b75422e65f9a5ed", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "validateDelayedInbox", + "source_mapping": { + "start": 11137, + "length": 916, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)" + } + }, + { + "type": "node", + "name": "(sender,None) = Deserialize.u256(message,1)", + "source_mapping": { + "start": 11660, + "length": 41, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [292], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateDelayedInbox", + "source_mapping": { + "start": 11137, + "length": 916, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#276-301) ignores return value by (sender,None) = Deserialize.u256(message,1) (src/osp/OneStepProverHostIo.sol#292)\n", + "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L276-L301) ignores return value by [(sender,None) = Deserialize.u256(message,1)](src/osp/OneStepProverHostIo.sol#L292)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L276-L301", + "id": "81ff5b93f212262122b563d7d9aa8ed5b61e0fe74edfe59c06accd2ae77a46ca", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeLinkModule", + "source_mapping": { + "start": 16420, + "length": 1090, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "(userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)", + "source_mapping": { + "start": 16918, + "length": 141, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [448, 449, 450, 451, 452], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeLinkModule", + "source_mapping": { + "start": 16420, + "length": 1090, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#433-464) ignores return value by (userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0) (src/osp/OneStepProverHostIo.sol#448-452)\n", + "markdown": "[OneStepProverHostIo.executeLinkModule(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L433-L464) ignores return value by [(userMod,offset) = mod.moduleMemory.proveLeaf(pointer / LEAF_SIZE,proof,0)](src/osp/OneStepProverHostIo.sol#L448-L452)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L433-L464", + "id": "ca4b4a9a8f6f270a10c0e390a10831708cbcfc0bfa398fc3f21331bfbd5fc479", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeSwitchCoThread", + "source_mapping": { + "start": 21302, + "length": 1074, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "mach.setRecoveryFromPc(uint32(inst.argumentData))", + "source_mapping": { + "start": 22273, + "length": 49, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [597], + "starting_column": 13, + "ending_column": 62 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeSwitchCoThread", + "source_mapping": { + "start": 21302, + "length": 1074, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 502, + "length": 23583, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#572-600) ignores return value by mach.setRecoveryFromPc(uint32(inst.argumentData)) (src/osp/OneStepProverHostIo.sol#597)\n", + "markdown": "[OneStepProverHostIo.executeSwitchCoThread(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L572-L600) ignores return value by [mach.setRecoveryFromPc(uint32(inst.argumentData))](src/osp/OneStepProverHostIo.sol#L597)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L572-L600", + "id": "ac3b6c8d13d7ed575d28aeae91d5e7c25757469f13c56cd8ec10843535deca31", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1168, + "length": 3662, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 10198, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "(err,value) = mod.moduleMemory.load(index,readBytes,proof,0)", + "source_mapping": { + "start": 3641, + "length": 79, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [106], + "starting_column": 9, + "ending_column": 88 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1168, + "length": 3662, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 10198, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#36-131) ignores return value by (err,value) = mod.moduleMemory.load(index,readBytes,proof,0) (src/osp/OneStepProverMemory.sol#106)\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L36-L131) ignores return value by [(err,value) = mod.moduleMemory.load(index,readBytes,proof,0)](src/osp/OneStepProverMemory.sol#L106)\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L36-L131", + "id": "df6a63edce47eb17310486af71173d172b59ec0187bd5f84df01a3e0bbd022c2", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "offset", + "source_mapping": { + "start": 7752, + "length": 18, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [241], + "starting_column": 13, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 7332, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 18300, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)", + "source_mapping": { + "start": 9359, + "length": 59, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [277], + "starting_column": 13, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 7332, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 18300, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "(functionPointer,offset) = Deserialize.value(proof,offset)", + "source_mapping": { + "start": 9432, + "length": 60, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [278], + "starting_column": 13, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 7332, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 18300, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset (src/osp/OneStepProver0.sol#241) is written in both\n\t(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset) (src/osp/OneStepProver0.sol#277)\n\t(functionPointer,offset) = Deserialize.value(proof,offset) (src/osp/OneStepProver0.sol#278)\n", + "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset](src/osp/OneStepProver0.sol#L241) is written in both\n\t[(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)](src/osp/OneStepProver0.sol#L277)\n\t[(functionPointer,offset) = Deserialize.value(proof,offset)](src/osp/OneStepProver0.sol#L278)\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L241", + "id": "d6a42f778bdb10ec1cc4e3ae5bd1d2a66edf8c14085e20de930344608bd29bd2", + "check": "write-after-write", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "refundsGas", + "source_mapping": { + "start": 721, + "length": 2143, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefundEnabled", + "source_mapping": { + "start": 309, + "length": 2557, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refundsGas(IGasRefunder,IReader4844)" + } + }, + { + "type": "node", + "name": "calldataWords = (calldataSize + 31) / 32", + "source_mapping": { + "start": 960, + "length": 48, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [22], + "starting_column": 13, + "ending_column": 61 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refundsGas", + "source_mapping": { + "start": 721, + "length": 2143, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefundEnabled", + "source_mapping": { + "start": 309, + "length": 2557, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refundsGas(IGasRefunder,IReader4844)" + } + } + } + }, + { + "type": "node", + "name": "startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512", + "source_mapping": { + "start": 1130, + "length": 60, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [24], + "starting_column": 13, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refundsGas", + "source_mapping": { + "start": 721, + "length": 2143, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefundEnabled", + "source_mapping": { + "start": 309, + "length": 2557, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refundsGas(IGasRefunder,IReader4844)" + } + } + } + } + ], + "description": "GasRefundEnabled.refundsGas(IGasRefunder,IReader4844) (src/libraries/GasRefundEnabled.sol#17-51) performs a multiplication on the result of a division:\n\t- calldataWords = (calldataSize + 31) / 32 (src/libraries/GasRefundEnabled.sol#22)\n\t- startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512 (src/libraries/GasRefundEnabled.sol#24)\n", + "markdown": "[GasRefundEnabled.refundsGas(IGasRefunder,IReader4844)](src/libraries/GasRefundEnabled.sol#L17-L51) performs a multiplication on the result of a division:\n\t- [calldataWords = (calldataSize + 31) / 32](src/libraries/GasRefundEnabled.sol#L22)\n\t- [startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512](src/libraries/GasRefundEnabled.sol#L24)\n", + "first_markdown_element": "src/libraries/GasRefundEnabled.sol#L17-L51", + "id": "bb26256ad08f6833c6e0395d78c4b8a1182860d966d17803ac727cde7719e8b6", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "node", + "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10207, + "length": 201, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [96, 97, 98, 99, 100, 101, 102, 103], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10012, + "length": 1157, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10207, + "length": 201, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [96, 97, 98, 99, 100, 101, 102, 103], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10012, + "length": 1157, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + } + ], + "description": "Multiple retryable tickets created in the same function:\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#96-103)\n\t -_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas) (src/rollup/DeployHelper.sol#96-103)\n", + "markdown": "Multiple retryable tickets created in the same function:\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L96-L103)\n\t -[_fundAndDeploy(_inbox,NICK_CREATE2_VALUE,NICK_CREATE2_DEPLOYER,NICK_CREATE2_PAYLOAD,isUsingFeeToken,_maxFeePerGas)](src/rollup/DeployHelper.sol#L96-L103)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L96-L103", + "id": "5d40acc11dbb925c7e8ac930729d7231aea71007192a71ca36b451cad7a17520", + "check": "out-of-order-retryable", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_executeLowLevelCall", + "source_mapping": { + "start": 1379, + "length": 299, + "filename_relative": "src/bridge/Bridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", + "filename_short": "src/bridge/Bridge.sol", + "is_dependency": false, + "lines": [42, 43, 44, 45, 46, 47, 48, 49], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Bridge", + "source_mapping": { + "start": 702, + "length": 1090, + "filename_relative": "src/bridge/Bridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", + "filename_short": "src/bridge/Bridge.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_executeLowLevelCall(address,uint256,bytes)" + } + }, + { + "type": "node", + "name": "(success,returnData) = to.call{value: value}(data)", + "source_mapping": { + "start": 1620, + "length": 51, + "filename_relative": "src/bridge/Bridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", + "filename_short": "src/bridge/Bridge.sol", + "is_dependency": false, + "lines": [48], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_executeLowLevelCall", + "source_mapping": { + "start": 1379, + "length": 299, + "filename_relative": "src/bridge/Bridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", + "filename_short": "src/bridge/Bridge.sol", + "is_dependency": false, + "lines": [42, 43, 44, 45, 46, 47, 48, 49], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Bridge", + "source_mapping": { + "start": 702, + "length": 1090, + "filename_relative": "src/bridge/Bridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/Bridge.sol", + "filename_short": "src/bridge/Bridge.sol", + "is_dependency": false, + "lines": [ + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_executeLowLevelCall(address,uint256,bytes)" + } + } + } + } + ], + "description": "Bridge._executeLowLevelCall(address,uint256,bytes) (src/bridge/Bridge.sol#42-49) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,returnData) = to.call{value: value}(data) (src/bridge/Bridge.sol#48)\n", + "markdown": "[Bridge._executeLowLevelCall(address,uint256,bytes)](src/bridge/Bridge.sol#L42-L49) sends eth to arbitrary user\n\tDangerous calls:\n\t- [(success,returnData) = to.call{value: value}(data)](src/bridge/Bridge.sol#L48)\n", + "first_markdown_element": "src/bridge/Bridge.sol#L42-L49", + "id": "52aa149e251bcbda3478032a3845253462c6d80e50cde35746a072dd6dd226a6", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + }, + { + "type": "node", + "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", + "source_mapping": { + "start": 9483, + "length": 399, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) sends eth to arbitrary user\n\tDangerous calls:\n\t- IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#74-83)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) sends eth to arbitrary user\n\tDangerous calls:\n\t- [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L74-L83)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", + "id": "e0479a62ad4830e7fe86da8c84b5e23beb3117b4fad5a10981cccab1ed4d7fef", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10012, + "length": 1157, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + }, + { + "type": "node", + "name": "address(msg.sender).transfer(address(this).balance)", + "source_mapping": { + "start": 11101, + "length": 51, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [131], + "starting_column": 13, + "ending_column": 64 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "perform", + "source_mapping": { + "start": 10012, + "length": 1157, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "perform(address,address,uint256)" + } + } + } + } + ], + "description": "DeployHelper.perform(address,address,uint256) (src/rollup/DeployHelper.sol#89-133) sends eth to arbitrary user\n\tDangerous calls:\n\t- address(msg.sender).transfer(address(this).balance) (src/rollup/DeployHelper.sol#131)\n", + "markdown": "[DeployHelper.perform(address,address,uint256)](src/rollup/DeployHelper.sol#L89-L133) sends eth to arbitrary user\n\tDangerous calls:\n\t- [address(msg.sender).transfer(address(this).balance)](src/rollup/DeployHelper.sol#L131)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L89-L133", + "id": "9ffb800c52b7ebc92a4117369762770d49beb52d8f7f0c4c53742745d88e75c4", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + }, + { + "type": "node", + "name": "l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)", + "source_mapping": { + "start": 10973, + "length": 77, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [268], + "starting_column": 13, + "ending_column": 90 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + } + } + }, + { + "type": "node", + "name": "(sent) = msg.sender.call{value: address(this).balance}()", + "source_mapping": { + "start": 11161, + "length": 65, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [272], + "starting_column": 13, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_deployFactories", + "source_mapping": { + "start": 10566, + "length": 1163, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_deployFactories(address,address,uint256)" + } + } + } + } + ], + "description": "RollupCreator._deployFactories(address,address,uint256) (src/rollup/RollupCreator.sol#255-285) sends eth to arbitrary user\n\tDangerous calls:\n\t- l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas) (src/rollup/RollupCreator.sol#268)\n\t- (sent) = msg.sender.call{value: address(this).balance}() (src/rollup/RollupCreator.sol#272)\n", + "markdown": "[RollupCreator._deployFactories(address,address,uint256)](src/rollup/RollupCreator.sol#L255-L285) sends eth to arbitrary user\n\tDangerous calls:\n\t- [l2FactoriesDeployer.perform{value: cost}(_inbox,_nativeToken,_maxFeePerGas)](src/rollup/RollupCreator.sol#L268)\n\t- [(sent) = msg.sender.call{value: address(this).balance}()](src/rollup/RollupCreator.sol#L272)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L255-L285", + "id": "76dc4e58fa8c5850af786b5521aa4b4047660ca4b5cfdc3ec6d2b34a27bf414d", + "check": "arbitrary-send-eth", + "impact": "High", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "calculateRoot", + "source_mapping": { + "start": 987, + "length": 872, + "filename_relative": "src/libraries/MerkleLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", + "filename_short": "src/libraries/MerkleLib.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MerkleLib", + "source_mapping": { + "start": 254, + "length": 1607, + "filename_relative": "src/libraries/MerkleLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", + "filename_short": "src/libraries/MerkleLib.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "calculateRoot(bytes32[],uint256,bytes32)" + } + }, + { + "type": "node", + "name": "(route & (1 << i)) == 0", + "source_mapping": { + "start": 1371, + "length": 23, + "filename_relative": "src/libraries/MerkleLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", + "filename_short": "src/libraries/MerkleLib.sol", + "is_dependency": false, + "lines": [38], + "starting_column": 17, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "calculateRoot", + "source_mapping": { + "start": 987, + "length": 872, + "filename_relative": "src/libraries/MerkleLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", + "filename_short": "src/libraries/MerkleLib.sol", + "is_dependency": false, + "lines": [ + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "MerkleLib", + "source_mapping": { + "start": 254, + "length": 1607, + "filename_relative": "src/libraries/MerkleLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/MerkleLib.sol", + "filename_short": "src/libraries/MerkleLib.sol", + "is_dependency": false, + "lines": [ + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "calculateRoot(bytes32[],uint256,bytes32)" + } + } + } + } + ], + "description": "MerkleLib.calculateRoot(bytes32[],uint256,bytes32) (src/libraries/MerkleLib.sol#28-56) contains an incorrect shift operation: (route & (1 << i)) == 0 (src/libraries/MerkleLib.sol#38)\n", + "markdown": "[MerkleLib.calculateRoot(bytes32[],uint256,bytes32)](src/libraries/MerkleLib.sol#L28-L56) contains an incorrect shift operation: [(route & (1 << i)) == 0](src/libraries/MerkleLib.sol#L38)\n", + "first_markdown_element": "src/libraries/MerkleLib.sol#L28-L56", + "id": "5c3db261bcf096a853ed1cbf065868696b577e437b35616c25ee3da2af6bc0d7", + "check": "incorrect-shift", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "confirmPeriodBlocks", + "source_mapping": { + "start": 848, + "length": 33, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [30], + "starting_column": 5, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "_validatorIsAfk", + "source_mapping": { + "start": 1426, + "length": 349, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_validatorIsAfk()" + } + }, + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "function", + "name": "addStaker", + "source_mapping": { + "start": 16226, + "length": 666, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addStaker(uint64,address)" + } + }, + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + ], + "description": "RollupCore.confirmPeriodBlocks (src/rollup/RollupCore.sol#30) is never initialized. It is used in:\n\t- AbsRollupUserLogic._validatorIsAfk() (src/rollup/RollupUserLogic.sol#47-54)\n\t- AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523)\n\t- RollupCore.addStaker(uint64,address) (src/rollup/RollupCore.sol#449-465)\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", + "markdown": "[RollupCore.confirmPeriodBlocks](src/rollup/RollupCore.sol#L30) is never initialized. It is used in:\n\t- [AbsRollupUserLogic._validatorIsAfk()](src/rollup/RollupUserLogic.sol#L47-L54)\n\t- [AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523)\n\t- [RollupCore.addStaker(uint64,address)](src/rollup/RollupCore.sol#L449-L465)\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L30", + "id": "a4b24bce5aba1839e99647d1a79bb6ee736796ffa0b26da1ff6de3bf0cad25a2", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "extraChallengeTimeBlocks", + "source_mapping": { + "start": 887, + "length": 38, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [31], + "starting_column": 5, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 12264, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + ], + "description": "RollupCore.extraChallengeTimeBlocks (src/rollup/RollupCore.sol#31) is never initialized. It is used in:\n\t- AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#291-364)\n", + "markdown": "[RollupCore.extraChallengeTimeBlocks](src/rollup/RollupCore.sol#L31) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L291-L364)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L31", + "id": "da3953abca5cd200b13fe48850b6aa7652681e329be2738fada97e811ccf823c", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "baseStake", + "source_mapping": { + "start": 959, + "length": 24, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [33], + "starting_column": 5, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + ], + "description": "RollupCore.baseStake (src/rollup/RollupCore.sol#33) is never initialized. It is used in:\n\t- AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523)\n", + "markdown": "[RollupCore.baseStake](src/rollup/RollupCore.sol#L33) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L33", + "id": "e38524abb8244a635c7bb2fbd1c2e3be4f6f4c45b66589d5c431018eaec19736", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "wasmModuleRoot", + "source_mapping": { + "start": 989, + "length": 29, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [34], + "starting_column": 5, + "ending_column": 34 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + ], + "description": "RollupCore.wasmModuleRoot (src/rollup/RollupCore.sol#34) is never initialized. It is used in:\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", + "markdown": "[RollupCore.wasmModuleRoot](src/rollup/RollupCore.sol#L34) is never initialized. It is used in:\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L34", + "id": "ba1b0a9663907f65e34f85d9522781abdfd536250f5ca9c3ce00e5d5fd99e0e5", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "bridge", + "source_mapping": { + "start": 1054, + "length": 21, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [37], + "starting_column": 5, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + ], + "description": "RollupCore.bridge (src/rollup/RollupCore.sol#37) is never initialized. It is used in:\n\t- RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677)\n", + "markdown": "[RollupCore.bridge](src/rollup/RollupCore.sol#L37) is never initialized. It is used in:\n\t- [RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L37", + "id": "083aba2c7a6498e3f6b62bd57041243e85867ce1e7deb7e73af230c8a3fda57c", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "outbox", + "source_mapping": { + "start": 1081, + "length": 21, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [38], + "starting_column": 5, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "confirmNode", + "source_mapping": { + "start": 10760, + "length": 573, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "confirmNode(uint64,bytes32,bytes32)" + } + } + ], + "description": "RollupCore.outbox (src/rollup/RollupCore.sol#38) is never initialized. It is used in:\n\t- RollupCore.confirmNode(uint64,bytes32,bytes32) (src/rollup/RollupCore.sol#306-322)\n", + "markdown": "[RollupCore.outbox](src/rollup/RollupCore.sol#L38) is never initialized. It is used in:\n\t- [RollupCore.confirmNode(uint64,bytes32,bytes32)](src/rollup/RollupCore.sol#L306-L322)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L38", + "id": "0e386868f4529a31d9469b3b0f8148977860a53590d8f94171666883bbbe4c3d", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "challengeManager", + "source_mapping": { + "start": 1198, + "length": 50, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [41], + "starting_column": 5, + "ending_column": 55 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "createChallengeHelper", + "source_mapping": { + "start": 15401, + "length": 672, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)" + } + }, + { + "type": "function", + "name": "completeChallenge", + "source_mapping": { + "start": 16300, + "length": 484, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [393, 394, 395, 396, 397, 398, 399, 400, 401, 402], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "completeChallenge(uint256,address,address)" + } + } + ], + "description": "RollupCore.challengeManager (src/rollup/RollupCore.sol#41) is never initialized. It is used in:\n\t- AbsRollupUserLogic.createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256) (src/rollup/RollupUserLogic.sol#366-386)\n\t- AbsRollupUserLogic.completeChallenge(uint256,address,address) (src/rollup/RollupUserLogic.sol#393-402)\n", + "markdown": "[RollupCore.challengeManager](src/rollup/RollupCore.sol#L41) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)](src/rollup/RollupUserLogic.sol#L366-L386)\n\t- [AbsRollupUserLogic.completeChallenge(uint256,address,address)](src/rollup/RollupUserLogic.sol#L393-L402)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L41", + "id": "22c612a6037a18832e2adecba9cb92ae47a8af1b6ad06cd807e2930e95704f7f", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "loserStakeEscrow", + "source_mapping": { + "start": 1485, + "length": 31, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [48], + "starting_column": 5, + "ending_column": 36 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "completeChallengeImpl", + "source_mapping": { + "start": 16790, + "length": 1104, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "completeChallengeImpl(address,address)" + } + } + ], + "description": "RollupCore.loserStakeEscrow (src/rollup/RollupCore.sol#48) is never initialized. It is used in:\n\t- AbsRollupUserLogic.completeChallengeImpl(address,address) (src/rollup/RollupUserLogic.sol#404-423)\n", + "markdown": "[RollupCore.loserStakeEscrow](src/rollup/RollupCore.sol#L48) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.completeChallengeImpl(address,address)](src/rollup/RollupUserLogic.sol#L404-L423)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L48", + "id": "c7bcdadad2017983801efa1f09090e62d03f763f4327a3ff8eae213d33849120", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "stakeToken", + "source_mapping": { + "start": 1522, + "length": 25, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 5, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "isERC20Enabled", + "source_mapping": { + "start": 2244, + "length": 110, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [68, 69, 70], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "isERC20Enabled()" + } + } + ], + "description": "RollupCore.stakeToken (src/rollup/RollupCore.sol#49) is never initialized. It is used in:\n\t- AbsRollupUserLogic.isERC20Enabled() (src/rollup/RollupUserLogic.sol#68-70)\n", + "markdown": "[RollupCore.stakeToken](src/rollup/RollupCore.sol#L49) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.isERC20Enabled()](src/rollup/RollupUserLogic.sol#L68-L70)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L49", + "id": "762ea8af9375f2dee07c120ca7a44b367b72fbd357f74ed8397e8540a17d87b6", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "minimumAssertionPeriod", + "source_mapping": { + "start": 1553, + "length": 37, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 5, + "ending_column": 42 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "stakeOnNewNode", + "source_mapping": { + "start": 7704, + "length": 1684, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnNewNode(Assertion,bytes32,uint256)" + } + } + ], + "description": "RollupCore.minimumAssertionPeriod (src/rollup/RollupCore.sol#50) is never initialized. It is used in:\n\t- AbsRollupUserLogic.stakeOnNewNode(Assertion,bytes32,uint256) (src/rollup/RollupUserLogic.sol#198-233)\n", + "markdown": "[RollupCore.minimumAssertionPeriod](src/rollup/RollupCore.sol#L50) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.stakeOnNewNode(Assertion,bytes32,uint256)](src/rollup/RollupUserLogic.sol#L198-L233)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L50", + "id": "01fe9c1889403593f4723665fd7724b4e31b63dd3689c5816cb6d147d16dbf42", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "isValidator", + "source_mapping": { + "start": 1597, + "length": 43, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [52], + "starting_column": 5, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + } + ], + "description": "RollupCore.isValidator (src/rollup/RollupCore.sol#52) is never initialized. It is used in:\n", + "markdown": "[RollupCore.isValidator](src/rollup/RollupCore.sol#L52) is never initialized. It is used in:\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L52", + "id": "f316200e22d3febd4d78fe211de5d864b1b65169f67e03191ea884e8b60055ae", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "stakeToken", + "source_mapping": { + "start": 1522, + "length": 25, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 5, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "function", + "name": "isERC20Enabled", + "source_mapping": { + "start": 2244, + "length": 110, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [68, 69, 70], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "isERC20Enabled()" + } + }, + { + "type": "function", + "name": "withdrawStakerFunds", + "source_mapping": { + "start": 30568, + "length": 400, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20RollupUserLogic", + "source_mapping": { + "start": 28020, + "length": 3167, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "withdrawStakerFunds()" + } + }, + { + "type": "function", + "name": "receiveTokens", + "source_mapping": { + "start": 30974, + "length": 211, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [763, 764, 765, 766, 767, 768], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20RollupUserLogic", + "source_mapping": { + "start": 28020, + "length": 3167, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "receiveTokens(uint256)" + } + } + ], + "description": "RollupCore.stakeToken (src/rollup/RollupCore.sol#49) is never initialized. It is used in:\n\t- AbsRollupUserLogic.isERC20Enabled() (src/rollup/RollupUserLogic.sol#68-70)\n\t- ERC20RollupUserLogic.withdrawStakerFunds() (src/rollup/RollupUserLogic.sol#750-761)\n\t- ERC20RollupUserLogic.receiveTokens(uint256) (src/rollup/RollupUserLogic.sol#763-768)\n", + "markdown": "[RollupCore.stakeToken](src/rollup/RollupCore.sol#L49) is never initialized. It is used in:\n\t- [AbsRollupUserLogic.isERC20Enabled()](src/rollup/RollupUserLogic.sol#L68-L70)\n\t- [ERC20RollupUserLogic.withdrawStakerFunds()](src/rollup/RollupUserLogic.sol#L750-L761)\n\t- [ERC20RollupUserLogic.receiveTokens(uint256)](src/rollup/RollupUserLogic.sol#L763-L768)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L49", + "id": "388304453678fb7cb187225ae4a8eef1f46c80d072185688bad31640b221fb6d", + "check": "uninitialized-state", + "impact": "High", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 3040, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 4325, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + }, + { + "type": "node", + "name": "segmentLength = selection.oldSegmentsLength / oldChallengeDegree", + "source_mapping": { + "start": 3287, + "length": 64, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [102], + "starting_column": 9, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 3040, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 4325, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + } + } + }, + { + "type": "node", + "name": "segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition", + "source_mapping": { + "start": 3460, + "length": 87, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [104], + "starting_column": 9, + "ending_column": 96 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "extractChallengeSegment", + "source_mapping": { + "start": 3040, + "length": 682, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 4325, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "extractChallengeSegment(ChallengeLib.SegmentSelection)" + } + } + } + } + ], + "description": "ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection) (src/challenge/ChallengeLib.sol#96-108) performs a multiplication on the result of a division:\n\t- segmentLength = selection.oldSegmentsLength / oldChallengeDegree (src/challenge/ChallengeLib.sol#102)\n\t- segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition (src/challenge/ChallengeLib.sol#104)\n", + "markdown": "[ChallengeLib.extractChallengeSegment(ChallengeLib.SegmentSelection)](src/challenge/ChallengeLib.sol#L96-L108) performs a multiplication on the result of a division:\n\t- [segmentLength = selection.oldSegmentsLength / oldChallengeDegree](src/challenge/ChallengeLib.sol#L102)\n\t- [segmentStart = selection.oldSegmentsStart + segmentLength * selection.challengePosition](src/challenge/ChallengeLib.sol#L104)\n", + "first_markdown_element": "src/challenge/ChallengeLib.sol#L96-L108", + "id": "e1c80d5388c10fc3c7985b252a3988308fb524570c5772733ff6da1f68ae3665", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4302, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "rootOfUnityPower = (1 << 32) / fieldElementsPerBlob", + "source_mapping": { + "start": 9080, + "length": 59, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [224], + "starting_column": 17, + "ending_column": 76 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4302, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "rootOfUnityPower *= bitReversedIndex", + "source_mapping": { + "start": 9307, + "length": 36, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [227], + "starting_column": 17, + "ending_column": 53 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4302, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes) (src/osp/OneStepProverHostIo.sol#123-245) performs a multiplication on the result of a division:\n\t- rootOfUnityPower = (1 << 32) / fieldElementsPerBlob (src/osp/OneStepProverHostIo.sol#224)\n\t- rootOfUnityPower *= bitReversedIndex (src/osp/OneStepProverHostIo.sol#227)\n", + "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)](src/osp/OneStepProverHostIo.sol#L123-L245) performs a multiplication on the result of a division:\n\t- [rootOfUnityPower = (1 << 32) / fieldElementsPerBlob](src/osp/OneStepProverHostIo.sol#L224)\n\t- [rootOfUnityPower *= bitReversedIndex](src/osp/OneStepProverHostIo.sol#L227)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L123-L245", + "id": "544b092c0dd6ff4838cb1cbaa7af3a7e9ba4011548b519524ea1c0f49488ba8a", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier = withNumerator / denominators[periodsPassed % 10]", + "source_mapping": { + "start": 21553, + "length": 69, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [518], + "starting_column": 9, + "ending_column": 78 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + }, + { + "type": "node", + "name": "baseStake * multiplier", + "source_mapping": { + "start": 21701, + "length": 29, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [522], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523) performs a multiplication on the result of a division:\n\t- multiplier = withNumerator / denominators[periodsPassed % 10] (src/rollup/RollupUserLogic.sol#518)\n\t- baseStake * multiplier (src/rollup/RollupUserLogic.sol#522)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523) performs a multiplication on the result of a division:\n\t- [multiplier = withNumerator / denominators[periodsPassed % 10]](src/rollup/RollupUserLogic.sol#L518)\n\t- [baseStake * multiplier](src/rollup/RollupUserLogic.sol#L522)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L477-L523", + "id": "d8acf03a6b7c6bb0b8a091fbcc3c5657b15d7180c1edc798c1b2b66b27895d5d", + "check": "divide-before-multiply", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "onGasSpent", + "source_mapping": { + "start": 5994, + "length": 3002, + "filename_relative": "src/bridge/GasRefunder.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", + "filename_short": "src/bridge/GasRefunder.sol", + "is_dependency": false, + "lines": [ + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefunder", + "source_mapping": { + "start": 916, + "length": 8082, + "filename_relative": "src/bridge/GasRefunder.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", + "filename_short": "src/bridge/GasRefunder.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "onGasSpent(address,uint256,uint256)" + } + }, + { + "type": "node", + "name": "ownBalance == 0", + "source_mapping": { + "start": 6260, + "length": 15, + "filename_relative": "src/bridge/GasRefunder.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", + "filename_short": "src/bridge/GasRefunder.sol", + "is_dependency": false, + "lines": [183], + "starting_column": 13, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "onGasSpent", + "source_mapping": { + "start": 5994, + "length": 3002, + "filename_relative": "src/bridge/GasRefunder.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", + "filename_short": "src/bridge/GasRefunder.sol", + "is_dependency": false, + "lines": [ + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefunder", + "source_mapping": { + "start": 916, + "length": 8082, + "filename_relative": "src/bridge/GasRefunder.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/GasRefunder.sol", + "filename_short": "src/bridge/GasRefunder.sol", + "is_dependency": false, + "lines": [ + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "onGasSpent(address,uint256,uint256)" + } + } + } + } + ], + "description": "GasRefunder.onGasSpent(address,uint256,uint256) (src/bridge/GasRefunder.sol#174-256) uses a dangerous strict equality:\n\t- ownBalance == 0 (src/bridge/GasRefunder.sol#183)\n", + "markdown": "[GasRefunder.onGasSpent(address,uint256,uint256)](src/bridge/GasRefunder.sol#L174-L256) uses a dangerous strict equality:\n\t- [ownBalance == 0](src/bridge/GasRefunder.sol#L183)\n", + "first_markdown_element": "src/bridge/GasRefunder.sol#L174-L256", + "id": "7130559f3bef7fa36dc1a06a74ba5036fede4a8f9a9b7aa15356ff38ae92691a", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "getKeysetCreationBlock", + "source_mapping": { + "start": 30911, + "length": 262, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [800, 801, 802, 803, 804], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getKeysetCreationBlock(bytes32)" + } + }, + { + "type": "node", + "name": "ksInfo.creationBlock == 0", + "source_mapping": { + "start": 31066, + "length": 25, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [802], + "starting_column": 13, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getKeysetCreationBlock", + "source_mapping": { + "start": 30911, + "length": 262, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [800, 801, 802, 803, 804], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getKeysetCreationBlock(bytes32)" + } + } + } + } + ], + "description": "SequencerInbox.getKeysetCreationBlock(bytes32) (src/bridge/SequencerInbox.sol#800-804) uses a dangerous strict equality:\n\t- ksInfo.creationBlock == 0 (src/bridge/SequencerInbox.sol#802)\n", + "markdown": "[SequencerInbox.getKeysetCreationBlock(bytes32)](src/bridge/SequencerInbox.sol#L800-L804) uses a dangerous strict equality:\n\t- [ksInfo.creationBlock == 0](src/bridge/SequencerInbox.sol#L802)\n", + "first_markdown_element": "src/bridge/SequencerInbox.sol#L800-L804", + "id": "8d08f988c853ddc93c73c73c2ffb4eab98ae44f427249e22931a28dd9e0d9616", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)", + "source_mapping": { + "start": 21393, + "length": 193, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [582, 583, 584, 585, 586], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + } + } + ], + "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677) uses a dangerous strict equality:\n\t- require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH) (src/rollup/RollupCore.sol#582-586)\n", + "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677) uses a dangerous strict equality:\n\t- [require(bool,string)(RollupLib.stateHash(assertion.beforeState,prevNodeInboxMaxCount) == memoryFrame.prevNode.stateHash,PREV_STATE_HASH)](src/rollup/RollupCore.sol#L582-L586)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L563-L677", + "id": "d127dddc177369c36ad1c5bef7eb43c1a61fc683b55406bc72a59dc5596e864b", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)", + "source_mapping": { + "start": 23847, + "length": 144, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [635, 636, 637, 638], + "starting_column": 13, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + } + } + ], + "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32) (src/rollup/RollupCore.sol#563-677) uses a dangerous strict equality:\n\t- require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH) (src/rollup/RollupCore.sol#635-638)\n", + "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32)](src/rollup/RollupCore.sol#L563-L677) uses a dangerous strict equality:\n\t- [require(bool,string)(newNodeHash == expectedNodeHash || expectedNodeHash == bytes32(0),UNEXPECTED_NODE_HASH)](src/rollup/RollupCore.sol#L635-L638)\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L563-L677", + "id": "dfac2423a21baf2a37b1dd8b95efc0128475cfb15a4f40d0cc542e69ff413c79", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "_validatorIsAfk", + "source_mapping": { + "start": 1426, + "length": 349, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_validatorIsAfk()" + } + }, + { + "type": "node", + "name": "latestNode.createdAtBlock == 0", + "source_mapping": { + "start": 1566, + "length": 30, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 13, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_validatorIsAfk", + "source_mapping": { + "start": 1426, + "length": 349, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [47, 48, 49, 50, 51, 52, 53, 54], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_validatorIsAfk()" + } + } + } + } + ], + "description": "AbsRollupUserLogic._validatorIsAfk() (src/rollup/RollupUserLogic.sol#47-54) uses a dangerous strict equality:\n\t- latestNode.createdAtBlock == 0 (src/rollup/RollupUserLogic.sol#49)\n", + "markdown": "[AbsRollupUserLogic._validatorIsAfk()](src/rollup/RollupUserLogic.sol#L47-L54) uses a dangerous strict equality:\n\t- [latestNode.createdAtBlock == 0](src/rollup/RollupUserLogic.sol#L49)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L47-L54", + "id": "27da8dd2563854302dbb23b92013f4ff6bae23b8f09a7843b7bd073905bc04e7", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + }, + { + "type": "node", + "name": "multiplier == 0", + "source_mapping": { + "start": 21636, + "length": 15, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [519], + "starting_column": 13, + "ending_column": 28 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "currentRequiredStake", + "source_mapping": { + "start": 20210, + "length": 1527, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "currentRequiredStake(uint256,uint64,uint256)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256) (src/rollup/RollupUserLogic.sol#477-523) uses a dangerous strict equality:\n\t- multiplier == 0 (src/rollup/RollupUserLogic.sol#519)\n", + "markdown": "[AbsRollupUserLogic.currentRequiredStake(uint256,uint64,uint256)](src/rollup/RollupUserLogic.sol#L477-L523) uses a dangerous strict equality:\n\t- [multiplier == 0](src/rollup/RollupUserLogic.sol#L519)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L477-L523", + "id": "46c10604345612b1526f352cacc87cc039daedff5beba654f8f07a5fdc228a45", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 25419, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [616, 617, 618, 619], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + }, + { + "type": "node", + "name": "require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)", + "source_mapping": { + "start": 25556, + "length": 68, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [618], + "starting_column": 9, + "ending_column": 77 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "requireUnchallengedStaker", + "source_mapping": { + "start": 25419, + "length": 212, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [616, 617, 618, 619], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "requireUnchallengedStaker(address)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.requireUnchallengedStaker(address) (src/rollup/RollupUserLogic.sol#616-619) uses a dangerous strict equality:\n\t- require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL) (src/rollup/RollupUserLogic.sol#618)\n", + "markdown": "[AbsRollupUserLogic.requireUnchallengedStaker(address)](src/rollup/RollupUserLogic.sol#L616-L619) uses a dangerous strict equality:\n\t- [require(bool,string)(currentChallenge(stakerAddress) == NO_CHAL_INDEX,IN_CHAL)](src/rollup/RollupUserLogic.sol#L618)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L616-L619", + "id": "1e95eacfdcf4026b8e9c94f14922ed3f0a0ec1b366b7d354316a8dbcdb09add8", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 6908, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + }, + { + "type": "node", + "name": "require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)", + "source_mapping": { + "start": 7370, + "length": 72, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [189], + "starting_column": 9, + "ending_column": 81 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "stakeOnExistingNode", + "source_mapping": { + "start": 6908, + "length": 583, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "stakeOnExistingNode(uint64,bytes32)" + } + } + } + } + ], + "description": "AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32) (src/rollup/RollupUserLogic.sol#176-191) uses a dangerous strict equality:\n\t- require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV) (src/rollup/RollupUserLogic.sol#189)\n", + "markdown": "[AbsRollupUserLogic.stakeOnExistingNode(uint64,bytes32)](src/rollup/RollupUserLogic.sol#L176-L191) uses a dangerous strict equality:\n\t- [require(bool,string)(latestStakedNode(msg.sender) == node.prevNum,NOT_STAKED_PREV)](src/rollup/RollupUserLogic.sol#L189)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L176-L191", + "id": "4507b4ce50a7c39ed1ba1cdbee0a87e257d071a80d56ccf457734f2c8f166b64", + "check": "incorrect-equality", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "function", + "name": "addSequencerL2BatchImpl", + "source_mapping": { + "start": 26211, + "length": 1103, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)" + } + }, + { + "type": "node", + "name": "(seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount)", + "source_mapping": { + "start": 26792, + "length": 207, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [692, 693, 694, 695, 696, 697], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addSequencerL2BatchImpl", + "source_mapping": { + "start": 26211, + "length": 1103, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "totalDelayedMessagesRead = afterDelayedMessagesRead", + "source_mapping": { + "start": 27010, + "length": 51, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [699], + "starting_column": 9, + "ending_column": 60 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "addSequencerL2BatchImpl", + "source_mapping": { + "start": 26211, + "length": 1103, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "totalDelayedMessagesRead" + } + } + ], + "description": "Reentrancy in SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256) (src/bridge/SequencerInbox.sol#674-705):\n\tExternal calls:\n\t- (seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount) (src/bridge/SequencerInbox.sol#692-697)\n\tState variables written after the call(s):\n\t- totalDelayedMessagesRead = afterDelayedMessagesRead (src/bridge/SequencerInbox.sol#699)\n\tSequencerInbox.totalDelayedMessagesRead (src/bridge/SequencerInbox.sol#58) can be used in cross function reentrancies:\n\t- SequencerInbox.addSequencerL2Batch(uint256,bytes,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#468-519)\n\t- SequencerInbox.addSequencerL2BatchFromBlobs(uint256,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#407-466)\n\t- SequencerInbox.addSequencerL2BatchFromOrigin(uint256,bytes,uint256,IGasRefunder,uint256,uint256) (src/bridge/SequencerInbox.sol#355-405)\n\t- SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256) (src/bridge/SequencerInbox.sol#674-705)\n\t- SequencerInbox.forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32) (src/bridge/SequencerInbox.sol#284-343)\n\t- SequencerInbox.totalDelayedMessagesRead (src/bridge/SequencerInbox.sol#58)\n", + "markdown": "Reentrancy in [SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)](src/bridge/SequencerInbox.sol#L674-L705):\n\tExternal calls:\n\t- [(seqMessageIndex,beforeAcc,delayedAcc,acc) = bridge.enqueueSequencerMessage(dataHash,afterDelayedMessagesRead,prevMessageCount,newMessageCount)](src/bridge/SequencerInbox.sol#L692-L697)\n\tState variables written after the call(s):\n\t- [totalDelayedMessagesRead = afterDelayedMessagesRead](src/bridge/SequencerInbox.sol#L699)\n\t[SequencerInbox.totalDelayedMessagesRead](src/bridge/SequencerInbox.sol#L58) can be used in cross function reentrancies:\n\t- [SequencerInbox.addSequencerL2Batch(uint256,bytes,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L468-L519)\n\t- [SequencerInbox.addSequencerL2BatchFromBlobs(uint256,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L407-L466)\n\t- [SequencerInbox.addSequencerL2BatchFromOrigin(uint256,bytes,uint256,IGasRefunder,uint256,uint256)](src/bridge/SequencerInbox.sol#L355-L405)\n\t- [SequencerInbox.addSequencerL2BatchImpl(bytes32,uint256,uint256,uint256,uint256)](src/bridge/SequencerInbox.sol#L674-L705)\n\t- [SequencerInbox.forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)](src/bridge/SequencerInbox.sol#L284-L343)\n\t- [SequencerInbox.totalDelayedMessagesRead](src/bridge/SequencerInbox.sol#L58)\n", + "first_markdown_element": "src/bridge/SequencerInbox.sol#L674-L705", + "id": "b38d9bf0df554a08cf1b8bb6d468b87dd156690f340b399262fff373086c5825", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 12264, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + }, + { + "type": "node", + "name": "challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)", + "source_mapping": { + "start": 14807, + "length": 398, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [350, 351, 352, 353, 354, 355, 356, 357, 358, 359], + "starting_column": 9, + "ending_column": 10 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 12264, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)", + "source_mapping": { + "start": 15749, + "length": 317, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385], + "starting_column": 9, + "ending_column": 14 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallengeHelper", + "source_mapping": { + "start": 15401, + "length": 672, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallengeHelper(address[2],MachineStatus[2],GlobalState[2],uint64,bytes32[2],uint256,uint256)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "challengeStarted(stakers[0],stakers[1],challengeIndex)", + "source_mapping": { + "start": 15241, + "length": 56, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [361], + "starting_column": 9, + "ending_column": 65 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createChallenge", + "source_mapping": { + "start": 12264, + "length": 3131, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsRollupUserLogic", + "source_mapping": { + "start": 501, + "length": 25132, + "filename_relative": "src/rollup/RollupUserLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupUserLogic.sol", + "filename_short": "src/rollup/RollupUserLogic.sol", + "is_dependency": false, + "lines": [ + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker1].currentChallenge = challenge", + "source_mapping": { + "start": 13576, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [383], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13449, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [378, 379, 380, 381, 382, 383, 384, 385], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "_stakerMap[staker2].currentChallenge = challenge", + "source_mapping": { + "start": 13634, + "length": 48, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [384], + "starting_column": 9, + "ending_column": 57 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "challengeStarted", + "source_mapping": { + "start": 13449, + "length": 240, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [378, 379, 380, 381, 382, 383, 384, 385], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "challengeStarted(address,address,uint64)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2]) (src/rollup/RollupUserLogic.sol#291-364):\n\tExternal calls:\n\t- challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME) (src/rollup/RollupUserLogic.sol#350-359)\n\t\t- challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft) (src/rollup/RollupUserLogic.sol#375-385)\n\tState variables written after the call(s):\n\t- challengeStarted(stakers[0],stakers[1],challengeIndex) (src/rollup/RollupUserLogic.sol#361)\n\t\t- _stakerMap[staker1].currentChallenge = challenge (src/rollup/RollupCore.sol#383)\n\t\t- _stakerMap[staker2].currentChallenge = challenge (src/rollup/RollupCore.sol#384)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.challengeStarted(address,address,uint64) (src/rollup/RollupCore.sol#378-385)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.increaseStakeBy(address,uint256) (src/rollup/RollupCore.sol#392-398)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.stakeOnNode(address,uint64) (src/rollup/RollupCore.sol#507-511)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n\t- RollupCore.withdrawStaker(address) (src/rollup/RollupCore.sol#488-500)\n", + "markdown": "Reentrancy in [AbsRollupUserLogic.createChallenge(address[2],uint64[2],MachineStatus[2],GlobalState[2],uint64,bytes32,uint256[2],bytes32[2])](src/rollup/RollupUserLogic.sol#L291-L364):\n\tExternal calls:\n\t- [challengeIndex = createChallengeHelper(stakers,machineStatuses,globalStates,numBlocks,wasmModuleRoots,(commonEndBlock - proposedBlocks[0]) * ETH_POS_BLOCK_TIME,(commonEndBlock - proposedBlocks[1]) * ETH_POS_BLOCK_TIME)](src/rollup/RollupUserLogic.sol#L350-L359)\n\t\t- [challengeManager.createChallenge(wasmModuleRoots[0],machineStatuses,globalStates,numBlocks,stakers[0],stakers[1],asserterTimeLeft,challengerTimeLeft)](src/rollup/RollupUserLogic.sol#L375-L385)\n\tState variables written after the call(s):\n\t- [challengeStarted(stakers[0],stakers[1],challengeIndex)](src/rollup/RollupUserLogic.sol#L361)\n\t\t- [_stakerMap[staker1].currentChallenge = challenge](src/rollup/RollupCore.sol#L383)\n\t\t- [_stakerMap[staker2].currentChallenge = challenge](src/rollup/RollupCore.sol#L384)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.challengeStarted(address,address,uint64)](src/rollup/RollupCore.sol#L378-L385)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.increaseStakeBy(address,uint256)](src/rollup/RollupCore.sol#L392-L398)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.stakeOnNode(address,uint64)](src/rollup/RollupCore.sol#L507-L511)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n\t- [RollupCore.withdrawStaker(address)](src/rollup/RollupCore.sol#L488-L500)\n", + "first_markdown_element": "src/rollup/RollupUserLogic.sol#L291-L364", + "id": "af65892a907a109b6f58d5895c29425a5794647abc20793593b6461989e07fb6", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 990, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 11504, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + }, + { + "type": "node", + "name": "executeBridgeCall(to,value,data)", + "source_mapping": { + "start": 8253, + "length": 34, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [222], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 990, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 11504, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "(success,returndata) = bridge.executeCall(to,value,data)", + "source_mapping": { + "start": 9954, + "length": 77, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [275], + "starting_column": 9, + "ending_column": 86 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeBridgeCall", + "source_mapping": { + "start": 9832, + "length": 594, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 11504, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeBridgeCall(address,uint256,bytes)" + } + } + }, + "additional_fields": { "underlying_type": "external_calls_sending_eth" } + }, + { + "type": "node", + "name": "context = prevContext", + "source_mapping": { + "start": 8298, + "length": 21, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [224], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeTransactionImpl", + "source_mapping": { + "start": 7336, + "length": 990, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsOutbox", + "source_mapping": { + "start": 698, + "length": 11504, + "filename_relative": "src/bridge/AbsOutbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsOutbox.sol", + "filename_short": "src/bridge/AbsOutbox.sol", + "is_dependency": false, + "lines": [ + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "context" + } + } + ], + "description": "Reentrancy in AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-225):\n\tExternal calls:\n\t- executeBridgeCall(to,value,data) (src/bridge/AbsOutbox.sol#222)\n\t\t- (success,returndata) = bridge.executeCall(to,value,data) (src/bridge/AbsOutbox.sol#275)\n\tState variables written after the call(s):\n\t- context = prevContext (src/bridge/AbsOutbox.sol#224)\n\tAbsOutbox.context (src/bridge/AbsOutbox.sol#51) can be used in cross function reentrancies:\n\t- AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes) (src/bridge/AbsOutbox.sol#196-225)\n\t- AbsOutbox.initialize(IBridge) (src/bridge/AbsOutbox.sol#63-79)\n\t- AbsOutbox.l2ToL1Block() (src/bridge/AbsOutbox.sol#118-123)\n\t- AbsOutbox.l2ToL1EthBlock() (src/bridge/AbsOutbox.sol#126-131)\n\t- AbsOutbox.l2ToL1OutputId() (src/bridge/AbsOutbox.sol#147-152)\n\t- AbsOutbox.l2ToL1Sender() (src/bridge/AbsOutbox.sol#110-115)\n\t- AbsOutbox.l2ToL1Timestamp() (src/bridge/AbsOutbox.sol#134-139)\n\t- AbsOutbox.postUpgradeInit() (src/bridge/AbsOutbox.sol#81-92)\n", + "markdown": "Reentrancy in [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L225):\n\tExternal calls:\n\t- [executeBridgeCall(to,value,data)](src/bridge/AbsOutbox.sol#L222)\n\t\t- [(success,returndata) = bridge.executeCall(to,value,data)](src/bridge/AbsOutbox.sol#L275)\n\tState variables written after the call(s):\n\t- [context = prevContext](src/bridge/AbsOutbox.sol#L224)\n\t[AbsOutbox.context](src/bridge/AbsOutbox.sol#L51) can be used in cross function reentrancies:\n\t- [AbsOutbox.executeTransactionImpl(uint256,address,address,uint256,uint256,uint256,uint256,bytes)](src/bridge/AbsOutbox.sol#L196-L225)\n\t- [AbsOutbox.initialize(IBridge)](src/bridge/AbsOutbox.sol#L63-L79)\n\t- [AbsOutbox.l2ToL1Block()](src/bridge/AbsOutbox.sol#L118-L123)\n\t- [AbsOutbox.l2ToL1EthBlock()](src/bridge/AbsOutbox.sol#L126-L131)\n\t- [AbsOutbox.l2ToL1OutputId()](src/bridge/AbsOutbox.sol#L147-L152)\n\t- [AbsOutbox.l2ToL1Sender()](src/bridge/AbsOutbox.sol#L110-L115)\n\t- [AbsOutbox.l2ToL1Timestamp()](src/bridge/AbsOutbox.sol#L134-L139)\n\t- [AbsOutbox.postUpgradeInit()](src/bridge/AbsOutbox.sol#L81-L92)\n", + "first_markdown_element": "src/bridge/AbsOutbox.sol#L196-L225", + "id": "426e61b097c321e642232d0d55da1f37bdf8bba9a4d0f425a61dc187192ef9ed", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 14555, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + }, + { + "type": "node", + "name": "challengeManager.clearChallenge(chall)", + "source_mapping": { + "start": 10950, + "length": 38, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [271], + "starting_column": 13, + "ending_column": 51 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 14555, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { "underlying_type": "external_calls" } + }, + { + "type": "node", + "name": "clearChallenge(stakerA[i])", + "source_mapping": { + "start": 10870, + "length": 26, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [269], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 14555, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "staker.currentChallenge = NO_CHAL_INDEX", + "source_mapping": { + "start": 13136, + "length": 39, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [369], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "clearChallenge", + "source_mapping": { + "start": 13011, + "length": 171, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [367, 368, 369, 370], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "clearChallenge(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "clearChallenge(stakerB[i])", + "source_mapping": { + "start": 10910, + "length": 26, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [270], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "forceResolveChallenge", + "source_mapping": { + "start": 10412, + "length": 631, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 14555, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "forceResolveChallenge(address[],address[])" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + }, + { + "type": "node", + "name": "staker.currentChallenge = NO_CHAL_INDEX", + "source_mapping": { + "start": 13136, + "length": 39, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [369], + "starting_column": 9, + "ending_column": 48 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "clearChallenge", + "source_mapping": { + "start": 13011, + "length": 171, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [367, 368, 369, 370], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "clearChallenge(address)" + } + } + }, + "additional_fields": { + "underlying_type": "variables_written", + "variable_name": "_stakerMap" + } + } + ], + "description": "Reentrancy in RollupAdminLogic.forceResolveChallenge(address[],address[]) (src/rollup/RollupAdminLogic.sol#258-274):\n\tExternal calls:\n\t- challengeManager.clearChallenge(chall) (src/rollup/RollupAdminLogic.sol#271)\n\tState variables written after the call(s):\n\t- clearChallenge(stakerA[i]) (src/rollup/RollupAdminLogic.sol#269)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#369)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n\t- clearChallenge(stakerB[i]) (src/rollup/RollupAdminLogic.sol#270)\n\t\t- staker.currentChallenge = NO_CHAL_INDEX (src/rollup/RollupCore.sol#369)\n\tRollupCore._stakerMap (src/rollup/RollupCore.sol#68) can be used in cross function reentrancies:\n\t- RollupCore._stakerMap (src/rollup/RollupCore.sol#68)\n\t- RollupCore.amountStaked(address) (src/rollup/RollupCore.sol#185-187)\n\t- RollupCore.clearChallenge(address) (src/rollup/RollupCore.sol#367-370)\n\t- RollupCore.currentChallenge(address) (src/rollup/RollupCore.sol#176-178)\n\t- RollupCore.deleteStaker(address) (src/rollup/RollupCore.sol#542-550)\n\t- RollupAdminLogic.forceRefundStaker(address[]) (src/rollup/RollupAdminLogic.sol#276-284)\n\t- RollupCore.getStaker(address) (src/rollup/RollupCore.sol#194-196)\n\t- RollupCore.inChallenge(address,address) (src/rollup/RollupCore.sol#350-361)\n\t- RollupCore.isStaked(address) (src/rollup/RollupCore.sol#148-150)\n\t- RollupCore.isStakedOnLatestConfirmed(address) (src/rollup/RollupCore.sol#158-160)\n\t- RollupCore.latestStakedNode(address) (src/rollup/RollupCore.sol#167-169)\n\t- RollupCore.reduceStakeTo(address,uint256) (src/rollup/RollupCore.sol#406-415)\n\t- RollupCore.turnIntoZombie(address) (src/rollup/RollupCore.sol#421-425)\n", + "markdown": "Reentrancy in [RollupAdminLogic.forceResolveChallenge(address[],address[])](src/rollup/RollupAdminLogic.sol#L258-L274):\n\tExternal calls:\n\t- [challengeManager.clearChallenge(chall)](src/rollup/RollupAdminLogic.sol#L271)\n\tState variables written after the call(s):\n\t- [clearChallenge(stakerA[i])](src/rollup/RollupAdminLogic.sol#L269)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L369)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n\t- [clearChallenge(stakerB[i])](src/rollup/RollupAdminLogic.sol#L270)\n\t\t- [staker.currentChallenge = NO_CHAL_INDEX](src/rollup/RollupCore.sol#L369)\n\t[RollupCore._stakerMap](src/rollup/RollupCore.sol#L68) can be used in cross function reentrancies:\n\t- [RollupCore._stakerMap](src/rollup/RollupCore.sol#L68)\n\t- [RollupCore.amountStaked(address)](src/rollup/RollupCore.sol#L185-L187)\n\t- [RollupCore.clearChallenge(address)](src/rollup/RollupCore.sol#L367-L370)\n\t- [RollupCore.currentChallenge(address)](src/rollup/RollupCore.sol#L176-L178)\n\t- [RollupCore.deleteStaker(address)](src/rollup/RollupCore.sol#L542-L550)\n\t- [RollupAdminLogic.forceRefundStaker(address[])](src/rollup/RollupAdminLogic.sol#L276-L284)\n\t- [RollupCore.getStaker(address)](src/rollup/RollupCore.sol#L194-L196)\n\t- [RollupCore.inChallenge(address,address)](src/rollup/RollupCore.sol#L350-L361)\n\t- [RollupCore.isStaked(address)](src/rollup/RollupCore.sol#L148-L150)\n\t- [RollupCore.isStakedOnLatestConfirmed(address)](src/rollup/RollupCore.sol#L158-L160)\n\t- [RollupCore.latestStakedNode(address)](src/rollup/RollupCore.sol#L167-L169)\n\t- [RollupCore.reduceStakeTo(address,uint256)](src/rollup/RollupCore.sol#L406-L415)\n\t- [RollupCore.turnIntoZombie(address)](src/rollup/RollupCore.sol#L421-L425)\n", + "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L258-L274", + "id": "2e21893be44131693ea2dfb272622853fa44deea082e4c78e0bbd132c84af93e", + "check": "reentrancy-no-eth", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "u64Vals", + "source_mapping": { + "start": 6924, + "length": 24, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [226], + "starting_column": 9, + "ending_column": 33 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "globalState", + "source_mapping": { + "start": 6617, + "length": 684, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Deserialize", + "source_mapping": { + "start": 450, + "length": 9161, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "globalState(bytes,uint256)" + } + } + } + } + ], + "description": "Deserialize.globalState(bytes,uint256).u64Vals (src/state/Deserialize.sol#226) is a local variable never initialized\n", + "markdown": "[Deserialize.globalState(bytes,uint256).u64Vals](src/state/Deserialize.sol#L226) is a local variable never initialized\n", + "first_markdown_element": "src/state/Deserialize.sol#L226", + "id": "b49e20832cf227724d4b048fc859ce00efa36bda00bb2d354df6861b1e5b65c8", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "funcIdx", + "source_mapping": { + "start": 6151, + "length": 14, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [194], + "starting_column": 9, + "ending_column": 23 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 5971, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).funcIdx (src/osp/OneStepProver0.sol#194) is a local variable never initialized\n", + "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).funcIdx](src/osp/OneStepProver0.sol#L194) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L194", + "id": "0b3ea27e34dd552b3d33e544c7732699f56da1be9d675526040264c6f35cf115", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "sourceBits", + "source_mapping": { + "start": 12021, + "length": 16, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [400], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeExtendSameType", + "source_mapping": { + "start": 11827, + "length": 1476, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMath", + "source_mapping": { + "start": 362, + "length": 16325, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeExtendSameType(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).sourceBits (src/osp/OneStepProverMath.sol#400) is a local variable never initialized\n", + "markdown": "[OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).sourceBits](src/osp/OneStepProverMath.sol#L400) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMath.sol#L400", + "id": "7e6b4db4655b21a377a13a4c03fdcc62f8c4e56c5ecdf979c82afb0985a1fac5", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "part", + "source_mapping": { + "start": 1123, + "length": 17, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [38], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "proveWithFullPreimage", + "source_mapping": { + "start": 954, + "length": 572, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [ + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "HashProofHelper", + "source_mapping": { + "start": 388, + "length": 5264, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "proveWithFullPreimage(bytes,uint64)" + } + } + } + } + ], + "description": "HashProofHelper.proveWithFullPreimage(bytes,uint64).part (src/osp/HashProofHelper.sol#38) is a local variable never initialized\n", + "markdown": "[HashProofHelper.proveWithFullPreimage(bytes,uint64).part](src/osp/HashProofHelper.sol#L38) is a local variable never initialized\n", + "first_markdown_element": "src/osp/HashProofHelper.sol#L38", + "id": "9f6b190b96895f4cfb0f3db956545a55f4132aa16c8af057e7257d7fd2c5de43", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "ty", + "source_mapping": { + "start": 1685, + "length": 12, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMemory.sol#49) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMemory.sol#L49) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L49", + "id": "d44b109a885f9f18431fcbd810bf7f45b9f86b4749430739056c0786ab2d150e", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "impl", + "source_mapping": { + "start": 11151, + "length": 120, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [296, 297, 298], + "starting_column": 9, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeOneStep", + "source_mapping": { + "start": 10780, + "length": 1055, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverMemory.sol#296-298) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverMemory.sol#L296-L298) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L296-L298", + "id": "c0081c68be4899b530be0e0720e9713a3d42b71364ad4392c42fd165ec162d1e", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "beforeAcc", + "source_mapping": { + "start": 11222, + "length": 17, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [278], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateDelayedInbox", + "source_mapping": { + "start": 10970, + "length": 916, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes).beforeAcc (src/osp/OneStepProverHostIo.sol#278) is a local variable never initialized\n", + "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes).beforeAcc](src/osp/OneStepProverHostIo.sol#L278) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L278", + "id": "dab8df6b27e88ad0e415842d20e13cd455e0d5f0c84fa74d2906eefd6d1e06f0", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "impl", + "source_mapping": { + "start": 14734, + "length": 120, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [477, 478, 479], + "starting_column": 9, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeOneStep", + "source_mapping": { + "start": 14363, + "length": 2322, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMath", + "source_mapping": { + "start": 362, + "length": 16325, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMath.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverMath.sol#477-479) is a local variable never initialized\n", + "markdown": "[OneStepProverMath.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverMath.sol#L477-L479) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMath.sol#L477-L479", + "id": "7bb129f3bd93db0e9c1579c8ab353fe86d0d54b40d421f4a568ab9279ce8b6cb", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "internalStack", + "source_mapping": { + "start": 1959, + "length": 31, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [63], + "starting_column": 9, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getStartMachineHash", + "source_mapping": { + "start": 1364, + "length": 1078, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 4325, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getStartMachineHash(bytes32,bytes32)" + } + } + } + } + ], + "description": "ChallengeLib.getStartMachineHash(bytes32,bytes32).internalStack (src/challenge/ChallengeLib.sol#63) is a local variable never initialized\n", + "markdown": "[ChallengeLib.getStartMachineHash(bytes32,bytes32).internalStack](src/challenge/ChallengeLib.sol#L63) is a local variable never initialized\n", + "first_markdown_element": "src/challenge/ChallengeLib.sol#L63", + "id": "2b6e1af0735464f525ca02dac16210c75f5e60fdd4f5020e646e82eccdf94e2a", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "frameStack", + "source_mapping": { + "start": 2000, + "length": 34, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [64], + "starting_column": 9, + "ending_column": 43 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getStartMachineHash", + "source_mapping": { + "start": 1364, + "length": 1078, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ChallengeLib", + "source_mapping": { + "start": 272, + "length": 4325, + "filename_relative": "src/challenge/ChallengeLib.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/challenge/ChallengeLib.sol", + "filename_short": "src/challenge/ChallengeLib.sol", + "is_dependency": false, + "lines": [ + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getStartMachineHash(bytes32,bytes32)" + } + } + } + } + ], + "description": "ChallengeLib.getStartMachineHash(bytes32,bytes32).frameStack (src/challenge/ChallengeLib.sol#64) is a local variable never initialized\n", + "markdown": "[ChallengeLib.getStartMachineHash(bytes32,bytes32).frameStack](src/challenge/ChallengeLib.sol#L64) is a local variable never initialized\n", + "first_markdown_element": "src/challenge/ChallengeLib.sol#L64", + "id": "e2c13e88a674b7d15f66c38811493b28e3d768158293153c3761365faf8e45c7", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "signed", + "source_mapping": { + "start": 1734, + "length": 11, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [51], + "starting_column": 9, + "ending_column": 20 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).signed (src/osp/OneStepProverMemory.sol#51) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).signed](src/osp/OneStepProverMemory.sol#L51) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L51", + "id": "494ad26e42522ed318b7143deadf6e22863a94ac35e1bc7e431f680c09e99249", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "extracted", + "source_mapping": { + "start": 5123, + "length": 22, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [147], + "starting_column": 9, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReadPreImage", + "source_mapping": { + "start": 4302, + "length": 5772, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes).extracted (src/osp/OneStepProverHostIo.sol#147) is a local variable never initialized\n", + "markdown": "[OneStepProverHostIo.executeReadPreImage(ExecutionContext,Machine,Module,Instruction,bytes).extracted](src/osp/OneStepProverHostIo.sol#L147) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L147", + "id": "b8f149ef07d9b5bf6a4fd2772d951ef00e1136d5728509097c74a6d35fb7419a", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "delayedAcc", + "source_mapping": { + "start": 10502, + "length": 18, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [258], + "starting_column": 9, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10080, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).delayedAcc (src/osp/OneStepProverHostIo.sol#258) is a local variable never initialized\n", + "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).delayedAcc](src/osp/OneStepProverHostIo.sol#L258) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L258", + "id": "a4af275d7732b756f493da186504395ee7b6705d359094ed504be4cb2382a71f", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "state256", + "source_mapping": { + "start": 4683, + "length": 27, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [127], + "starting_column": 13, + "ending_column": 40 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "keccakUpdate", + "source_mapping": { + "start": 3663, + "length": 1486, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [ + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "HashProofHelper", + "source_mapping": { + "start": 388, + "length": 5264, + "filename_relative": "src/osp/HashProofHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/HashProofHelper.sol", + "filename_short": "src/osp/HashProofHelper.sol", + "is_dependency": false, + "lines": [ + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "keccakUpdate(HashProofHelper.KeccakState,bytes,bool)" + } + } + } + } + ], + "description": "HashProofHelper.keccakUpdate(HashProofHelper.KeccakState,bytes,bool).state256 (src/osp/HashProofHelper.sol#127) is a local variable never initialized\n", + "markdown": "[HashProofHelper.keccakUpdate(HashProofHelper.KeccakState,bytes,bool).state256](src/osp/HashProofHelper.sol#L127) is a local variable never initialized\n", + "first_markdown_element": "src/osp/HashProofHelper.sol#L127", + "id": "b10eafcd668276e8f081740d67fa003ef0534d1520e371c18e96833214fc3ff2", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "beforeAcc", + "source_mapping": { + "start": 10475, + "length": 17, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [257], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10080, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).beforeAcc (src/osp/OneStepProverHostIo.sol#257) is a local variable never initialized\n", + "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes).beforeAcc](src/osp/OneStepProverHostIo.sol#L257) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L257", + "id": "93458ecce4030168b57a5b4b9bddf11e556bda0b87b21572901703776f8a4a4d", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "memoryFrame", + "source_mapping": { + "start": 21082, + "length": 38, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [575], + "starting_column": 9, + "ending_column": 47 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNewNode", + "source_mapping": { + "start": 20652, + "length": 4618, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCore", + "source_mapping": { + "start": 685, + "length": 24587, + "filename_relative": "src/rollup/RollupCore.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCore.sol", + "filename_short": "src/rollup/RollupCore.sol", + "is_dependency": false, + "lines": [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNewNode(Assertion,uint64,uint256,bytes32)" + } + } + } + } + ], + "description": "RollupCore.createNewNode(Assertion,uint64,uint256,bytes32).memoryFrame (src/rollup/RollupCore.sol#575) is a local variable never initialized\n", + "markdown": "[RollupCore.createNewNode(Assertion,uint64,uint256,bytes32).memoryFrame](src/rollup/RollupCore.sol#L575) is a local variable never initialized\n", + "first_markdown_element": "src/rollup/RollupCore.sol#L575", + "id": "22d3572f5fd9e44b1a0e455ebf3a57c571e31a392c713a5313ed78cdb5bdd79d", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "bounds", + "source_mapping": { + "start": 7906, + "length": 32, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [214], + "starting_column": 9, + "ending_column": 41 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "getTimeBounds", + "source_mapping": { + "start": 7813, + "length": 740, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "SequencerInbox", + "source_mapping": { + "start": 1909, + "length": 29266, + "filename_relative": "src/bridge/SequencerInbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/SequencerInbox.sol", + "filename_short": "src/bridge/SequencerInbox.sol", + "is_dependency": false, + "lines": [ + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "getTimeBounds()" + } + } + } + } + ], + "description": "SequencerInbox.getTimeBounds().bounds (src/bridge/SequencerInbox.sol#214) is a local variable never initialized\n", + "markdown": "[SequencerInbox.getTimeBounds().bounds](src/bridge/SequencerInbox.sol#L214) is a local variable never initialized\n", + "first_markdown_element": "src/bridge/SequencerInbox.sol#L214", + "id": "a9ab2d44723c17809429f069881bb97a07e53966e1c848cc3083baebb7d26ceb", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "ty", + "source_mapping": { + "start": 6351, + "length": 12, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [171], + "starting_column": 13, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryStore", + "source_mapping": { + "start": 6107, + "length": 3663, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMemory.sol#171) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMemory.sol#L171) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L171", + "id": "565f5e19fbe1a69065e4ef47ec789739a56008570ac09324d5995e298652f2be", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "ty", + "source_mapping": { + "start": 1158, + "length": 12, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [44], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeConstPush", + "source_mapping": { + "start": 954, + "length": 732, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeConstPush(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeConstPush(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProver0.sol#44) is a local variable never initialized\n", + "markdown": "[OneStepProver0.executeConstPush(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProver0.sol#L44) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L44", + "id": "f3a4bd8740f9565ecd548a3027588ef6a9ab1fab50a47ee9989dff0a450c0d81", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "emptyGlobalState", + "source_mapping": { + "start": 3120, + "length": 35, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [78], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createInitialNode", + "source_mapping": { + "start": 3046, + "length": 662, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupAdminLogic", + "source_mapping": { + "start": 590, + "length": 14555, + "filename_relative": "src/rollup/RollupAdminLogic.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupAdminLogic.sol", + "filename_short": "src/rollup/RollupAdminLogic.sol", + "is_dependency": false, + "lines": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createInitialNode()" + } + } + } + } + ], + "description": "RollupAdminLogic.createInitialNode().emptyGlobalState (src/rollup/RollupAdminLogic.sol#78) is a local variable never initialized\n", + "markdown": "[RollupAdminLogic.createInitialNode().emptyGlobalState](src/rollup/RollupAdminLogic.sol#L78) is a local variable never initialized\n", + "first_markdown_element": "src/rollup/RollupAdminLogic.sol#L78", + "id": "b104a1c9b21db741f0eff33cad88bcd28b01251cf7cb2ac69372f55f19cc56b2", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "lastProvedLeafContents", + "source_mapping": { + "start": 4304, + "length": 30, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [121], + "starting_column": 9, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).lastProvedLeafContents (src/osp/OneStepProverMemory.sol#121) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).lastProvedLeafContents](src/osp/OneStepProverMemory.sol#L121) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L121", + "id": "162cb33b9534bc21104309b21e51a798ebe240718727aed3b174e3802daec4c1", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "bytes32Vals", + "source_mapping": { + "start": 6885, + "length": 29, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [225], + "starting_column": 9, + "ending_column": 38 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "globalState", + "source_mapping": { + "start": 6617, + "length": 684, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Deserialize", + "source_mapping": { + "start": 450, + "length": 9161, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "globalState(bytes,uint256)" + } + } + } + } + ], + "description": "Deserialize.globalState(bytes,uint256).bytes32Vals (src/state/Deserialize.sol#225) is a local variable never initialized\n", + "markdown": "[Deserialize.globalState(bytes,uint256).bytes32Vals](src/state/Deserialize.sol#L225) is a local variable never initialized\n", + "first_markdown_element": "src/state/Deserialize.sol#L225", + "id": "347c23c28d92854b0181184cb13878043e27048bb6b0d14e6f9f24d733477f80", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "status", + "source_mapping": { + "start": 7495, + "length": 20, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [243], + "starting_column": 9, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "machine", + "source_mapping": { + "start": 7307, + "length": 1811, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "Deserialize", + "source_mapping": { + "start": 450, + "length": 9161, + "filename_relative": "src/state/Deserialize.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/state/Deserialize.sol", + "filename_short": "src/state/Deserialize.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "machine(bytes,uint256)" + } + } + } + } + ], + "description": "Deserialize.machine(bytes,uint256).status (src/state/Deserialize.sol#243) is a local variable never initialized\n", + "markdown": "[Deserialize.machine(bytes,uint256).status](src/state/Deserialize.sol#L243) is a local variable never initialized\n", + "first_markdown_element": "src/state/Deserialize.sol#L243", + "id": "b0bb66b3aaa5e859564fcf69ddd9c518a2dff55461b2e23469e57954ece88023", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "sourceTy", + "source_mapping": { + "start": 13504, + "length": 18, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [443], + "starting_column": 9, + "ending_column": 27 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReinterpret", + "source_mapping": { + "start": 13309, + "length": 1048, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMath", + "source_mapping": { + "start": 362, + "length": 16325, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReinterpret(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).sourceTy (src/osp/OneStepProverMath.sol#443) is a local variable never initialized\n", + "markdown": "[OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).sourceTy](src/osp/OneStepProverMath.sol#L443) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMath.sol#L443", + "id": "19cc2967641f968047d8174e2ba3152038af798b63c42b1bb55dd59287a923a7", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "writeBytes", + "source_mapping": { + "start": 6286, + "length": 17, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [168], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryStore", + "source_mapping": { + "start": 6107, + "length": 3663, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).writeBytes (src/osp/OneStepProverMemory.sol#168) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).writeBytes](src/osp/OneStepProverMemory.sol#L168) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L168", + "id": "f573681c354f3fdccf310c43fad70c2f0994cf3b3de20432e01071bd6a3981de", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "destTy", + "source_mapping": { + "start": 13478, + "length": 16, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [442], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeReinterpret", + "source_mapping": { + "start": 13309, + "length": 1048, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMath", + "source_mapping": { + "start": 362, + "length": 16325, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeReinterpret(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).destTy (src/osp/OneStepProverMath.sol#442) is a local variable never initialized\n", + "markdown": "[OneStepProverMath.executeReinterpret(Machine,Module,Instruction,bytes).destTy](src/osp/OneStepProverMath.sol#L442) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMath.sol#L442", + "id": "0c40a87502e42085a3fc0a61f202e687aed2386c6fe161376f0f0b2f16a4c9c5", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "ty", + "source_mapping": { + "start": 11999, + "length": 12, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [399], + "starting_column": 9, + "ending_column": 21 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeExtendSameType", + "source_mapping": { + "start": 11827, + "length": 1476, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMath", + "source_mapping": { + "start": 362, + "length": 16325, + "filename_relative": "src/osp/OneStepProverMath.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMath.sol", + "filename_short": "src/osp/OneStepProverMath.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeExtendSameType(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).ty (src/osp/OneStepProverMath.sol#399) is a local variable never initialized\n", + "markdown": "[OneStepProverMath.executeExtendSameType(Machine,Module,Instruction,bytes).ty](src/osp/OneStepProverMath.sol#L399) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMath.sol#L399", + "id": "d5801e7c2f23eb0d6bc004590ab2e75879037d149be714c34ab3b066e1c4b819", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "readBytes", + "source_mapping": { + "start": 1707, + "length": 17, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [50], + "starting_column": 9, + "ending_column": 26 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).readBytes (src/osp/OneStepProverMemory.sol#50) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes).readBytes](src/osp/OneStepProverMemory.sol#L50) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L50", + "id": "09c1e38d961440cc644e890e7e165ecd2073dd96901441ae9b2b9c939257cc6f", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "frame", + "source_mapping": { + "start": 1824, + "length": 28, + "filename_relative": "src/rollup/BridgeCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", + "filename_short": "src/rollup/BridgeCreator.sol", + "is_dependency": false, + "lines": [58], + "starting_column": 9, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_createBridge", + "source_mapping": { + "start": 1674, + "length": 1017, + "filename_relative": "src/rollup/BridgeCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", + "filename_short": "src/rollup/BridgeCreator.sol", + "is_dependency": false, + "lines": [ + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "BridgeCreator", + "source_mapping": { + "start": 676, + "length": 3074, + "filename_relative": "src/rollup/BridgeCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/BridgeCreator.sol", + "filename_short": "src/rollup/BridgeCreator.sol", + "is_dependency": false, + "lines": [ + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_createBridge(address,BridgeCreator.BridgeContracts)" + } + } + } + } + ], + "description": "BridgeCreator._createBridge(address,BridgeCreator.BridgeContracts).frame (src/rollup/BridgeCreator.sol#58) is a local variable never initialized\n", + "markdown": "[BridgeCreator._createBridge(address,BridgeCreator.BridgeContracts).frame](src/rollup/BridgeCreator.sol#L58) is a local variable never initialized\n", + "first_markdown_element": "src/rollup/BridgeCreator.sol#L58", + "id": "4c4998aea345771ab95ff74b35dc261d24cfbcc254dff7368e71dcded4e6b088", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "impl", + "source_mapping": { + "start": 14921, + "length": 120, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [444, 445, 446], + "starting_column": 9, + "ending_column": 22 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeOneStep", + "source_mapping": { + "start": 14550, + "length": 2514, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProver0.sol#444-446) is a local variable never initialized\n", + "markdown": "[OneStepProver0.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProver0.sol#L444-L446) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L444-L446", + "id": "bf9df19313618417269a105ecd5b4cf0c22530264701877ed554d77b7886b033", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "impl", + "source_mapping": { + "start": 16165, + "length": 193, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [425, 426, 427, 428, 429, 430, 431], + "starting_column": 9, + "ending_column": 29 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeOneStep", + "source_mapping": { + "start": 15786, + "length": 1210, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl (src/osp/OneStepProverHostIo.sol#425-431) is a local variable never initialized\n", + "markdown": "[OneStepProverHostIo.executeOneStep(ExecutionContext,Machine,Module,Instruction,bytes).impl](src/osp/OneStepProverHostIo.sol#L425-L431) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L425-L431", + "id": "fd4baa84dfad7402f9c850b2abb8c959fa89f0a0f27d7a4d985504eafa596460", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "node", + "source_mapping": { + "start": 2394, + "length": 16, + "filename_relative": "src/rollup/Node.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", + "filename_short": "src/rollup/Node.sol", + "is_dependency": false, + "lines": [69], + "starting_column": 9, + "ending_column": 25 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createNode", + "source_mapping": { + "start": 2149, + "length": 636, + "filename_relative": "src/rollup/Node.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", + "filename_short": "src/rollup/Node.sol", + "is_dependency": false, + "lines": [ + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "NodeLib", + "source_mapping": { + "start": 1752, + "length": 2186, + "filename_relative": "src/rollup/Node.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/Node.sol", + "filename_short": "src/rollup/Node.sol", + "is_dependency": false, + "lines": [ + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32)" + } + } + } + } + ], + "description": "NodeLib.createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32).node (src/rollup/Node.sol#69) is a local variable never initialized\n", + "markdown": "[NodeLib.createNode(bytes32,bytes32,bytes32,uint64,uint64,bytes32).node](src/rollup/Node.sol#L69) is a local variable never initialized\n", + "first_markdown_element": "src/rollup/Node.sol#L69", + "id": "2fbc6226a17bd364563caa94e1c97858f74f9cd682e6c1096bb46cf3ce114daf", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "lastProvedMerkle", + "source_mapping": { + "start": 8359, + "length": 35, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [220], + "starting_column": 9, + "ending_column": 44 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryStore", + "source_mapping": { + "start": 6107, + "length": 3663, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryStore(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedMerkle (src/osp/OneStepProverMemory.sol#220) is a local variable never initialized\n", + "markdown": "[OneStepProverMemory.executeMemoryStore(Machine,Module,Instruction,bytes).lastProvedMerkle](src/osp/OneStepProverMemory.sol#L220) is a local variable never initialized\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L220", + "id": "970df6569838c064f8c23181f94aa7553a41b5a23c53e802d29cd0162f7d4f2b", + "check": "uninitialized-local", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "initialize", + "source_mapping": { + "start": 969, + "length": 447, + "filename_relative": "src/bridge/ERC20Inbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", + "filename_short": "src/bridge/ERC20Inbox.sol", + "is_dependency": false, + "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20Inbox", + "source_mapping": { + "start": 789, + "length": 4172, + "filename_relative": "src/bridge/ERC20Inbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", + "filename_short": "src/bridge/ERC20Inbox.sol", + "is_dependency": false, + "lines": [ + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "initialize(IBridge,ISequencerInbox)" + } + }, + { + "type": "node", + "name": "IERC20(nativeToken).approve(address(bridge),type()(uint256).max)", + "source_mapping": { + "start": 1346, + "length": 63, + "filename_relative": "src/bridge/ERC20Inbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", + "filename_short": "src/bridge/ERC20Inbox.sol", + "is_dependency": false, + "lines": [36], + "starting_column": 9, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "initialize", + "source_mapping": { + "start": 969, + "length": 447, + "filename_relative": "src/bridge/ERC20Inbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", + "filename_short": "src/bridge/ERC20Inbox.sol", + "is_dependency": false, + "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "ERC20Inbox", + "source_mapping": { + "start": 789, + "length": 4172, + "filename_relative": "src/bridge/ERC20Inbox.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/ERC20Inbox.sol", + "filename_short": "src/bridge/ERC20Inbox.sol", + "is_dependency": false, + "lines": [ + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "initialize(IBridge,ISequencerInbox)" + } + } + } + } + ], + "description": "ERC20Inbox.initialize(IBridge,ISequencerInbox) (src/bridge/ERC20Inbox.sol#27-37) ignores return value by IERC20(nativeToken).approve(address(bridge),type()(uint256).max) (src/bridge/ERC20Inbox.sol#36)\n", + "markdown": "[ERC20Inbox.initialize(IBridge,ISequencerInbox)](src/bridge/ERC20Inbox.sol#L27-L37) ignores return value by [IERC20(nativeToken).approve(address(bridge),type()(uint256).max)](src/bridge/ERC20Inbox.sol#L36)\n", + "first_markdown_element": "src/bridge/ERC20Inbox.sol#L27-L37", + "id": "02a7ce9e0718ec474776a6c6466ec2120335f60d5d537c682d2d0b48b02e328e", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "refundsGas", + "source_mapping": { + "start": 721, + "length": 2143, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefundEnabled", + "source_mapping": { + "start": 309, + "length": 2557, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refundsGas(IGasRefunder,IReader4844)" + } + }, + { + "type": "node", + "name": "gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize)", + "source_mapping": { + "start": 2764, + "length": 83, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [49], + "starting_column": 13, + "ending_column": 96 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "refundsGas", + "source_mapping": { + "start": 721, + "length": 2143, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "GasRefundEnabled", + "source_mapping": { + "start": 309, + "length": 2557, + "filename_relative": "src/libraries/GasRefundEnabled.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/GasRefundEnabled.sol", + "filename_short": "src/libraries/GasRefundEnabled.sol", + "is_dependency": false, + "lines": [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "refundsGas(IGasRefunder,IReader4844)" + } + } + } + } + ], + "description": "GasRefundEnabled.refundsGas(IGasRefunder,IReader4844) (src/libraries/GasRefundEnabled.sol#17-51) ignores return value by gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize) (src/libraries/GasRefundEnabled.sol#49)\n", + "markdown": "[GasRefundEnabled.refundsGas(IGasRefunder,IReader4844)](src/libraries/GasRefundEnabled.sol#L17-L51) ignores return value by [gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize)](src/libraries/GasRefundEnabled.sol#L49)\n", + "first_markdown_element": "src/libraries/GasRefundEnabled.sol#L17-L51", + "id": "dd7d7f9070537fa235923aa2a3f52a440202d201a28033828f3cfb6418df3676", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeDrop", + "source_mapping": { + "start": 1692, + "length": 185, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [60, 61, 62, 63, 64, 65, 66, 67], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeDrop(Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "mach.valueStack.pop()", + "source_mapping": { + "start": 1849, + "length": 21, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [66], + "starting_column": 9, + "ending_column": 30 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeDrop", + "source_mapping": { + "start": 1692, + "length": 185, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [60, 61, 62, 63, 64, 65, 66, 67], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeDrop(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeDrop(Machine,Module,Instruction,bytes) (src/osp/OneStepProver0.sol#60-67) ignores return value by mach.valueStack.pop() (src/osp/OneStepProver0.sol#66)\n", + "markdown": "[OneStepProver0.executeDrop(Machine,Module,Instruction,bytes)](src/osp/OneStepProver0.sol#L60-L67) ignores return value by [mach.valueStack.pop()](src/osp/OneStepProver0.sol#L66)\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L60-L67", + "id": "12bf5611aeaa1ce8c4037f42705c38eef1245905dff7bc27604a5c8290de634b", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10080, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + }, + { + "type": "node", + "name": "(afterDelayedMsg,None) = Deserialize.u64(message,32)", + "source_mapping": { + "start": 10365, + "length": 50, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [255], + "starting_column": 9, + "ending_column": 59 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateSequencerInbox", + "source_mapping": { + "start": 10080, + "length": 884, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateSequencerInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#247-269) ignores return value by (afterDelayedMsg,None) = Deserialize.u64(message,32) (src/osp/OneStepProverHostIo.sol#255)\n", + "markdown": "[OneStepProverHostIo.validateSequencerInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L247-L269) ignores return value by [(afterDelayedMsg,None) = Deserialize.u64(message,32)](src/osp/OneStepProverHostIo.sol#L255)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L247-L269", + "id": "8e9dac288df9bcd5afd57ce5afd7d08f223411c09b70bf9486fbdce8c99e8a4e", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "validateDelayedInbox", + "source_mapping": { + "start": 10970, + "length": 916, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)" + } + }, + { + "type": "node", + "name": "(sender,None) = Deserialize.u256(message,1)", + "source_mapping": { + "start": 11493, + "length": 41, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [287], + "starting_column": 9, + "ending_column": 50 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "validateDelayedInbox", + "source_mapping": { + "start": 10970, + "length": 916, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverHostIo", + "source_mapping": { + "start": 433, + "length": 16565, + "filename_relative": "src/osp/OneStepProverHostIo.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverHostIo.sol", + "filename_short": "src/osp/OneStepProverHostIo.sol", + "is_dependency": false, + "lines": [ + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "validateDelayedInbox(ExecutionContext,uint64,bytes)" + } + } + } + } + ], + "description": "OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes) (src/osp/OneStepProverHostIo.sol#271-296) ignores return value by (sender,None) = Deserialize.u256(message,1) (src/osp/OneStepProverHostIo.sol#287)\n", + "markdown": "[OneStepProverHostIo.validateDelayedInbox(ExecutionContext,uint64,bytes)](src/osp/OneStepProverHostIo.sol#L271-L296) ignores return value by [(sender,None) = Deserialize.u256(message,1)](src/osp/OneStepProverHostIo.sol#L287)\n", + "first_markdown_element": "src/osp/OneStepProverHostIo.sol#L271-L296", + "id": "06e60ad1cf7b2c761d007d2174aab9de589f5fb917c2547582fac31386b8bf17", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + }, + { + "type": "node", + "name": "(lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset)", + "source_mapping": { + "start": 4658, + "length": 212, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [128, 129, 130, 131, 132, 133], + "starting_column": 17, + "ending_column": 18 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeMemoryLoad", + "source_mapping": { + "start": 1507, + "length": 4594, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProverMemory", + "source_mapping": { + "start": 368, + "length": 11469, + "filename_relative": "src/osp/OneStepProverMemory.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProverMemory.sol", + "filename_short": "src/osp/OneStepProverMemory.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeMemoryLoad(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes) (src/osp/OneStepProverMemory.sol#43-160) ignores return value by (lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset) (src/osp/OneStepProverMemory.sol#128-133)\n", + "markdown": "[OneStepProverMemory.executeMemoryLoad(Machine,Module,Instruction,bytes)](src/osp/OneStepProverMemory.sol#L43-L160) ignores return value by [(lastProvedLeafContents,proofOffset,None) = ModuleMemoryLib.proveLeaf(mod.moduleMemory,leafIdx,proof,proofOffset)](src/osp/OneStepProverMemory.sol#L128-L133)\n", + "first_markdown_element": "src/osp/OneStepProverMemory.sol#L43-L160", + "id": "ab8910cb7fbab9ad8b4fcabf66567df3327f36c637f318ceaf3df0ea258b2a1d", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + }, + { + "type": "node", + "name": "IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:})", + "source_mapping": { + "start": 9018, + "length": 434, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:}) (src/rollup/DeployHelper.sol#62-72)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IERC20Inbox(inbox).createRetryableTicket({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,tokenTotalFeeAmount:feeAmount,data:})](src/rollup/DeployHelper.sol#L62-L72)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", + "id": "b577066c87e9c3fd8db423a41c6f80870945020f8f55d5dd38041b1894b9af5a", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + }, + { + "type": "node", + "name": "IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})", + "source_mapping": { + "start": 9483, + "length": 399, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [74, 75, 76, 77, 78, 79, 80, 81, 82, 83], + "starting_column": 13, + "ending_column": 15 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:}) (src/rollup/DeployHelper.sol#74-83)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IInbox(inbox).createRetryableTicket{value: feeAmount}({to:_l2Address,l2CallValue:_value,maxSubmissionCost:submissionCost,excessFeeRefundAddress:msg.sender,callValueRefundAddress:msg.sender,gasLimit:GASLIMIT,maxFeePerGas:maxFeePerGas,data:})](src/rollup/DeployHelper.sol#L74-L83)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", + "id": "08d31a6c6d79a1ee2e015f8b5e35c4ed5b9293c91824de95a577f6e382ac73bd", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + }, + { + "type": "node", + "name": "IInboxBase(inbox).sendL2Message(payload)", + "source_mapping": { + "start": 9959, + "length": 40, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [86], + "starting_column": 9, + "ending_column": 49 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_fundAndDeploy", + "source_mapping": { + "start": 8513, + "length": 1493, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DeployHelper", + "source_mapping": { + "start": 513, + "length": 11093, + "filename_relative": "src/rollup/DeployHelper.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/DeployHelper.sol", + "filename_short": "src/rollup/DeployHelper.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_fundAndDeploy(address,uint256,address,bytes,bool,uint256)" + } + } + } + } + ], + "description": "DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256) (src/rollup/DeployHelper.sol#46-87) ignores return value by IInboxBase(inbox).sendL2Message(payload) (src/rollup/DeployHelper.sol#86)\n", + "markdown": "[DeployHelper._fundAndDeploy(address,uint256,address,bytes,bool,uint256)](src/rollup/DeployHelper.sol#L46-L87) ignores return value by [IInboxBase(inbox).sendL2Message(payload)](src/rollup/DeployHelper.sol#L86)\n", + "first_markdown_element": "src/rollup/DeployHelper.sol#L46-L87", + "id": "b4a84cbb13a9ec2260cb5bdf5bf9641492e27e04195d23e819c7abac1a906e14", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "_upgradeSecondaryToAndCall", + "source_mapping": { + "start": 2306, + "length": 313, + "filename_relative": "src/libraries/AdminFallbackProxy.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", + "filename_short": "src/libraries/AdminFallbackProxy.sol", + "is_dependency": false, + "lines": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DoubleLogicERC1967Upgrade", + "source_mapping": { + "start": 525, + "length": 3364, + "filename_relative": "src/libraries/AdminFallbackProxy.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", + "filename_short": "src/libraries/AdminFallbackProxy.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_upgradeSecondaryToAndCall(address,bytes,bool)" + } + }, + { + "type": "node", + "name": "Address.functionDelegateCall(newImplementation,data)", + "source_mapping": { + "start": 2549, + "length": 53, + "filename_relative": "src/libraries/AdminFallbackProxy.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", + "filename_short": "src/libraries/AdminFallbackProxy.sol", + "is_dependency": false, + "lines": [67], + "starting_column": 13, + "ending_column": 66 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "_upgradeSecondaryToAndCall", + "source_mapping": { + "start": 2306, + "length": 313, + "filename_relative": "src/libraries/AdminFallbackProxy.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", + "filename_short": "src/libraries/AdminFallbackProxy.sol", + "is_dependency": false, + "lines": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "DoubleLogicERC1967Upgrade", + "source_mapping": { + "start": 525, + "length": 3364, + "filename_relative": "src/libraries/AdminFallbackProxy.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/libraries/AdminFallbackProxy.sol", + "filename_short": "src/libraries/AdminFallbackProxy.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "_upgradeSecondaryToAndCall(address,bytes,bool)" + } + } + } + } + ], + "description": "DoubleLogicERC1967Upgrade._upgradeSecondaryToAndCall(address,bytes,bool) (src/libraries/AdminFallbackProxy.sol#60-69) ignores return value by Address.functionDelegateCall(newImplementation,data) (src/libraries/AdminFallbackProxy.sol#67)\n", + "markdown": "[DoubleLogicERC1967Upgrade._upgradeSecondaryToAndCall(address,bytes,bool)](src/libraries/AdminFallbackProxy.sol#L60-L69) ignores return value by [Address.functionDelegateCall(newImplementation,data)](src/libraries/AdminFallbackProxy.sol#L67)\n", + "first_markdown_element": "src/libraries/AdminFallbackProxy.sol#L60-L69", + "id": "47e0b452924c566df231e1282a84ce0091600869b7eac2442aebf277bfcb6455", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + }, + { + "type": "node", + "name": "(ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates()", + "source_mapping": { + "start": 5121, + "length": 115, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [117, 118], + "starting_column": 13, + "ending_column": 37 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + } + } + } + ], + "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates() (src/rollup/RollupCreator.sol#117-118)\n", + "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(ethSequencerInbox,ethInbox) = bridgeCreator.ethBasedTemplates()](src/rollup/RollupCreator.sol#L117-L118)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", + "id": "ab1f7532bdfa2da03ac0035addb1594f2610bdbf697232a9b6207e2345bfd5a7", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + }, + { + "type": "node", + "name": "(erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates()", + "source_mapping": { + "start": 5509, + "length": 121, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [125, 126], + "starting_column": 13, + "ending_column": 39 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "createRollup", + "source_mapping": { + "start": 4904, + "length": 5018, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "RollupCreator", + "source_mapping": { + "start": 703, + "length": 11028, + "filename_relative": "src/rollup/RollupCreator.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/rollup/RollupCreator.sol", + "filename_short": "src/rollup/RollupCreator.sol", + "is_dependency": false, + "lines": [ + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "createRollup(RollupCreator.RollupDeploymentParams)" + } + } + } + } + ], + "description": "RollupCreator.createRollup(RollupCreator.RollupDeploymentParams) (src/rollup/RollupCreator.sol#110-233) ignores return value by (erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates() (src/rollup/RollupCreator.sol#125-126)\n", + "markdown": "[RollupCreator.createRollup(RollupCreator.RollupDeploymentParams)](src/rollup/RollupCreator.sol#L110-L233) ignores return value by [(erc20SequencerInbox,erc20Inbox) = bridgeCreator.erc20BasedTemplates()](src/rollup/RollupCreator.sol#L125-L126)\n", + "first_markdown_element": "src/rollup/RollupCreator.sol#L110-L233", + "id": "66c2e2cbe1d68bc0695a2c75ad2b2ad0c7a15d7d1455bb4ae31a64aeece91d52", + "check": "unused-return", + "impact": "Medium", + "confidence": "Medium" + }, + { + "elements": [ + { + "type": "variable", + "name": "_activeOutbox", + "source_mapping": { + "start": 1410, + "length": 30, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [45], + "starting_column": 5, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsBridge", + "source_mapping": { + "start": 995, + "length": 9716, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [ + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308 + ], + "starting_column": 1, + "ending_column": 2 + } + } + } + }, + { + "type": "node", + "name": "_activeOutbox = msg.sender", + "source_mapping": { + "start": 6961, + "length": 26, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [218], + "starting_column": 9, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCall", + "source_mapping": { + "start": 6606, + "length": 870, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [ + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsBridge", + "source_mapping": { + "start": 995, + "length": 9716, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [ + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCall(address,uint256,bytes)" + } + } + } + }, + { + "type": "node", + "name": "_activeOutbox = prevOutbox", + "source_mapping": { + "start": 7380, + "length": 26, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [225], + "starting_column": 9, + "ending_column": 35 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCall", + "source_mapping": { + "start": 6606, + "length": 870, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [ + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "AbsBridge", + "source_mapping": { + "start": 995, + "length": 9716, + "filename_relative": "src/bridge/AbsBridge.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/bridge/AbsBridge.sol", + "filename_short": "src/bridge/AbsBridge.sol", + "is_dependency": false, + "lines": [ + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCall(address,uint256,bytes)" + } + } + } + } + ], + "description": "AbsBridge._activeOutbox (src/bridge/AbsBridge.sol#45) is written in both\n\t_activeOutbox = msg.sender (src/bridge/AbsBridge.sol#218)\n\t_activeOutbox = prevOutbox (src/bridge/AbsBridge.sol#225)\n", + "markdown": "[AbsBridge._activeOutbox](src/bridge/AbsBridge.sol#L45) is written in both\n\t[_activeOutbox = msg.sender](src/bridge/AbsBridge.sol#L218)\n\t[_activeOutbox = prevOutbox](src/bridge/AbsBridge.sol#L225)\n", + "first_markdown_element": "src/bridge/AbsBridge.sol#L45", + "id": "b37c58023a3ec214b040ae7619219597fa970084995f29f74c24648d6f1ba59f", + "check": "write-after-write", + "impact": "Medium", + "confidence": "High" + }, + { + "elements": [ + { + "type": "variable", + "name": "offset", + "source_mapping": { + "start": 6391, + "length": 18, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [201], + "starting_column": 13, + "ending_column": 31 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 5971, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)", + "source_mapping": { + "start": 7998, + "length": 59, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [237], + "starting_column": 13, + "ending_column": 72 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 5971, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + }, + { + "type": "node", + "name": "(functionPointer,offset) = Deserialize.value(proof,offset)", + "source_mapping": { + "start": 8071, + "length": 60, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [238], + "starting_column": 13, + "ending_column": 73 + }, + "type_specific_fields": { + "parent": { + "type": "function", + "name": "executeCallIndirect", + "source_mapping": { + "start": 5971, + "length": 3565, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274 + ], + "starting_column": 5, + "ending_column": 6 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "OneStepProver0", + "source_mapping": { + "start": 362, + "length": 16704, + "filename_relative": "src/osp/OneStepProver0.sol", + "filename_absolute": "/Users/goran/repos/offchain/nitro-contracts/src/osp/OneStepProver0.sol", + "filename_short": "src/osp/OneStepProver0.sol", + "is_dependency": false, + "lines": [ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "executeCallIndirect(Machine,Module,Instruction,bytes)" + } + } + } + } + ], + "description": "OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset (src/osp/OneStepProver0.sol#201) is written in both\n\t(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset) (src/osp/OneStepProver0.sol#237)\n\t(functionPointer,offset) = Deserialize.value(proof,offset) (src/osp/OneStepProver0.sol#238)\n", + "markdown": "[OneStepProver0.executeCallIndirect(Machine,Module,Instruction,bytes).offset](src/osp/OneStepProver0.sol#L201) is written in both\n\t[(elemFuncTypeHash,offset) = Deserialize.b32(proof,offset)](src/osp/OneStepProver0.sol#L237)\n\t[(functionPointer,offset) = Deserialize.value(proof,offset)](src/osp/OneStepProver0.sol#L238)\n", + "first_markdown_element": "src/osp/OneStepProver0.sol#L201", + "id": "a2b254b166a5aad9092374dafd67aae05d0d84bd0d8079074f9addfc91926e56", + "check": "write-after-write", + "impact": "Medium", + "confidence": "High" + } +]
diff --git OffchainLabs/nitro-contracts/test/foundry/CacheManager.t.sol Layr-Labs/nitro-contracts/test/foundry/CacheManager.t.sol index 62f1a0fd0784cba9d4fe692d453dc55b532ad715..5ddfe041622a44bd980fc4d594d70007241e863f 100644 --- OffchainLabs/nitro-contracts/test/foundry/CacheManager.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/CacheManager.t.sol @@ -20,11 +20,7 @@ ProxyAdmin proxyAdmin = new ProxyAdmin(); CacheManager cacheManagerImpl = new CacheManager(); cacheManager = CacheManager( address( - new TransparentUpgradeableProxy( - address(cacheManagerImpl), - address(proxyAdmin), - "" - ) + new TransparentUpgradeableProxy(address(cacheManagerImpl), address(proxyAdmin), "") ) ); uint64 cacheSize = 1_000_000; @@ -50,7 +46,11 @@ for (uint256 i = 0; i < programs.length; i++) { // Deploy bytes(bytes32(i)) as code to a sample program // PUSH32 i PUSH1 0 MSTORE PUSH1 32 PUSH1 0 RETURN // at the time of writing this our forge version or config doesn't have PUSH0 support - bytes memory bytecode = bytes.concat(hex"7F", abi.encodePacked(i), hex"60005260206000F3"); + bytes memory bytecode = bytes.concat( + hex"7F", + abi.encodePacked(i), + hex"60005260206000F3" + ); address program; assembly { program := create(0, add(bytecode, 32), mload(bytecode)) @@ -67,7 +67,9 @@ for (uint256 epoch = 0; epoch < 4; epoch++) { for (uint256 round = 0; round < 512; round++) { // roll one of 256 random programs - address program = programs[uint256(keccak256(abi.encodePacked("code", epoch, round))) % programs.length]; + address program = programs[ + uint256(keccak256(abi.encodePacked("code", epoch, round))) % programs.length + ]; bytes32 codehash = program.codehash;   vm.warp(block.timestamp + 1); // move time forward to test decay and make bid unique @@ -136,7 +138,7 @@ }   cacheManager.placeBid{value: pay}(program);   - if(mustCache) { + if (mustCache) { require( ARB_WASM_CACHE.codehashIsCached(codehash), "must cache codehash not cached"
diff --git OffchainLabs/nitro-contracts/test/foundry/ChallengeManager.t.sol Layr-Labs/nitro-contracts/test/foundry/ChallengeManager.t.sol index 88557db995eea50023492e5c5dd3a7812c4c80c5..1e9622e2294575567d7cb0b7f61bad7d96dd91ea 100644 --- OffchainLabs/nitro-contracts/test/foundry/ChallengeManager.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/ChallengeManager.t.sol @@ -24,10 +24,14 @@ address(new TransparentUpgradeableProxy(address(chalmanImpl), proxyAdmin, "")) ); chalman.initialize(resultReceiver, sequencerInbox, bridge, osp); assertEq( - address(chalman.resultReceiver()), address(resultReceiver), "Result receiver not set" + address(chalman.resultReceiver()), + address(resultReceiver), + "Result receiver not set" ); assertEq( - address(chalman.sequencerInbox()), address(sequencerInbox), "Sequencer inbox not set" + address(chalman.sequencerInbox()), + address(sequencerInbox), + "Sequencer inbox not set" ); assertEq(address(chalman.bridge()), address(bridge), "Bridge not set"); assertEq(address(chalman.osp()), address(osp), "OSP not set"); @@ -52,10 +56,12 @@ bytes32 legacyRoot = keccak256(abi.encodePacked("legacyRoot"));   // legacy hashes bytes32 legacySegment0 = legacyOSP.getStartMachineHash( - keccak256(abi.encodePacked("globalStateHash[0]")), legacyRoot + keccak256(abi.encodePacked("globalStateHash[0]")), + legacyRoot ); bytes32 legacySegment1 = legacyOSP.getEndMachineHash( - MachineStatus.FINISHED, keccak256(abi.encodePacked("globalStateHashes[1]")) + MachineStatus.FINISHED, + keccak256(abi.encodePacked("globalStateHashes[1]")) );   /// new OSP @@ -72,10 +78,12 @@ );   // new hashes bytes32 newSegment0 = _newOSP.getStartMachineHash( - keccak256(abi.encodePacked("globalStateHash[0]")), randomRoot + keccak256(abi.encodePacked("globalStateHash[0]")), + randomRoot ); bytes32 newSegment1 = _newOSP.getEndMachineHash( - MachineStatus.FINISHED, keccak256(abi.encodePacked("new_globalStateHashes[1]")) + MachineStatus.FINISHED, + keccak256(abi.encodePacked("new_globalStateHashes[1]")) );   /// do upgrade @@ -83,7 +91,10 @@ vm.prank(proxyAdmin); TransparentUpgradeableProxy(payable(address(chalman))).upgradeToAndCall( address(chalmanImpl), abi.encodeWithSelector( - ChallengeManager.postUpgradeInit.selector, _newOSP, legacyRoot, legacyOSP + ChallengeManager.postUpgradeInit.selector, + _newOSP, + legacyRoot, + legacyOSP ) );   @@ -92,14 +103,16 @@ IOneStepProofEntry _condOsp = chalman.getOsp(legacyRoot); assertEq(address(_condOsp), address(legacyOSP), "Legacy osp not set"); assertEq( _condOsp.getStartMachineHash( - keccak256(abi.encodePacked("globalStateHash[0]")), legacyRoot + keccak256(abi.encodePacked("globalStateHash[0]")), + legacyRoot ), legacySegment0, "Unexpected start machine hash" ); assertEq( _condOsp.getEndMachineHash( - MachineStatus.FINISHED, keccak256(abi.encodePacked("globalStateHashes[1]")) + MachineStatus.FINISHED, + keccak256(abi.encodePacked("globalStateHashes[1]")) ), legacySegment1, "Unexpected end machine hash" @@ -110,14 +123,16 @@ IOneStepProofEntry _newOsp = chalman.getOsp(randomRoot); assertEq(address(_newOsp), address(_newOSP), "New osp not set"); assertEq( _newOsp.getStartMachineHash( - keccak256(abi.encodePacked("globalStateHash[0]")), randomRoot + keccak256(abi.encodePacked("globalStateHash[0]")), + randomRoot ), newSegment0, "Unexpected start machine hash" ); assertEq( _newOsp.getEndMachineHash( - MachineStatus.FINISHED, keccak256(abi.encodePacked("new_globalStateHashes[1]")) + MachineStatus.FINISHED, + keccak256(abi.encodePacked("new_globalStateHashes[1]")) ), newSegment1, "Unexpected end machine hash" @@ -135,7 +150,10 @@ vm.prank(proxyAdmin); TransparentUpgradeableProxy(payable(address(chalman))).upgradeToAndCall( address(chalmanImpl), abi.encodeWithSelector( - ChallengeManager.postUpgradeInit.selector, newOsp, randomRoot, condOsp + ChallengeManager.postUpgradeInit.selector, + newOsp, + randomRoot, + condOsp ) );
diff --git OffchainLabs/nitro-contracts/test/foundry/ERC20Bridge.t.sol Layr-Labs/nitro-contracts/test/foundry/ERC20Bridge.t.sol index 1d2d82aace8fc982ac65c35478815d2d602d9178..876c49c4b7a36df29a5a5440a8c71009cf659ce5 100644 --- OffchainLabs/nitro-contracts/test/foundry/ERC20Bridge.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/ERC20Bridge.t.sol @@ -60,7 +60,6 @@ vm.expectRevert(abi.encodeWithSelector(InvalidTokenSet.selector, address(0))); noTokenBridge.initialize(IOwnable(rollup), address(0)); }   - function test_initialize_ERC20_LessThan18Decimals() public { ERC20 _nativeToken = new ERC20_6Decimals(); ERC20Bridge _bridge = ERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); @@ -81,7 +80,7 @@ function test_initialize_revert_37Decimals() public { ERC20_37Decimals _nativeToken = new ERC20_37Decimals(); ERC20Bridge _bridge = ERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge())));   - vm.expectRevert(abi.encodeWithSelector(NativeTokenDecimalsTooLarge.selector,37)); + vm.expectRevert(abi.encodeWithSelector(NativeTokenDecimalsTooLarge.selector, 37)); _bridge.initialize(IOwnable(makeAddr("_rollup")), address(_nativeToken)); }
diff --git OffchainLabs/nitro-contracts/test/foundry/ERC20Inbox.t.sol Layr-Labs/nitro-contracts/test/foundry/ERC20Inbox.t.sol index 80596a10ca610a6316d8f838bb84526b8005eace..7d41810643275c2e64f65a6f0cf6c3b8747d8563 100644 --- OffchainLabs/nitro-contracts/test/foundry/ERC20Inbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/ERC20Inbox.t.sol @@ -87,7 +87,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -97,9 +99,9 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   - uint256 depositAmount = 300 * 10 ** decimals; + uint256 depositAmount = 300 * 10**decimals;   uint256 bridgeTokenBalanceBefore = _nativeToken.balanceOf(address(_bridge)); uint256 userTokenBalanceBefore = _nativeToken.balanceOf(address(user)); @@ -110,7 +112,7 @@ vm.prank(user); _nativeToken.approve(address(_inbox), depositAmount);   // expect event - uint256 expectedAmountToMintOnL2 = depositAmount * 10 ** (18 - decimals); + uint256 expectedAmountToMintOnL2 = depositAmount * 10**(18 - decimals); vm.expectEmit(true, true, true, true); emit InboxMessageDelivered(0, abi.encodePacked(user, expectedAmountToMintOnL2));   @@ -143,7 +145,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -153,9 +157,9 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   - uint256 depositAmount = 300 * 10 ** decimals; + uint256 depositAmount = 300 * 10**decimals;   uint256 bridgeTokenBalanceBefore = _nativeToken.balanceOf(address(_bridge)); uint256 userTokenBalanceBefore = _nativeToken.balanceOf(address(user)); @@ -166,7 +170,7 @@ vm.prank(user); _nativeToken.approve(address(_inbox), depositAmount);   // expect event - uint256 expectedAmountToMintOnL2 = depositAmount / (10 ** (decimals - 18)); + uint256 expectedAmountToMintOnL2 = depositAmount / (10**(decimals - 18)); vm.expectEmit(true, true, true, true); emit InboxMessageDelivered(0, abi.encodePacked(user, expectedAmountToMintOnL2));   @@ -198,7 +202,9 @@ function test_depositERC20_FromEOA_NoDecimals() public { ERC20 _nativeToken = new ERC20NoDecimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -221,7 +227,7 @@ vm.prank(user); _nativeToken.approve(address(_inbox), depositAmount);   // expect event - uint256 expectedAmountToMintOnL2 = depositAmount * 10 ** 18; + uint256 expectedAmountToMintOnL2 = depositAmount * 10**18; vm.expectEmit(true, true, true, true); emit InboxMessageDelivered(0, abi.encodePacked(user, expectedAmountToMintOnL2));   @@ -329,7 +335,9 @@ function test_depositERC20_revert_DepositAmountTooLarge() public { ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -343,9 +351,7 @@ ERC20_6Decimals(address(_nativeToken)).mint(user, type(uint256).max - 10);   uint256 depositAmountTooHigh = type(uint256).max / 10;   - vm.expectRevert( - abi.encodeWithSelector(AmountTooLarge.selector, depositAmountTooHigh) - ); + vm.expectRevert(abi.encodeWithSelector(AmountTooLarge.selector, depositAmountTooHigh)); vm.prank(user, user); _inbox.depositERC20(depositAmountTooHigh); } @@ -446,7 +452,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -456,20 +464,20 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // snapshot uint256 bridgeTokenBalanceBefore = _nativeToken.balanceOf(address(_bridge)); uint256 userTokenBalanceBefore = _nativeToken.balanceOf(address(user));   - uint256 tokenTotalFeeAmount = 300 * 10 ** decimals; + uint256 tokenTotalFeeAmount = 300 * 10**decimals;   // approve inbox to fetch tokens vm.prank(user); _nativeToken.approve(address(_inbox), tokenTotalFeeAmount);   // retyrable params - uint256 l2CallValue = 20 * 10 ** decimals; + uint256 l2CallValue = 20 * 10**decimals; uint256 maxSubmissionCost = 0; uint256 gasLimit = 100; uint256 maxFeePerGas = 2; @@ -477,7 +485,7 @@ bytes memory data = abi.encodePacked("some msg");   { // expect event - uint256 expectedTokenTotalFeeAmount18Dec = tokenTotalFeeAmount * 10 ** (18 - decimals); + uint256 expectedTokenTotalFeeAmount18Dec = tokenTotalFeeAmount * 10**(18 - decimals); vm.expectEmit(true, true, true, true); emit InboxMessageDelivered( 0, @@ -534,7 +542,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -544,20 +554,20 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // snapshot uint256 bridgeTokenBalanceBefore = _nativeToken.balanceOf(address(_bridge)); uint256 userTokenBalanceBefore = _nativeToken.balanceOf(address(user));   - uint256 tokenTotalFeeAmount = 235 * 10 ** decimals; + uint256 tokenTotalFeeAmount = 235 * 10**decimals;   // approve inbox to fetch tokens vm.prank(user); _nativeToken.approve(address(_inbox), tokenTotalFeeAmount);   // retyrable params - uint256 l2CallValue = 20 * 10 ** 18; + uint256 l2CallValue = 20 * 10**18; uint256 maxSubmissionCost = 0; uint256 gasLimit = 100; uint256 maxFeePerGas = 2; @@ -565,7 +575,7 @@ bytes memory data = abi.encodePacked("some msg");   { // expect event - uint256 expectedTokenTotalFeeAmount18Dec = tokenTotalFeeAmount / 10 ** (decimals - 18); + uint256 expectedTokenTotalFeeAmount18Dec = tokenTotalFeeAmount / 10**(decimals - 18); vm.expectEmit(true, true, true, true); emit InboxMessageDelivered( 0, @@ -759,7 +769,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -769,16 +781,16 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_6Decimals(address(_nativeToken)).mint(user, 1_000_000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(user, 1_000_000 * 10**decimals);   //// create ticket   - uint256 tooSmallTokenTotalFeeAmount = 2 * 10 ** 6; // 2 USDC becomes 2*10^18 on child chain + uint256 tooSmallTokenTotalFeeAmount = 2 * 10**6; // 2 USDC becomes 2*10^18 on child chain   - uint256 l2CallValue = 2 * 10 ** 18; + uint256 l2CallValue = 2 * 10**18; uint256 maxSubmissionCost = 0; uint256 gasLimit = 80_000; - uint256 maxFeePerGas = 10 ** 9; //1 gwei + uint256 maxFeePerGas = 10**9; //1 gwei /// provided: 2USDC on parent chain = 2*10^18 on child chain /// needed: 2.00008*10^18 on child chain   @@ -787,7 +799,7 @@ vm.expectRevert( abi.encodeWithSelector( InsufficientValue.selector, maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, - tooSmallTokenTotalFeeAmount * 10 ** (18 - decimals) + tooSmallTokenTotalFeeAmount * 10**(18 - decimals) ) ); _inbox.createRetryableTicket({ @@ -808,7 +820,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -818,16 +832,16 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_20Decimals(address(_nativeToken)).mint(user, 1_000_000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(user, 1_000_000 * 10**decimals);   //// create ticket   - uint256 tooSmallTokenTotalFeeAmount = 2 * 10 ** 20; + uint256 tooSmallTokenTotalFeeAmount = 2 * 10**20;   - uint256 l2CallValue = 2 * 10 ** 18; + uint256 l2CallValue = 2 * 10**18; uint256 maxSubmissionCost = 0; uint256 gasLimit = 80_000; - uint256 maxFeePerGas = 10 ** 9; //1 gwei + uint256 maxFeePerGas = 10**9; //1 gwei /// provided: 2 * 10 ** 20 on parent chain = 2*10^18 on child chain /// needed: 2.00008*10^18 on child chain   @@ -836,7 +850,7 @@ vm.expectRevert( abi.encodeWithSelector( InsufficientValue.selector, maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, - tooSmallTokenTotalFeeAmount / 10 ** (decimals - 18) + tooSmallTokenTotalFeeAmount / 10**(decimals - 18) ) ); _inbox.createRetryableTicket({ @@ -1135,7 +1149,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -1145,13 +1161,13 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // L2 msg params uint256 maxFeePerGas = 0; uint256 gasLimit = 10; uint256 nonce = 3; - uint256 l2CallValue = 15 * 10 ** decimals; + uint256 l2CallValue = 15 * 10**decimals; bytes memory data = abi.encodePacked("7");   // expect event @@ -1171,8 +1187,14 @@ );   // send TX vm.prank(user, user); - uint256 msgNum = - _inbox.sendUnsignedTransaction(gasLimit, maxFeePerGas, nonce, user, l2CallValue, data); + uint256 msgNum = _inbox.sendUnsignedTransaction( + gasLimit, + maxFeePerGas, + nonce, + user, + l2CallValue, + data + );   //// checks assertEq(msgNum, 0, "Invalid msgNum"); @@ -1185,7 +1207,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -1195,13 +1219,13 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // L2 msg params uint256 maxFeePerGas = 0; uint256 gasLimit = 10; uint256 nonce = 3; - uint256 l2CallValue = 15 * 10 ** decimals; + uint256 l2CallValue = 15 * 10**decimals; bytes memory data = abi.encodePacked("7");   // expect event @@ -1221,8 +1245,14 @@ );   // send TX vm.prank(user, user); - uint256 msgNum = - _inbox.sendUnsignedTransaction(gasLimit, maxFeePerGas, nonce, user, l2CallValue, data); + uint256 msgNum = _inbox.sendUnsignedTransaction( + gasLimit, + maxFeePerGas, + nonce, + user, + l2CallValue, + data + );   //// checks assertEq(msgNum, 0, "Invalid msgNum"); @@ -1235,7 +1265,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -1245,12 +1277,12 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // L2 msg params uint256 maxFeePerGas = 0; uint256 gasLimit = 10; - uint256 l2CallValue = 72 * 10 ** decimals; + uint256 l2CallValue = 72 * 10**decimals; bytes memory data = abi.encodePacked("test data");   // expect event @@ -1269,8 +1301,13 @@ );   // send TX vm.prank(user); - uint256 msgNum = - _inbox.sendContractTransaction(gasLimit, maxFeePerGas, user, l2CallValue, data); + uint256 msgNum = _inbox.sendContractTransaction( + gasLimit, + maxFeePerGas, + user, + l2CallValue, + data + );   //// checks assertEq(msgNum, 0, "Invalid msgNum"); @@ -1283,7 +1320,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + );   // init bridge and inbox address _rollup = makeAddr("_rollup"); @@ -1293,12 +1332,12 @@ vm.prank(_rollup); _bridge.setDelayedInbox(address(_inbox), true);   // fund user account - ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(user, 1000 * 10**decimals);   // L2 msg params uint256 maxFeePerGas = 0; uint256 gasLimit = 10; - uint256 l2CallValue = 72 * 10 ** decimals; + uint256 l2CallValue = 72 * 10**decimals; bytes memory data = abi.encodePacked("test data");   // expect event @@ -1317,8 +1356,13 @@ );   // send TX vm.prank(user); - uint256 msgNum = - _inbox.sendContractTransaction(gasLimit, maxFeePerGas, user, l2CallValue, data); + uint256 msgNum = _inbox.sendContractTransaction( + gasLimit, + maxFeePerGas, + user, + l2CallValue, + data + );   //// checks assertEq(msgNum, 0, "Invalid msgNum");
diff --git OffchainLabs/nitro-contracts/test/foundry/ERC20Outbox.t.sol Layr-Labs/nitro-contracts/test/foundry/ERC20Outbox.t.sol index 4c385a56ab2f1101e2686390d146b0d2538f5a37..102058b19879c829d07771ed5d80c0232fa85666 100644 --- OffchainLabs/nitro-contracts/test/foundry/ERC20Outbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/ERC20Outbox.t.sol @@ -78,10 +78,7 @@ }); bytes32 root = outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(rollup); - outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + outbox.updateSendRoot(root, bytes32(uint256(1)));   outbox.executeTransaction({ proof: proof, @@ -162,10 +159,7 @@ }); bytes32 root = outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(rollup); - outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + outbox.updateSendRoot(root, bytes32(uint256(1)));   vm.expectRevert(abi.encodeWithSelector(CallTargetNotAllowed.selector, invalidTarget)); outbox.executeTransaction({ @@ -193,7 +187,9 @@ uint8 decimals = 6; ERC20 _nativeToken = new ERC20_6Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + ); ERC20Outbox _outbox = ERC20Outbox(TestUtil.deployProxy(address(new ERC20Outbox())));   // init bridge and inbox @@ -205,7 +201,7 @@ vm.prank(_rollup); _bridge.setOutbox(address(_outbox), true);   // fund bridge with some tokens - ERC20_6Decimals(address(_nativeToken)).mint(address(_bridge), 1_000_000 * 10 ** decimals); + ERC20_6Decimals(address(_nativeToken)).mint(address(_bridge), 1_000_000 * 10**decimals);   // create msg receiver on L1 ERC20L2ToL1Target target = new ERC20L2ToL1Target(); @@ -219,7 +215,7 @@ bytes32[] memory proof = new bytes32[](1); proof[0] = bytes32(0);   uint256 withdrawalAmount = 188_394_098_124_747_940; - uint256 expetedAmountToUnlock = withdrawalAmount / (10 ** (18 - decimals)); + uint256 expetedAmountToUnlock = withdrawalAmount / (10**(18 - decimals));   bytes memory data = abi.encodeWithSignature("receiveHook()");   @@ -237,10 +233,7 @@ }); bytes32 root = _outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(_rollup); - _outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + _outbox.updateSendRoot(root, bytes32(uint256(1))); }   _outbox.executeTransaction({ @@ -301,7 +294,9 @@ uint8 decimals = 20; ERC20 _nativeToken = new ERC20_20Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + ); ERC20Outbox _outbox = ERC20Outbox(TestUtil.deployProxy(address(new ERC20Outbox())));   // init bridge and inbox @@ -313,7 +308,7 @@ vm.prank(_rollup); _bridge.setOutbox(address(_outbox), true);   // fund bridge with some tokens - ERC20_20Decimals(address(_nativeToken)).mint(address(_bridge), 1_000_000 * 10 ** decimals); + ERC20_20Decimals(address(_nativeToken)).mint(address(_bridge), 1_000_000 * 10**decimals);   // create msg receiver on L1 ERC20L2ToL1Target target = new ERC20L2ToL1Target(); @@ -327,7 +322,7 @@ bytes32[] memory proof = new bytes32[](1); proof[0] = bytes32(0);   uint256 withdrawalAmount = 188_394_098_124_747_940; - uint256 expetedAmountToUnlock = withdrawalAmount * (10 ** (decimals - 18)); + uint256 expetedAmountToUnlock = withdrawalAmount * (10**(decimals - 18));   bytes memory data = abi.encodeWithSignature("receiveHook()");   @@ -345,10 +340,7 @@ }); bytes32 root = _outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(_rollup); - _outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + _outbox.updateSendRoot(root, bytes32(uint256(1))); }   _outbox.executeTransaction({ @@ -408,7 +400,9 @@ // create token/bridge/inbox ERC20 _nativeToken = new ERC20_36Decimals();   IERC20Bridge _bridge = IERC20Bridge(TestUtil.deployProxy(address(new ERC20Bridge()))); - IERC20Inbox _inbox = IERC20Inbox(TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE)))); + IERC20Inbox _inbox = IERC20Inbox( + TestUtil.deployProxy(address(new ERC20Inbox(MAX_DATA_SIZE))) + ); ERC20Outbox _outbox = ERC20Outbox(TestUtil.deployProxy(address(new ERC20Outbox())));   // init bridge and inbox @@ -430,7 +424,7 @@ //// execute transaction bytes32[] memory proof = new bytes32[](1); proof[0] = bytes32(0);   - uint256 tooLargeWithdrawalAmount = type(uint256).max / 10 ** 18 + 1; + uint256 tooLargeWithdrawalAmount = type(uint256).max / 10**18 + 1;   bytes memory data = abi.encodeWithSignature("receiveHook()");   @@ -448,10 +442,7 @@ }); bytes32 root = _outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(_rollup); - _outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + _outbox.updateSendRoot(root, bytes32(uint256(1))); }   vm.expectRevert(stdError.arithmeticError); // overflow
diff --git OffchainLabs/nitro-contracts/test/foundry/ERC20RollupEventInbox.t.sol Layr-Labs/nitro-contracts/test/foundry/ERC20RollupEventInbox.t.sol index 2608db98627a17be7bb237ef538b5715d1f98d03..a526a3772cd52b87dd732eeb826867075dd039c4 100644 --- OffchainLabs/nitro-contracts/test/foundry/ERC20RollupEventInbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/ERC20RollupEventInbox.t.sol @@ -5,13 +5,15 @@ import "./AbsRollupEventInbox.t.sol"; import {TestUtil} from "./util/TestUtil.sol"; import {ERC20RollupEventInbox} from "../../src/rollup/ERC20RollupEventInbox.sol"; import {ERC20Bridge, IERC20Bridge, IOwnable} from "../../src/bridge/ERC20Bridge.sol"; -import {ERC20PresetMinterPauser} from - "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol"; +import { + ERC20PresetMinterPauser +} from "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";   contract ERC20RollupEventInboxTest is AbsRollupEventInboxTest { function setUp() public { - rollupEventInbox = - IRollupEventInbox(TestUtil.deployProxy(address(new ERC20RollupEventInbox()))); + rollupEventInbox = IRollupEventInbox( + TestUtil.deployProxy(address(new ERC20RollupEventInbox())) + ); bridge = IBridge(TestUtil.deployProxy(address(new ERC20Bridge()))); address nativeToken = address(new ERC20PresetMinterPauser("Appchain Token", "App")); IERC20Bridge(address(bridge)).initialize(IOwnable(rollup), nativeToken); @@ -24,8 +26,9 @@ }   /* solhint-disable func-name-mixedcase */ function test_initialize_revert_ZeroInit() public { - ERC20RollupEventInbox rollupEventInbox = - ERC20RollupEventInbox(TestUtil.deployProxy(address(new ERC20RollupEventInbox()))); + ERC20RollupEventInbox rollupEventInbox = ERC20RollupEventInbox( + TestUtil.deployProxy(address(new ERC20RollupEventInbox())) + );   vm.expectRevert(HadZeroInit.selector); rollupEventInbox.initialize(IBridge(address(0))); @@ -37,8 +40,12 @@ string memory chainConfig = "chainConfig";   uint8 expectedInitMsgVersion = 1; uint256 expectedCurrentDataCost = 0; - bytes memory expectedInitMsg = - abi.encodePacked(chainId, expectedInitMsgVersion, expectedCurrentDataCost, chainConfig); + bytes memory expectedInitMsg = abi.encodePacked( + chainId, + expectedInitMsgVersion, + expectedCurrentDataCost, + chainConfig + );   // expect event vm.expectEmit(true, true, true, true); @@ -73,8 +80,12 @@ string memory chainConfig = "chainConfig2";   uint8 expectedInitMsgVersion = 1; uint256 expectedCurrentDataCost = 0; - bytes memory expectedInitMsg = - abi.encodePacked(chainId, expectedInitMsgVersion, expectedCurrentDataCost, chainConfig); + bytes memory expectedInitMsg = abi.encodePacked( + chainId, + expectedInitMsgVersion, + expectedCurrentDataCost, + chainConfig + );   // expect event vm.expectEmit(true, true, true, true);
diff --git OffchainLabs/nitro-contracts/test/foundry/Outbox.t.sol Layr-Labs/nitro-contracts/test/foundry/Outbox.t.sol index 8d38deb8567931147c794b90280b58d17faba8d3..83eaba8cc06bffb16f61523034976c7f2322c4e5 100644 --- OffchainLabs/nitro-contracts/test/foundry/Outbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/Outbox.t.sol @@ -61,10 +61,7 @@ }); bytes32 root = outbox.calculateMerkleRoot(proof, index, itemHash); // store root vm.prank(rollup); - outbox.updateSendRoot( - root, - bytes32(uint256(1)) - ); + outbox.updateSendRoot(root, bytes32(uint256(1)));   outbox.executeTransaction({ proof: proof, @@ -80,12 +77,16 @@ });   uint256 bridgeBalanceAfter = address(bridge).balance; assertEq( - bridgeBalanceBefore - bridgeBalanceAfter, withdrawalAmount, "Invalid bridge balance" + bridgeBalanceBefore - bridgeBalanceAfter, + withdrawalAmount, + "Invalid bridge balance" );   uint256 targetBalanceAfter = address(target).balance; assertEq( - targetBalanceAfter - targetBalanceBefore, withdrawalAmount, "Invalid target balance" + targetBalanceAfter - targetBalanceBefore, + withdrawalAmount, + "Invalid target balance" );   /// check context was properly set during execution
diff --git OffchainLabs/nitro-contracts/test/foundry/RollupEventInbox.t.sol Layr-Labs/nitro-contracts/test/foundry/RollupEventInbox.t.sol index 47bfa9ec4ad31f7c4aed07ca4f57114025592fb4..5dca3167ddfe05754cc311074ce27e755cabbf0b 100644 --- OffchainLabs/nitro-contracts/test/foundry/RollupEventInbox.t.sol +++ Layr-Labs/nitro-contracts/test/foundry/RollupEventInbox.t.sol @@ -22,8 +22,9 @@ }   /* solhint-disable func-name-mixedcase */ function test_initialize_revert_ZeroInit() public { - RollupEventInbox rollupEventInbox = - RollupEventInbox(TestUtil.deployProxy(address(new RollupEventInbox()))); + RollupEventInbox rollupEventInbox = RollupEventInbox( + TestUtil.deployProxy(address(new RollupEventInbox())) + );   vm.expectRevert(HadZeroInit.selector); rollupEventInbox.initialize(IBridge(address(0))); @@ -39,8 +40,12 @@ vm.fee(basefee);   uint8 expectedInitMsgVersion = 1; uint256 expectedCurrentDataCost = basefee; - bytes memory expectedInitMsg = - abi.encodePacked(chainId, expectedInitMsgVersion, expectedCurrentDataCost, chainConfig); + bytes memory expectedInitMsg = abi.encodePacked( + chainId, + expectedInitMsgVersion, + expectedCurrentDataCost, + chainConfig + );   // expect event vm.expectEmit(true, true, true, true); @@ -73,13 +78,19 @@ // 50 gwei L1 basefee uint256 l1Fee = 50_000_000_000; vm.mockCall( - address(0x6c), abi.encodeWithSignature("getL1BaseFeeEstimate()"), abi.encode(l1Fee) + address(0x6c), + abi.encodeWithSignature("getL1BaseFeeEstimate()"), + abi.encode(l1Fee) );   uint8 expectedInitMsgVersion = 1; uint256 expectedCurrentDataCost = l2Fee + l1Fee; - bytes memory expectedInitMsg = - abi.encodePacked(chainId, expectedInitMsgVersion, expectedCurrentDataCost, chainConfig); + bytes memory expectedInitMsg = abi.encodePacked( + chainId, + expectedInitMsgVersion, + expectedCurrentDataCost, + chainConfig + );   /// this will result in 'hostChainIsArbitrum = true' vm.mockCall(