91: Reconcile timed-out Evelyn IOU burner swaps in later iterations
This commit is contained in:
@@ -96,3 +96,33 @@ The cached Solana blockchain decorator SHALL delegate every transaction-await ca
|
||||
#### Scenario: Repeated awaits through cached decorator
|
||||
- **WHEN** callers invoke transaction awaiting multiple times through the cached decorator
|
||||
- **THEN** every invocation reaches the delegate independently
|
||||
|
||||
### Requirement: Read-only transaction reconciliation
|
||||
The blockchain SHALL support bounded reconciliation of an existing signature at CONFIRMED or stronger, retaining normal await behavior and outcome statuses. Reconciliation SHALL distinguish definitive success/failure, demonstrated non-executed expiry and unresolved evidence. It SHALL use the existing shared RPC gate/deadline and historical status lookup without submission, caching, immediate retries or a new pacing mechanism. Unsupported expiry evidence SHALL remain unresolved.
|
||||
|
||||
#### Scenario: Definitive historical status
|
||||
- **WHEN** the original signature is observed at or above requested commitment
|
||||
- **THEN** reconciliation returns its successful or failed outcome with slot and complete failure details as applicable
|
||||
|
||||
#### Scenario: Below commitment or interrupted
|
||||
- **WHEN** the signature is only observed below commitment or the check is interrupted
|
||||
- **THEN** expiry is not inferred; an unresolved result is returned for lower commitment and interruption propagates normally
|
||||
|
||||
#### Scenario: Cached decorator
|
||||
- **WHEN** reconciliation is invoked through the cached decorator
|
||||
- **THEN** it reaches the delegate independently on every call
|
||||
|
||||
### Requirement: Expiry requires original validity and reliable local history absence
|
||||
Expiry SHALL require signature-bound original validity, finalized height above its last valid height, original blockhash invalidity, retained local history through its submission anchor and fresh finalized signer-history absence. Missing, pruned, stale, lower-commitment or inconsistent evidence SHALL remain unresolved. Absence, elapsed time or blockhash invalidity alone SHALL NOT authorize clearing a pending transaction.
|
||||
|
||||
#### Scenario: Non-executed expiry is established
|
||||
- **WHEN** all original-validity, finalized-height, original-blockhash, local-history-coverage and finalized signer-history absence checks succeed, with `minContextSlot` at/after the expired finalized context and a bounded page reaching before the submission anchor or exhausting covered retained history
|
||||
- **THEN** reconciliation identifies a non-executed expired transaction without resubmitting it
|
||||
|
||||
#### Scenario: Evidence is incomplete
|
||||
- **WHEN** original metadata is missing, history is unavailable/pruned, a lookup fails, a response is inconsistent/stale or the original blockhash is still valid
|
||||
- **THEN** no expiry result is returned and the diagnostic explains the missing evidence
|
||||
|
||||
#### Scenario: Bounded history page is incomplete
|
||||
- **WHEN** a full history page ends at or after the submission anchor
|
||||
- **THEN** the transaction remains unresolved instead of treating partial absence as proof
|
||||
|
||||
Reference in New Issue
Block a user