tech: Update BigInt to 5.7.0 - #399
Merged
Merged
Conversation
Two things break in 5.7.0, both small. It adds Swift 6 strict concurrency, so BigInt and BigUInt now declare Sendable themselves and our @unchecked conformances became duplicates. The build had been warning that this would happen. Remove them. It also stopped parsing the empty string, which broke BigUInt(hex:) and BigInt(hex:) for a bare "0x" — the process aborted on a force unwrap in HexExtensionsTests. Nodes return "0x" for zero and these initialisers have always read it that way, so substitute a zero digit rather than change the contract. Int(hex:) deliberately keeps returning nil for an empty string, which the tests already pinned. Stay on 5.7.0 rather than 6.0.0: that release only carries a WASI _mantissa fix and extra CI runners, and its manifest declares swift-tools-version 6.3, which would impose a Swift 6.3 floor on everyone depending on this library. Co-authored-by: Michał Dąbrowski <michal.dabrowski@elympics.ai>
diogoArgentM
approved these changes
Aug 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes the BigInt half of #386.
Two things break in 5.7.0:
BigInt/BigUIntdeclareSendablethemselves and our@uncheckedconformances became duplicates. The build had been warning this would happen.BigUInt(hex:)/BigInt(hex:)for a bare"0x"— the test process aborted on a force unwrap. Nodes return"0x"for zero and these initialisers have always read it that way, so the fix substitutes a zero digit rather than changing the contract.Int(hex:)still returns nil for an empty string, as its test already pinned.Staying on 5.7.0 rather than 6.0.0: that release only carries a WASI
_mantissafix and extra CI runners, and its manifest declares swift-tools-version 6.3 — which would impose a Swift 6.3 floor on every consumer of this library.Note this does not close #372. That issue asks for the podspec dependency to be bumped, which is a separate change — and CocoaPods only ever published BigInt up to 5.2.0, so the podspec cannot track SPM here regardless.
macOS 435 / Linux 334, 0 failures, lint clean. The first CI run failed on two mainnet ENS tests — a different one per platform, both
ensUnknownafter ~110s against the public RPC — and re-running the same commit was green.🤖 Generated with Claude Code