Skip to content

Add simd 553 fee comparison to transaction page - #1249

Merged
Woody4618 merged 3 commits into
solana-foundation:masterfrom
Woody4618:temp-feature-simd-553
Aug 26, 2026
Merged

Add simd 553 fee comparison to transaction page#1249
Woody4618 merged 3 commits into
solana-foundation:masterfrom
Woody4618:temp-feature-simd-553

Conversation

@Woody4618

Copy link
Copy Markdown
Collaborator

Description

Added a comparison fo fees under SIMD 0553

image

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

@Woody4618 is attempting to deploy a commit to the Solana Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds an environment-gated SIMD-0553 fee comparison to transaction summaries.

  • Projects inclusion, resource, and priority fees at the three staged rates.
  • Reconstructs requested compute cost from transaction metadata and renders signed percentage comparisons.
  • Adds unit, component, fixture, Storybook, environment, and OpenSpec coverage.

Confidence Score: 4/5

The PR is not yet safe to merge because explicit compute limits can still be replaced by fallback reserves, producing materially incorrect SIMD-0553 projections.

The requested-cost fix depends on a parsed instruction estimator whose string-only extraction does not match the byte-shaped partially decoded instructions used by the transaction path, leaving the previously reported underestimation reachable.

Files Needing Attention: app/features/transaction/ui/SummaryCard.tsx and app/entities/compute-unit/lib/compute-units-schedule.ts

Important Files Changed

Filename Overview
app/features/transaction/ui/SummaryCard.tsx Integrates the projection, but its requested-cost correction can receive an inaccurate fallback reserve for parsed transactions with explicit compute limits.
app/entities/transaction-fee/lib/resource-and-inclusion-fee.ts Implements the staged fee arithmetic and requested-cost substitution; correctness depends on receiving the actual requested compute limit.
app/entities/transaction-fee/ui/BaseResourceFeeProjection.tsx Renders projected totals and percentage comparisons without an identified blocking defect.
app/features/transaction/ui/tests/SummaryCard-fee-projection.spec.tsx Covers tight and loose budgets, but its byte-shaped fixtures expose a mismatch with the parsed compute-limit estimator used by the component.

Reviews (3): Last reviewed commit: "Update transaction.ts" | Re-trigger Greptile

// quantity the scheduler packs blocks with.
const feeProjections =
isSimd0553FeeEnabled() && costUnits !== undefined && priorityFeeLamports !== undefined
? projectResourceAndInclusionFees({ priorityFeeLamports, requestedCostUnits: costUnits })

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Requested costs use execution

When a transaction requests substantially more compute or loaded-account data than it consumes, this passes the RPC's executed/actual costUnits as SIMD-0553's requested-cost charge base, causing the displayed projection to understate the proposed fee and potentially misclassify the transaction as cheaper.

Knowledge Base Used: Transaction inspection and execution analysis

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
explorer Ready Ready Preview Aug 26, 2026 7:04pm

Request Review

const transactionWithMeta = details?.data?.transactionWithMeta;
const fee = transactionWithMeta?.meta?.fee;
const costUnits = transactionWithMeta?.meta?.costUnits;
const computeUnitsConsumed = transactionWithMeta?.meta?.computeUnitsConsumed;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fee row in Summary displays the actual fee, including priority fees, not the price for a single signature.

Here is the Tx with priority fees: https://explorer.solana.com/tx/2Vr1o2mL4531v9DuYtkGdTnC9f7DpJZP3N2jwkBm7huGkopfNoYXPQ1c2nz4P1nvtzXW52dfycJoGKjWUo6hMqoX

The fee under SIMD uses costModel and does not account for priority fees. That might produce wrong percentages

priorityFeeLamports,
requestedCostUnits: estimateRequestedCostUnits({
computeUnitsConsumed,
executedCostUnits: costUnits,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Explicit compute limits ignored

When a legacy or v0 transaction contains SetComputeUnitLimit, the parsed estimator's string-only data check skips the byte-shaped instruction and supplies a fallback reserve here instead of the requested limit, causing the SIMD-0553 projection to understate the fee or classify the transaction incorrectly.

@Woody4618
Woody4618 merged commit 9bb213e into solana-foundation:master Aug 26, 2026
14 checks passed
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.

2 participants