Files

2.0 KiB

Why

Jupiter's provider responses currently end Swap and Perps operations without independently confirming the returned transaction signature on Solana. The shared SolanaBlockChain.awaitTransaction() API now makes it possible for these high-level operations to report success only after CONFIRMED on-chain success while preserving definitive failure and unknown-timeout outcomes.

What Changes

  • Add a shared checked Jupiter outcome exception that preserves the submitted signature, requested commitment, and complete failed or timed-out Solana outcome.
  • Make Jupiter Swap independently await its validated execution signature at CONFIRMED before returning its existing result.
  • Make Jupiter Perps increase and decrease independently await their valid execution signatures at CONFIRMED through one common private policy helper.
  • Add validated constructor-injected confirmation timeouts while preserving existing constructors with a two-minute default.
  • Preserve Jupiter provider-response validation as a distinct prerequisite to Solana confirmation, including Swap actual-amount validation.
  • Add outcome-specific Perps alarm reporting without moving confirmation into alarm actions or introducing retries or resubmission.
  • Update affected public Javadoc and checked-exception declarations.

Capabilities

New Capabilities

  • jupiter-perps-transaction-confirmation: Defines independent on-chain confirmation and alarm reporting for Jupiter Perps increase and decrease operations.

Modified Capabilities

  • jupiter-swap-service: Requires independent CONFIRMED Solana success after the existing Jupiter execution-response validation and defines structured failure and timeout handling.

Impact

The Jupiter common API gains one checked exception. The Jupiter Swap and Perps APIs, their reference implementations, and the two Perps alarm actions gain corresponding confirmation and error propagation behavior. Existing transaction construction, signing, provider submission, wallet methods, pacing, and retry behavior remain unchanged.