// SPDX-FileCopyrightText: © 2026 LEDGER SAS // SPDX-License-Identifier: Apache-2.0 /** Decoded summary of `extras.result_xdr` (Horizon transaction result XDR). */ export type StellarDecodedResultXdr = | { feeChargedStroops: string resultSwitch: string } | { decodeFailed: true rawResultXdrBase64: string } export type StellarBroadcastFailedFields = { documentationSummary: string horizonTransactionCode: string horizonOperationCodes: string[] | undefined resultXdrSwitchName: string | undefined feeChargedStroops: string | undefined stellarDocUrl: string decodedResultXdr: StellarDecodedResultXdr | undefined envelopeXdr: string } export class StellarBroadcastFailedError extends Error { override name = 'StellarBroadcastFailedError' constructor( message?: string, fields?: StellarBroadcastFailedFields, options?: { cause?: unknown } ) { super(message || 'StellarBroadcastFailedError') if (fields) Object.assign(this, fields) if (options?.cause !== undefined) Object.assign(this, { cause: options.cause }) } } export class StellarBurnAddressError extends Error { override name = 'StellarBurnAddressError' constructor(message?: string) { super(message || 'StellarBurnAddressError') } } export class StellarAssetRequired extends Error { override name = 'StellarAssetRequired' constructor(message?: string) { super(message || 'StellarAssetRequired') } } export class StellarMuxedAccountNotExist extends Error { override name = 'StellarMuxedAccountNotExist' constructor(message?: string) { super(message || 'StellarMuxedAccountNotExist') } } export class StellarWrongMemoFormat extends Error { override name = 'StellarWrongMemoFormat' constructor(message?: string) { super(message || 'StellarWrongMemoFormat') } } export class StellarAssetNotAccepted extends Error { override name = 'StellarAssetNotAccepted' constructor(message?: string, fields?: Record) { super(message || 'StellarAssetNotAccepted') if (fields) Object.assign(this, fields) } } export class StellarAssetNotFound extends Error { override name = 'StellarAssetNotFound' constructor(message?: string) { super(message || 'StellarAssetNotFound') } } export class StellarNotEnoughNativeBalance extends Error { override name = 'StellarNotEnoughNativeBalance' constructor(message?: string) { super(message || 'StellarNotEnoughNativeBalance') } } export class StellarFeeSmallerThanRecommended extends Error { override name = 'StellarFeeSmallerThanRecommended' constructor(message?: string) { super(message || 'StellarFeeSmallerThanRecommended') } } export class StellarFeeSmallerThanBase extends Error { override name = 'StellarFeeSmallerThanBase' constructor(message?: string) { super(message || 'StellarFeeSmallerThanBase') } } export class StellarNotEnoughNativeBalanceToAddTrustline extends Error { override name = 'StellarNotEnoughNativeBalanceToAddTrustline' constructor(message?: string) { super(message || 'StellarNotEnoughNativeBalanceToAddTrustline') } } export class StellarSourceHasMultiSign extends Error { override name = 'StellarSourceHasMultiSign' constructor(message?: string) { super(message || 'StellarSourceHasMultiSign') } }