Table of Contents

Class UnauthorizedPendingArkTransactionException

Namespace
NArk.Core.Services
Assembly
NArk.Core.dll

Thrown by PendingArkTransactionRecoveryService when a pending Arkade transaction reported by the server fails local authorization, i.e. it is not a transaction this wallet ever submitted.

public sealed class UnauthorizedPendingArkTransactionException : Exception, ISerializable
Inheritance
UnauthorizedPendingArkTransactionException
Implements
Inherited Members

Remarks

Pending-tx recovery signs checkpoint PSBTs that arrive entirely from the server, so every checkpoint is re-derived locally before a signature is produced: the checkpoint must pay the spent input's full value into the checkpoint contract this wallet would itself have built, and the accompanying final Arkade transaction must be the one the wallet signed at submit time. This exception means one of those checks failed, so the transaction is outside what the wallet ever authorized and is left unsigned.

It is raised per pending transaction: the recovery loop logs it, surfaces it on RecoveryFailed, and continues with the next pending transaction. No signature has been produced for the rejected transaction, and none will be on subsequent runs while it still fails validation.

This type means the server presented something the wallet did not authorize, and nothing else — it is a persistent mismatch worth investigating rather than a transient error. Failures rooted in local state, where no expectation could be rebuilt to compare the server's response against (a checkpoint input with no matching local VTXO, or a coin whose contract names no server key), surface as InvalidOperationException on the same event instead. Those imply nothing about the server's behaviour: treat them as "this wallet cannot currently recover this transaction", not as evidence of an attack.

Constructors

UnauthorizedPendingArkTransactionException(string, string)

Creates the exception for a rejected pending Arkade transaction.

public UnauthorizedPendingArkTransactionException(string arkTxId, string reason)

Parameters

arkTxId string

Server-advertised id of the rejected pending transaction.

reason string

Why the transaction was rejected.

Properties

ArkTxId

Server-advertised id of the rejected pending Arkade transaction.

public string ArkTxId { get; }

Property Value

string

Reason

Why the transaction was rejected, without the message prefix.

public string Reason { get; }

Property Value

string