Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 70 additions & 70 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,70 +1,70 @@
LibBloomTest:testLibBloomNoFalseNegatives(bytes32[],uint256,uint256) (runs: 1976, μ: 40655, ~: 35438)
LibBloomTest:testLibBloomVaguelyAvoidsFalsePositives(uint256,uint8) (runs: 2048, μ: 1581001, ~: 22262)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers0() (gas: 427)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers1() (gas: 455)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers1Fail(bytes) (runs: 2022, μ: 6776, ~: 6596)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersConforming(bytes,uint256,bytes32) (runs: 2048, μ: 18887, ~: 16837)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptOffsetPointer(bytes,uint8,bytes32,uint8) (runs: 1339, μ: 25442, ~: 22955)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptOpsCount(bytes,uint8,bytes32,uint8) (runs: 1399, μ: 25991, ~: 23574)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptSourcesCount(bytes,uint8,bytes32,uint8) (runs: 1871, μ: 21201, ~: 19864)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersEndGarbage(bytes,bytes) (runs: 2023, μ: 18234, ~: 16943)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersHeaderTruncated(bytes,uint8,bytes32,uint256) (runs: 1464, μ: 27962, ~: 25534)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersInputsNotMonotonic(bytes,uint8,bytes32,uint256,uint256) (runs: 1481, μ: 30614, ~: 27673)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersOffsetsTruncated(bytes,uint8,uint256) (runs: 1756, μ: 11314, ~: 11319)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersOutputsNotMonotonic(bytes,uint8,bytes32,uint256,uint256) (runs: 1481, μ: 30611, ~: 27640)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersSourceTruncated(bytes,uint8,bytes32,uint8) (runs: 1399, μ: 26658, ~: 24197)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersTrailingOffsetBytes(bytes,bytes,uint8,bytes32) (runs: 1473, μ: 31407, ~: 27697)
LibBytecodeSourceCountTest:testSourceCount0() (gas: 349)
LibBytecodeSourceCountTest:testSourceCount1(bytes) (runs: 2037, μ: 3619, ~: 3616)
LibBytecodeSourceCountTest:testSourceCountReference(bytes) (runs: 2048, μ: 836, ~: 833)
LibBytecodeSourceInputsOutputsTest:testSourceInputsOutputsAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1657, μ: 27607, ~: 23995)
LibBytecodeSourceInputsOutputsTest:testSourceInputsOutputsIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 25469, ~: 22729)
LibBytecodeSourceOpsCountTest:testSourceOpsCount() (gas: 2212)
LibBytecodeSourceOpsCountTest:testSourceOpsCountAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1641, μ: 27558, ~: 23821)
LibBytecodeSourceOpsCountTest:testSourceOpsCountIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 25366, ~: 22648)
LibBytecodeSourcePointerTest:testSourcePointerAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1634, μ: 27269, ~: 23675)
LibBytecodeSourcePointerTest:testSourcePointerEmpty0(uint256) (runs: 2048, μ: 5775, ~: 5775)
LibBytecodeSourcePointerTest:testSourcePointerEmpty1(uint256) (runs: 2048, μ: 6158, ~: 6158)
LibBytecodeSourcePointerTest:testSourcePointerIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 25195, ~: 22360)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetHappy() (gas: 1237)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetIndexError() (gas: 95395)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetReference(bytes,uint256,uint256,bytes32) (runs: 1639, μ: 26790, ~: 23115)
LibBytecodeSourceStackAllocationTest:testSourceStackAllocationAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1625, μ: 27554, ~: 23875)
LibBytecodeSourceStackAllocationTest:testSourceStackAllocationIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 25197, ~: 22550)
LibContextHashTest:testFuzzHash0() (gas: 3552)
LibContextHashTest:testHash(uint256) (runs: 2048, μ: 282, ~: 282)
LibContextHashTest:testHashGas0() (gas: 208)
LibContextHashTest:testSignedContextArrayHashReferenceImplementation((address,bytes32[],bytes)[]) (runs: 100, μ: 2616738, ~: 2348780)
LibContextHashTest:testSignedContextArrayHashReferenceImplementation0() (gas: 2190)
LibContextHashTest:testSignedContextHashEncodeGas0() (gas: 1683)
LibContextHashTest:testSignedContextHashGas0() (gas: 827)
LibContextHashTest:testSignedContextHashReferenceImplementation((address,bytes32[],bytes)) (runs: 100, μ: 13613, ~: 13205)
LibContextTest:testBase() (gas: 616)
LibContextTest:testBuild0() (gas: 5028)
LibContextTest:testBuildGas0() (gas: 962)
LibContextTest:testBuildStructureReferenceImplementation(bytes32[][]) (runs: 100, μ: 4643768, ~: 4795790)
LibDeployerDiscoverableTest:testTouchDeployerV4Mock() (gas: 184831)
LibEncodedDispatchTest:testRoundTrip(address,uint256,uint16) (runs: 2048, μ: 4498, ~: 4781)
LibEvaluableTest:testEvaluableV2HashDifferent((address,address,address),(address,address,address)) (runs: 2048, μ: 4238, ~: 4238)
LibEvaluableTest:testEvaluableV2HashGas0() (gas: 297)
LibEvaluableTest:testEvaluableV2HashGasSlow0() (gas: 583)
LibEvaluableTest:testEvaluableV2HashSame((address,address,address)) (runs: 2048, μ: 1006, ~: 1006)
LibEvaluableTest:testEvaluableV2HashSensitivity((address,address,address),(address,address,address)) (runs: 2045, μ: 6002, ~: 6002)
LibEvaluableTest:testEvaluableV2KnownHash() (gas: 354)
LibEvaluableTest:testEvaluableV2ReferenceImplementation((address,address,address)) (runs: 2048, μ: 1070, ~: 1070)
LibEvaluableTest:testEvaluableV3BytecodeLengthSensitivity() (gas: 901)
LibEvaluableTest:testEvaluableV3HashDifferent((address,address,bytes),(address,address,bytes)) (runs: 2048, μ: 5194, ~: 5192)
LibEvaluableTest:testEvaluableV3HashGas0() (gas: 431)
LibEvaluableTest:testEvaluableV3HashGasSlow0() (gas: 764)
LibEvaluableTest:testEvaluableV3HashSame((address,address,bytes)) (runs: 2048, μ: 1605, ~: 1594)
LibEvaluableTest:testEvaluableV3HashSensitivity((address,address,bytes),(address,address,bytes)) (runs: 2047, μ: 8339, ~: 8312)
LibEvaluableTest:testEvaluableV3KnownHash() (gas: 604)
LibEvaluableTest:testEvaluableV3ReferenceImplementation((address,address,bytes)) (runs: 2048, μ: 1711, ~: 1700)
LibGenParseMetaBuildMetaTest:testBuildMeta((bytes32,string)[]) (runs: 746, μ: 3740032, ~: 2814714)
LibGenParseMetaBuildMetaTest:testRoundMetaExpanderDeeper((bytes32,string)[],uint8,bytes32) (runs: 364, μ: 6840949, ~: 6501238)
LibGenParseMetaBuildMetaTest:testRoundMetaExpanderShallow((bytes32,string)[],uint8,bytes32) (runs: 717, μ: 3598305, ~: 2882702)
LibGenParseMetaFindExpanderTest:testFindExpanderSmall((bytes32,string)[]) (runs: 254, μ: 43912, ~: 33558)
LibNamespaceTest:testQualifyNamespaceGas0(uint256,address) (runs: 2048, μ: 362, ~: 362)
LibNamespaceTest:testQualifyNamespaceGasSlow0(uint256,address) (runs: 2048, μ: 569, ~: 569)
LibNamespaceTest:testQualifyNamespaceReferenceImplementation(uint256,address) (runs: 2048, μ: 726, ~: 726)
LitParseMetaTest:testWordBitmapped(uint256,bytes32) (runs: 2048, μ: 969, ~: 969)
LibBloomTest:testLibBloomNoFalseNegatives(bytes32[],uint256,uint256) (runs: 1970, μ: 40231, ~: 34931)
LibBloomTest:testLibBloomVaguelyAvoidsFalsePositives(uint256,uint8) (runs: 2048, μ: 1552760, ~: 23505)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers0() (gas: 421)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers1() (gas: 449)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointers1Fail(bytes) (runs: 2022, μ: 5968, ~: 5949)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersConforming(bytes,uint256,bytes32) (runs: 2048, μ: 18014, ~: 15878)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptOffsetPointer(bytes,uint8,bytes32,uint8) (runs: 1349, μ: 23977, ~: 21571)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptOpsCount(bytes,uint8,bytes32,uint8) (runs: 1406, μ: 24561, ~: 22378)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersCorruptSourcesCount(bytes,uint8,bytes32,uint8) (runs: 1875, μ: 20024, ~: 18910)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersEndGarbage(bytes,bytes) (runs: 2023, μ: 17034, ~: 15942)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersHeaderTruncated(bytes,uint8,bytes32,uint256) (runs: 1472, μ: 25909, ~: 23510)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersInputsNotMonotonic(bytes,uint8,bytes32,uint256,uint256) (runs: 1482, μ: 28400, ~: 26010)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersOffsetsTruncated(bytes,uint8,uint256) (runs: 1755, μ: 10515, ~: 10554)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersOutputsNotMonotonic(bytes,uint8,bytes32,uint256,uint256) (runs: 1482, μ: 28390, ~: 26146)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersSourceTruncated(bytes,uint8,bytes32,uint8) (runs: 1406, μ: 24741, ~: 22550)
LibBytecodeCheckNoOOBPointersTest:testCheckNoOOBPointersTrailingOffsetBytes(bytes,bytes,uint8,bytes32) (runs: 1479, μ: 28945, ~: 25847)
LibBytecodeSourceCountTest:testSourceCount0() (gas: 343)
LibBytecodeSourceCountTest:testSourceCount1(bytes) (runs: 2037, μ: 3611, ~: 3608)
LibBytecodeSourceCountTest:testSourceCountReference(bytes) (runs: 2048, μ: 827, ~: 824)
LibBytecodeSourceInputsOutputsTest:testSourceInputsOutputsAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1661, μ: 26341, ~: 22906)
LibBytecodeSourceInputsOutputsTest:testSourceInputsOutputsIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 23602, ~: 21047)
LibBytecodeSourceOpsCountTest:testSourceOpsCount() (gas: 2163)
LibBytecodeSourceOpsCountTest:testSourceOpsCountAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1659, μ: 26295, ~: 22735)
LibBytecodeSourceOpsCountTest:testSourceOpsCountIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 23606, ~: 21108)
LibBytecodeSourcePointerTest:testSourcePointerAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1640, μ: 26289, ~: 22593)
LibBytecodeSourcePointerTest:testSourcePointerEmpty0(uint256) (runs: 2048, μ: 5407, ~: 5407)
LibBytecodeSourcePointerTest:testSourcePointerEmpty1(uint256) (runs: 2048, μ: 5486, ~: 5486)
LibBytecodeSourcePointerTest:testSourcePointerIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 23572, ~: 21102)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetHappy() (gas: 1215)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetIndexError() (gas: 85666)
LibBytecodeSourceRelativeOffsetTest:testSourceRelativeOffsetReference(bytes,uint256,uint256,bytes32) (runs: 1652, μ: 25544, ~: 22042)
LibBytecodeSourceStackAllocationTest:testSourceStackAllocationAgainstSlow(bytes,uint256,uint256,bytes32) (runs: 1630, μ: 26518, ~: 23055)
LibBytecodeSourceStackAllocationTest:testSourceStackAllocationIndexOutOfBounds(bytes,uint256,uint256,bytes32) (runs: 2048, μ: 23528, ~: 21105)
LibContextHashTest:testFuzzHash0() (gas: 3537)
LibContextHashTest:testHash(uint256) (runs: 2048, μ: 279, ~: 279)
LibContextHashTest:testHashGas0() (gas: 206)
LibContextHashTest:testSignedContextArrayHashReferenceImplementation((address,bytes32[],bytes)[]) (runs: 100, μ: 2614880, ~: 2346946)
LibContextHashTest:testSignedContextArrayHashReferenceImplementation0() (gas: 2172)
LibContextHashTest:testSignedContextHashEncodeGas0() (gas: 1441)
LibContextHashTest:testSignedContextHashGas0() (gas: 824)
LibContextHashTest:testSignedContextHashReferenceImplementation((address,bytes32[],bytes)) (runs: 100, μ: 13598, ~: 13190)
LibContextTest:testBase() (gas: 611)
LibContextTest:testBuild0() (gas: 5010)
LibContextTest:testBuildGas0() (gas: 953)
LibContextTest:testBuildStructureReferenceImplementation(bytes32[][]) (runs: 100, μ: 4645490, ~: 4797429)
LibDeployerDiscoverableTest:testTouchDeployerV4Mock() (gas: 175612)
LibEncodedDispatchTest:testRoundTrip(address,uint256,uint16) (runs: 2048, μ: 4406, ~: 4681)
LibEvaluableTest:testEvaluableV2HashDifferent((address,address,address),(address,address,address)) (runs: 2048, μ: 4233, ~: 4233)
LibEvaluableTest:testEvaluableV2HashGas0() (gas: 295)
LibEvaluableTest:testEvaluableV2HashGasSlow0() (gas: 580)
LibEvaluableTest:testEvaluableV2HashSame((address,address,address)) (runs: 2048, μ: 1003, ~: 1003)
LibEvaluableTest:testEvaluableV2HashSensitivity((address,address,address),(address,address,address)) (runs: 2045, μ: 5990, ~: 5990)
LibEvaluableTest:testEvaluableV2KnownHash() (gas: 353)
LibEvaluableTest:testEvaluableV2ReferenceImplementation((address,address,address)) (runs: 2048, μ: 1066, ~: 1066)
LibEvaluableTest:testEvaluableV3BytecodeLengthSensitivity() (gas: 898)
LibEvaluableTest:testEvaluableV3HashDifferent((address,address,bytes),(address,address,bytes)) (runs: 2048, μ: 5185, ~: 5183)
LibEvaluableTest:testEvaluableV3HashGas0() (gas: 429)
LibEvaluableTest:testEvaluableV3HashGasSlow0() (gas: 758)
LibEvaluableTest:testEvaluableV3HashSame((address,address,bytes)) (runs: 2048, μ: 1599, ~: 1588)
LibEvaluableTest:testEvaluableV3HashSensitivity((address,address,bytes),(address,address,bytes)) (runs: 2044, μ: 8320, ~: 8293)
LibEvaluableTest:testEvaluableV3KnownHash() (gas: 602)
LibEvaluableTest:testEvaluableV3ReferenceImplementation((address,address,bytes)) (runs: 2048, μ: 1704, ~: 1693)
LibGenParseMetaBuildMetaTest:testBuildMeta((bytes32,string)[]) (runs: 745, μ: 3674384, ~: 2813977)
LibGenParseMetaBuildMetaTest:testRoundMetaExpanderDeeper((bytes32,string)[],uint8,bytes32) (runs: 366, μ: 6652382, ~: 6359523)
LibGenParseMetaBuildMetaTest:testRoundMetaExpanderShallow((bytes32,string)[],uint8,bytes32) (runs: 715, μ: 3521627, ~: 3137421)
LibGenParseMetaFindExpanderTest:testFindExpanderSmall((bytes32,string)[]) (runs: 254, μ: 41946, ~: 33181)
LibNamespaceTest:testQualifyNamespaceGas0(uint256,address) (runs: 2048, μ: 359, ~: 359)
LibNamespaceTest:testQualifyNamespaceGasSlow0(uint256,address) (runs: 2048, μ: 566, ~: 566)
LibNamespaceTest:testQualifyNamespaceReferenceImplementation(uint256,address) (runs: 2048, μ: 722, ~: 722)
LitParseMetaTest:testWordBitmapped(uint256,bytes32) (runs: 2048, μ: 960, ~: 960)
16 changes: 8 additions & 8 deletions foundry.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@
"rev": "b8f065fda83b8cd94a6b2fec8fcd911dc3b444fd"
},
"lib/openzeppelin-contracts": {
"rev": "dc44c9f1a4c3b10af99492eed84f83ed244203f6"
"rev": "fcbae5394ae8ad52d8e580a3477db99814b9d565"
},
"lib/rain.intorastring": {
"rev": "82bc048226050a0e33c01c9f4282f3349a27e491"
"rev": "f92fa66a5f8601bee55692488a198c0a79715707"
},
"lib/rain.lib.hash": {
"rev": "97609eecc66fe2e30f37e48834eed4a71304af32"
"rev": "9677b7063fc9ae8c580636760474719d910c2134"
},
"lib/rain.lib.typecast": {
"rev": "6bf6e0e63bfbff37d9057332ff042a8158397681"
"rev": "1eaa22e7290f97903daed752aa28d0d646e0199b"
},
"lib/rain.math.binary": {
"rev": "54450d62a89be456d07db1b9508f3b8a24dbb5f8"
"rev": "f44f846a43928ba0a7ed4a7bb810a8933e23cce1"
},
"lib/rain.math.float": {
"rev": "35b7b3980cdeab2f245dad17ee84658c1065648d"
"rev": "150f48bb909dd5f8970726d515c87c5257107699"
},
"lib/rain.sol.codegen": {
"rev": "00734d24d91db3fc4aac87c0a3c885de28449f96"
"rev": "bd7993b3f6b301e5a667ff687f25b80fdda878cd"
},
"lib/rain.solmem": {
"rev": "c1c22cf27963a9de0889ebf7f52869050f1fdfb9"
"rev": "f28da2f09d42d154783cb53c138a7ef2f3a9eb4a"
}
}
2 changes: 1 addition & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ solc = "0.8.25"
optimizer = true
optimizer_runs = 1000000

evm_version = "paris"
evm_version = "cancun"

bytecode_hash = "none"
cbor_metadata = false
Expand Down
2 changes: 1 addition & 1 deletion lib/openzeppelin-contracts
2 changes: 1 addition & 1 deletion lib/rain.intorastring
2 changes: 1 addition & 1 deletion lib/rain.lib.hash
Submodule rain.lib.hash updated 2 files
+17 −17 .gas-snapshot
+1 −1 foundry.toml
2 changes: 1 addition & 1 deletion lib/rain.lib.typecast
2 changes: 1 addition & 1 deletion lib/rain.math.binary
Submodule rain.math.binary updated 1 files
+1 −1 foundry.toml
4 changes: 2 additions & 2 deletions src/lib/caller/LibContext.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol";
import {LibHashNoAlloc, HASH_NIL} from "rain.lib.hash/LibHashNoAlloc.sol";

import {SignatureChecker} from "openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol";
import {ECDSA} from "openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol";
import {MessageHashUtils} from "openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol";

import {
SignedContextV1,
Expand Down Expand Up @@ -192,7 +192,7 @@ library LibContext {
// a single encoded output.
!SignatureChecker.isValidSignatureNow(
signedContexts[i].signer,
ECDSA.toEthSignedMessageHash(LibHashNoAlloc.hashWords(signedContexts[i].context)),
MessageHashUtils.toEthSignedMessageHash(LibHashNoAlloc.hashWords(signedContexts[i].context)),
signedContexts[i].signature
)
) {
Expand Down
4 changes: 2 additions & 2 deletions test/src/lib/caller/LibContext.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
pragma solidity =0.8.25;

import {Test} from "forge-std/Test.sol";
import {LibContext, ECDSA, LibHashNoAlloc, SignedContextV1} from "src/lib/caller/LibContext.sol";
import {LibContext, MessageHashUtils, LibHashNoAlloc, SignedContextV1} from "src/lib/caller/LibContext.sol";
import {LibContextSlow} from "./LibContextSlow.sol";

contract LibContextTest is Test {
Expand All @@ -28,7 +28,7 @@ contract LibContextTest is Test {
bytes32 signerPrivateKey = bytes32(0x61b952d0c26214380daf3ca0a8ec9316682d63673db12d723c30417c86dbfca2);
(signerPrivateKey);

bytes32 toSign = ECDSA.toEthSignedMessageHash(LibHashNoAlloc.hashWords(unsignedContext));
bytes32 toSign = MessageHashUtils.toEthSignedMessageHash(LibHashNoAlloc.hashWords(unsignedContext));
(toSign);

SignedContextV1[] memory signedContexts = new SignedContextV1[](1);
Expand Down