Skip to content

build(deps): second dependency sweep + VSTest → Microsoft.Testing.Platform; Dependabot to security-only - #98

Merged
grinidx merged 3 commits into
mainfrom
chore/deps-sweep-security-only-updates
Sep 2, 2026
Merged

grinidx merged 3 commits into
mainfrom
chore/deps-sweep-security-only-updates

Conversation

@grinidx

@grinidx grinidx commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Lands the 12 open Dependabot PRs as one verified change, migrates the test stack off VSTest (forced by the xunit.v3 major), and switches Dependabot to security updates only.

Closes #25. Supersedes and closes #82, #83, #84, #85, #86, #90, #92, #93, #94, #95, #96, #97.

Dependencies

Package From To PR
xunit.v3 3.2.2 4.0.0 #97
xunit.runner.visualstudio 3.1.5 4.0.0 #96
Microsoft.NET.Test.Sdk 18.7.0 18.9.0 #93
AwesomeAssertions 9.4.0 9.6.0 #95
BouncyCastle.Cryptography 2.5.1 2.7.0 #92
MinVer 6.0.0 7.0.0 #90
Microsoft.SourceLink.GitHub 8.0.0 10.0.400 #94
actions/setup-dotnet v5.4.0 v6.0.0 #82
github/codeql-action (init + analyze) v4.37.0 v4.37.1 #83, #84
EnricoMi/publish-unit-test-result-action v2.17.1 v2.24.0 #85
softprops/action-gh-release v2.2.1 v3.0.2 #86

No library API change and no protocol-math change — the runtime deps under the math (Nethereum, ExtendedNumerics.BigRational) are untouched.

The xunit.v3 major is not a drop-in

xunit.v3 4.x runs on Microsoft.Testing.Platform, and MTP dropped the VSTest bridge on the .NET 10 SDK. Straight after the bump, every dotnet test failed:

error : Testing with VSTest target is no longer supported by Microsoft.Testing.Platform
on .NET 10 SDK and later.

So this PR carries the migration:

  • global.json selects the MTP runner for dotnet test. This is the .NET 10 opt-in; the older TestingPlatformDotnetTestSupport MSBuild property does not work here, and neither does dotnet.config. The file is load-bearing — deleting it breaks the build.
  • coverlet.collector is gone. It is a VSTest data collector, as is --collect:"XPlat Code Coverage"; under MTP they collect nothing. Replaced by Microsoft.Testing.Extensions.CodeCoverage (--coverage, cobertura output) and Microsoft.Testing.Extensions.TrxReport (--report-trx).
  • _test.yml passes the MTP flags after --. The TRX test-result check, the ReportGenerator Cobertura summary and the sticky coverage comment all keep working; only the flags changed.
  • release.yml needs no change — its plain dotnet test -c Release picks the runner up from global.json.

Dependabot → security updates only

open-pull-requests-limit: 0 on both ecosystems stops routine version-bump PRs. Security updates are unaffected: they come from the repo's "Dependabot security updates" setting, which is enabled (automated-security-fixes{"enabled":true,"paused":false}) with alerts on. Routine currency moves to periodic verified sweeps like this one.

The 12 PRs this replaces had been open for up to six weeks, and the xunit.v3 one is the argument: it needed a platform migration, not a merge button.

Verification (local, Linux)

  • dotnet build -c Release — succeeded, 0 warnings
  • dotnet test -c Release1695/1695 passed, 0 failed, 0 skipped
  • dotnet format UniswapSharp.sln --verify-no-changes — clean
  • dotnet packUniswapSharp.1.0.0.nupkg + .snupkg produced (MinVer 7 still stamps the right version from the v1.0.0 tag)
  • Coverage after the collector swap: 84.9% line / 73.2% branch, UniswapSharp assembly only

CI re-runs all of this on ubuntu / windows / macos.

…ng.Platform

Lands the 12 Dependabot PRs that accumulated since the first-pass sweep as one
change, verified behind a green suite rather than merged one at a time.

NuGet:
- xunit.v3 3.2.2 -> 4.0.0, xunit.runner.visualstudio 3.1.5 -> 4.0.0
- Microsoft.NET.Test.Sdk 18.7.0 -> 18.9.0, AwesomeAssertions 9.4.0 -> 9.6.0
- BouncyCastle.Cryptography 2.5.1 -> 2.7.0 (both projects)
- MinVer 6.0.0 -> 7.0.0, Microsoft.SourceLink.GitHub 8.0.0 -> 10.0.400

Actions (SHA-pinned, comments corrected):
- actions/setup-dotnet v5.4.0 -> v6.0.0 (all three workflows)
- github/codeql-action init+analyze v4.37.0 -> v4.37.1
- EnricoMi/publish-unit-test-result-action v2.17.1 -> v2.24.0
- softprops/action-gh-release v2.2.1 -> v3.0.2

The xunit.v3 major is not a drop-in. xunit.v3 4.x runs on Microsoft.Testing
Platform, and MTP dropped the VSTest bridge on the .NET 10 SDK, so every
`dotnet test` failed outright with "Testing with VSTest target is no longer
supported". Migrating:

- global.json selects the MTP runner for `dotnet test` (the .NET 10 opt-in;
  the older TestingPlatformDotnetTestSupport property does not apply here).
- coverlet.collector and --collect:"XPlat Code Coverage" are VSTest data
  collectors and silently collect nothing under MTP. Replaced with
  Microsoft.Testing.Extensions.CodeCoverage (--coverage, cobertura) and
  .TrxReport (--report-trx) so the PR test check and the Cobertura coverage
  comment keep working unchanged.
- _test.yml passes the MTP flags after `--`. release.yml needs no change; its
  plain `dotnet test -c Release` picks up the runner from global.json.

No library API or protocol-math change. 1695 tests green, zero warnings,
dotnet format clean, dotnet pack verified (MinVer 7 still stamps 1.0.0).
Coverage after the collector swap: 84.9% line / 73.2% branch.
Sets open-pull-requests-limit: 0 on both ecosystems. That switches off routine
version-bump PRs while leaving Dependabot security updates untouched -- those
are driven by the repository's "Dependabot security updates" setting (verified
enabled, alerts on) and are still raised against a published advisory.

Routine currency moves to periodic test-verified sweeps instead. The 12 PRs
this replaces had sat open for six weeks, and the xunit.v3 major in the sweep
that just landed shows why: it needed a test-platform migration, not a merge
button.
CLAUDE.md: correct the stale test count (292 -> 1695), document that tests now
run on Microsoft.Testing.Platform and that global.json is load-bearing, note
the MTP reporting flags that replace the VSTest ones, list the current test and
crypto dependencies, and record the security-updates-only Dependabot policy.

CHANGELOG.md: add the sweep and the MTP migration under [Unreleased].
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Test Results

1 695 tests  ±0   1 695 ✅ ±0   14s ⏱️ -5s
    1 suites ±0       0 💤 ±0 
    1 files   ±0       0 ❌ ±0 

Results for commit 57afccf. ± Comparison against base commit 08e6e3a.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Summary

Summary
Generated on: 09/02/2026 - 08:27:37
Parser: MultiReport (2x Cobertura)
Assemblies: 1
Classes: 389
Files: 196
Line coverage: 85.3% (10826 of 12682)
Covered lines: 10826
Uncovered lines: 1856
Coverable lines: 12682
Total lines: 27181
Branch coverage: 74.4% (3824 of 5138)
Covered branches: 3824
Total branches: 5138
Method coverage: Feature is only available for sponsors
Tag: 184_33608674557

Coverage

UniswapSharp - 85.3%
Name Line Branch
UniswapSharp 85.3% 74.4%
System.Text.RegularExpressions.Generated 90% 65.2%
UniswapSharp.Core.Addresses 99.6% 87.5%
UniswapSharp.Core.Constants 100% 100%
UniswapSharp.Core.Entities.BaseCurrency 100% 100%
UniswapSharp.Core.Entities.Ether 100% 83.3%
UniswapSharp.Core.Entities.Fractions.CurrencyAmount 92.5% 83.3%
UniswapSharp.Core.Entities.Fractions.Fraction 92.9% 79.6%
UniswapSharp.Core.Entities.Fractions.Percent 93.3%
UniswapSharp.Core.Entities.Fractions.Price<TBase, TQuote> 93.9% 50%
UniswapSharp.Core.Entities.NativeCurrency 100%
UniswapSharp.Core.Entities.Token 100% 100%
UniswapSharp.Core.Entities.Weth9 100%
UniswapSharp.Core.Utils.AddressValidator 60.2% 57.5%
UniswapSharp.Core.Utils.MathUtils 92.8% 83.3%
UniswapSharp.Core.Utils.PriceImpact 100%
UniswapSharp.Core.Utils.RlpEncoder 0% 0%
UniswapSharp.Core.Utils.SortedInsert 100% 100%
UniswapSharp.Core.Utils.ZksyncAddressComputer 95.6% 83.3%
UniswapSharp.Flashtestations.Config.Chains 100% 91.6%
UniswapSharp.Flashtestations.Crypto.Workload 97.8% 93.7%
UniswapSharp.Flashtestations.Rpc.EvmLog 0%
UniswapSharp.Flashtestations.Rpc.EvmTransactionReceipt 100%
UniswapSharp.Flashtestations.Rpc.GetWorkloadMetadataFunction 0%
UniswapSharp.Flashtestations.Rpc.NethereumEvmRpcClient 0% 0%
UniswapSharp.Flashtestations.Rpc.NethereumEvmRpcClientFactory 0%
UniswapSharp.Flashtestations.Rpc.RpcClient 96.9% 84%
UniswapSharp.Flashtestations.Rpc.RpcClient.ResolvedConfig 100%
UniswapSharp.Flashtestations.Rpc.RpcClient 96.9% 84%
UniswapSharp.Flashtestations.Rpc.RpcClientFactory 0%
UniswapSharp.Flashtestations.Rpc.RpcClients 100%
UniswapSharp.Flashtestations.Types.BlockNotFoundError 100%
UniswapSharp.Flashtestations.Types.BlockParameter 83.3% 55.5%
UniswapSharp.Flashtestations.Types.ChainNotSupportedError 100%
UniswapSharp.Flashtestations.Types.HexValues 48% 25%
UniswapSharp.Flashtestations.Types.NetworkError 100%
UniswapSharp.Flashtestations.Types.SingularWorkloadMeasurementRegisters 100%
UniswapSharp.Flashtestations.Types.Validation 95.3% 93.7%
UniswapSharp.Flashtestations.Types.ValidationError 100%
UniswapSharp.Flashtestations.Verification.FlashtestationService 87.9% 90%
UniswapSharp.LiquidityLauncher.Addresses 100% 100%
UniswapSharp.LiquidityLauncher.AuctionFactoryDeployment 100%
UniswapSharp.LiquidityLauncher.AuctionParameters 0%
UniswapSharp.LiquidityLauncher.AuctionStepInput 100%
UniswapSharp.LiquidityLauncher.Build 88.2% 100%
UniswapSharp.LiquidityLauncher.BuildLaunchParams 100%
UniswapSharp.LiquidityLauncher.BuybackBurnLockRecipientInput 100%
UniswapSharp.LiquidityLauncher.Chains 0%
UniswapSharp.LiquidityLauncher.Config.AuctionScheduleOptions 100%
UniswapSharp.LiquidityLauncher.Config.Blocks 72.7% 58.3%
UniswapSharp.LiquidityLauncher.Config.CustomRangeInput 0%
UniswapSharp.LiquidityLauncher.Config.DeriveBlocksInput 100%
UniswapSharp.LiquidityLauncher.Config.DerivedBlocks 100%
UniswapSharp.LiquidityLauncher.Config.Emission 75.4% 62.5%
UniswapSharp.LiquidityLauncher.Config.Fees 0% 0%
UniswapSharp.LiquidityLauncher.Config.LpAllocation 0% 0%
UniswapSharp.LiquidityLauncher.Config.MathJs 100%
UniswapSharp.LiquidityLauncher.Config.Positions 0% 0%
UniswapSharp.LiquidityLauncher.Config.Price 87.5% 60%
UniswapSharp.LiquidityLauncher.Config.SingleLpAllocationInput 0%
UniswapSharp.LiquidityLauncher.Config.TieredLpAllocationInput 0%
UniswapSharp.LiquidityLauncher.Config.TieredLpAllocationTier 0%
UniswapSharp.LiquidityLauncher.Constants 100%
UniswapSharp.LiquidityLauncher.CreateTokenAcquisition 100%
UniswapSharp.LiquidityLauncher.CreateTokenArgs 100%
UniswapSharp.LiquidityLauncher.DepositTokenAcquisition 100%
UniswapSharp.LiquidityLauncher.Distribution 100%
UniswapSharp.LiquidityLauncher.Encode 39.2% 45.8%
UniswapSharp.LiquidityLauncher.FeesForwarderLockRecipientInput 100%
UniswapSharp.LiquidityLauncher.Format 0% 0%
UniswapSharp.LiquidityLauncher.LauncherAddresses 100%
UniswapSharp.LiquidityLauncher.LauncherErrors 100%
UniswapSharp.LiquidityLauncher.LauncherSdkError 100%
UniswapSharp.LiquidityLauncher.LiquidityAllocationBracket 0%
UniswapSharp.LiquidityLauncher.Lock 95.2% 25%
UniswapSharp.LiquidityLauncher.LockRecipient 100%
UniswapSharp.LiquidityLauncher.LockRecipientInput 100%
UniswapSharp.LiquidityLauncher.MigratorParameters 0%
UniswapSharp.LiquidityLauncher.PoolId 100% 50%
UniswapSharp.LiquidityLauncher.PoolParameters 0%
UniswapSharp.LiquidityLauncher.PositionDefinition 0%
UniswapSharp.LiquidityLauncher.Salts 0%
UniswapSharp.LiquidityLauncher.SelectedTokenFactory 100%
UniswapSharp.LiquidityLauncher.Split 0%
UniswapSharp.LiquidityLauncher.TimelockLockRecipientInput 100%
UniswapSharp.LiquidityLauncher.TransactionRequest 100%
UniswapSharp.LiquidityLauncher.Uerc20Metadata 0%
UniswapSharp.Permit2.AllowanceTransfer 100% 100%
UniswapSharp.Permit2.Constants 100% 100%
UniswapSharp.Permit2.Domain 100%
UniswapSharp.Permit2.Eip712Domain 83.3% 80%
UniswapSharp.Permit2.Eip712TypedDataEncoder 79% 68.7%
UniswapSharp.Permit2.Eip712TypedDataEncoder.StructEncoder 90.5% 89.5%
UniswapSharp.Permit2.PermitBatch 100%
UniswapSharp.Permit2.PermitBatchTransferFrom 100%
UniswapSharp.Permit2.PermitData 100%
UniswapSharp.Permit2.PermitDetails 100%
UniswapSharp.Permit2.PermitSingle 100%
UniswapSharp.Permit2.PermitTransferFrom 100%
UniswapSharp.Permit2.SignatureTransfer 100% 100%
UniswapSharp.Permit2.TokenPermissions 100%
UniswapSharp.Permit2.Witness 100%
UniswapSharp.Router.ApproveAndCall 38.5% 20%
UniswapSharp.Router.Constants 100%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteSDK<TInput, TOutput> 100% 100%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteSDK<TInput, TOutput> 84.3% 79.6%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteSwap<TInput, TOutput> 100%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteTrade.BestTradeOptions<TI
nput, TOutput>
100%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteTrade<TInput, TOutput> 98.7% 91%
UniswapSharp.Router.Entities.MixedRoute.MixedRouteTrade<TInput, TOutput> 93.2% 87.5%
UniswapSharp.Router.Entities.MixedRoute<TInput, TOutput> 100%
UniswapSharp.Router.Entities.MixedRouteAmounts<TInput, TOutput> 100%
UniswapSharp.Router.Entities.RouteHelpers 85.7% 75%
UniswapSharp.Router.Entities.RouterSwap<TInput, TOutput> 100%
UniswapSharp.Router.Entities.RouteV2<TInput, TOutput> 100%
UniswapSharp.Router.Entities.RouteV3<TInput, TOutput> 100%
UniswapSharp.Router.Entities.RouteV4<TInput, TOutput> 91.6%
UniswapSharp.Router.Entities.Trade<TInput, TOutput> 87% 95.4%
UniswapSharp.Router.Entities.Trade<TInput, TOutput> 87.5% 82.6%
UniswapSharp.Router.Entities.V2RouteAmounts<TInput, TOutput> 100%
UniswapSharp.Router.Entities.V3RouteAmounts<TInput, TOutput> 100%
UniswapSharp.Router.Entities.V4RouteAmounts<TInput, TOutput> 100%
UniswapSharp.Router.MulticallExtended 75.8% 83.3%
UniswapSharp.Router.PaymentsExtended 96.5% 100%
UniswapSharp.Router.SwapRouter 87.5% 74.2%
UniswapSharp.Router.Utils.EncodeMixedRouteToPath 95.3% 80.9%
UniswapSharp.Router.Utils.EncodeMixedRouteToPath<TInput, TOutput> 95.3% 80.9%
UniswapSharp.Router.Utils.MixedRouteUtils 94.7% 95.4%
UniswapSharp.Router.Utils.PathCurrency 50% 30%
UniswapSharp.Router.Utils.TPool 77.1% 74%
UniswapSharp.SmartWallet.BatchedCall 0%
UniswapSharp.SmartWallet.Call 100%
UniswapSharp.SmartWallet.Constants 95.7% 68.7%
UniswapSharp.SmartWallet.ExecuteOptions 100%
UniswapSharp.SmartWallet.MethodParameters 100%
UniswapSharp.SmartWallet.SmartWallet 100% 85.7%
UniswapSharp.SmartWallet.SmartWalletVersionMap 100% 100%
UniswapSharp.SmartWallet.Utils.BatchedCallPlanner 90.9%
UniswapSharp.SmartWallet.Utils.CallPlanner 100% 100%
UniswapSharp.SmartWallet.Utils.Delegation 100% 100%
UniswapSharp.Tamperproof.Algorithms 100% 50%
UniswapSharp.Tamperproof.Constants.Errors 100%
UniswapSharp.Tamperproof.Constants.TamperproofException 100%
UniswapSharp.Tamperproof.Generator 100% 100%
UniswapSharp.Tamperproof.HttpManifestFetcher 0% 0%
UniswapSharp.Tamperproof.ManifestFetchOptions 100%
UniswapSharp.Tamperproof.ManifestResponse 0% 100%
UniswapSharp.Tamperproof.PublicKey 100%
UniswapSharp.Tamperproof.PublicKeyEntry 100%
UniswapSharp.Tamperproof.PublicKeyManifest 100%
UniswapSharp.Tamperproof.Signer 100% 100%
UniswapSharp.Tamperproof.SigningAlgorithmConfig 100%
UniswapSharp.Tamperproof.Utils.CanonicalJson 67.5% 66.6%
UniswapSharp.Tamperproof.Utils.Hex 100% 94%
UniswapSharp.Tamperproof.Utils.SigningCrypto 95.1% 85.7%
UniswapSharp.Tamperproof.Utils.TxtRecord 100% 90%
UniswapSharp.Tamperproof.Verifier 97.3% 93.1%
UniswapSharp.UniswapX.Builder.BuilderInvariant 75% 50%
UniswapSharp.UniswapX.Builder.DutchOrderBuilder 70.7% 45.8%
UniswapSharp.UniswapX.Builder.HybridOrderBuilder 69.4% 21.8%
UniswapSharp.UniswapX.Builder.PriorityOrderBuilder 73.3% 36.8%
UniswapSharp.UniswapX.Builder.RelayOrderBuilder 73.1% 57.1%
UniswapSharp.UniswapX.Builder.V2DutchOrderBuilder 72.5% 37.5%
UniswapSharp.UniswapX.Builder.V3DutchOrderBuilder 71.6% 28.5%
UniswapSharp.UniswapX.Constants 97% 87.5%
UniswapSharp.UniswapX.ConstantsV4 100%
UniswapSharp.UniswapX.MissingConfiguration 100%
UniswapSharp.UniswapX.Order.BlockOverrides 100%
UniswapSharp.UniswapX.Order.CosignedPriorityOrder 60% 85.7%
UniswapSharp.UniswapX.Order.CosignedV2DutchOrder 100% 100%
UniswapSharp.UniswapX.Order.CosignedV3DutchOrder 100% 100%
UniswapSharp.UniswapX.Order.CosignerDataJSON 0%
UniswapSharp.UniswapX.Order.CustomOrderValidation 100%
UniswapSharp.UniswapX.Order.DutchInputJSON 100%
UniswapSharp.UniswapX.Order.DutchOrder 90.1% 83.3%
UniswapSharp.UniswapX.Order.DutchOutputJSON 100%
UniswapSharp.UniswapX.Order.ExclusiveFillerData 100%
UniswapSharp.UniswapX.Order.OrderEncoding 100%
UniswapSharp.UniswapX.Order.OrderNotFillable 100%
UniswapSharp.UniswapX.Order.OrderResolutionOptions 100%
UniswapSharp.UniswapX.Order.PriorityOrderResolutionOptions 100%
UniswapSharp.UniswapX.Order.RelayOrder 96.8% 50%
UniswapSharp.UniswapX.Order.ResolvedRelayFee 100%
UniswapSharp.UniswapX.Order.ResolvedRelayOrder 100%
UniswapSharp.UniswapX.Order.ResolvedUniswapXOrder 100%
UniswapSharp.UniswapX.Order.TokenAmount 100%
UniswapSharp.UniswapX.Order.UnsignedPriorityOrder 82.5% 100%
UniswapSharp.UniswapX.Order.UnsignedV2DutchOrder 93.6% 100%
UniswapSharp.UniswapX.Order.UnsignedV2DutchOrder.UnsignedV2DutchOrderInfoJS
ON
100%
UniswapSharp.UniswapX.Order.UnsignedV3DutchOrder 99.1% 95%
UniswapSharp.UniswapX.Order.UnsignedV3DutchOrder.NonlinearDutchDecayJSON 100%
UniswapSharp.UniswapX.Order.UnsignedV3DutchOrder.UnsignedV3DutchOrderInfoJS
ON
100%
UniswapSharp.UniswapX.Order.UnsignedV3DutchOrder.V3DutchInputJSON 100%
UniswapSharp.UniswapX.Order.UnsignedV3DutchOrder.V3DutchOutputJSON 100%
UniswapSharp.UniswapX.Order.V3OrderResolutionOptions 100%
UniswapSharp.UniswapX.Order.V4.CosignedHybridOrder 55.9% 39.7%
UniswapSharp.UniswapX.Order.V4.CosignedHybridOrderInfoJSON 100%
UniswapSharp.UniswapX.Order.V4.Hashing 99.2% 87.5%
UniswapSharp.UniswapX.Order.V4.HybridCosignerDataJSON 100%
UniswapSharp.UniswapX.Order.V4.HybridInputJSON 100%
UniswapSharp.UniswapX.Order.V4.HybridOrderCosignatureError 0%
UniswapSharp.UniswapX.Order.V4.HybridOrderPriceCurveError 0%
UniswapSharp.UniswapX.Order.V4.HybridOrderResolutionOptions 100%
UniswapSharp.UniswapX.Order.V4.HybridOutputJSON 100%
UniswapSharp.UniswapX.Order.V4.OrderResolutionError 100%
UniswapSharp.UniswapX.Order.V4.UnsignedHybridOrder 86.4% 41.6%
UniswapSharp.UniswapX.Order.Validation 88.8% 50%
UniswapSharp.UniswapX.OrderTypeMapping 100%
UniswapSharp.UniswapX.PermissionedToken 100%
UniswapSharp.UniswapX.Trade.DutchOrderTrade<TInput, TOutput> 64.7% 50%
UniswapSharp.UniswapX.Trade.ExpectedAmounts 100%
UniswapSharp.UniswapX.Trade.HybridOrderTrade<TInput, TOutput> 0% 0%
UniswapSharp.UniswapX.Trade.PriorityOrderTrade<TInput, TOutput> 71% 63.3%
UniswapSharp.UniswapX.Trade.RelayOrderTrade<TInput, TOutput> 93.5% 80%
UniswapSharp.UniswapX.Trade.TradeUtils 66.6% 64.2%
UniswapSharp.UniswapX.Trade.V2DutchOrderTrade<TInput, TOutput> 70.9% 50%
UniswapSharp.UniswapX.Trade.V3DutchOrderTrade<TInput, TOutput> 100% 50%
UniswapSharp.UniswapX.Trade.V3DutchOrderTrade<TInput, TOutput> 82.8% 75%
UniswapSharp.UniswapX.Utils.CancelParams 100%
UniswapSharp.UniswapX.Utils.DutchBlockDecay 88.8% 50%
UniswapSharp.UniswapX.Utils.DutchBlockDecayConfig 100%
UniswapSharp.UniswapX.Utils.DutchDecay 94.4% 80%
UniswapSharp.UniswapX.Utils.DutchDecayConfig 100%
UniswapSharp.UniswapX.Utils.NonceManager 51.9% 70%
UniswapSharp.UniswapX.Utils.NonLinearDutchDecayLib 97.2% 93.7%
UniswapSharp.UniswapX.Utils.OrderParser 91.6% 78.5%
UniswapSharp.UniswapX.Utils.OrderSigning 100%
UniswapSharp.UniswapX.Utils.OrderUtils 81.8% 72.7%
UniswapSharp.UniswapX.Utils.RelayOrderParser 50%
UniswapSharp.UniswapX.Utils.SplitNonce 100%
UniswapSharp.UniswapX.Utils.UniswapXOrderParser 94.2% 90.3%
UniswapSharp.UniversalRouter.EIP712Payload 100%
UniswapSharp.UniversalRouter.EIP712PayloadValue 100%
UniswapSharp.UniversalRouter.Entities.Actions.FlatFeeOptions 100%
UniswapSharp.UniversalRouter.Entities.Actions.UniswapTrade 71.4% 59%
UniswapSharp.UniversalRouter.Entities.TradeConfig 100%
UniswapSharp.UniversalRouter.ExecuteSignedDecoded 100%
UniswapSharp.UniversalRouter.SwapRouter 82.5% 73.3%
UniswapSharp.UniversalRouter.Types.FlatFee 100%
UniswapSharp.UniversalRouter.Types.PortionFee 100%
UniswapSharp.UniversalRouter.Types.SwapRouting 100%
UniswapSharp.UniversalRouter.Types.UnwrapWeth 100%
UniswapSharp.UniversalRouter.Types.V2SwapExactIn 100%
UniswapSharp.UniversalRouter.Types.V2SwapExactOut 0%
UniswapSharp.UniversalRouter.Types.V3SwapExactIn 100%
UniswapSharp.UniversalRouter.Types.V3SwapExactOut 100%
UniswapSharp.UniversalRouter.Types.V4Settle 100%
UniswapSharp.UniversalRouter.Types.V4SettleAll 0%
UniswapSharp.UniversalRouter.Types.V4Swap 100%
UniswapSharp.UniversalRouter.Types.V4SwapExactIn 100%
UniswapSharp.UniversalRouter.Types.V4SwapExactInSingle 0%
UniswapSharp.UniversalRouter.Types.V4SwapExactOut 0%
UniswapSharp.UniversalRouter.Types.V4SwapExactOutSingle 100%
UniswapSharp.UniversalRouter.Types.V4Take 100%
UniswapSharp.UniversalRouter.Types.V4TakeAll 0%
UniswapSharp.UniversalRouter.Types.V4TakePortion 0%
UniswapSharp.UniversalRouter.Types.WrapEth 100%
UniswapSharp.UniversalRouter.Utils.ChainConfig 100%
UniswapSharp.UniversalRouter.Utils.CommandDefinition 100%
UniswapSharp.UniversalRouter.Utils.CommandParser 95.8% 80%
UniswapSharp.UniversalRouter.Utils.ComputeEncodeSwapsAmounts 73.6% 50%
UniswapSharp.UniversalRouter.Utils.Constants 98.5% 85%
UniswapSharp.UniversalRouter.Utils.CurrencyAddress 100% 100%
UniswapSharp.UniversalRouter.Utils.Eip712 100%
UniswapSharp.UniversalRouter.Utils.EncodeSwapsAmounts 100%
UniswapSharp.UniversalRouter.Utils.EncodeSwapStep 57.5% 57.6%
UniswapSharp.UniversalRouter.Utils.EncodeV4Action 24.3% 23.5%
UniswapSharp.UniversalRouter.Utils.GenericCommandParser 88.6% 73%
UniswapSharp.UniversalRouter.Utils.InputTokenOptions 0%
UniswapSharp.UniversalRouter.Utils.InputTokens 48% 25%
UniswapSharp.UniversalRouter.Utils.NormalizeEncodeSwapsSpec 100% 50%
UniswapSharp.UniversalRouter.Utils.Numbers 100%
UniswapSharp.UniversalRouter.Utils.Param 100%
UniswapSharp.UniversalRouter.Utils.ParamType 100%
UniswapSharp.UniversalRouter.Utils.PartialClassicQuote 100%
UniswapSharp.UniversalRouter.Utils.PathCurrency 20% 8.3%
UniswapSharp.UniversalRouter.Utils.Permit2Permit 100%
UniswapSharp.UniversalRouter.Utils.Permit2TransferFrom 0%
UniswapSharp.UniversalRouter.Utils.RoutePlanner 94.7% 64.2%
UniswapSharp.UniversalRouter.Utils.RouterConfig 100%
UniswapSharp.UniversalRouter.Utils.RouterTradeAdapter 97.5% 91.8%
UniswapSharp.UniversalRouter.Utils.RouterTradeAdapter.RouteResult 100%
UniswapSharp.UniversalRouter.Utils.Signatures 90.4% 66.6%
UniswapSharp.UniversalRouter.Utils.SplitSig 100%
UniswapSharp.UniversalRouter.Utils.TokenInRoute 100%
UniswapSharp.UniversalRouter.Utils.UniversalRouterCall 100%
UniswapSharp.UniversalRouter.Utils.UniversalRouterCommand 100%
UniswapSharp.UniversalRouter.Utils.UniversalRouterVersionExtensions 100% 100%
UniswapSharp.UniversalRouter.Utils.V2PoolInRoute 100%
UniswapSharp.UniversalRouter.Utils.V2Reserve 100%
UniswapSharp.UniversalRouter.Utils.V3PathItem 100%
UniswapSharp.UniversalRouter.Utils.V3PoolInRoute 100%
UniswapSharp.UniversalRouter.Utils.V4PoolInRoute 100%
UniswapSharp.UniversalRouter.Utils.V4URVersion 100% 100%
UniswapSharp.UniversalRouter.Utils.ValidateEncodeSwaps 78.3% 71.2%
UniswapSharp.V2.Constants 100%
UniswapSharp.V2.Entities.BestTradeOptions 100%
UniswapSharp.V2.Entities.Pair 91.8% 83.3%
UniswapSharp.V2.Entities.Route<TInput, TOutput> 100%
UniswapSharp.V2.Entities.Route<TInput, TOutput> 86.4% 79.1%
UniswapSharp.V2.Entities.Trade<TInput, TOutput> 95% 87.7%
UniswapSharp.V2.InsufficientInputAmountError 0%
UniswapSharp.V2.InsufficientReservesError 0%
UniswapSharp.V2.Router 96% 85.2%
UniswapSharp.V2.Router<TInput, TOutput> 96% 85.2%
UniswapSharp.V3.Constants 93.3%
UniswapSharp.V3.Entities.NoTickDataProvider 100%
UniswapSharp.V3.Entities.Pool 96.4% 90.6%
UniswapSharp.V3.Entities.Position 86.7% 78.1%
UniswapSharp.V3.Entities.Route<TInput, TOutput> 100% 100%
UniswapSharp.V3.Entities.Route<TInput, TOutput> 91.4% 83.3%
UniswapSharp.V3.Entities.Swap<TInput, TOutput> 100%
UniswapSharp.V3.Entities.Tick 100% 100%
UniswapSharp.V3.Entities.TickListDataProvider 100% 100%
UniswapSharp.V3.Entities.Trade.BestTradeOptions<TInput, TOutput> 100%
UniswapSharp.V3.Entities.Trade<TInput, TOutput, TAmount> 93.5% 90.4%
UniswapSharp.V3.Entities.Trade<TInput, TOutput> 93.5% 90.4%
UniswapSharp.V3.Entities.Trade<TInput, TOutput> 93.4% 90.3%
UniswapSharp.V3.Multicall 92.8% 70%
UniswapSharp.V3.NonfungiblePositionManager 93.5% 80.4%
UniswapSharp.V3.Payments 93.3% 100%
UniswapSharp.V3.SelfPermit 94.1% 75%
UniswapSharp.V3.Staker 100% 85.7%
UniswapSharp.V3.SwapQuoter 97.5% 93.7%
UniswapSharp.V3.SwapRouter 95.6% 92.5%
UniswapSharp.V3.SwapRouter<TInput, TOutput> 95.6% 92.5%
UniswapSharp.V3.Utils.AbiFunctionEncoder 90% 75%
UniswapSharp.V3.Utils.ComputePoolAddress 100% 100%
UniswapSharp.V3.Utils.EncodeRouteToPath 100% 100%
UniswapSharp.V3.Utils.EncodeSqrtRatioX96 93.7% 75%
UniswapSharp.V3.Utils.FullMath 100% 100%
UniswapSharp.V3.Utils.LiquidityMath 80% 50%
UniswapSharp.V3.Utils.ListExtensions 100% 100%
UniswapSharp.V3.Utils.MaxLiquidity 82.6% 80%
UniswapSharp.V3.Utils.MostSignificantBitCalculator 100% 100%
UniswapSharp.V3.Utils.NearestUsableTick 100% 100%
UniswapSharp.V3.Utils.PositionLibrary 100% 100%
UniswapSharp.V3.Utils.PriceTick 88.8% 80%
UniswapSharp.V3.Utils.SqrtPriceMath 86% 68.4%
UniswapSharp.V3.Utils.SwapMath 96.6% 96.8%
UniswapSharp.V3.Utils.SwapMath.ReturnValues 100%
UniswapSharp.V3.Utils.TickLibrary 65% 50%
UniswapSharp.V3.Utils.TickList 95% 93.4%
UniswapSharp.V3.Utils.TickMath 98.3% 96.8%
UniswapSharp.V3.Utils.Utilities 100% 100%
UniswapSharp.V3.Utils.V3Swap 93% 82.6%
UniswapSharp.V4.AllowanceTransferPermitBatch 100%
UniswapSharp.V4.AllowanceTransferPermitSingle 0%
UniswapSharp.V4.Constants 100%
UniswapSharp.V4.Entities.Pool 96.8% 84.3%
UniswapSharp.V4.Entities.PoolKey 100%
UniswapSharp.V4.Entities.Position 56.9% 60%
UniswapSharp.V4.Entities.Route<TInput, TOutput> 100% 100%
UniswapSharp.V4.Entities.Route<TInput, TOutput> 94.1% 93.7%
UniswapSharp.V4.Entities.Swap<TInput, TOutput> 100%
UniswapSharp.V4.Entities.Trade.BestTradeOptions<TInput, TOutput> 100%
UniswapSharp.V4.Entities.Trade<TInput, TOutput, TAmount> 91.5% 92.5%
UniswapSharp.V4.Entities.Trade<TInput, TOutput> 91.5% 92.5%
UniswapSharp.V4.Entities.Trade<TInput, TOutput> 96.6% 95%
UniswapSharp.V4.PermitDetails 0%
UniswapSharp.V4.Utils.AbiParamDecoder 95.2% 92.8%
UniswapSharp.V4.Utils.AbiParamEncoder 87% 72.4%
UniswapSharp.V4.Utils.AbiType 100%
UniswapSharp.V4.Utils.AbiTypeParser 96.6% 95.1%
UniswapSharp.V4.Utils.AddressType 100%
UniswapSharp.V4.Utils.ArrayType 50% 25%
UniswapSharp.V4.Utils.BoolType 100%
UniswapSharp.V4.Utils.BytesType 100%
UniswapSharp.V4.Utils.CurrencyMap 100% 100%
UniswapSharp.V4.Utils.CurrencyOrder 100% 100%
UniswapSharp.V4.Utils.EncodeRouteToPath 100% 100%
UniswapSharp.V4.Utils.FixedBytesType 100%
UniswapSharp.V4.Utils.Hook 100% 95%
UniswapSharp.V4.Utils.NumberType 100%
UniswapSharp.V4.Utils.Param 100%
UniswapSharp.V4.Utils.ParamType 100%
UniswapSharp.V4.Utils.PathCurrency 90% 87.5%
UniswapSharp.V4.Utils.PathKey 100%
UniswapSharp.V4.Utils.PriceTick 88.2% 80%
UniswapSharp.V4.Utils.SwapExactIn 100%
UniswapSharp.V4.Utils.SwapExactInSingle 100%
UniswapSharp.V4.Utils.SwapExactOut 100%
UniswapSharp.V4.Utils.SwapExactOutSingle 100%
UniswapSharp.V4.Utils.TupleType 100% 100%
UniswapSharp.V4.Utils.V4BaseActionsParser 96.3% 94.4%
UniswapSharp.V4.Utils.V4Planner 99% 92%
UniswapSharp.V4.Utils.V4PositionPlanner 100%
UniswapSharp.V4.Utils.V4RouterAction 100%
UniswapSharp.V4.Utils.V4RouterCall 100%
UniswapSharp.V4.V4PositionManager 99.4% 100%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Phase B (first pass): dependency-update sweep — test-verified

1 participant