Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024 08 02 v4 #267

Merged
merged 14 commits into from
Aug 20, 2024
2,298 changes: 1,149 additions & 1,149 deletions .gas-snapshot

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/abstract/BaseRainterpreterExternNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {LibStackPointer} from "rain.solmem/lib/LibStackPointer.sol";
import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol";

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {IInterpreterExternV3, ExternDispatch} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";
import {IIntegrityToolingV1} from "rain.sol.codegen/interface/IIntegrityToolingV1.sol";
import {IOpcodeToolingV1} from "rain.sol.codegen/interface/IOpcodeToolingV1.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/abstract/BaseRainterpreterSubParserNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pragma solidity =0.8.25;
import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol";
import {LibBytes, Pointer} from "rain.solmem/lib/LibBytes.sol";

import {ISubParserV3, COMPATIBILITY_V4} from "rain.interpreter.interface/interface/ISubParserV3.sol";
import {ISubParserV3, COMPATIBILITY_V4, AuthoringMetaV2} from "rain.interpreter.interface/interface/ISubParserV3.sol";
import {IncompatibleSubParser} from "../error/ErrSubParse.sol";
import {LibSubParse, ParseState} from "../lib/parse/LibSubParse.sol";
import {CMASK_RHS_WORD_TAIL} from "../lib/parse/LibParseCMask.sol";
Expand Down
8 changes: 4 additions & 4 deletions src/concrete/RainterpreterExpressionDeployerNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@ import {
UnexpectedParserBytecodeHash,
UnexpectedPointers
} from "../error/ErrDeploy.sol";
import {IParserV1View} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol";
import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol";
import {IDescribedByMetaV1} from "rain.metadata/interface/IDescribedByMetaV1.sol";
import {IInterpreterV4} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";

import {LibIntegrityCheckNP} from "../lib/integrity/LibIntegrityCheckNP.sol";
import {LibInterpreterStateDataContractNP} from "../lib/state/LibInterpreterStateDataContractNP.sol";
Expand All @@ -33,6 +32,7 @@ import {
DESCRIBED_BY_META_HASH
} from "../generated/RainterpreterExpressionDeployerNPE2.pointers.sol";
import {IIntegrityToolingV1} from "rain.sol.codegen/interface/IIntegrityToolingV1.sol";
import {IParserV1View} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol";

/// All config required to construct a `RainterpreterNPE2`.
/// @param interpreter The `IInterpreterV2` to use for evaluation. MUST match
Expand All @@ -59,14 +59,14 @@ contract RainterpreterExpressionDeployerNPE2 is

/// The interpreter with known bytecode that this deployer is constructed
/// for.
IInterpreterV3 public immutable iInterpreter;
IInterpreterV4 public immutable iInterpreter;
/// The store with known bytecode that this deployer is constructed for.
IInterpreterStoreV2 public immutable iStore;
IParserV1View public immutable iParser;

constructor(RainterpreterExpressionDeployerNPE2ConstructionConfigV2 memory config) {
// Set the immutables.
IInterpreterV3 interpreter = IInterpreterV3(config.interpreter);
IInterpreterV4 interpreter = IInterpreterV4(config.interpreter);
IInterpreterStoreV2 store = IInterpreterStoreV2(config.store);
IParserV1View parser = IParserV1View(config.parser);

Expand Down
35 changes: 8 additions & 27 deletions src/concrete/RainterpreterNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,9 @@ import {LibDataContract} from "rain.datacontract/lib/LibDataContract.sol";

import {LibEvalNP} from "../lib/eval/LibEvalNP.sol";
import {LibInterpreterStateDataContractNP} from "../lib/state/LibInterpreterStateDataContractNP.sol";
import {LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol";
import {InterpreterStateNP} from "../lib/state/LibInterpreterStateNP.sol";
import {LibAllStandardOpsNP} from "../lib/op/LibAllStandardOpsNP.sol";
import {
SourceIndexV2,
IInterpreterV3,
StateNamespace,
FullyQualifiedNamespace,
IInterpreterStoreV2
} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {IInterpreterV4, SourceIndexV2, EvalV4} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {
BYTECODE_HASH as INTERPRETER_BYTECODE_HASH,
OPCODE_FUNCTION_POINTERS
Expand All @@ -30,35 +23,23 @@ import {IOpcodeToolingV1} from "rain.sol.codegen/interface/IOpcodeToolingV1.sol"
/// @title RainterpreterNPE2
/// @notice Implementation of a Rainlang interpreter that is compatible with
/// native onchain Rainlang parsing.
contract RainterpreterNPE2 is IInterpreterV3, IOpcodeToolingV1, ERC165 {
contract RainterpreterNPE2 is IInterpreterV4, IOpcodeToolingV1, ERC165 {
using LibEvalNP for InterpreterStateNP;
using LibInterpreterStateDataContractNP for bytes;

/// @inheritdoc IInterpreterV3
function eval3(
IInterpreterStoreV2 store,
FullyQualifiedNamespace namespace,
bytes calldata bytecode,
SourceIndexV2 sourceIndex,
uint256[][] calldata context,
uint256[] calldata inputs
) external view virtual override returns (uint256[] memory, uint256[] memory) {
InterpreterStateNP memory state = bytecode.unsafeDeserializeNP(
SourceIndexV2.unwrap(sourceIndex), namespace, store, context, OPCODE_FUNCTION_POINTERS
/// @inheritdoc IInterpreterV4
function eval4(EvalV4 calldata eval) external view virtual override returns (uint256[] memory, uint256[] memory) {
InterpreterStateNP memory state = eval.bytecode.unsafeDeserializeNP(
SourceIndexV2.unwrap(eval.sourceIndex), eval.namespace, eval.store, eval.context, OPCODE_FUNCTION_POINTERS
);
// We use the return by returning it. Slither false positive.
//slither-disable-next-line unused-return
return state.eval2(inputs, type(uint256).max);
return state.eval2(eval.inputs, type(uint256).max);
}

/// @inheritdoc ERC165
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IInterpreterV3).interfaceId || super.supportsInterface(interfaceId);
}

/// @inheritdoc IInterpreterV3
function functionPointers() external view virtual override returns (bytes memory) {
return buildOpcodeFunctionPointers();
return interfaceId == type(IInterpreterV4).interfaceId || super.supportsInterface(interfaceId);
}

/// @inheritdoc IOpcodeToolingV1
Expand Down
2 changes: 1 addition & 1 deletion src/concrete/RainterpreterParserNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import {IERC165, ERC165} from "openzeppelin-contracts/contracts/utils/introspect

import {LibParse} from "../lib/parse/LibParse.sol";
import {IParserPragmaV1, PragmaV1} from "rain.interpreter.interface/interface/IParserPragmaV1.sol";
import {IParserV1View} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol";
import {LibParseState, ParseState} from "../lib/parse/LibParseState.sol";
import {LibParsePragma} from "../lib/parse/LibParsePragma.sol";
import {LibParseLiteral} from "../lib/parse/literal/LibParseLiteral.sol";
Expand All @@ -20,6 +19,7 @@ import {
PARSE_META_BUILD_DEPTH
} from "../generated/RainterpreterParserNPE2.pointers.sol";
import {IParserToolingV1} from "rain.sol.codegen/interface/IParserToolingV1.sol";
import {IParserV1View} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol";

/// @title RainterpreterParserNPE2
/// @dev The parser implementation.
Expand Down
4 changes: 2 additions & 2 deletions src/concrete/extern/RainterpreterReferenceExternNPE2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import {BaseRainterpreterExternNPE2, Operand} from "../../abstract/BaseRainterpr
import {
BaseRainterpreterSubParserNPE2,
IParserToolingV1,
ISubParserToolingV1
ISubParserToolingV1,
AuthoringMetaV2
} from "../../abstract/BaseRainterpreterSubParserNPE2.sol";
import {LibExtern, EncodedExternDispatch} from "../../lib/extern/LibExtern.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";
import {LibSubParse} from "../../lib/parse/LibSubParse.sol";
import {AuthoringMetaV2} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol";
import {LibParseState, ParseState} from "../../lib/parse/LibParseState.sol";
import {LibParseOperand} from "../../lib/parse/LibParseOperand.sol";
import {LibParseLiteral} from "../../lib/parse/literal/LibParseLiteral.sol";
Expand Down
4 changes: 2 additions & 2 deletions src/generated/RainterpreterNPE2.pointers.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
pragma solidity =0.8.25;

/// @dev Hash of the known bytecode.
bytes32 constant BYTECODE_HASH = bytes32(0xfee767105c6c61d954e857509e83c39f1352e9ad804e9e9eb297493462c784ce);
bytes32 constant BYTECODE_HASH = bytes32(0xc151eb26749192999fc129c91cc2cfe0b4d7720f8d970fdf7de1c441258996f6);

/// @dev The function pointers known to the interpreter for dynamic dispatch.
/// By setting these as a constant they can be inlined into the interpreter
/// and loaded at eval time for very low gas (~100) due to the compiler
/// optimising it to a single `codecopy` to build the in memory bytes array.
bytes constant OPCODE_FUNCTION_POINTERS =
hex"077c07cd080f09db0ac20ad40ae60b090b4b0b9d0bae0bbf0c610c9e0d5c0e0c0e900fd310fa0d5c11f6129813101349138213d113d1140a146f1543159615aa16031617162c164616511665167a16b216d9175917a717f51843185b187418c218f91907191519301945195d19761984199219a019ae19fc1a4a1a981ae61afe1afe1b151b431b431b5a1b891bde1bec1bec1c901d77";
hex"078a07db081d09e90ad00ae20af40b170b590bab0bbc0bcd0c6f0cac0d6a0e1a0e9e0fe111080d6a120412a6131e1357139013df13df1418147d155115a415b816111625163a1654165f1673168816c016e7176717b5180318511869188218d0190719151923193e1953196b1984199219a019ae19bc1a0a1a581aa61af41b0c1b0c1b231b511b511b681b971bec1bfa1bfa1c9e1d85";
2 changes: 1 addition & 1 deletion src/lib/eval/LibEvalNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {LibMemCpy} from "rain.solmem/lib/LibMemCpy.sol";
import {LibMemoryKV, MemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol";
import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";

/// Thrown when the inputs length does not match the expected inputs length.
/// @param expected The expected number of inputs.
Expand Down
2 changes: 1 addition & 1 deletion src/lib/extern/LibExtern.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.18;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {
IInterpreterExternV3,
ExternDispatch,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.25;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibSubParse} from "../../../parse/LibSubParse.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";
import {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.25;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibSubParse} from "../../../parse/LibSubParse.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.25;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibSubParse} from "../../../parse/LibSubParse.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";
import {CONTEXT_BASE_COLUMN, CONTEXT_BASE_ROW_SENDER} from "rain.interpreter.interface/lib/caller/LibContext.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.25;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibSubParse} from "../../../parse/LibSubParse.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.25;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibSubParse} from "../../../parse/LibSubParse.sol";
import {IInterpreterExternV3} from "rain.interpreter.interface/interface/IInterpreterExternV3.sol";

Expand Down
4 changes: 2 additions & 2 deletions src/lib/integrity/LibIntegrityCheckNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import {
BadOpInputsLength,
BadOpOutputsLength
} from "../../error/ErrIntegrity.sol";
import {IInterpreterV2, SourceIndexV2} from "rain.interpreter.interface/interface/deprecated/IInterpreterV2.sol";
import {IInterpreterV4, SourceIndexV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {IInterpreterStoreV2, StateNamespace} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol";
import {BadOpInputsLength} from "../../lib/integrity/LibIntegrityCheckNP.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/00/LibOpConstantNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/00/LibOpContextNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/00/LibOpExternNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.18;

import {NotAnExternContract} from "../../../error/ErrExtern.sol";
import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/op/00/LibOpStackNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ pragma solidity ^0.8.18;
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";

import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
/// Thrown when a stack read index is outside the current stack top.

error OutOfBoundsStackRead(uint256 opIndex, uint256 stackTopIndex, uint256 stackRead);

/// @title LibOpStackNP
Expand Down
4 changes: 2 additions & 2 deletions src/lib/op/LibAllStandardOpsNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ pragma solidity ^0.8.19;
import {BadDynamicLength} from "../../error/ErrOpList.sol";
import {LibConvert} from "rain.lib.typecast/LibConvert.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {AuthoringMetaV2} from "rain.interpreter.interface/interface/deprecated/IParserV1.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {AuthoringMetaV2} from "rain.interpreter.interface/interface/IParserV2.sol";
import {LibIntegrityCheckNP, IntegrityCheckStateNP} from "../integrity/LibIntegrityCheckNP.sol";
import {LibInterpreterStateNP, InterpreterStateNP} from "../state/LibInterpreterStateNP.sol";
import {LibParseOperand} from "../parse/LibParseOperand.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpBitwiseAndNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpBitwiseOrNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpCtPopNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {LibCtPop} from "rain.math.binary/lib/LibCtPop.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpDecodeBitsNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {LibOpEncodeBitsNP} from "./LibOpEncodeBitsNP.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpEncodeBitsNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.18;

import {ZeroLengthBitwiseEncoding, TruncatedBitwiseEncoding} from "../../../error/ErrBitwise.sol";
import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";

Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {UnsupportedBitwiseShiftAmount} from "../../../error/ErrBitwise.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/bitwise/LibOpShiftBitsRightNP.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.18;

import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {Pointer} from "rain.solmem/lib/LibPointer.sol";
import {UnsupportedBitwiseShiftAmount} from "../../../error/ErrBitwise.sol";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/op/call/LibOpCallNP.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CAL
pragma solidity ^0.8.18;

import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol";
import {Operand} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol";
import {LibInterpreterStateNP, InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol";
import {LibIntegrityCheckNP, IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol";
import {Pointer, LibPointer} from "rain.solmem/lib/LibPointer.sol";
Expand Down
Loading