-
Notifications
You must be signed in to change notification settings - Fork 1
2025 10 21 audit #160
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
2025 10 21 audit #160
Conversation
WalkthroughUpdated several git submodule pointers ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
🔇 Additional comments (1)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (2)
flake.lockis excluded by!**/*.lockfoundry.lockis excluded by!**/*.lock
📒 Files selected for processing (2)
lib/forge-std(1 hunks)lib/rain.datacontract(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: git-clean
- GitHub Check: rainix (macos-latest, rainix-rs-test)
🔇 Additional comments (1)
lib/forge-std (1)
1-1: The review comment references an incorrect commit hash—the actual submodule is not at the stated commit.The review comment asks to verify commit
b8f065fda83b8cd94a6b2fec8fcd911dc3b444fd, which does exist on the official forge-std master branch. However, the actual submodule HEAD in this PR is9fcad76bf17cf34ff971a24d4ac4f3cabe3d420a, which does not exist in any branch or tag of the official forge-std repository (foundry-rs/forge-std). This indicates either:
- The submodule is pointing to a fork not visible in the official repository, or
- The submodule reference is corrupted/invalid
The review comment's verification guidance is based on the wrong commit and therefore does not apply to the actual code changes.
Likely an incorrect or invalid review comment.
| @@ -1 +1 @@ | |||
| Subproject commit f46d8301cf732f4f83846565aa475628265e51e0 | |||
| Subproject commit b8f065fda83b8cd94a6b2fec8fcd911dc3b444fd | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Provide comprehensive PR description with audit scope and rationale.
The PR description is empty with no Motivation or Solution provided. All checklist items are unchecked, indicating insufficient vetting. For a submodule dependency update, especially labeled as an "audit," you must document:
- What specific audit or security concern prompted this update?
- What changes are included in the new forge-std commit?
- Are there any breaking changes or API modifications?
- What is the scope and impact of this audit?
Please update the PR description with clear motivation and document any changes or concerns identified during the audit.
🤖 Prompt for AI Agents
In lib/forge-std around lines 1 to 1, the PR description is empty and missing
the required audit scope and rationale; update the PR description to (1) state
the specific audit or security concern that prompted the submodule update, (2)
list the exact forge-std commit(s)/diff and summarize the changes included, (3)
call out any breaking changes or API modifications and migration steps if
applicable, and (4) describe the scope and impact of the audit (affected
components, tests run, and risk assessment), and mark checklist items
accordingly so reviewers can validate the update.
| @@ -1 +1 @@ | |||
| Subproject commit d5d4084e67667b09e7a649e5dbcdee2dedced13e | |||
| Subproject commit 9c8d6e64208fb1788ba38cec942e9234725f134d | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR description is incomplete and PR checklist is unchecked.
The PR description contains only placeholder sections with no actual Motivation or Solution provided. Additionally, all items in the PR checklist are unchecked. For a submodule audit update, please:
- Complete the PR description explaining the motivation for the audit and what changes are included.
- Link any relevant audit issues or findings.
- Verify and check off the applicable PR checklist items (unit tests, linked issues, etc.).
This information is essential for reviewers to understand the scope and rationale of the update.
🤖 Prompt for AI Agents
In lib/rain.datacontract around lines 1 to 1, the pull request description and
checklist are incomplete; update the PR description to include a clear
Motivation (why the submodule audit was done), a concise Solution summary (what
was changed in this update), and any relevant details about scope or impact; add
links to the audit report, issue tracker entries, or findings (provide issue/PR
numbers or URLs), and verify and check off the applicable PR checklist items
(unit tests added/updated, linked issues, documentation updates, security/audit
confirmations) so reviewers have context and can validate the change.
🧩 Analysis chain
Verify submodule commit exists and review its contents.
Submodule updates should be explicitly audited. Verify that the target commit 9c8d6e64208fb1788ba38cec942e9234725f134d is reachable and understand what changes it introduces.
🏁 Script executed:
#!/bin/bash
# Description: Verify the submodule commit and inspect its contents
cd lib/rain.datacontract 2>/dev/null || {
echo "Submodule not initialized. Attempting to initialize..."
git submodule update --init lib/rain.datacontract
cd lib/rain.datacontract || exit 1
}
# Verify the commit exists
git cat-file -t 9c8d6e64208fb1788ba38cec942e9234725f134d && echo "✓ Commit exists" || echo "✗ Commit not found"
# Show the commit message and author
git log -1 --format="%H %s by %an <%ae>" 9c8d6e64208fb1788ba38cec942e9234725f134d
# Show the diff from the previous commit (to understand what changed)
git log -1 --format="%H" > /dev/null && echo "Recent commit log:" && git log --oneline -10Length of output: 777
Submodule reference points to non-existent commit—cannot merge.
The commit hash 9c8d6e64208fb1788ba38cec942e9234725f134d in the updated submodule pointer does not exist or is unreachable in the rain.datacontract remote. The verification returned fatal: remote error: upload-pack: not our ref.
Correct the submodule reference to an existing, reachable commit on the target branch before this PR can be merged.
🤖 Prompt for AI Agents
In lib/rain.datacontract around lines 1-1 the submodule pointer references
commit 9c8d6e64208fb1788ba38cec942e9234725f134d which is not present on the
remote; update the superproject to point to a reachable commit by checking out
the submodule, fetching the remote refs, and resetting to a valid commit or
branch, then commit the updated submodule SHA in the superproject: e.g., run cd
path/to/rain.datacontract && git fetch --all && git checkout
<valid-commit-or-branch> && cd .. && git add lib/rain.datacontract && git commit
-m "Update rain.datacontract submodule to reachable commit" (or alternatively
use git submodule update --init --remote and verify with git ls-remote to
confirm the chosen SHA exists) before pushing the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
foundry.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
lib/rain.math.fixedpoint(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-static)
- GitHub Check: git-clean
- GitHub Check: rainix (ubuntu-latest, rainix-sol-legal)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-test)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-test)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-static)
- GitHub Check: rainix (macos-latest, rainix-rs-test)
- GitHub Check: rainix (ubuntu-latest, test-wasm-build)
- GitHub Check: rainix (macos-latest, rainix-sol-legal)
🔇 Additional comments (1)
lib/rain.math.fixedpoint (1)
1-1: Only rain.math.fixedpoint was updated; forge-std and rain.datacontract remain unchanged.The review comment incorrectly claims the PR updates three submodules. Verification shows only
lib/rain.math.fixedpointwas updated (from21fbc5f0216229c769585e7772204011b5f3cbd6to9ca0634452dc201f3c51c08f926febc2b75c30d4), whilelib/forge-stdandlib/rain.datacontractretain their previous commits. The new commit for rain.math.fixedpoint is valid and resolvable.Likely an incorrect or invalid review comment.
lib/rain.math.fixedpoint
Outdated
| @@ -1 +1 @@ | |||
| Subproject commit 21fbc5f0216229c769585e7772204011b5f3cbd6 | |||
| Subproject commit 9ca0634452dc201f3c51c08f926febc2b75c30d4 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incomplete PR description blocks merge.
The PR description contains placeholder sections (Motivation and Solution are empty) and provides no context for why these submodule updates are being made. This makes it impossible to assess the impact and purpose of the changes.
Update the PR description to include:
- Clear motivation for updating these three submodules
- What changes in each submodule are being incorporated
- Whether this is part of an audit or regular dependency update
- Any breaking changes or migration notes
🤖 Prompt for AI Agents
In lib/rain.math.fixedpoint around lines 1 to 1, the PR description contains
placeholder sections and is missing motivation and change details; update the PR
description to (1) state why these three submodules are being updated (purpose:
audit, security, feature, or routine dependency bump), (2) enumerate the
specific changes being pulled into each submodule (brief bullet-style list per
submodule: files/versions/behavioral changes), (3) indicate if this is part of
an audit or regular dependency update, and (4) list any breaking changes or
migration steps required (API changes, data migrations, or upgrade notes) so
reviewers can assess impact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
lib/rain.math.fixedpoint (1)
1-1: [DUPLICATE] Incomplete PR description still blocks merge.The previous review comment on this PR flagged that the PR description contains placeholder sections (Motivation and Solution are empty) and provides no context for why these submodule updates are being made. This issue remains unresolved. The PR title suggests this is related to an audit ("2025 10 21 audit"), but the description provides no details.
Before proceeding, the PR description must be updated to include:
- Motivation: Why are these four submodules being updated now? (audit findings, security patch, feature requirement, etc.)
- Specific changes per submodule: What functional changes, if any, are being pulled in?
- Testing & validation: How were these updates tested? What audit checks or acceptance criteria apply?
- Breaking changes: Are there any API changes, migration steps, or data migrations required?
Additionally, please verify:
- All four submodule updates (forge-std, rain.datacontract, rain.math.fixedpoint, rain.string) are intentional and coordinated.
- Each commit hash exists and is stable (not a WIP or temporary branch).
- All related tests pass with these updated dependencies.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
foundry.lockis excluded by!**/*.lock
📒 Files selected for processing (2)
lib/rain.math.fixedpoint(1 hunks)lib/rain.string(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: git-clean
- GitHub Check: rainix (macos-latest, rainix-sol-legal)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-test)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-static)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-static)
- GitHub Check: rainix (ubuntu-latest, test-wasm-build)
- GitHub Check: rainix (macos-latest, rainix-rs-test)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-test)
🔇 Additional comments (1)
lib/rain.string (1)
1-1: Verify submodule changes and compatibility.This PR updates
lib/rain.stringfrom commit8a0a8fa...to85d0074...along with three other submodules. Before merging, verify:
- What substantive changes are present in the new submodule commits (use
git logto diff the old and new commits)?- Are there any breaking API or behavioral changes that require updates in this repository?
- Do all existing tests pass with the updated submodules?
- Are the new commits on stable branches (e.g.,
main), not detached heads?The AI summary claims "no functional, API, or behavioral changes observed," but this should be confirmed since submodule updates can introduce unexpected breaking changes.
| @@ -1 +1 @@ | |||
| Subproject commit 8a0a8fa1cfee5a809b707494524db02cdbc090b5 | |||
| Subproject commit 85d0074c8cd1fdca3285366c15bc9b44b84ad5e9 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fill in the PR description with motivation and solution details.
The PR description contains only placeholder sections with no content explaining why these submodule updates are needed. This makes it impossible to assess the scope and impact of the changes.
For a coordinated update of four git submodules (forge-std, rain.datacontract, rain.math.fixedpoint, and rain.string), provide:
- Motivation: Why were these updates needed? (audit findings, security fixes, breaking changes upstream, etc.)
- Solution: What changed in each submodule and how they relate to this PR's audit objective?
Also ensure all checklist items are verified before merge.
🤖 Prompt for AI Agents
In lib/rain.string around lines 1 to 1, the PR description is empty placeholder
text; update the PR body to include motivation and solution details for the
coordinated submodule updates. Add a "Motivation" section explaining why the
updates were required (e.g., audit findings, security fixes, breaking changes
upstream) and a "Solution" section listing each submodule (forge-std,
rain.datacontract, rain.math.fixedpoint, rain.string) with a concise summary of
what changed in that submodule and how it addresses the motivation and ties into
the audit objective; lastly, verify and document completion of the PR checklist
items (tests, CI green, changelog, compatibility notes) before merging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
foundry.lockis excluded by!**/*.lock
📒 Files selected for processing (2)
.gas-snapshot(1 hunks)lib/rain.sol.codegen(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-21T18:03:40.347Z
Learnt from: thedavidmeister
PR: rainlanguage/rain.math.float#107
File: test/lib/LibDecimalFloatSlow.sol:37-45
Timestamp: 2025-08-21T18:03:40.347Z
Learning: In test/lib/LibDecimalFloatSlow.sol, the "slow" implementation is intentionally different from the production implementation to serve as an independent reference for fuzzing tests. The goal is to have two different approaches (expensive loops vs optimized jumps) that produce equivalent results, not identical implementations.
Applied to files:
.gas-snapshot
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-legal)
- GitHub Check: rainix (macos-latest, rainix-rs-test)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-static)
- GitHub Check: rainix (ubuntu-latest, test-wasm-build)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-static)
- GitHub Check: rainix (macos-latest, rainix-sol-legal)
- GitHub Check: rainix (ubuntu-latest, rainix-sol-test)
- GitHub Check: rainix (ubuntu-latest, rainix-rs-test)
- GitHub Check: git-clean
🔇 Additional comments (3)
lib/rain.sol.codegen (1)
1-1: Verify the purpose and impact of submodule updates across the project.This PR updates multiple submodule pointers (
lib/forge-std,lib/rain.datacontract,lib/rain.math.fixedpoint,lib/rain.string,lib/rain.sol.codegen) and adjusts.gas-snapshotentries. Without context on what audit these serve, it's unclear whether these updates address security issues, bug fixes, performance improvements, or routine maintenance.Please clarify:
- What is the scope and purpose of this audit?
- Does any submodule commit address known security vulnerabilities or critical bugs?
- Are the
.gas-snapshotchanges expected as a result of the submodule updates?- Have you verified that updated commits in each submodule are stable/released versions (not work-in-progress branches)?
Consider linking to any audit reports, security advisories, or related issues that justify these changes.
.gas-snapshot (2)
1-345: Now let me run a script to check if there are actual submodule changes in this PR:The review comment addresses an unrelated file — .gas-snapshot is a Foundry test output, not a submodule configuration.
The .gas-snapshot file is generated by Foundry's forge snapshot command and contains test function gas usage data, not dependency or submodule configuration. The code snippet provided (lines 1–345) shows only gas benchmark results for DecimalFloat and LibDecimalFloat test functions, which is entirely unrelated to submodule pointer changes.
The review comment requests verification of submodule bumps and provides a script to display submodule SHAs, but this file is not a submodule-related change. If there are actual submodule pointer updates in this PR, they would be in different files (such as
.gitmodulesor as entries ingit diffoutput showing "Subproject commit" changes).Recommendation: Verify whether submodule changes exist in other files of this PR before requesting their audit. If submodules have indeed been updated, apply the submodule verification review to the correct files showing those changes.
Likely an incorrect or invalid review comment.
1-345: No gas regressions detected.The verification found no metrics with >5% increases in gas costs or mean execution time (μ). The run count variations across 16 tests are within expected bounds for fuzz tests. The
.gas-snapshotfile is properly updated with current test measurements, and all changes are acceptable.
| DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5096, μ: 3675859, ~: 3675798) | ||
| DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5096, μ: 3681285, ~: 3681358) | ||
| DecimalFloatCeilTest:testCeilDeployed(bytes32) (runs: 5096, μ: 3675776, ~: 3675374) | ||
| DecimalFloatConstantsTest:testEDeployed() (gas: 3674948) | ||
| DecimalFloatConstantsTest:testMaxNegativeValueDeployed() (gas: 3674938) | ||
| DecimalFloatConstantsTest:testMaxPositiveValueDeployed() (gas: 3674939) | ||
| DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 3674914) | ||
| DecimalFloatConstantsTest:testMinPositiveValueDeployed() (gas: 3674937) | ||
| DecimalFloatConstantsTest:testZeroDeployed() (gas: 3674959) | ||
| DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5096, μ: 3683146, ~: 3683046) | ||
| DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5096, μ: 3676157, ~: 3676080) | ||
| DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5096, μ: 3675611, ~: 3675417) | ||
| DecimalFloatFormatTest:testFormatConstants() (gas: 3675540) | ||
| DecimalFloatFormatTest:testFormatDeployed(bytes32,bytes32,bytes32) (runs: 2585, μ: 3704853, ~: 3710797) | ||
| DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5096, μ: 3675980, ~: 3675944) | ||
| DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5096, μ: 3676890, ~: 3676512) | ||
| DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5096, μ: 3676737, ~: 3676663) | ||
| DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5096, μ: 3676053, ~: 3675977) | ||
| DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5096, μ: 3676126, ~: 3676050) | ||
| DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5096, μ: 3681291, ~: 3681332) | ||
| DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5096, μ: 3675287, ~: 3675287) | ||
| DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5096, μ: 3676030, ~: 3675954) | ||
| DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5096, μ: 3676084, ~: 3676007) | ||
| DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5096, μ: 3676130, ~: 3676067) | ||
| DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5096, μ: 3676106, ~: 3676043) | ||
| DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5096, μ: 3675901, ~: 3675902) | ||
| DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5096, μ: 3680110, ~: 3680678) | ||
| DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5096, μ: 167213, ~: 167214) | ||
| DecimalFloatParseTest:testParseDeployed(string) (runs: 5096, μ: 3678233, ~: 3678101) | ||
| DecimalFloatPowTest:testPowDeployed(bytes32,bytes32) (runs: 5096, μ: 3728393, ~: 3705268) | ||
| DecimalFloatSqrtTest:testSqrtDeployed(bytes32) (runs: 5096, μ: 3693905, ~: 3693958) | ||
| DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5096, μ: 3681612, ~: 3681687) | ||
| DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5096, μ: 3679685, ~: 3679400) | ||
| DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5096, μ: 3679209, ~: 3678972) | ||
| LibDecimalFloatAbsTest:testAbsMinValue(int32) (runs: 5039, μ: 4497, ~: 4497) | ||
| LibDecimalFloatAbsTest:testAbsNegative(int256,int32) (runs: 5096, μ: 9868, ~: 10086) | ||
| LibDecimalFloatAbsTest:testAbsNonNegative(int256,int32) (runs: 5096, μ: 9031, ~: 8651) | ||
| LibDecimalFloatCeilTest:testCeilExamples() (gas: 35053) | ||
| LibDecimalFloatCeilTest:testCeilInRange(int224,int256) (runs: 5096, μ: 11142, ~: 10763) | ||
| LibDecimalFloatCeilTest:testCeilLessThanMin(int224,int256) (runs: 5096, μ: 10081, ~: 9840) | ||
| LibDecimalFloatCeilTest:testCeilNonNegative(int224,int256) (runs: 5096, μ: 8988, ~: 9237) | ||
| LibDecimalFloatCeilTest:testCeilNotReverts(bytes32) (runs: 5096, μ: 616, ~: 411) | ||
| LibDecimalFloatCeilTest:testCeilZero(int32) (runs: 5096, μ: 5428, ~: 5428) | ||
| LibDecimalFloatConstantsTest:testFloatE() (gas: 3383) | ||
| LibDecimalFloatConstantsTest:testFloatHalf() (gas: 3362) | ||
| LibDecimalFloatConstantsTest:testFloatMaxNegativeValue() (gas: 3405) | ||
| LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5074, μ: 4503, ~: 4620) | ||
| LibDecimalFloatConstantsTest:testFloatMaxPositiveValue() (gas: 3361) | ||
| LibDecimalFloatConstantsTest:testFloatMaxPositiveValueIsMax(bytes32) (runs: 5096, μ: 3544, ~: 3586) | ||
| LibDecimalFloatConstantsTest:testFloatMinNegativeValue() (gas: 3361) | ||
| LibDecimalFloatConstantsTest:testFloatMinNegativeValueIsMin(bytes32) (runs: 5096, μ: 3497, ~: 3457) | ||
| LibDecimalFloatConstantsTest:testFloatMinPositiveValue() (gas: 3383) | ||
| LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5071, μ: 4966, ~: 4896) | ||
| LibDecimalFloatConstantsTest:testFloatOne() (gas: 3384) | ||
| LibDecimalFloatConstantsTest:testFloatTwo() (gas: 3406) | ||
| LibDecimalFloatConstantsTest:testFloatZero() (gas: 3332) | ||
| LibDecimalFloatDecimalAddTest:testAddPacked(bytes32,bytes32) (runs: 5096, μ: 11224, ~: 11338) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessFail(uint256,uint8) (runs: 4585, μ: 9617, ~: 9663) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessMem(uint256,uint8) (runs: 5096, μ: 8181, ~: 8104) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessPass(uint256,uint8) (runs: 5096, μ: 8226, ~: 8200) | ||
| LibDecimalFloatCeilTest:testCeilLessThanMin(int224,int256) (runs: 5096, μ: 10082, ~: 9840) | ||
| LibDecimalFloatCeilTest:testCeilNonNegative(int224,int256) (runs: 5096, μ: 8989, ~: 9237) | ||
| LibDecimalFloatCeilTest:testCeilNotReverts(bytes32) (runs: 5096, μ: 617, ~: 411) | ||
| LibDecimalFloatCeilTest:testCeilZero(int32) (runs: 5096, μ: 1939, ~: 1939) | ||
| LibDecimalFloatConstantsTest:testFloatE() (gas: 540) | ||
| LibDecimalFloatConstantsTest:testFloatHalf() (gas: 519) | ||
| LibDecimalFloatConstantsTest:testFloatMaxNegativeValue() (gas: 562) | ||
| LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5074, μ: 4181, ~: 4298) | ||
| LibDecimalFloatConstantsTest:testFloatMaxPositiveValue() (gas: 518) | ||
| LibDecimalFloatConstantsTest:testFloatMaxPositiveValueIsMax(bytes32) (runs: 5096, μ: 713, ~: 755) | ||
| LibDecimalFloatConstantsTest:testFloatMinNegativeValue() (gas: 518) | ||
| LibDecimalFloatConstantsTest:testFloatMinNegativeValueIsMin(bytes32) (runs: 5096, μ: 666, ~: 626) | ||
| LibDecimalFloatConstantsTest:testFloatMinPositiveValue() (gas: 540) | ||
| LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5071, μ: 4644, ~: 4574) | ||
| LibDecimalFloatConstantsTest:testFloatOne() (gas: 541) | ||
| LibDecimalFloatConstantsTest:testFloatTwo() (gas: 563) | ||
| LibDecimalFloatConstantsTest:testFloatZero() (gas: 489) | ||
| LibDecimalFloatDecimalAddTest:testAddPacked(bytes32,bytes32) (runs: 5096, μ: 8071, ~: 8176) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessFail(uint256,uint8) (runs: 4581, μ: 9616, ~: 9663) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessMem(uint256,uint8) (runs: 5096, μ: 4989, ~: 4912) | ||
| LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessPass(uint256,uint8) (runs: 5096, μ: 4383, ~: 4356) | ||
| LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessFail() (gas: 4894) | ||
| LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPacked(bytes32,uint8) (runs: 5096, μ: 6672, ~: 6161) | ||
| LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPass(int256,int256,uint8) (runs: 5096, μ: 15793, ~: 15768) | ||
| LibDecimalFloatDecimalTest:testFixedDecimalRoundTripLossless(uint256,uint8) (runs: 5096, μ: 9102, ~: 9031) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyComplicated() (gas: 685958) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyMax() (gas: 673463) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOne() (gas: 686002) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOneMillion() (gas: 685937) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOverflow() (gas: 715261) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyPacked(uint256,uint8) (runs: 5096, μ: 9530, ~: 9452) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateOne(uint256,uint8) (runs: 5096, μ: 5971, ~: 5937) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateZero(uint256,uint8) (runs: 5096, μ: 6037, ~: 5860) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLosslessScaleUp(int256,int256,uint8) (runs: 2628, μ: 15964, ~: 15794) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyExponentOverflow(int256,int256,uint8) (runs: 5096, μ: 14958, ~: 14729) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyIdentity(int256,uint8) (runs: 5096, μ: 10163, ~: 9957) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyNegative(int256,int256,uint8) (runs: 5096, μ: 10825, ~: 11076) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyPacked(bytes32,uint8) (runs: 5096, μ: 6773, ~: 6905) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyScaleUpOverflow(int256,int256,uint8) (runs: 2478, μ: 15343, ~: 15612) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncate(int256,int256,uint8) (runs: 5096, μ: 14484, ~: 14210) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncateLossless() (gas: 14500) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyUnderflow(int256,int256,uint8) (runs: 5096, μ: 13740, ~: 13602) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyZero(int256,uint8) (runs: 5096, μ: 4575, ~: 4575) | ||
| LibDecimalFloatDivTest:testDivByNegativeOneFloat(int224,int32) (runs: 5096, μ: 363066, ~: 359444) | ||
| LibDecimalFloatDivTest:testDivByOneFloat(int224,int32) (runs: 5096, μ: 339115, ~: 337119) | ||
| LibDecimalFloatDivTest:testDivPacked(bytes32,bytes32) (runs: 5096, μ: 12730, ~: 12880) | ||
| LibDecimalFloatEqTest:testEqPacked(bytes32,bytes32) (runs: 5096, μ: 5526, ~: 5450) | ||
| LibDecimalFloatEqTest:testEqXNotYExponents(bytes32,bytes32) (runs: 5096, μ: 4344, ~: 4234) | ||
| LibDecimalFloatEqTest:testEqZero(int32) (runs: 5096, μ: 5123, ~: 5123) | ||
| LibDecimalFloatFloorTest:testFloorExamples() (gas: 39140) | ||
| LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPacked(bytes32,uint8) (runs: 5096, μ: 6306, ~: 6161) | ||
| LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPass(int256,int256,uint8) (runs: 5096, μ: 14483, ~: 14456) | ||
| LibDecimalFloatDecimalTest:testFixedDecimalRoundTripLossless(uint256,uint8) (runs: 5096, μ: 4636, ~: 4565) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyComplicated() (gas: 186154) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyMax() (gas: 173659) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOne() (gas: 186198) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOneMillion() (gas: 186133) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOverflow() (gas: 215457) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyPacked(uint256,uint8) (runs: 5096, μ: 5064, ~: 4986) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateOne(uint256,uint8) (runs: 5096, μ: 1505, ~: 1469) | ||
| LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateZero(uint256,uint8) (runs: 5096, μ: 1575, ~: 1392) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLosslessScaleUp(int256,int256,uint8) (runs: 2627, μ: 14668, ~: 14546) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyExponentOverflow(int256,int256,uint8) (runs: 5096, μ: 14961, ~: 14729) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyIdentity(int256,uint8) (runs: 5096, μ: 8850, ~: 8642) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyNegative(int256,int256,uint8) (runs: 5096, μ: 10823, ~: 11076) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyPacked(bytes32,uint8) (runs: 5096, μ: 5685, ~: 5689) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyScaleUpOverflow(int256,int256,uint8) (runs: 2484, μ: 15349, ~: 15612) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncate(int256,int256,uint8) (runs: 5096, μ: 13172, ~: 12894) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncateLossless() (gas: 4181) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyUnderflow(int256,int256,uint8) (runs: 5096, μ: 12427, ~: 12286) | ||
| LibDecimalFloatDecimalTest:testToFixedDecimalLossyZero(int256,uint8) (runs: 5096, μ: 757, ~: 757) | ||
| LibDecimalFloatDivTest:testDivByNegativeOneFloat(int224,int32) (runs: 5096, μ: 341822, ~: 338189) | ||
| LibDecimalFloatDivTest:testDivByOneFloat(int224,int32) (runs: 5096, μ: 317864, ~: 315864) | ||
| LibDecimalFloatDivTest:testDivPacked(bytes32,bytes32) (runs: 5096, μ: 9821, ~: 9750) | ||
| LibDecimalFloatEqTest:testEqPacked(bytes32,bytes32) (runs: 5096, μ: 2699, ~: 2624) | ||
| LibDecimalFloatEqTest:testEqXNotYExponents(bytes32,bytes32) (runs: 5096, μ: 1505, ~: 1396) | ||
| LibDecimalFloatEqTest:testEqZero(int32) (runs: 5096, μ: 1624, ~: 1624) | ||
| LibDecimalFloatFloorTest:testFloorExamples() (gas: 21402) | ||
| LibDecimalFloatFloorTest:testFloorGas0() (gas: 1003) | ||
| LibDecimalFloatFloorTest:testFloorGasTiny() (gas: 902) | ||
| LibDecimalFloatFloorTest:testFloorGasZero() (gas: 548) | ||
| LibDecimalFloatFloorTest:testFloorInRange(int224,int256) (runs: 5096, μ: 11105, ~: 11130) | ||
| LibDecimalFloatFloorTest:testFloorLessThanMin(int224,int256) (runs: 5096, μ: 10304, ~: 10314) | ||
| LibDecimalFloatFloorTest:testFloorNonNegative(int224,int256) (runs: 5096, μ: 9596, ~: 9851) | ||
| LibDecimalFloatFloorTest:testFloorInRange(int224,int256) (runs: 5096, μ: 10437, ~: 10462) | ||
| LibDecimalFloatFloorTest:testFloorLessThanMin(int224,int256) (runs: 5096, μ: 9636, ~: 9646) | ||
| LibDecimalFloatFloorTest:testFloorNonNegative(int224,int256) (runs: 5096, μ: 8928, ~: 9183) | ||
| LibDecimalFloatFloorTest:testFloorNotReverts(bytes32) (runs: 5096, μ: 464, ~: 365) | ||
| LibDecimalFloatFracTest:testFracExamples() (gas: 64760) | ||
| LibDecimalFloatFracTest:testFracExamples() (gas: 37092) | ||
| LibDecimalFloatFracTest:testFracGas0() (gas: 1003) | ||
| LibDecimalFloatFracTest:testFracGasTiny() (gas: 888) | ||
| LibDecimalFloatFracTest:testFracGasZero() (gas: 810) | ||
| LibDecimalFloatFracTest:testFracInRange(int224,int256) (runs: 5096, μ: 10923, ~: 10934) | ||
| LibDecimalFloatFracTest:testFracLessThanMin(int224,int256) (runs: 5096, μ: 10340, ~: 10351) | ||
| LibDecimalFloatFracTest:testFracNonNegative(int224,int256) (runs: 5096, μ: 9833, ~: 10087) | ||
| LibDecimalFloatFracTest:testFracInRange(int224,int256) (runs: 5096, μ: 10255, ~: 10266) | ||
| LibDecimalFloatFracTest:testFracLessThanMin(int224,int256) (runs: 5096, μ: 9672, ~: 9683) | ||
| LibDecimalFloatFracTest:testFracNonNegative(int224,int256) (runs: 5096, μ: 9166, ~: 9419) | ||
| LibDecimalFloatFracTest:testFracNotReverts(bytes32) (runs: 5096, μ: 637, ~: 616) | ||
| LibDecimalFloatGtTest:testGtGasAZero() (gas: 994) | ||
| LibDecimalFloatGtTest:testGtGasBZero() (gas: 994) | ||
| LibDecimalFloatGtTest:testGtGasBothZero() (gas: 746) | ||
| LibDecimalFloatGtTest:testGtGasDifferentSigns() (gas: 1026) | ||
| LibDecimalFloatGtTest:testGtGasExponentDiffOverflow() (gas: 1195) | ||
| LibDecimalFloatGtTest:testGtOneEAny(bytes32) (runs: 5096, μ: 3494, ~: 3494) | ||
| LibDecimalFloatGtTest:testGtReference(int224,int32,int224,int32) (runs: 5096, μ: 8166, ~: 6585) | ||
| LibDecimalFloatGtTest:testGtX(int224,int32) (runs: 5096, μ: 3907, ~: 3908) | ||
| LibDecimalFloatGtTest:testGtXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 10640, ~: 10384) | ||
| LibDecimalFloatGtTest:testGtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 11200, ~: 11401) | ||
| LibDecimalFloatGtTest:testGtXNotY(bytes32,bytes32) (runs: 5096, μ: 4343, ~: 4232) | ||
| LibDecimalFloatGtTest:testGtXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 13810, ~: 13647) | ||
| LibDecimalFloatGtTest:testGtXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 10290, ~: 10047) | ||
| LibDecimalFloatGtTest:testGtZero(int32,int32) (runs: 5096, μ: 4783, ~: 4783) | ||
| LibDecimalFloatGtTest:testGtOneEAny(bytes32) (runs: 5096, μ: 663, ~: 663) | ||
| LibDecimalFloatGtTest:testGtReference(int224,int32,int224,int32) (runs: 5096, μ: 5324, ~: 3735) | ||
| LibDecimalFloatGtTest:testGtX(int224,int32) (runs: 5096, μ: 1076, ~: 1077) | ||
| LibDecimalFloatGtTest:testGtXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 9970, ~: 9715) | ||
| LibDecimalFloatGtTest:testGtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 10532, ~: 10733) | ||
| LibDecimalFloatGtTest:testGtXNotY(bytes32,bytes32) (runs: 5096, μ: 1506, ~: 1395) | ||
| LibDecimalFloatGtTest:testGtXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 13138, ~: 12975) | ||
| LibDecimalFloatGtTest:testGtXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 9629, ~: 9387) | ||
| LibDecimalFloatGtTest:testGtZero(int32,int32) (runs: 5096, μ: 1630, ~: 1630) | ||
| LibDecimalFloatGteTest:testGteGasAZero() (gas: 997) | ||
| LibDecimalFloatGteTest:testGteGasBZero() (gas: 1041) | ||
| LibDecimalFloatGteTest:testGteGasBothZero() (gas: 748) | ||
| LibDecimalFloatGteTest:testGteGasDifferentSigns() (gas: 1048) | ||
| LibDecimalFloatGteTest:testGteGasExponentDiffOverflow() (gas: 1154) | ||
| LibDecimalFloatGteTest:testGteOneEAny(bytes32) (runs: 5096, μ: 3494, ~: 3494) | ||
| LibDecimalFloatGteTest:testGteReference(int224,int32,int224,int32) (runs: 5096, μ: 8209, ~: 6618) | ||
| LibDecimalFloatGteTest:testGteX(int224,int32) (runs: 5096, μ: 3950, ~: 3951) | ||
| LibDecimalFloatGteTest:testGteXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 10671, ~: 10416) | ||
| LibDecimalFloatGteTest:testGteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 11211, ~: 11413) | ||
| LibDecimalFloatGteTest:testGteXNotLtY(bytes32,bytes32) (runs: 5096, μ: 3950, ~: 3873) | ||
| LibDecimalFloatGteTest:testGteXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 13838, ~: 13675) | ||
| LibDecimalFloatGteTest:testGteXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 9570, ~: 9191) | ||
| LibDecimalFloatGteTest:testGteZero(int32,int32) (runs: 5096, μ: 4828, ~: 4828) | ||
| LibDecimalFloatImplementationAddTest:testAdd123456789987654321() (gas: 5327) | ||
| LibDecimalFloatImplementationAddTest:testAdd123456789e9987654321() (gas: 5377) | ||
| LibDecimalFloatGteTest:testGteOneEAny(bytes32) (runs: 5096, μ: 663, ~: 663) | ||
| LibDecimalFloatGteTest:testGteReference(int224,int32,int224,int32) (runs: 5096, μ: 5373, ~: 3781) | ||
| LibDecimalFloatGteTest:testGteX(int224,int32) (runs: 5096, μ: 1119, ~: 1120) | ||
| LibDecimalFloatGteTest:testGteXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 10001, ~: 9747) | ||
| LibDecimalFloatGteTest:testGteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 10545, ~: 10745) | ||
| LibDecimalFloatGteTest:testGteXNotLtY(bytes32,bytes32) (runs: 5096, μ: 1112, ~: 1036) | ||
| LibDecimalFloatGteTest:testGteXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 13165, ~: 13003) | ||
| LibDecimalFloatGteTest:testGteXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 9231, ~: 8857) | ||
| LibDecimalFloatGteTest:testGteZero(int32,int32) (runs: 5096, μ: 1675, ~: 1675) | ||
| LibDecimalFloatImplementationAddTest:testAdd123456789987654321() (gas: 2153) | ||
| LibDecimalFloatImplementationAddTest:testAdd123456789e9987654321() (gas: 2203) | ||
| LibDecimalFloatImplementationAddTest:testAddNeverRevert(int256,int256,int256,int256) (runs: 5096, μ: 13740, ~: 13711) | ||
| LibDecimalFloatImplementationAddTest:testAddOneOneNotMaximized() (gas: 6950) | ||
| LibDecimalFloatImplementationAddTest:testAddOneOnePreMaximized() (gas: 4496) | ||
| LibDecimalFloatImplementationAddTest:testAddOneZero() (gas: 3644) | ||
| LibDecimalFloatImplementationAddTest:testAddOneOneNotMaximized() (gas: 3132) | ||
| LibDecimalFloatImplementationAddTest:testAddOneOnePreMaximized() (gas: 1322) | ||
| LibDecimalFloatImplementationAddTest:testAddOneZero() (gas: 470) | ||
| LibDecimalFloatImplementationAddTest:testAddRevertMaxA() (gas: 6316) | ||
| LibDecimalFloatImplementationAddTest:testAddSameExponent(int256,int256) (runs: 4332, μ: 7682, ~: 7811) | ||
| LibDecimalFloatImplementationAddTest:testAddZero() (gas: 3665) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroAnyExponent(int128) (runs: 5096, μ: 9293, ~: 9271) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroOne() (gas: 3664) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroToAnyNonZero(int256,int256,int256) (runs: 5046, μ: 14050, ~: 14015) | ||
| LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeExamples() (gas: 107395) | ||
| LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeFuzz(int256,int256,int256,int256) (runs: 2462, μ: 18263, ~: 18319) | ||
| LibDecimalFloatImplementationAddTest:testAddSameExponent(int256,int256) (runs: 4332, μ: 6364, ~: 6493) | ||
| LibDecimalFloatImplementationAddTest:testAddZero() (gas: 491) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroAnyExponent(int128) (runs: 5096, μ: 8625, ~: 8602) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroOne() (gas: 490) | ||
| LibDecimalFloatImplementationAddTest:testAddZeroToAnyNonZero(int256,int256,int256) (runs: 5046, μ: 12723, ~: 12688) | ||
| LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeExamples() (gas: 63274) | ||
| LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeFuzz(int256,int256,int256,int256) (runs: 2462, μ: 17598, ~: 17654) | ||
| LibDecimalFloatImplementationAddTest:testGasAddOne() (gas: 1861) | ||
| LibDecimalFloatImplementationAddTest:testGasAddZero() (gas: 382) | ||
| LibDecimalFloatImplementationAddTest:testOverflowChecks(int256,int256) (runs: 5096, μ: 3878, ~: 3865) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaExamples() (gas: 31315) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNegExponentLarge(int256,int256) (runs: 5096, μ: 10534, ~: 10762) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNegExponentSmall(int256) (runs: 5096, μ: 203163, ~: 203163) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNonNegExponent(int256,int256) (runs: 5096, μ: 9903, ~: 9695) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over3() (gas: 7679) | ||
| LibDecimalFloatImplementationAddTest:testOverflowChecks(int256,int256) (runs: 5096, μ: 710, ~: 697) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaExamples() (gas: 7996) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNegExponentLarge(int256,int256) (runs: 5096, μ: 9217, ~: 9446) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNegExponentSmall(int256) (runs: 5096, μ: 101838, ~: 101838) | ||
| LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaNonNegExponent(int256,int256) (runs: 5096, μ: 8588, ~: 8380) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over3() (gas: 3861) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over3Gas0() (gas: 2566) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over3Gas10() (gas: 21216) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over9Over1Over3() (gas: 16036) | ||
| LibDecimalFloatImplementationDivTest:testDiv1e18Over3() (gas: 7233) | ||
| LibDecimalFloatImplementationDivTest:testDivBy1(int256,int256) (runs: 5096, μ: 367142, ~: 371759) | ||
| LibDecimalFloatImplementationDivTest:testDivByNegativeOneFloat(int256,int256) (runs: 5096, μ: 371411, ~: 378366) | ||
| LibDecimalFloatImplementationDivTest:testDiv1Over9Over1Over3() (gas: 10876) | ||
| LibDecimalFloatImplementationDivTest:testDiv1e18Over3() (gas: 3415) | ||
| LibDecimalFloatImplementationDivTest:testDivBy1(int256,int256) (runs: 5096, μ: 267007, ~: 271637) | ||
| LibDecimalFloatImplementationDivTest:testDivByNegativeOneFloat(int256,int256) (runs: 5096, μ: 271275, ~: 278244) | ||
| LibDecimalFloatImplementationDivTest:testDivMaxPositiveValueDenominatorNotRevert(int256,int256) (runs: 5096, μ: 2606, ~: 2645) | ||
| LibDecimalFloatImplementationDivTest:testDivNegative1Over3() (gas: 7832) | ||
| LibDecimalFloatImplementationDivTest:testDivOOMs5and2() (gas: 6676) | ||
| LibDecimalFloatImplementationDivTest:testDivOOMsOverTen() (gas: 7614) | ||
| LibDecimalFloatImplementationDivTest:testDivTenOverOOMs() (gas: 7573) | ||
| LibDecimalFloatImplementationDivTest:testDivZero(int256,int256) (runs: 5096, μ: 9939, ~: 9948) | ||
| LibDecimalFloatImplementationDivTest:testUnnormalizedThreesDiv0(int256,int256) (runs: 100, μ: 29906250, ~: 29825292) | ||
| LibDecimalFloatImplementationDivTest:testDivNegative1Over3() (gas: 4014) | ||
| LibDecimalFloatImplementationDivTest:testDivOOMs5and2() (gas: 2858) | ||
| LibDecimalFloatImplementationDivTest:testDivOOMsOverTen() (gas: 3796) | ||
| LibDecimalFloatImplementationDivTest:testDivTenOverOOMs() (gas: 3755) | ||
| LibDecimalFloatImplementationDivTest:testDivZero(int256,int256) (runs: 5096, μ: 9938, ~: 9948) | ||
| LibDecimalFloatImplementationDivTest:testUnnormalizedThreesDiv0(int256,int256) (runs: 100, μ: 22201866, ~: 22117113) | ||
| LibDecimalFloatImplementationEqTest:testEqGasAZero() (gas: 430) | ||
| LibDecimalFloatImplementationEqTest:testEqGasBZero() (gas: 473) | ||
| LibDecimalFloatImplementationEqTest:testEqGasBothZero() (gas: 450) | ||
| LibDecimalFloatImplementationEqTest:testEqGasDifferentSigns() (gas: 482) | ||
| LibDecimalFloatImplementationEqTest:testEqGasExponentDiffOverflow() (gas: 533) | ||
| LibDecimalFloatImplementationEqTest:testEqNotReverts(int256,int256,int256,int256) (runs: 5096, μ: 654, ~: 679) | ||
| LibDecimalFloatImplementationEqTest:testEqOneEAny(int256,int256) (runs: 5096, μ: 3416, ~: 3416) | ||
| LibDecimalFloatImplementationEqTest:testEqReference(int256,int256,int256,int256) (runs: 5096, μ: 9885, ~: 11361) | ||
| LibDecimalFloatImplementationEqTest:testEqX(int256) (runs: 5096, μ: 3392, ~: 3392) | ||
| LibDecimalFloatImplementationEqTest:testEqXEAnyVsXEAny(int256,int256,int256) (runs: 5048, μ: 4717, ~: 4714) | ||
| LibDecimalFloatImplementationEqTest:testEqXEqY(int256,int256,int256,int256) (runs: 5096, μ: 729, ~: 753) | ||
| LibDecimalFloatImplementationEqTest:testEqXNotY(int256,int256,int256,int256) (runs: 5094, μ: 3928, ~: 3953) | ||
| LibDecimalFloatImplementationEqTest:testEqZero(int256,int256) (runs: 5096, μ: 3440, ~: 3440) | ||
| LibDecimalFloatImplementationEqTest:testEqOneEAny(int256,int256) (runs: 5096, μ: 585, ~: 585) | ||
| LibDecimalFloatImplementationEqTest:testEqReference(int256,int256,int256,int256) (runs: 5096, μ: 7036, ~: 8512) | ||
| LibDecimalFloatImplementationEqTest:testEqX(int256) (runs: 5096, μ: 561, ~: 561) | ||
| LibDecimalFloatImplementationEqTest:testEqXEAnyVsXEAny(int256,int256,int256) (runs: 5048, μ: 4040, ~: 4037) | ||
| LibDecimalFloatImplementationEqTest:testEqXEqY(int256,int256,int256,int256) (runs: 5096, μ: 728, ~: 753) | ||
| LibDecimalFloatImplementationEqTest:testEqXNotY(int256,int256,int256,int256) (runs: 5094, μ: 3606, ~: 3631) | ||
| LibDecimalFloatImplementationEqTest:testEqZero(int256,int256) (runs: 5096, μ: 609, ~: 609) | ||
| LibDecimalFloatImplementationInvTest:testInv0() (gas: 4452) | ||
| LibDecimalFloatImplementationInvTest:testInvGas0() (gas: 2248) | ||
| LibDecimalFloatImplementationInvTest:testInvReference(int256,int256) (runs: 5046, μ: 15312, ~: 15362) | ||
| LibDecimalFloatImplementationInvTest:testInvReference(int256,int256) (runs: 5046, μ: 13995, ~: 14047) | ||
| LibDecimalFloatImplementationInvTest:testInvSlowGas0() (gas: 2560) | ||
| LibDecimalFloatImplementationLog10Test:testExactLogs() (gas: 1262946) | ||
| LibDecimalFloatImplementationLog10Test:testExactLookupsLog10() (gas: 1310385) | ||
| LibDecimalFloatImplementationLog10Test:testInterpolatedLookups() (gas: 1257613) | ||
| LibDecimalFloatImplementationLog10Test:testLog10One() (gas: 1491086) | ||
| LibDecimalFloatImplementationLog10Test:testSub1() (gas: 1259292) | ||
| LibDecimalFloatImplementationLookupLogTableValTest:testLookupLogTableVal() (gas: 1371314) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedEverything(int256,int256) (runs: 5096, μ: 9797, ~: 9799) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedExamples() (gas: 192873) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedIdempotent(int256,int256) (runs: 5096, μ: 10342, ~: 10306) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedReference(int256,int256) (runs: 5096, μ: 13638, ~: 14511) | ||
| LibDecimalFloatImplementationMinusTest:testMinusIsSubZero(int256,int256,int256) (runs: 5096, μ: 12931, ~: 12907) | ||
| LibDecimalFloatImplementationMulTest:testMul123456789987654321() (gas: 5559) | ||
| LibDecimalFloatImplementationMulTest:testMul123456789987654321WithExponents(int128,int128) (runs: 5096, μ: 15072, ~: 15160) | ||
| LibDecimalFloatImplementationMulTest:testMul1_3979_0_5() (gas: 6354) | ||
| LibDecimalFloatImplementationMulTest:testMul1e181e19() (gas: 5603) | ||
| LibDecimalFloatImplementationLog10Test:testExactLogs() (gas: 1255801) | ||
| LibDecimalFloatImplementationLog10Test:testExactLookupsLog10() (gas: 1300597) | ||
| LibDecimalFloatImplementationLog10Test:testInterpolatedLookups() (gas: 1254440) | ||
| LibDecimalFloatImplementationLog10Test:testLog10One() (gas: 1437604) | ||
| LibDecimalFloatImplementationLog10Test:testSub1() (gas: 1255463) | ||
| LibDecimalFloatImplementationLookupLogTableValTest:testLookupLogTableVal() (gas: 1338351) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedEverything(int256,int256) (runs: 5096, μ: 9460, ~: 9462) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedExamples() (gas: 131443) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedIdempotent(int256,int256) (runs: 5096, μ: 9661, ~: 9624) | ||
| LibDecimalFloatImplementationMaximizeTest:testMaximizedReference(int256,int256) (runs: 5096, μ: 12969, ~: 13856) | ||
| LibDecimalFloatImplementationMinusTest:testMinusIsSubZero(int256,int256,int256) (runs: 5096, μ: 12264, ~: 12242) | ||
| LibDecimalFloatImplementationMulTest:testMul123456789987654321() (gas: 1741) | ||
| LibDecimalFloatImplementationMulTest:testMul123456789987654321WithExponents(int128,int128) (runs: 5096, μ: 13755, ~: 13844) | ||
| LibDecimalFloatImplementationMulTest:testMul1_3979_0_5() (gas: 2536) | ||
| LibDecimalFloatImplementationMulTest:testMul1e181e19() (gas: 1785) | ||
| LibDecimalFloatImplementationMulTest:testMulGasOne() (gas: 1470) | ||
| LibDecimalFloatImplementationMulTest:testMulGasZero() (gas: 325) | ||
| LibDecimalFloatImplementationMulTest:testMulMaxSignedCoefficient() (gas: 6674) | ||
| LibDecimalFloatImplementationMulTest:testMulNegativeOne() (gas: 5660) | ||
| LibDecimalFloatImplementationMulTest:testMulNegativeOneOne() (gas: 5717) | ||
| LibDecimalFloatImplementationMulTest:testMulNotRevertAnyExpectation(int256,int256,int256,int256) (runs: 5096, μ: 15322, ~: 14638) | ||
| LibDecimalFloatImplementationMulTest:testMulOneNegativeOne() (gas: 5693) | ||
| LibDecimalFloatImplementationMulTest:testMulOneOne() (gas: 5582) | ||
| LibDecimalFloatImplementationMulTest:testMulOneZero() (gas: 4481) | ||
| LibDecimalFloatImplementationMulTest:testMulZero0Exponent() (gas: 4503) | ||
| LibDecimalFloatImplementationMulTest:testMulZeroAnyExponent(int64,int64) (runs: 5096, μ: 4704, ~: 4704) | ||
| LibDecimalFloatImplementationMulTest:testMulZeroOne() (gas: 4438) | ||
| LibDecimalFloatImplementationPow10Test:testExactLookupsPow10() (gas: 1287338) | ||
| LibDecimalFloatImplementationPow10Test:testExactPows() (gas: 1258404) | ||
| LibDecimalFloatImplementationPow10Test:testInterpolatedLookupsPower() (gas: 1290173) | ||
| LibDecimalFloatImplementationPow10Test:testNoRevert(int224,int32) (runs: 3637, μ: 1256004, ~: 1253800) | ||
| LibDecimalFloatImplementationPow10Test:testPow10One() (gas: 1563766) | ||
| LibDecimalFloatImplementationSubTest:testSubIsAdd(int256,int256,int256,int256) (runs: 5079, μ: 17124, ~: 17237) | ||
| LibDecimalFloatImplementationSubTest:testSubMinSignedValue(int256,int256,int256) (runs: 5096, μ: 15937, ~: 15910) | ||
| LibDecimalFloatImplementationSubTest:testSubOneFromMax() (gas: 7308) | ||
| LibDecimalFloatImplementationSubTest:testSubSelf(int224,int32) (runs: 5096, μ: 6210, ~: 6369) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedAB(uint256,uint256,uint256,int256) (runs: 5096, μ: 10020, ~: 9946) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedABOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 11502, ~: 11491) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBA(uint256,uint256,uint256,int256) (runs: 5069, μ: 11501, ~: 11489) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBAOverflow(uint256,uint256,int256) (runs: 5096, μ: 9143, ~: 9090) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegative(uint256,uint256,uint256,int256) (runs: 5096, μ: 9970, ~: 9892) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegativeOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 11366, ~: 11351) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositive(uint256,uint256,uint256,int256) (runs: 5096, μ: 9104, ~: 9033) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositiveOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 11255, ~: 11247) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentExamples() (gas: 13427) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentOverflowRescaleRevert(int256,int256,int256) (runs: 1766, μ: 14447, ~: 14443) | ||
| LibDecimalFloatImplementationMulTest:testMulMaxSignedCoefficient() (gas: 2856) | ||
| LibDecimalFloatImplementationMulTest:testMulNegativeOne() (gas: 1842) | ||
| LibDecimalFloatImplementationMulTest:testMulNegativeOneOne() (gas: 1899) | ||
| LibDecimalFloatImplementationMulTest:testMulNotRevertAnyExpectation(int256,int256,int256,int256) (runs: 5096, μ: 14653, ~: 13970) | ||
| LibDecimalFloatImplementationMulTest:testMulOneNegativeOne() (gas: 1875) | ||
| LibDecimalFloatImplementationMulTest:testMulOneOne() (gas: 1764) | ||
| LibDecimalFloatImplementationMulTest:testMulOneZero() (gas: 663) | ||
| LibDecimalFloatImplementationMulTest:testMulZero0Exponent() (gas: 685) | ||
| LibDecimalFloatImplementationMulTest:testMulZeroAnyExponent(int64,int64) (runs: 5096, μ: 886, ~: 886) | ||
| LibDecimalFloatImplementationMulTest:testMulZeroOne() (gas: 620) | ||
| LibDecimalFloatImplementationPow10Test:testExactLookupsPow10() (gas: 1269211) | ||
| LibDecimalFloatImplementationPow10Test:testExactPows() (gas: 1249378) | ||
| LibDecimalFloatImplementationPow10Test:testInterpolatedLookupsPower() (gas: 1283747) | ||
| LibDecimalFloatImplementationPow10Test:testNoRevert(int224,int32) (runs: 3634, μ: 1255875, ~: 1253800) | ||
| LibDecimalFloatImplementationPow10Test:testPow10One() (gas: 1461134) | ||
| LibDecimalFloatImplementationSubTest:testSubIsAdd(int256,int256,int256,int256) (runs: 5081, μ: 16460, ~: 16576) | ||
| LibDecimalFloatImplementationSubTest:testSubMinSignedValue(int256,int256,int256) (runs: 5096, μ: 15265, ~: 15241) | ||
| LibDecimalFloatImplementationSubTest:testSubOneFromMax() (gas: 3353) | ||
| LibDecimalFloatImplementationSubTest:testSubSelf(int224,int32) (runs: 5096, μ: 2972, ~: 3131) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedAB(uint256,uint256,uint256,int256) (runs: 5096, μ: 6209, ~: 6135) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedABOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 10192, ~: 10180) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBA(uint256,uint256,uint256,int256) (runs: 5069, μ: 10190, ~: 10178) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBAOverflow(uint256,uint256,int256) (runs: 5096, μ: 5348, ~: 5295) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegative(uint256,uint256,uint256,int256) (runs: 5096, μ: 6159, ~: 6081) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegativeOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 10055, ~: 10040) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositive(uint256,uint256,uint256,int256) (runs: 5096, μ: 5900, ~: 5829) | ||
| LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositiveOverflow(uint256,uint256,uint256,int256) (runs: 5069, μ: 9944, ~: 9936) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentExamples() (gas: 4409) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentOverflowRescaleRevert(int256,int256,int256) (runs: 1760, μ: 14450, ~: 14443) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentVeryLargeDiffRevert(int256,int256,int256) (runs: 5096, μ: 13322, ~: 13562) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerTargetExponentNoRevert(int256,int256,int256) (runs: 5096, μ: 11677, ~: 11740) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentMaxOverflow(int256) (runs: 5096, μ: 3769, ~: 3769) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSameExponentNoop(int256,int256) (runs: 5096, μ: 3721, ~: 3721) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleDown(int256,int256,int256) (runs: 5096, μ: 12964, ~: 12925) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentMaxOverflow(int256) (runs: 5096, μ: 601, ~: 601) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSameExponentNoop(int256,int256) (runs: 5096, μ: 553, ~: 553) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleDown(int256,int256,int256) (runs: 5096, μ: 12298, ~: 12259) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleUpLargeDiffRevert(int256,int256,int256) (runs: 5096, μ: 13499, ~: 13803) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleUpNotOverflow(int256,int256,int256) (runs: 3354, μ: 13494, ~: 13431) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleUpOverflow(int256,int256,int256) (runs: 1742, μ: 14130, ~: 14155) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSmallerExponentNoRevert(int256,int256,int256) (runs: 3330, μ: 13863, ~: 13668) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentTargetMoreThan76Larger(int256,int256,int256) (runs: 5096, μ: 12443, ~: 12552) | ||
| LibDecimalFloatInvTest:testInvMem(bytes32) (runs: 5096, μ: 11277, ~: 11334) | ||
| LibDecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5096, μ: 3899, ~: 3899) | ||
| LibDecimalFloatIsZeroTest:testIsZeroEqZero(bytes32) (runs: 5096, μ: 3527, ~: 3527) | ||
| LibDecimalFloatIsZeroTest:testIsZeroExamples(int32) (runs: 5096, μ: 4467, ~: 4467) | ||
| LibDecimalFloatIsZeroTest:testNotIsZero(int224,int32) (runs: 5039, μ: 3922, ~: 3922) | ||
| LibDecimalFloatLog10Test:testLog10Packed(bytes32) (runs: 5096, μ: 1652377, ~: 1270929) | ||
| LibDecimalFloatLtTest:testLtExamples() (gas: 4015) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleUpNotOverflow(int256,int256,int256) (runs: 3337, μ: 12828, ~: 12765) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentScaleUpOverflow(int256,int256,int256) (runs: 1759, μ: 14128, ~: 14155) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSmallerExponentNoRevert(int256,int256,int256) (runs: 3336, μ: 13196, ~: 13002) | ||
| LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentTargetMoreThan76Larger(int256,int256,int256) (runs: 5096, μ: 11777, ~: 11886) | ||
| LibDecimalFloatInvTest:testInvMem(bytes32) (runs: 5096, μ: 8128, ~: 8166) | ||
| LibDecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5096, μ: 1068, ~: 1068) | ||
| LibDecimalFloatIsZeroTest:testIsZeroEqZero(bytes32) (runs: 5096, μ: 690, ~: 690) | ||
| LibDecimalFloatIsZeroTest:testIsZeroExamples(int32) (runs: 5096, μ: 992, ~: 992) | ||
| LibDecimalFloatIsZeroTest:testNotIsZero(int224,int32) (runs: 5039, μ: 3600, ~: 3600) | ||
| LibDecimalFloatLog10Test:testLog10Packed(bytes32) (runs: 5096, μ: 1651741, ~: 1267848) | ||
| LibDecimalFloatLtTest:testLtExamples() (gas: 1178) | ||
| LibDecimalFloatLtTest:testLtGasAZero() (gas: 967) | ||
| LibDecimalFloatLtTest:testLtGasBZero() (gas: 1033) | ||
| LibDecimalFloatLtTest:testLtGasBothZero() (gas: 959) | ||
| LibDecimalFloatLtTest:testLtGasDifferentSigns() (gas: 1021) | ||
| LibDecimalFloatLtTest:testLtGasExponentDiffOverflow() (gas: 1105) | ||
| LibDecimalFloatLtTest:testLtNegativeVsPositive(int256,int32,int256,int32) (runs: 5096, μ: 13806, ~: 13645) | ||
| LibDecimalFloatLtTest:testLtNegativeVsZero(int256,int32,int32) (runs: 5096, μ: 10813, ~: 11029) | ||
| LibDecimalFloatLtTest:testLtOneEAny(int224,int32) (runs: 5096, μ: 3930, ~: 3931) | ||
| LibDecimalFloatLtTest:testLtReference(bytes32,bytes32) (runs: 5096, μ: 4654, ~: 4998) | ||
| LibDecimalFloatLtTest:testLtVsEqualVsGt(bytes32,bytes32) (runs: 5096, μ: 4326, ~: 4210) | ||
| LibDecimalFloatLtTest:testLtX(int224) (runs: 5096, μ: 3823, ~: 3824) | ||
| LibDecimalFloatLtTest:testLtXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 10605, ~: 10349) | ||
| LibDecimalFloatLtTest:testLtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 11209, ~: 11411) | ||
| LibDecimalFloatLtTest:testLtZero(int32,int32) (runs: 5096, μ: 4161, ~: 4161) | ||
| LibDecimalFloatLtTest:testLtNegativeVsPositive(int256,int32,int256,int32) (runs: 5096, μ: 13157, ~: 12997) | ||
| LibDecimalFloatLtTest:testLtNegativeVsZero(int256,int32,int32) (runs: 5096, μ: 10166, ~: 10382) | ||
| LibDecimalFloatLtTest:testLtOneEAny(int224,int32) (runs: 5096, μ: 1099, ~: 1100) | ||
| LibDecimalFloatLtTest:testLtReference(bytes32,bytes32) (runs: 5096, μ: 1819, ~: 2161) | ||
| LibDecimalFloatLtTest:testLtVsEqualVsGt(bytes32,bytes32) (runs: 5096, μ: 1489, ~: 1373) | ||
| LibDecimalFloatLtTest:testLtX(int224) (runs: 5096, μ: 992, ~: 993) | ||
| LibDecimalFloatLtTest:testLtXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 9946, ~: 9692) | ||
| LibDecimalFloatLtTest:testLtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 10553, ~: 10755) | ||
| LibDecimalFloatLtTest:testLtZero(int32,int32) (runs: 5096, μ: 1330, ~: 1330) | ||
| LibDecimalFloatLteTest:testLteGasAZero() (gas: 1018) | ||
| LibDecimalFloatLteTest:testLteGasBZero() (gas: 1020) | ||
| LibDecimalFloatLteTest:testLteGasBothZero() (gas: 748) | ||
| LibDecimalFloatLteTest:testLteGasDifferentSigns() (gas: 1028) | ||
| LibDecimalFloatLteTest:testLteGasExponentDiffOverflow() (gas: 1134) | ||
| LibDecimalFloatLteTest:testLteOneEAny(bytes32) (runs: 5096, μ: 3493, ~: 3493) | ||
| LibDecimalFloatLteTest:testLteReference(int224,int32,int224,int32) (runs: 5096, μ: 8206, ~: 6615) | ||
| LibDecimalFloatLteTest:testLteX(int224,int32) (runs: 5096, μ: 3929, ~: 3930) | ||
| LibDecimalFloatLteTest:testLteXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 10624, ~: 10373) | ||
| LibDecimalFloatLteTest:testLteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 11234, ~: 11435) | ||
| LibDecimalFloatLteTest:testLteXNotLtY(bytes32,bytes32) (runs: 5096, μ: 3884, ~: 3807) | ||
| LibDecimalFloatLteTest:testLteXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 13145, ~: 12983) | ||
| LibDecimalFloatLteTest:testLteXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 9587, ~: 9212) | ||
| LibDecimalFloatLteTest:testLteZero(int32,int32) (runs: 5096, μ: 4806, ~: 4806) | ||
| LibDecimalFloatMaxTest:testMaxX(bytes32) (runs: 5096, μ: 4246, ~: 4246) | ||
| LibDecimalFloatMaxTest:testMaxXY(bytes32,bytes32) (runs: 5096, μ: 4691, ~: 4613) | ||
| LibDecimalFloatMaxTest:testMaxXYEqual(bytes32) (runs: 5096, μ: 5272, ~: 5272) | ||
| LibDecimalFloatMaxTest:testMaxXYGreater(bytes32,bytes32) (runs: 2538, μ: 6132, ~: 6016) | ||
| LibDecimalFloatMaxTest:testMaxXYLess(bytes32,bytes32) (runs: 2553, μ: 6146, ~: 6027) | ||
| LibDecimalFloatMinTest:testMinX(bytes32) (runs: 5096, μ: 4268, ~: 4268) | ||
| LibDecimalFloatMinTest:testMinXY(bytes32,bytes32) (runs: 5096, μ: 4691, ~: 4613) | ||
| LibDecimalFloatMinTest:testMinXYEqual(bytes32) (runs: 5096, μ: 5292, ~: 5292) | ||
| LibDecimalFloatMinTest:testMinXYGreater(bytes32,bytes32) (runs: 2543, μ: 6079, ~: 5961) | ||
| LibDecimalFloatMinTest:testMinXYLess(bytes32,bytes32) (runs: 2548, μ: 6090, ~: 5972) | ||
| LibDecimalFloatMinusTest:testMinusPacked(bytes32) (runs: 5096, μ: 5606, ~: 5607) | ||
| LibDecimalFloatMixedTest:testDiv1Over3Mixed() (gas: 11766) | ||
| LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5096, μ: 9793, ~: 10566) | ||
| LibDecimalFloatLteTest:testLteOneEAny(bytes32) (runs: 5096, μ: 662, ~: 662) | ||
| LibDecimalFloatLteTest:testLteReference(int224,int32,int224,int32) (runs: 5096, μ: 5365, ~: 3778) | ||
| LibDecimalFloatLteTest:testLteX(int224,int32) (runs: 5096, μ: 1098, ~: 1099) | ||
| LibDecimalFloatLteTest:testLteXEAnyVsXEAny(int256,int32,int32) (runs: 5096, μ: 9959, ~: 9704) | ||
| LibDecimalFloatLteTest:testLteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5096, μ: 10566, ~: 10767) | ||
| LibDecimalFloatLteTest:testLteXNotLtY(bytes32,bytes32) (runs: 5096, μ: 1047, ~: 970) | ||
| LibDecimalFloatLteTest:testLteXPositiveYNegative(int256,int32,int256,int32) (runs: 5096, μ: 12795, ~: 12633) | ||
| LibDecimalFloatLteTest:testLteXPositiveYZero(int256,int32,int32) (runs: 5096, μ: 9253, ~: 8878) | ||
| LibDecimalFloatLteTest:testLteZero(int32,int32) (runs: 5096, μ: 1653, ~: 1653) | ||
| LibDecimalFloatMaxTest:testMaxX(bytes32) (runs: 5096, μ: 1114, ~: 1114) | ||
| LibDecimalFloatMaxTest:testMaxXY(bytes32,bytes32) (runs: 5096, μ: 1559, ~: 1481) | ||
| LibDecimalFloatMaxTest:testMaxXYEqual(bytes32) (runs: 5096, μ: 1523, ~: 1523) | ||
| LibDecimalFloatMaxTest:testMaxXYGreater(bytes32,bytes32) (runs: 2538, μ: 4883, ~: 4767) | ||
| LibDecimalFloatMaxTest:testMaxXYLess(bytes32,bytes32) (runs: 2553, μ: 4897, ~: 4778) | ||
| LibDecimalFloatMinTest:testMinX(bytes32) (runs: 5096, μ: 1136, ~: 1136) | ||
| LibDecimalFloatMinTest:testMinXY(bytes32,bytes32) (runs: 5096, μ: 1559, ~: 1481) | ||
| LibDecimalFloatMinTest:testMinXYEqual(bytes32) (runs: 5096, μ: 1543, ~: 1543) | ||
| LibDecimalFloatMinTest:testMinXYGreater(bytes32,bytes32) (runs: 2543, μ: 4830, ~: 4712) | ||
| LibDecimalFloatMinTest:testMinXYLess(bytes32,bytes32) (runs: 2548, μ: 4841, ~: 4723) | ||
| LibDecimalFloatMinusTest:testMinusPacked(bytes32) (runs: 5096, μ: 2438, ~: 2439) | ||
| LibDecimalFloatMixedTest:testDiv1Over3Mixed() (gas: 7330) | ||
| LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5096, μ: 6867, ~: 7464) | ||
| LibDecimalFloatPackTest:testPackExponentOverflow(int256,int256) (runs: 5046, μ: 11085, ~: 11267) | ||
| LibDecimalFloatPackTest:testPackNegativeExponentLossyZero(int256,int256) (runs: 5046, μ: 11957, ~: 12110) | ||
| LibDecimalFloatPackTest:testPackZero(int256) (runs: 5096, μ: 4469, ~: 4469) | ||
| LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5096, μ: 5484, ~: 5485) | ||
| LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5096, μ: 1642228, ~: 1254685) | ||
| LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5052, μ: 1241606, ~: 1241724) | ||
| LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 3539, μ: 1240754, ~: 1240754) | ||
| LibDecimalFloatPowTest:testPowAZeroNegative(bytes32) (runs: 1617, μ: 1241138, ~: 1241138) | ||
| LibDecimalFloatPowTest:testPowBOne(bytes32) (runs: 5065, μ: 1545718, ~: 1545688) | ||
| LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5096, μ: 1240322, ~: 1240322) | ||
| LibDecimalFloatPowTest:testPows() (gas: 1697700) | ||
| LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5096, μ: 1292479, ~: 1262284) | ||
| LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1881282) | ||
| LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5097, μ: 1303876, ~: 1306645) | ||
| LibDecimalFloatSqrtTest:testSqrt() (gas: 1304251) | ||
| LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5069, μ: 1241319, ~: 1241437) | ||
| LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1522878) | ||
| LibDecimalFloatSubTest:testSubPacked(bytes32,bytes32) (runs: 5096, μ: 12228, ~: 12283) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsExamples() (gas: 83596) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsOne(int256) (runs: 5096, μ: 31877, ~: 31719) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsZero(int256) (runs: 5096, μ: 3764, ~: 3764) | ||
| LibDecimalFloatPackTest:testPackNegativeExponentLossyZero(int256,int256) (runs: 5046, μ: 10654, ~: 10808) | ||
| LibDecimalFloatPackTest:testPackZero(int256) (runs: 5096, μ: 662, ~: 662) | ||
| LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5096, μ: 1027, ~: 1028) | ||
| LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5096, μ: 1638452, ~: 1251517) | ||
| LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5046, μ: 1241606, ~: 1241724) | ||
| LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 3534, μ: 1240095, ~: 1240095) | ||
| LibDecimalFloatPowTest:testPowAZeroNegative(bytes32) (runs: 1615, μ: 1241138, ~: 1241138) | ||
| LibDecimalFloatPowTest:testPowBOne(bytes32) (runs: 5062, μ: 1457268, ~: 1457239) | ||
| LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5096, μ: 1237163, ~: 1237163) | ||
| LibDecimalFloatPowTest:testPows() (gas: 1680872) | ||
| LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5096, μ: 1291554, ~: 1262280) | ||
| LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1873010) | ||
| LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5096, μ: 1303312, ~: 1306128) | ||
| LibDecimalFloatSqrtTest:testSqrt() (gas: 1296518) | ||
| LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5065, μ: 1241318, ~: 1241437) | ||
| LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1515240) | ||
| LibDecimalFloatSubTest:testSubPacked(bytes32,bytes32) (runs: 5096, μ: 9411, ~: 9461) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsExamples() (gas: 48089) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsOne(int256) (runs: 5096, μ: 30221, ~: 30196) | ||
| LibFormatDecimalFloatCountSigFigs:testCountSigFigsZero(int256) (runs: 5096, μ: 526, ~: 526) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalExamples() (gas: 792935) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripExamples() (gas: 793404) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripNegative(int256,bool) (runs: 5096, μ: 66724, ~: 65001) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripNonNegative(uint256,bool) (runs: 5096, μ: 49144, ~: 50845) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripExamples() (gas: 729004) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripNegative(int256,bool) (runs: 5096, μ: 65290, ~: 63712) | ||
| LibFormatDecimalFloatToDecimalStringTest:testFormatDecimalRoundTripNonNegative(uint256,bool) (runs: 5096, μ: 47951, ~: 49556) | ||
| LibLogTableBytesTest:testToBytesAntiLogTableDec() (gas: 158047) | ||
| LibLogTableBytesTest:testToBytesAntiLogTableDecSmall() (gas: 160663) | ||
| LibLogTableBytesTest:testToBytesLogTableDec() (gas: 141790) | ||
| LibLogTableBytesTest:testToBytesLogTableDecSmall() (gas: 144156) | ||
| LibLogTableBytesTest:testToBytesLogTableDecSmallAlt() (gas: 18375) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatEmpty() (gas: 4173) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert() (gas: 4169) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert2() (gas: 5336) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert3() (gas: 5444) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert4() (gas: 4147) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatNonDecimal() (gas: 4145) | ||
| LibParseDecimalFloatTest:testParseFormatterRoundTripBug0() (gas: 27193) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDecimals() (gas: 381180) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotE() (gas: 4166) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotE0() (gas: 4167) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert() (gas: 4145) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert2() (gas: 4167) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert3() (gas: 5140) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatEDot() (gas: 4168) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert5() (gas: 4176) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert6() (gas: 4166) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponents() (gas: 402701) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 5096, μ: 45905, ~: 37134) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatLeadingZeros() (gas: 59757) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeE() (gas: 6000) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeFrac() (gas: 5115) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 27808) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 24984) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 22959) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 51251) | ||
| LibParseDecimalFloatTest:testParsePacked(string) (runs: 5096, μ: 9811, ~: 9692) | ||
| TestDecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5096, μ: 169646, ~: 169646) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatEmpty() (gas: 992) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert() (gas: 985) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert2() (gas: 2155) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert3() (gas: 2263) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatExponentRevert4() (gas: 963) | ||
| LibParseDecimalFloatTest:testParseDecimalFloatNonDecimal() (gas: 961) | ||
| LibParseDecimalFloatTest:testParseFormatterRoundTripBug0() (gas: 23326) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDecimals() (gas: 328316) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotE() (gas: 982) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotE0() (gas: 983) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert() (gas: 961) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert2() (gas: 983) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert3() (gas: 1959) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatEDot() (gas: 984) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert5() (gas: 992) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert6() (gas: 982) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponents() (gas: 321256) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 5096, μ: 42435, ~: 33401) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatLeadingZeros() (gas: 47723) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeE() (gas: 2819) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeFrac() (gas: 1934) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 24627) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 21803) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 12287) | ||
| LibParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 35135) | ||
| LibParseDecimalFloatTest:testParsePacked(string) (runs: 5096, μ: 5342, ~: 5223) | ||
| TestDecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5096, μ: 166485, ~: 166485) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
LGTM: data-only snapshot refresh. Please pin toolchain for reproducibility.
Looks like a pure .gas-snapshot update. Before merge:
- Pin Foundry, solc, optimizer runs, EVM version, and fuzz runs so CI reproduces numbers exactly (e.g., set FOUNDRY_FUZZ_RUNS and solc_version in foundry.toml/CI).
- Fill in PR Motivation/Solution and tick the checklist for traceability.
If CI is green and toolchain is pinned, I’m good with this. Based on learnings.
🤖 Prompt for AI Agents
In .gas-snapshot around lines 1 to 345, this is a data-only snapshot update;
before merging pin the toolchain and CI variables to make numbers reproducible:
set solc_version, optimizer runs, and evm_version in foundry.toml (and/or CI),
export FOUNDRY_FUZZ_RUNS (and any other Foundry env vars) in the CI job so fuzz
runs are fixed, re-run CI to verify snapshots match, and update the PR
description to include a short Motivation and Solution and check the
release/verification checklist for traceability.
| @@ -1 +1 @@ | |||
| Subproject commit 769792d577a7ecae954a7cdd64a222b8d6fe450d | |||
| Subproject commit 00734d24d91db3fc4aac87c0a3c885de28449f96 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Complete the PR description and checklist before submitting for review.
The PR description contains only placeholder sections with no content explaining the motivation or solution. Additionally, all checklist items are unchecked, suggesting the developer has not completed their own verification process. The PR is labeled as an "audit" but provides no explanation of what audit or which issues motivated these submodule updates.
Required before merge:
- Complete the "Motivation" section explaining what audit this addresses and why these submodule updates are needed
- Complete the "Solution" section describing what changes are included in the updated submodules
- Check off the appropriate checklist items (or explain why they don't apply)
- Link any related issues or PRs that motivate these changes
🤖 Prompt for AI Agents
In lib/rain.sol.codegen around lines 1 to 1, the PR description and checklist
are placeholders and the audit label lacks context; update the PR body by
filling the "Motivation" section with which audit or issues prompted the
submodule updates and why they are needed, fill the "Solution" section
summarizing the concrete changes in the updated submodules, check the
appropriate checklist items or add justification for any that don't apply, and
add links to related issues/PRs so reviewers can verify scope and intent before
merging.
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 224 🏁 Script executed: Length of output: 333 🏁 Script executed: Length of output: 274 🏁 Script executed: Length of output: 9131 SIZE=L |
Motivation
Solution
Checks
By submitting this for review, I'm confirming I've done the following:
Summary by CodeRabbit