Class UnauthorizedPendingArkTransactionException
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
arkTxIdstringServer-advertised id of the rejected pending transaction.
reasonstringWhy the transaction was rejected.
Properties
ArkTxId
Server-advertised id of the rejected pending Arkade transaction.
public string ArkTxId { get; }
Property Value
Reason
Why the transaction was rejected, without the message prefix.
public string Reason { get; }