@arcanetech/privacy-sdk-stellar 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state/foundation/paths.ts","../../src/state/schemas/shared.ts","../../src/state/foundation/coerce.ts","../../src/state/read/normalize/assets.ts","../../src/state/read/normalize/claims.ts","../../src/state/read/normalize/deliveries.ts","../../src/state/read/normalize/pool.ts","../../src/state/read/normalize/registry.ts","../../src/state/read/normalize/records.ts","../../src/state/read/normalize/wallet.ts","../../src/state/read/snapshot.ts","../../src/state/filters/register-schemas.ts","../../src/state/filters/ops.ts","../../src/state/bridge/call-types.ts","../../src/state/schemas/assets/catalog.ts","../../src/state/definitions/assets.ts","../../src/state/schemas/assets/balances.ts","../../src/state/foundation/keys.ts","../../src/state/definitions/balances.ts","../../src/state/schemas/claims/write.ts","../../src/state/schemas/claims/page.ts","../../src/state/definitions/claims.ts","../../src/state/schemas/claims/deliveries.ts","../../src/state/definitions/deliveries.ts","../../src/state/schemas/pool/merkle.ts","../../src/state/definitions/pool.ts","../../src/state/schemas/records/private.ts","../../src/state/schemas/records/transactions.ts","../../src/state/definitions/records.ts","../../src/state/schemas/registry/lookup.ts","../../src/state/definitions/registry.ts","../../src/state/definitions/transactions.ts","../../src/state/schemas/wallet/scalar.ts","../../src/state/schemas/wallet/private-address.ts","../../src/state/definitions/wallet.ts","../../src/state/definitions/index.ts","../../src/state/service/base.ts","../../src/state/service/assets/balance-methods.ts","../../src/state/service/assets/upsert-methods.ts","../../src/state/service/assets/catalog-methods.ts","../../src/state/service/assets/index.ts","../../src/state/service/claims/read-methods.ts","../../src/state/service/claims/write-methods.ts","../../src/state/service/claims/index.ts","../../src/state/service/deliveries/incoming-methods.ts","../../src/state/service/deliveries/sync-methods.ts","../../src/state/service/deliveries/index.ts","../../src/state/service/pool/ephemeral.ts","../../src/state/service/pool/merkle.ts","../../src/state/service/records/private-record-upsert.ts","../../src/state/service/records/private-methods.ts","../../src/state/service/records/transaction-methods.ts","../../src/state/service/records/index.ts","../../src/state/service/registry/lookup-read.ts","../../src/state/service/registry/lookup-write.ts","../../src/state/service/registry/lookup.ts","../../src/state/service/registry/wallet-record-methods.ts","../../src/state/service/registry/wallet-scalar-methods.ts","../../src/state/service/registry/wallet-address.ts","../../src/state/service/compose.ts","../../src/state/service/index.ts"],"sourcesContent":["export const STELLAR_STATE_PATHS = {\n privateRecords: '$.privateRecords',\n pendingClaimsItems: '$.pendingClaims.items',\n pendingClaimsPagination: '$.pendingClaims.pagination',\n pendingClaimsCountByOwner: '$.pendingClaims.countByOwner',\n registryPrivateAddresses: '$.registry.privateAddresses',\n registryRegisteredAddresses: '$.registry.registeredAddresses',\n registryLookups: '$.registry.lookups',\n assets: '$.assets',\n assetsById: '$.assets.byId',\n assetsListOrder: '$.assets.listOrder',\n publicBalances: '$.balances.publicByOwnerAsset',\n poolsByContract: '$.pools.byContract',\n poolsLeafEphemeral: '$.pools.leafEphemeralByContractAndIndex',\n deliveriesIncomingById: '$.deliveries.incomingById',\n deliveriesSync: '$.deliveries.syncByPrivateAddressAsset',\n transactionsByHash: '$.transactions.byHash',\n walletPrivateAddressScalars: '$.wallet.privateAddressScalars',\n walletPrivateAddressRecords: '$.wallet.privateAddressRecords',\n walletDefaultPrivateAddressNonce: '$.wallet.defaultPrivateAddressNonce',\n} as const;\n","import { z } from 'zod';\n\nexport const pendingClaimSchema = z.object({\n id: z.string().min(1),\n owner: z.string().min(1),\n asset: z.string().min(1),\n amount: z.coerce.bigint(),\n createdAt: z.string().min(1),\n poolTxId: z.string().optional(),\n commitmentHex: z.string().optional(),\n nullifierHex: z.string().optional(),\n futureNullifierHashHex: z.string().optional(),\n assetHiHex: z.string().optional(),\n assetLoHex: z.string().optional(),\n nullifierFieldHex: z.string().optional(),\n secretHex: z.string().optional(),\n tempPublicKeyXHex: z.string().optional(),\n tempPublicKeyYHex: z.string().optional(),\n encryptedRecoveryBase64: z.string().optional(),\n createdAtLedger: z.number().int().optional(),\n});\n\nexport const paginationSchema = z.object({\n total: z.number().int().nonnegative(),\n page: z.number().int().positive(),\n pageSize: z.number().int().positive(),\n hasMore: z.boolean(),\n});\n\nconst stellarPrivateCoinNoteSchema = z.object({\n value: z.string(),\n nullifier: z.string(),\n secret: z.string(),\n commitment: z.string(),\n asset_hi: z.string(),\n asset_lo: z.string(),\n application_id: z.string().optional(),\n});\n\nexport const privateRecordSchema = z.object({\n id: z.string().min(1),\n owner: z.string().min(1),\n asset: z.string().min(1),\n amount: z.coerce.bigint(),\n consumed: z.boolean(),\n status: z.enum(['pending', 'finalized', 'spent']).optional(),\n poolContract: z.string().optional(),\n commitmentHex: z.string().optional(),\n nullifierHex: z.string().optional(),\n amountDisplay: z.number().optional(),\n deliveryId: z.number().int().optional(),\n privateAddress: z.string().optional(),\n txHash: z.string().optional(),\n coinNote: stellarPrivateCoinNoteSchema.optional(),\n depositScalarHex: z.string().optional(),\n precommitementHex: z.string().optional(),\n});\n\nexport const assetSchema = z.object({\n id: z.number().int(),\n assetId: z.string().min(1),\n name: z.string().min(1),\n logoUrl: z.string().nullable(),\n issuerAddress: z.string().nullable(),\n clientContract: z.string().nullable(),\n poolContracts: z.array(z.string()),\n poolContract: z.string().min(1),\n mintable: z.boolean(),\n mintAmount: z.string().nullable(),\n decimals: z.number().int().nullable().optional(),\n});\n\nexport const publicBalanceSchema = z.object({\n owner: z.string().min(1),\n asset: z.string().min(1),\n balance: z.string(),\n trustlineStatus: z.enum(['active', 'inactive', 'none']),\n});\n\nexport const registryLookupSchema = z.object({\n owner: z.string().min(1),\n status: z.enum(['registered', 'unregistered']),\n privateAddressStpl1: z.string().optional(),\n publicKeyXHex: z.string().optional(),\n publicKeyYHex: z.string().optional(),\n updatedAtLedger: z.number().int().optional(),\n cachedAt: z.string().optional(),\n});\n\nexport const walletPrivateAddressScalarSchema = z.object({\n owner: z.string().min(1),\n nonce: z.string().min(1),\n scalarHex: z.string().min(1),\n updatedAt: z.string().optional(),\n});\n\nexport const walletPrivateAddressRecordSchema = z.object({\n owner: z.string().min(1),\n nonce: z.string().min(1),\n privateAddress: z.string().min(1),\n createdAt: z.number(),\n});\n\nexport const poolMerkleStateSchema = z.object({\n poolContract: z.string().min(1),\n commitments: z.array(z.string()),\n commitmentCount: z.number().int().nonnegative(),\n merkleRootHex: z.string().min(1),\n updatedAt: z.number(),\n syncedLedger: z.number().int().optional(),\n});\n\nexport const leafEphemeralSchema = z.object({\n poolContract: z.string().min(1),\n leafIndex: z.number().int().nonnegative(),\n xHex: z.string().min(1),\n yHex: z.string().min(1),\n cachedAt: z.string().optional(),\n});\n\nexport const incomingDeliverySchema = z.object({\n id: z.number().int(),\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n ciphertextBase64: z.string().min(1),\n ephemeralKey: z.string().min(1),\n tagBase64: z.string().min(1),\n createdAt: z.string().min(1),\n processed: z.boolean().optional(),\n});\n\nexport const deliverySyncStateSchema = z.object({\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n bloomM: z.number().int().positive(),\n bloomK: z.number().int().positive(),\n bloomBitsBase64: z.string().optional(),\n lastPage: z.number().int().positive().optional(),\n lastPolledAt: z.string().optional(),\n});\n\nexport const transactionStatusSchema = z.object({\n txHash: z.string().min(1),\n status: z.enum(['pending', 'success', 'failed']),\n ledger: z.number().int().optional(),\n createdAt: z.string().optional(),\n});\n","export function withoutUndefinedFields<T extends Record<string, unknown>>(value: T): T {\n const next = {} as T;\n for (const [key, fieldValue] of Object.entries(value)) {\n if (fieldValue !== undefined) {\n Reflect.set(next, key, fieldValue);\n }\n }\n return next;\n}\n","import { assetSchema, publicBalanceSchema } from '../../schemas/shared.js';\nimport type {\n StellarAsset,\n StellarAssetsCatalog,\n StellarPublicBalance,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeAssetsCatalog(value: unknown): StellarAssetsCatalog {\n if (typeof value !== 'object' || value === null) {\n return { byId: {}, listOrder: [] };\n }\n const record = value as Record<string, unknown>;\n const byIdRaw = record.byId;\n const listOrderRaw = record.listOrder;\n const byId: Record<string, StellarAsset> = {};\n if (typeof byIdRaw === 'object' && byIdRaw !== null) {\n for (const [key, entry] of Object.entries(byIdRaw)) {\n const parsed = assetSchema.safeParse(entry);\n if (parsed.success) {\n byId[key] = withoutUndefinedFields(parsed.data) as StellarAsset;\n }\n }\n }\n const listOrder = Array.isArray(listOrderRaw)\n ? listOrderRaw.filter((item): item is string => typeof item === 'string')\n : [];\n return { byId, listOrder };\n}\n\nexport function normalizeAsset(value: unknown): StellarAsset | undefined {\n const parsed = assetSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarAsset)\n : undefined;\n}\n\nexport function normalizePublicBalance(\n value: unknown,\n): StellarPublicBalance | undefined {\n const parsed = publicBalanceSchema.safeParse(value);\n return parsed.success ? parsed.data : undefined;\n}\n\nexport function normalizePublicBalancesFromEntries(\n value: unknown,\n owner: string,\n): StellarPublicBalance[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((entry) => {\n if (!Array.isArray(entry) || entry.length < 2) {\n return;\n }\n const [key, balanceValue] = entry;\n if (typeof key !== 'string' || !key.startsWith(`${owner}:`)) {\n return;\n }\n return normalizePublicBalance(balanceValue);\n })\n .filter((balance): balance is StellarPublicBalance => balance !== undefined);\n}\n","import { paginationSchema, pendingClaimSchema } from '../../schemas/shared.js';\nimport type {\n StellarPendingClaim,\n StellarPendingClaimsState,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizePendingClaimsState(value: unknown): StellarPendingClaimsState {\n if (typeof value !== 'object' || value === null) {\n return { items: [] };\n }\n\n const record = value as Record<string, unknown>;\n const items = Array.isArray(record.items)\n ? record.items.flatMap((item) => {\n const parsed = pendingClaimSchema.safeParse(item);\n return parsed.success\n ? [withoutUndefinedFields(parsed.data) as StellarPendingClaim]\n : [];\n })\n : [];\n\n const paginationResult = paginationSchema.safeParse(record.pagination);\n if (paginationResult.success) {\n return { items, pagination: paginationResult.data };\n }\n return { items };\n}\n\nexport function normalizePendingClaimsCount(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isInteger(value) && value >= 0\n ? value\n : undefined;\n}\n","import {\n deliverySyncStateSchema,\n incomingDeliverySchema,\n} from '../../schemas/shared.js';\nimport type {\n StellarDeliverySyncState,\n StellarIncomingDelivery,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeIncomingDeliveries(value: unknown): StellarIncomingDelivery[] {\n const entries =\n typeof value === 'object' && value !== null && !Array.isArray(value)\n ? Object.values(value)\n : value;\n if (!Array.isArray(entries)) {\n return [];\n }\n return entries.flatMap((entry) => {\n const parsed = incomingDeliverySchema.safeParse(entry);\n return parsed.success\n ? [withoutUndefinedFields(parsed.data) as StellarIncomingDelivery]\n : [];\n });\n}\n\nexport function normalizeDeliverySyncState(\n value: unknown,\n): StellarDeliverySyncState | undefined {\n const parsed = deliverySyncStateSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarDeliverySyncState)\n : undefined;\n}\n","import { leafEphemeralSchema, poolMerkleStateSchema } from '../../schemas/shared.js';\nimport type {\n StellarLeafEphemeral,\n StellarPoolMerkleState,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizePoolMerkleState(\n value: unknown,\n): StellarPoolMerkleState | undefined {\n const parsed = poolMerkleStateSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarPoolMerkleState)\n : undefined;\n}\n\nexport function normalizeLeafEphemeral(\n value: unknown,\n): StellarLeafEphemeral | undefined {\n const parsed = leafEphemeralSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarLeafEphemeral)\n : undefined;\n}\n","import { registryLookupSchema } from '../../schemas/shared.js';\nimport type { StellarRegistryLookup } from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeCachedPrivateAddress(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nexport function normalizeRegistryLookup(\n value: unknown,\n): StellarRegistryLookup | undefined {\n const parsed = registryLookupSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarRegistryLookup)\n : undefined;\n}\n\nexport function normalizeRegistryLookupFromLegacy(input: {\n address: string;\n registered: unknown;\n privateAddress: unknown;\n}): StellarRegistryLookup | undefined {\n const lookup = normalizeRegistryLookup(\n typeof input.registered === 'object' && input.registered !== null\n ? input.registered\n : undefined,\n );\n if (lookup) {\n return lookup;\n }\n if (input.registered === undefined && input.privateAddress === undefined) {\n return undefined;\n }\n const registered = Boolean(input.registered);\n const privateAddressStpl1 = normalizeCachedPrivateAddress(input.privateAddress);\n if (!registered && privateAddressStpl1 === undefined) {\n return { owner: input.address, status: 'unregistered' };\n }\n return withoutUndefinedFields({\n owner: input.address,\n status: registered ? 'registered' : 'unregistered',\n ...(privateAddressStpl1 === undefined ? {} : { privateAddressStpl1 }),\n }) as StellarRegistryLookup;\n}\n","import { z } from 'zod';\nimport { privateRecordSchema, transactionStatusSchema } from '../../schemas/shared.js';\nimport type {\n StellarPrivateRecord,\n StellarTransactionStatus,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizePrivateRecords(value: unknown): StellarPrivateRecord[] {\n if (!Array.isArray(value)) {\n return [];\n }\n const records = value.flatMap((item) => {\n const parsed = privateRecordSchema.safeParse(item);\n return parsed.success ? [normalizePrivateRecordFields(parsed.data)] : [];\n });\n return deduplicatePrivateRecords(records);\n}\n\nexport function normalizeTransactionStatus(\n value: unknown,\n): StellarTransactionStatus | undefined {\n const parsed = transactionStatusSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarTransactionStatus)\n : undefined;\n}\n\nfunction privateRecordCommitmentKey(record: StellarPrivateRecord): string {\n return (\n record.commitmentHex?.trim() ||\n record.coinNote?.commitment.trim() ||\n record.id.trim()\n )\n .replace(/^0x/iu, '')\n .toLowerCase();\n}\n\nfunction normalizePrivateRecordFields(\n record: z.infer<typeof privateRecordSchema>,\n): StellarPrivateRecord {\n const normalized = withoutUndefinedFields(record) as StellarPrivateRecord;\n if (!normalized.privateAddress && normalized.owner.trim().startsWith('stpl')) {\n return { ...normalized, privateAddress: normalized.owner.trim() };\n }\n return normalized;\n}\n\nfunction preferPrivateRecord(\n current: StellarPrivateRecord,\n incoming: StellarPrivateRecord,\n key: string,\n): StellarPrivateRecord {\n if (privateRecordIdKey(incoming) === key) {\n return incoming;\n }\n if (privateRecordIdKey(current) === key) {\n return current;\n }\n return incoming;\n}\n\nfunction privateRecordIdKey(record: StellarPrivateRecord): string {\n return record.id.trim().replace(/^0x/iu, '').toLowerCase();\n}\n\nfunction deduplicatePrivateRecords(\n records: StellarPrivateRecord[],\n): StellarPrivateRecord[] {\n const byCommitment = new Map<string, StellarPrivateRecord>();\n for (const record of records) {\n const key = privateRecordCommitmentKey(record);\n const current = byCommitment.get(key);\n byCommitment.set(key, current ? preferPrivateRecord(current, record, key) : record);\n }\n return [...byCommitment.values()];\n}\n","import {\n walletPrivateAddressScalarSchema,\n walletPrivateAddressRecordSchema,\n} from '../../schemas/shared.js';\nimport type {\n StellarWalletPrivateAddressScalar,\n StellarWalletPrivateAddressRecord,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeWalletPrivateAddressScalar(\n value: unknown,\n): StellarWalletPrivateAddressScalar | undefined {\n const parsed = walletPrivateAddressScalarSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarWalletPrivateAddressScalar)\n : undefined;\n}\n\nexport function normalizeWalletPrivateAddressRecord(\n value: unknown,\n): StellarWalletPrivateAddressRecord | undefined {\n const parsed = walletPrivateAddressRecordSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarWalletPrivateAddressRecord)\n : undefined;\n}\n\nexport function normalizeWalletDefaultPrivateAddressNonce(\n value: unknown,\n): string | undefined {\n return typeof value === 'string' ? value.trim() || undefined : undefined;\n}\n","import type {\n StellarPrivateRecord,\n StellarWalletPrivateAddressRecord,\n StellarWalletPrivateAddressScalar,\n} from '../domain/types.js';\nimport {\n normalizePrivateRecords,\n normalizeWalletDefaultPrivateAddressNonce,\n normalizeWalletPrivateAddressRecord,\n normalizeWalletPrivateAddressScalar,\n} from './normalize.js';\n\ntype SnapshotRoot = Record<string, unknown>;\ntype WalletMapKey =\n 'privateAddressScalars' | 'privateAddressRecords' | 'defaultPrivateAddressNonce';\n\nfunction readSnapshotObject(value: unknown): SnapshotRoot | undefined {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n return undefined;\n }\n return value as SnapshotRoot;\n}\n\nfunction resolveSdkSnapshot(value: unknown): SnapshotRoot | undefined {\n const record = readSnapshotObject(value);\n if (!record) {\n return undefined;\n }\n const branch = readSnapshotObject(record.privacySdkState);\n return branch ?? record;\n}\n\nfunction readWalletSnapshot(value: unknown): SnapshotRoot | undefined {\n const sdk = resolveSdkSnapshot(value);\n if (!sdk) {\n return undefined;\n }\n return readSnapshotObject(sdk.wallet);\n}\n\nfunction readWalletMap(value: unknown, key: WalletMapKey): SnapshotRoot | undefined {\n const wallet = readWalletSnapshot(value);\n if (!wallet) {\n return undefined;\n }\n if (key === 'privateAddressScalars') {\n return readSnapshotObject(wallet.privateAddressScalars);\n }\n if (key === 'privateAddressRecords') {\n return readSnapshotObject(wallet.privateAddressRecords);\n }\n return readSnapshotObject(wallet.defaultPrivateAddressNonce);\n}\n\nfunction readRecordValue(record: SnapshotRoot, key: string): unknown {\n for (const [entryKey, entryValue] of Object.entries(record)) {\n if (entryKey === key) {\n return entryValue;\n }\n }\n return undefined;\n}\n\nfunction ownerNonceKey(owner: string, nonce: string): string {\n return `${owner.trim()}:${nonce.trim()}`;\n}\n\nexport function readPrivateRecordsFromStateSnapshot(\n state: unknown,\n): StellarPrivateRecord[] {\n const sdk = resolveSdkSnapshot(state);\n if (!sdk) {\n return [];\n }\n return normalizePrivateRecords(sdk.privateRecords);\n}\n\nexport function readWalletPrivateAddressScalarFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n nonce: string;\n}): StellarWalletPrivateAddressScalar | undefined {\n const owner = input.owner.trim();\n const nonce = input.nonce.trim();\n if (!owner || !nonce) {\n return undefined;\n }\n const scalars = readWalletMap(input.state, 'privateAddressScalars');\n if (!scalars) {\n return undefined;\n }\n const value = scalars[ownerNonceKey(owner, nonce)];\n if (typeof value === 'string') {\n const scalarHex = value.trim();\n return scalarHex ? { owner, nonce, scalarHex } : undefined;\n }\n return normalizeWalletPrivateAddressScalar(value);\n}\n\nexport function readWalletPrivateAddressRecordFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n nonce: string;\n}): StellarWalletPrivateAddressRecord | undefined {\n const owner = input.owner.trim();\n const nonce = input.nonce.trim();\n if (!owner || !nonce) {\n return undefined;\n }\n const records = readWalletMap(input.state, 'privateAddressRecords');\n if (!records) {\n return undefined;\n }\n return normalizeWalletPrivateAddressRecord(records[ownerNonceKey(owner, nonce)]);\n}\n\nexport function readWalletDefaultPrivateAddressNonceFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): string | undefined {\n const owner = input.owner.trim();\n if (!owner) {\n return undefined;\n }\n const defaults = readWalletMap(input.state, 'defaultPrivateAddressNonce');\n if (!defaults) {\n return undefined;\n }\n return normalizeWalletDefaultPrivateAddressNonce(readRecordValue(defaults, owner));\n}\n\nexport function listWalletPrivateAddressScalarsForOwnerFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): StellarWalletPrivateAddressScalar[] {\n const owner = input.owner.trim();\n if (!owner) {\n return [];\n }\n const scalars = readWalletMap(input.state, 'privateAddressScalars');\n if (!scalars) {\n return [];\n }\n const prefix = `${owner}:`;\n return Object.keys(scalars).flatMap((key) => {\n if (!key.startsWith(prefix)) {\n return [];\n }\n const nonce = key.slice(prefix.length).trim();\n if (!nonce) {\n return [];\n }\n const entry = readWalletPrivateAddressScalarFromStateSnapshot({\n state: input.state,\n owner,\n nonce,\n });\n return entry ? [entry] : [];\n });\n}\n\nexport function listWalletPrivateAddressRecordsForOwnerFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): StellarWalletPrivateAddressRecord[] {\n const owner = input.owner.trim();\n if (!owner) {\n return [];\n }\n const records = readWalletMap(input.state, 'privateAddressRecords');\n if (!records) {\n return [];\n }\n const prefix = `${owner}:`;\n return Object.keys(records).flatMap((key) => {\n if (!key.startsWith(prefix)) {\n return [];\n }\n const nonce = key.slice(prefix.length).trim();\n if (!nonce) {\n return [];\n }\n const entry = readWalletPrivateAddressRecordFromStateSnapshot({\n state: input.state,\n owner,\n nonce,\n });\n return entry ? [entry] : [];\n });\n}\n","import { registerArrayFilterItemSchema } from '@arcanetech/privacy-sdk-core/state';\nimport { pendingClaimSchema, privateRecordSchema } from '../schemas/shared.js';\nimport { stellarArrayFilterSchemaKeys } from './ops.js';\n\nlet registered = false;\n\nexport function registerStellarArrayFilterSchemas(): void {\n if (registered) {\n return;\n }\n registerArrayFilterItemSchema(\n stellarArrayFilterSchemaKeys.privateRecord,\n privateRecordSchema,\n );\n registerArrayFilterItemSchema(\n stellarArrayFilterSchemaKeys.pendingClaim,\n pendingClaimSchema,\n );\n registered = true;\n}\n","import type { ArrayFilterRejectMatch } from '@arcanetech/privacy-sdk-core/state';\nimport { STELLAR_STATE_PATHS } from '../foundation/paths.js';\n\nexport const stellarArrayFilterSchemaKeys = {\n privateRecord: 'privateRecord',\n pendingClaim: 'pendingClaim',\n} as const;\n\nexport function rejectPrivateRecordsByIds(ids: string[]) {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n itemSchemaKey: stellarArrayFilterSchemaKeys.privateRecord,\n rejectWhen: {\n op: 'fieldIn' as const,\n field: 'id',\n values: ids,\n },\n };\n}\n\nexport function rejectConsumedPrivateRecords() {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n itemSchemaKey: stellarArrayFilterSchemaKeys.privateRecord,\n rejectWhen: {\n op: 'fieldEquals' as const,\n field: 'consumed',\n value: true,\n },\n };\n}\n\nexport function rejectPendingClaimsByOwner(owner: string) {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n itemSchemaKey: stellarArrayFilterSchemaKeys.pendingClaim,\n rejectWhen: {\n op: 'fieldEquals' as const,\n field: 'owner',\n value: owner,\n },\n };\n}\n\nexport function rejectPendingClaimsByIds(ids: string[]) {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n itemSchemaKey: stellarArrayFilterSchemaKeys.pendingClaim,\n rejectWhen: {\n op: 'fieldIn' as const,\n field: 'id',\n values: ids,\n },\n };\n}\n\nexport function rejectPendingClaimsByOwnerAndAsset(input: {\n owner?: string | undefined;\n asset?: string | undefined;\n}) {\n const matches: ArrayFilterRejectMatch[] = [];\n if (input.owner !== undefined) {\n matches.push({\n op: 'fieldEquals',\n field: 'owner',\n value: input.owner,\n });\n }\n if (input.asset !== undefined) {\n matches.push({\n op: 'fieldEquals',\n field: 'asset',\n value: input.asset,\n });\n }\n\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n itemSchemaKey: stellarArrayFilterSchemaKeys.pendingClaim,\n rejectWhen: {\n op: 'and' as const,\n matches,\n },\n };\n}\n","import { type StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport type { StellarAddress, StellarAssetId } from '../../types.js';\n\nexport const stellarStateCallTypes = {\n pendingClaims: 'pendingClaims',\n clearPendingClaims: 'clearPendingClaims',\n readPendingClaims: 'readPendingClaims',\n replacePendingClaimsPage: 'replacePendingClaimsPage',\n upsertPendingClaims: 'upsertPendingClaims',\n removePendingClaims: 'removePendingClaims',\n setPendingClaimsCount: 'setPendingClaimsCount',\n readPendingClaimsCount: 'readPendingClaimsCount',\n readStellarAddressRegistered: 'readStellarAddressRegistered',\n readCachedPrivateAddress: 'readCachedPrivateAddress',\n readRegistryLookup: 'readRegistryLookup',\n saveRegisteredPrivateAddress: 'saveRegisteredPrivateAddress',\n saveRegistryLookup: 'saveRegistryLookup',\n invalidateRegisteredAddress: 'invalidateRegisteredAddress',\n invalidateRegistryLookup: 'invalidateRegistryLookup',\n readAssetsCatalog: 'readAssetsCatalog',\n readAsset: 'readAsset',\n replaceAssets: 'replaceAssets',\n upsertAssets: 'upsertAssets',\n readPublicBalance: 'readPublicBalance',\n readPublicBalances: 'readPublicBalances',\n setPublicBalance: 'setPublicBalance',\n setPublicBalances: 'setPublicBalances',\n readPoolMerkleState: 'readPoolMerkleState',\n setPoolMerkleState: 'setPoolMerkleState',\n readLeafEphemeral: 'readLeafEphemeral',\n setLeafEphemeral: 'setLeafEphemeral',\n listPrivateRecords: 'listPrivateRecords',\n savePrivateRecords: 'savePrivateRecords',\n replacePrivateRecords: 'replacePrivateRecords',\n upsertPrivateRecords: 'upsertPrivateRecords',\n pruneConsumedPrivateRecords: 'pruneConsumedPrivateRecords',\n readIncomingDeliveries: 'readIncomingDeliveries',\n upsertIncomingDeliveries: 'upsertIncomingDeliveries',\n readDeliverySyncState: 'readDeliverySyncState',\n setDeliverySyncState: 'setDeliverySyncState',\n readTransactionStatus: 'readTransactionStatus',\n setTransactionStatus: 'setTransactionStatus',\n clearTransactionStatus: 'clearTransactionStatus',\n saveWalletPrivateAddressScalar: 'saveWalletPrivateAddressScalar',\n readWalletPrivateAddressScalar: 'readWalletPrivateAddressScalar',\n saveWalletPrivateAddressRecord: 'saveWalletPrivateAddressRecord',\n readWalletPrivateAddressRecord: 'readWalletPrivateAddressRecord',\n setWalletDefaultPrivateAddressNonce: 'setWalletDefaultPrivateAddressNonce',\n readWalletDefaultPrivateAddressNonce: 'readWalletDefaultPrivateAddressNonce',\n deleteWalletPrivateAddressScalar: 'deleteWalletPrivateAddressScalar',\n} as const;\n\nexport type StellarStateDefinition = StateBridgeDefinition;\n\nexport interface StellarPublicBalanceInput {\n owner: StellarAddress;\n asset: StellarAssetId;\n balance: string;\n trustlineStatus: 'active' | 'inactive' | 'none';\n}\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { assetSchema } from '../shared.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport const readAssetsCatalogSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readAssetsCatalog),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.assets,\n },\n ],\n }));\n\nexport const readAssetSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readAsset),\n assetId: z.string().min(1),\n })\n .transform(({ type, assetId }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.assetsById,\n key: assetId,\n },\n ],\n }));\n\nexport const replaceAssetsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.replaceAssets),\n assets: z.array(assetSchema),\n })\n .transform(({ type, assets }) => {\n const byId: Record<string, unknown> = {};\n const listOrder: string[] = [];\n for (const asset of assets) {\n Reflect.set(byId, asset.assetId, withoutUndefinedFields(asset));\n listOrder.push(asset.assetId);\n }\n return {\n type,\n operations: [\n {\n opType: 'primitiveSet' as const,\n jsonPath: STELLAR_STATE_PATHS.assets,\n value: { byId, listOrder },\n },\n ],\n };\n });\n\nexport const upsertAssetsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertAssets),\n assets: z.array(assetSchema),\n })\n .transform(({ type, assets }) => ({\n type,\n operations: assets.map((asset) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.assetsById,\n key: asset.assetId,\n value: asset,\n })),\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readAssetsCatalogSchema,\n readAssetSchema,\n replaceAssetsSchema,\n upsertAssetsSchema,\n} from '../schemas/assets/catalog.js';\n\nexport const stellarAssetsStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readAssetsCatalog,\n mode: 'read',\n schema: readAssetsCatalogSchema,\n },\n {\n type: stellarStateCallTypes.readAsset,\n mode: 'read',\n schema: readAssetSchema,\n },\n {\n type: stellarStateCallTypes.replaceAssets,\n mode: 'write',\n schema: replaceAssetsSchema,\n },\n {\n type: stellarStateCallTypes.upsertAssets,\n mode: 'write',\n schema: upsertAssetsSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { ownerAssetKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { publicBalanceSchema } from '../shared.js';\n\nexport const readPublicBalanceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPublicBalance),\n owner: z.string().min(1),\n asset: z.string().min(1),\n })\n .transform(({ type, owner, asset }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(owner, asset),\n },\n ],\n }));\n\nexport const readPublicBalancesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPublicBalances),\n owner: z.string().min(1),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'recordEntries' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n },\n ],\n }));\n\nexport const setPublicBalanceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPublicBalance),\n balance: publicBalanceSchema,\n })\n .transform(({ type, balance }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(balance.owner, balance.asset),\n value: balance,\n },\n ],\n }));\n\nexport const setPublicBalancesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPublicBalances),\n owner: z.string().min(1),\n balances: z.array(publicBalanceSchema),\n })\n .transform(({ type, owner, balances }) => ({\n type,\n operations: balances.map((balance) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(owner, balance.asset),\n value: { ...balance, owner },\n })),\n }));\n","import type { StellarAddress, StellarAssetId } from '../../types.js';\n\nexport function ownerAssetKey(owner: StellarAddress, asset: StellarAssetId): string {\n return `${owner}:${asset}`;\n}\n\nexport function readRecordValue<T>(\n record: Record<string, T>,\n key: string,\n): T | undefined {\n if (!Object.hasOwn(record, key)) {\n return undefined;\n }\n return Reflect.get(record, key) as T | undefined;\n}\n\nexport function poolLeafKey(poolContract: string, leafIndex: number): string {\n return `${poolContract}:${leafIndex}`;\n}\n\nexport function privateAddressAssetKey(\n privateAddress: string,\n asset: StellarAssetId,\n): string {\n return `${privateAddress}:${asset}`;\n}\n\nexport function walletOwnerNonceKey(owner: StellarAddress, nonce: string): string {\n return `${owner}:${nonce}`;\n}\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readPublicBalanceSchema,\n readPublicBalancesSchema,\n setPublicBalanceSchema,\n setPublicBalancesSchema,\n} from '../schemas/assets/balances.js';\n\nexport const stellarBalancesStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readPublicBalance,\n mode: 'read',\n schema: readPublicBalanceSchema,\n },\n {\n type: stellarStateCallTypes.readPublicBalances,\n mode: 'read',\n schema: readPublicBalancesSchema,\n },\n {\n type: stellarStateCallTypes.setPublicBalance,\n mode: 'write',\n schema: setPublicBalanceSchema,\n },\n {\n type: stellarStateCallTypes.setPublicBalances,\n mode: 'write',\n schema: setPublicBalancesSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { rejectPendingClaimsByOwnerAndAsset } from '../../filters/ops.js';\nimport { paginationSchema, pendingClaimSchema } from '../shared.js';\n\nexport const pendingClaimsWriteSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.pendingClaims),\n claims: z.array(pendingClaimSchema),\n paginationInfo: paginationSchema,\n })\n .transform(({ type, claims, paginationInfo }) => ({\n type,\n operations: [\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n items: claims,\n },\n {\n opType: 'primitiveSet' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsPagination,\n value: paginationInfo,\n },\n ],\n }));\n\nexport const clearPendingClaimsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.clearPendingClaims),\n owner: z.string().optional(),\n asset: z.string().optional(),\n })\n .transform(({ type, owner, asset }) => {\n if (owner === undefined && asset === undefined) {\n return {\n type,\n operations: [\n {\n opType: 'arrayClean' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n },\n ],\n };\n }\n\n return {\n type,\n operations: [rejectPendingClaimsByOwnerAndAsset({ owner, asset })],\n };\n });\n\nexport const readPendingClaimsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPendingClaims),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: '$.pendingClaims',\n },\n ],\n }));\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport {\n rejectPendingClaimsByIds,\n rejectPendingClaimsByOwner,\n} from '../../filters/ops.js';\nimport { pendingClaimSchema } from '../shared.js';\n\nconst pendingClaimBridgeItemSchema = pendingClaimSchema;\n\nexport const replacePendingClaimsPageSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.replacePendingClaimsPage),\n owner: z.string().min(1),\n claims: z.array(pendingClaimBridgeItemSchema),\n paginationInfo: z.object({\n total: z.number().int().nonnegative(),\n page: z.number().int().positive(),\n pageSize: z.number().int().positive(),\n hasMore: z.boolean(),\n }),\n count: z.number().int().nonnegative().optional(),\n })\n .transform(({ type, owner, claims, paginationInfo, count }) => ({\n type,\n operations: [\n rejectPendingClaimsByOwner(owner),\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n items: claims,\n },\n {\n opType: 'primitiveSet' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsPagination,\n value: paginationInfo,\n },\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsCountByOwner,\n key: owner,\n value: count ?? paginationInfo.total,\n },\n ],\n }));\n\nexport const upsertPendingClaimsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertPendingClaims),\n claims: z.array(pendingClaimBridgeItemSchema),\n })\n .transform(({ type, claims }) => ({\n type,\n operations: [\n rejectPendingClaimsByIds(claims.map((claim) => claim.id)),\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsItems,\n items: claims,\n },\n ],\n }));\n\nexport const removePendingClaimsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.removePendingClaims),\n ids: z.array(z.string().min(1)),\n })\n .transform(({ type, ids }) => ({\n type,\n operations: [rejectPendingClaimsByIds(ids)],\n }));\n\nexport const readPendingClaimsCountSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPendingClaimsCount),\n owner: z.string().min(1),\n })\n .transform(({ type, owner }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsCountByOwner,\n key: owner,\n },\n ],\n }));\n\nexport const setPendingClaimsCountSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPendingClaimsCount),\n owner: z.string().min(1),\n count: z.number().int().nonnegative(),\n })\n .transform(({ type, owner, count }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.pendingClaimsCountByOwner,\n key: owner,\n value: count,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n clearPendingClaimsSchema,\n pendingClaimsWriteSchema,\n readPendingClaimsSchema,\n} from '../schemas/claims/write.js';\nimport {\n readPendingClaimsCountSchema,\n removePendingClaimsSchema,\n replacePendingClaimsPageSchema,\n setPendingClaimsCountSchema,\n upsertPendingClaimsSchema,\n} from '../schemas/claims/page.js';\n\nexport const stellarClaimsStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.pendingClaims,\n mode: 'write',\n schema: pendingClaimsWriteSchema,\n },\n {\n type: stellarStateCallTypes.clearPendingClaims,\n mode: 'write',\n schema: clearPendingClaimsSchema,\n },\n {\n type: stellarStateCallTypes.readPendingClaims,\n mode: 'read',\n schema: readPendingClaimsSchema,\n },\n {\n type: stellarStateCallTypes.replacePendingClaimsPage,\n mode: 'write',\n schema: replacePendingClaimsPageSchema,\n },\n {\n type: stellarStateCallTypes.upsertPendingClaims,\n mode: 'write',\n schema: upsertPendingClaimsSchema,\n },\n {\n type: stellarStateCallTypes.removePendingClaims,\n mode: 'write',\n schema: removePendingClaimsSchema,\n },\n {\n type: stellarStateCallTypes.readPendingClaimsCount,\n mode: 'read',\n schema: readPendingClaimsCountSchema,\n },\n {\n type: stellarStateCallTypes.setPendingClaimsCount,\n mode: 'write',\n schema: setPendingClaimsCountSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { privateAddressAssetKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { deliverySyncStateSchema, incomingDeliverySchema } from '../shared.js';\n\nexport const readIncomingDeliveriesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readIncomingDeliveries),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesIncomingById,\n },\n ],\n }));\n\nexport const upsertIncomingDeliveriesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertIncomingDeliveries),\n deliveries: z.array(incomingDeliverySchema),\n })\n .transform(({ type, deliveries }) => ({\n type,\n operations: deliveries.map((delivery) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesIncomingById,\n key: String(delivery.id),\n value: delivery,\n })),\n }));\n\nexport const readDeliverySyncStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readDeliverySyncState),\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n })\n .transform(({ type, privateAddress, asset }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesSync,\n key: privateAddressAssetKey(privateAddress, asset),\n },\n ],\n }));\n\nexport const setDeliverySyncStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setDeliverySyncState),\n syncState: deliverySyncStateSchema,\n })\n .transform(({ type, syncState }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesSync,\n key: privateAddressAssetKey(syncState.privateAddress, syncState.asset),\n value: syncState,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readDeliverySyncStateSchema,\n readIncomingDeliveriesSchema,\n setDeliverySyncStateSchema,\n upsertIncomingDeliveriesSchema,\n} from '../schemas/claims/deliveries.js';\n\nexport const stellarDeliveriesStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readIncomingDeliveries,\n mode: 'read',\n schema: readIncomingDeliveriesSchema,\n },\n {\n type: stellarStateCallTypes.upsertIncomingDeliveries,\n mode: 'write',\n schema: upsertIncomingDeliveriesSchema,\n },\n {\n type: stellarStateCallTypes.readDeliverySyncState,\n mode: 'read',\n schema: readDeliverySyncStateSchema,\n },\n {\n type: stellarStateCallTypes.setDeliverySyncState,\n mode: 'write',\n schema: setDeliverySyncStateSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { poolLeafKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { leafEphemeralSchema, poolMerkleStateSchema } from '../shared.js';\n\nexport const readPoolMerkleStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPoolMerkleState),\n poolContract: z.string().min(1),\n })\n .transform(({ type, poolContract }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsByContract,\n key: poolContract,\n },\n ],\n }));\n\nexport const setPoolMerkleStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPoolMerkleState),\n state: poolMerkleStateSchema,\n })\n .transform(({ type, state }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsByContract,\n key: state.poolContract,\n value: state,\n },\n ],\n }));\n\nexport const readLeafEphemeralSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readLeafEphemeral),\n poolContract: z.string().min(1),\n leafIndex: z.number().int().nonnegative(),\n })\n .transform(({ type, poolContract, leafIndex }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsLeafEphemeral,\n key: poolLeafKey(poolContract, leafIndex),\n },\n ],\n }));\n\nexport const setLeafEphemeralSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setLeafEphemeral),\n ephemeral: leafEphemeralSchema,\n })\n .transform(({ type, ephemeral }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsLeafEphemeral,\n key: poolLeafKey(ephemeral.poolContract, ephemeral.leafIndex),\n value: ephemeral,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readLeafEphemeralSchema,\n readPoolMerkleStateSchema,\n setLeafEphemeralSchema,\n setPoolMerkleStateSchema,\n} from '../schemas/pool/merkle.js';\n\nexport const stellarPoolStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readPoolMerkleState,\n mode: 'read',\n schema: readPoolMerkleStateSchema,\n },\n {\n type: stellarStateCallTypes.setPoolMerkleState,\n mode: 'write',\n schema: setPoolMerkleStateSchema,\n },\n {\n type: stellarStateCallTypes.readLeafEphemeral,\n mode: 'read',\n schema: readLeafEphemeralSchema,\n },\n {\n type: stellarStateCallTypes.setLeafEphemeral,\n mode: 'write',\n schema: setLeafEphemeralSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { rejectConsumedPrivateRecords } from '../../filters/ops.js';\nimport { privateRecordSchema } from '../shared.js';\n\nexport const listPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.listPrivateRecords),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n },\n ],\n }));\n\nexport const savePrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.savePrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const replacePrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.replacePrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n {\n opType: 'arrayClean' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n },\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const pruneConsumedPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.pruneConsumedPrivateRecords),\n })\n .transform(({ type }) => ({\n type,\n operations: [rejectConsumedPrivateRecords()],\n }));\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { rejectPrivateRecordsByIds } from '../../filters/ops.js';\nimport { privateRecordSchema, transactionStatusSchema } from '../shared.js';\n\nexport const upsertPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertPrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n rejectPrivateRecordsByIds(records.map((record) => record.id)),\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const readTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readTransactionStatus),\n txHash: z.string().min(1),\n })\n .transform(({ type, txHash }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: txHash,\n },\n ],\n }));\n\nexport const setTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setTransactionStatus),\n status: transactionStatusSchema,\n })\n .transform(({ type, status }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: status.txHash,\n value: status,\n },\n ],\n }));\n\nexport const clearTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.clearTransactionStatus),\n txHash: z.string().min(1),\n })\n .transform(({ type, txHash }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: txHash,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n listPrivateRecordsSchema,\n pruneConsumedPrivateRecordsSchema,\n replacePrivateRecordsSchema,\n savePrivateRecordsSchema,\n} from '../schemas/records/private.js';\nimport { upsertPrivateRecordsSchema } from '../schemas/records/transactions.js';\n\nexport const stellarRecordsStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.listPrivateRecords,\n mode: 'read',\n schema: listPrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.savePrivateRecords,\n mode: 'write',\n schema: savePrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.replacePrivateRecords,\n mode: 'write',\n schema: replacePrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.upsertPrivateRecords,\n mode: 'write',\n schema: upsertPrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.pruneConsumedPrivateRecords,\n mode: 'write',\n schema: pruneConsumedPrivateRecordsSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { registryLookupSchema } from '../shared.js';\n\nexport const readStellarAddressRegisteredSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readStellarAddressRegistered),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n ],\n }));\n\nexport const readCachedPrivateAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readCachedPrivateAddress),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n ],\n }));\n\nexport const saveRegisteredPrivateAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveRegisteredPrivateAddress),\n address: z.string().min(1),\n privateAddress: z.string().min(1),\n registered: z.boolean(),\n })\n .transform(({ type, address, privateAddress, registered }) => {\n const lookup = registryLookupSchema.parse({\n owner: address,\n status: registered ? 'registered' : 'unregistered',\n privateAddressStpl1: registered ? privateAddress : undefined,\n cachedAt: new Date().toISOString(),\n });\n return {\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n value: privateAddress,\n },\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n value: registered,\n },\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n value: lookup,\n },\n ],\n };\n });\n\nexport const invalidateRegisteredAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.invalidateRegisteredAddress),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n ],\n }));\n\nexport const readRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readRegistryLookup),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n ],\n }));\n\nexport const saveRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveRegistryLookup),\n lookup: registryLookupSchema,\n })\n .transform(({ type, lookup }) => {\n const operations: Array<{\n opType: 'recordSet';\n jsonPath: string;\n key: string;\n value: unknown;\n }> = [\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: lookup.owner,\n value: lookup,\n },\n ];\n if (lookup.status === 'registered' && lookup.privateAddressStpl1) {\n operations.push(\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: lookup.owner,\n value: lookup.privateAddressStpl1,\n },\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: lookup.owner,\n value: true,\n },\n );\n } else {\n operations.push({\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: lookup.owner,\n value: false,\n });\n }\n return { type, operations };\n });\n\nexport const invalidateRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.invalidateRegistryLookup),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n invalidateRegisteredAddressSchema,\n invalidateRegistryLookupSchema,\n readCachedPrivateAddressSchema,\n readRegistryLookupSchema,\n readStellarAddressRegisteredSchema,\n saveRegisteredPrivateAddressSchema,\n saveRegistryLookupSchema,\n} from '../schemas/registry/lookup.js';\n\nexport const stellarRegistryStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readStellarAddressRegistered,\n mode: 'read',\n schema: readStellarAddressRegisteredSchema,\n },\n {\n type: stellarStateCallTypes.readCachedPrivateAddress,\n mode: 'read',\n schema: readCachedPrivateAddressSchema,\n },\n {\n type: stellarStateCallTypes.readRegistryLookup,\n mode: 'read',\n schema: readRegistryLookupSchema,\n },\n {\n type: stellarStateCallTypes.saveRegisteredPrivateAddress,\n mode: 'write',\n schema: saveRegisteredPrivateAddressSchema,\n },\n {\n type: stellarStateCallTypes.saveRegistryLookup,\n mode: 'write',\n schema: saveRegistryLookupSchema,\n },\n {\n type: stellarStateCallTypes.invalidateRegisteredAddress,\n mode: 'write',\n schema: invalidateRegisteredAddressSchema,\n },\n {\n type: stellarStateCallTypes.invalidateRegistryLookup,\n mode: 'write',\n schema: invalidateRegistryLookupSchema,\n },\n];\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport {\n clearTransactionStatusSchema,\n readTransactionStatusSchema,\n setTransactionStatusSchema,\n} from '../schemas/records/transactions.js';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\n\nexport const stellarTransactionStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readTransactionStatus,\n mode: 'read',\n schema: readTransactionStatusSchema,\n },\n {\n type: stellarStateCallTypes.setTransactionStatus,\n mode: 'write',\n schema: setTransactionStatusSchema,\n },\n {\n type: stellarStateCallTypes.clearTransactionStatus,\n mode: 'write',\n schema: clearTransactionStatusSchema,\n },\n];\n","import { z } from 'zod';\nimport { walletOwnerNonceKey } from '../../foundation/keys.js';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { walletPrivateAddressScalarSchema } from '../shared.js';\n\nexport const saveWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveWalletPrivateAddressScalar),\n scalar: walletPrivateAddressScalarSchema,\n })\n .transform(({ type, scalar }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(scalar.owner, scalar.nonce),\n value: scalar,\n },\n ],\n }));\n\nexport const readWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletPrivateAddressScalar),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n","import { z } from 'zod';\nimport { walletOwnerNonceKey } from '../../foundation/keys.js';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { walletPrivateAddressRecordSchema } from '../shared.js';\n\nexport const saveWalletPrivateAddressRecordSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveWalletPrivateAddressRecord),\n record: walletPrivateAddressRecordSchema,\n })\n .transform(({ type, record }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressRecords,\n key: walletOwnerNonceKey(record.owner, record.nonce),\n value: record,\n },\n ],\n }));\n\nexport const readWalletPrivateAddressRecordSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletPrivateAddressRecord),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressRecords,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n\nexport const setWalletDefaultPrivateAddressNonceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setWalletDefaultPrivateAddressNonce),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletDefaultPrivateAddressNonce,\n key: owner,\n value: nonce,\n },\n ],\n }));\n\nexport const readWalletDefaultPrivateAddressNonceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletDefaultPrivateAddressNonce),\n owner: z.string().min(1),\n })\n .transform(({ type, owner }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletDefaultPrivateAddressNonce,\n key: owner,\n },\n ],\n }));\n\nexport const deleteWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.deleteWalletPrivateAddressScalar),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport {\n readWalletPrivateAddressScalarSchema,\n saveWalletPrivateAddressScalarSchema,\n} from '../schemas/wallet/scalar.js';\nimport {\n deleteWalletPrivateAddressScalarSchema,\n readWalletDefaultPrivateAddressNonceSchema,\n readWalletPrivateAddressRecordSchema,\n saveWalletPrivateAddressRecordSchema,\n setWalletDefaultPrivateAddressNonceSchema,\n} from '../schemas/wallet/private-address.js';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\n\nexport const stellarWalletStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.saveWalletPrivateAddressScalar,\n mode: 'write',\n schema: saveWalletPrivateAddressScalarSchema,\n },\n {\n type: stellarStateCallTypes.readWalletPrivateAddressScalar,\n mode: 'read',\n schema: readWalletPrivateAddressScalarSchema,\n },\n {\n type: stellarStateCallTypes.saveWalletPrivateAddressRecord,\n mode: 'write',\n schema: saveWalletPrivateAddressRecordSchema,\n },\n {\n type: stellarStateCallTypes.readWalletPrivateAddressRecord,\n mode: 'read',\n schema: readWalletPrivateAddressRecordSchema,\n },\n {\n type: stellarStateCallTypes.setWalletDefaultPrivateAddressNonce,\n mode: 'write',\n schema: setWalletDefaultPrivateAddressNonceSchema,\n },\n {\n type: stellarStateCallTypes.readWalletDefaultPrivateAddressNonce,\n mode: 'read',\n schema: readWalletDefaultPrivateAddressNonceSchema,\n },\n {\n type: stellarStateCallTypes.deleteWalletPrivateAddressScalar,\n mode: 'write',\n schema: deleteWalletPrivateAddressScalarSchema,\n },\n];\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { registerStellarArrayFilterSchemas } from '../filters/register-schemas.js';\nimport { stellarAssetsStateDefinitions } from './assets.js';\nimport { stellarBalancesStateDefinitions } from './balances.js';\nimport { stellarClaimsStateDefinitions } from './claims.js';\nimport { stellarDeliveriesStateDefinitions } from './deliveries.js';\nimport { stellarPoolStateDefinitions } from './pool.js';\nimport { stellarRecordsStateDefinitions } from './records.js';\nimport { stellarRegistryStateDefinitions } from './registry.js';\nimport { stellarTransactionStateDefinitions } from './transactions.js';\nimport { stellarWalletStateDefinitions } from './wallet.js';\n\nregisterStellarArrayFilterSchemas();\n\nexport const stellarStateDefinitions: StateBridgeDefinition[] = [\n ...stellarClaimsStateDefinitions,\n ...stellarRegistryStateDefinitions,\n ...stellarAssetsStateDefinitions,\n ...stellarBalancesStateDefinitions,\n ...stellarPoolStateDefinitions,\n ...stellarRecordsStateDefinitions,\n ...stellarDeliveriesStateDefinitions,\n ...stellarWalletStateDefinitions,\n ...stellarTransactionStateDefinitions,\n];\n","import {\n createStateBridge,\n type StateBridge,\n type StateBridgeAdapter,\n} from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateDefinitions } from '../definitions/index.js';\n\nexport class StellarStateServiceBase {\n readonly bridge: StateBridge;\n\n constructor(adapter: StateBridgeAdapter) {\n this.bridge = createStateBridge(adapter);\n this.bridge.init(stellarStateDefinitions);\n }\n}\n","import type {\n StellarAddress,\n StellarAssetId,\n StellarPublicBalance,\n} from '../../../types.js';\nimport {\n normalizePublicBalance,\n normalizePublicBalancesFromEntries,\n} from '../../read/normalize.js';\nimport {\n stellarStateCallTypes,\n type StellarPublicBalanceInput,\n} from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createPublicBalanceMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getPublicBalance(input: {\n owner: StellarAddress;\n asset: StellarAssetId;\n }): Promise<StellarPublicBalance | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPublicBalance,\n owner: input.owner,\n asset: input.asset,\n });\n return normalizePublicBalance(value);\n },\n\n async getPublicBalances(owner: StellarAddress): Promise<StellarPublicBalance[]> {\n const entries = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPublicBalances,\n owner,\n });\n return normalizePublicBalancesFromEntries(entries, owner);\n },\n\n setPublicBalance(balance: StellarPublicBalanceInput): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPublicBalance,\n balance,\n });\n },\n\n setPublicBalances(input: {\n owner: StellarAddress;\n balances: StellarPublicBalanceInput[];\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPublicBalances,\n owner: input.owner,\n balances: input.balances,\n });\n },\n };\n}\n","import type { StellarAsset } from '../../../types.js';\nimport { readRecordValue } from '../../foundation/keys.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\ntype AssetsCatalogDeps = {\n getAssetsCatalog: () => Promise<{\n byId: Record<string, StellarAsset>;\n listOrder: string[];\n }>;\n replaceAssets: (assets: StellarAsset[]) => Promise<void>;\n};\n\nexport function createAssetsUpsertMethods(\n _context: StellarStateServiceBase,\n deps: AssetsCatalogDeps,\n) {\n return {\n async upsertAssets(assets: StellarAsset[]): Promise<void> {\n if (assets.length === 0) {\n return;\n }\n const catalog = await deps.getAssetsCatalog();\n const byId = { ...catalog.byId };\n const listOrder = [...catalog.listOrder];\n for (const asset of assets) {\n byId[asset.assetId] = asset;\n if (!listOrder.includes(asset.assetId)) {\n listOrder.push(asset.assetId);\n }\n }\n const merged = listOrder\n .map((assetId) => readRecordValue(byId, assetId))\n .filter((asset): asset is StellarAsset => asset !== undefined);\n await deps.replaceAssets(merged);\n },\n };\n}\n","import type {\n StellarAsset,\n StellarAssetId,\n StellarAssetsCatalog,\n} from '../../../types.js';\nimport { readRecordValue } from '../../foundation/keys.js';\nimport { normalizeAsset, normalizeAssetsCatalog } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\nimport { createAssetsUpsertMethods } from './upsert-methods.js';\n\nexport function createAssetsCatalogMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function getAssetsCatalog(): Promise<StellarAssetsCatalog> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readAssetsCatalog,\n });\n return normalizeAssetsCatalog(value);\n }\n\n function replaceAssets(assets: StellarAsset[]): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.replaceAssets,\n assets,\n });\n }\n\n const coreMethods = {\n getAssetsCatalog,\n\n async getAsset(assetId: StellarAssetId): Promise<StellarAsset | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readAsset,\n assetId,\n });\n return normalizeAsset(value);\n },\n\n async getAssets(): Promise<StellarAsset[]> {\n const catalog = await getAssetsCatalog();\n return catalog.listOrder\n .map((assetId) => readRecordValue(catalog.byId, assetId))\n .filter((asset): asset is StellarAsset => asset !== undefined);\n },\n\n async getAssetsForPool(poolContract: string): Promise<StellarAsset[]> {\n const assets = await coreMethods.getAssets();\n return assets.filter((asset) => asset.poolContracts.includes(poolContract));\n },\n\n replaceAssets,\n };\n\n return {\n ...coreMethods,\n ...createAssetsUpsertMethods(context, {\n getAssetsCatalog,\n replaceAssets,\n }),\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createPublicBalanceMethods } from './balance-methods.js';\nimport { createAssetsCatalogMethods } from './catalog-methods.js';\n\nexport function createAssetsService(context: StellarStateServiceBase) {\n return {\n ...createAssetsCatalogMethods(context),\n ...createPublicBalanceMethods(context),\n };\n}\n","import type {\n StellarAddress,\n StellarPendingClaim,\n StellarPendingClaimsFilter,\n StellarPendingClaimsState,\n} from '../../../types.js';\nimport {\n normalizePendingClaimsCount,\n normalizePendingClaimsState,\n} from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createClaimsReadMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function getPendingClaims(\n filter: StellarPendingClaimsFilter = {},\n ): Promise<StellarPendingClaimsState> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPendingClaims,\n });\n const state = normalizePendingClaimsState(value);\n const items = state.items.filter((claim: StellarPendingClaim) => {\n if (filter.owner !== undefined && claim.owner !== filter.owner) {\n return false;\n }\n if (filter.asset !== undefined && claim.asset !== filter.asset) {\n return false;\n }\n return true;\n });\n if (state.pagination !== undefined) {\n return { items, pagination: state.pagination };\n }\n return { items };\n }\n\n return {\n getPendingClaims,\n\n async getPendingClaimsCount(owner: StellarAddress): Promise<number | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPendingClaimsCount,\n owner,\n });\n const count = normalizePendingClaimsCount(value);\n if (count !== undefined) {\n return count;\n }\n const claims = await getPendingClaims({ owner });\n return claims.items.length;\n },\n };\n}\n","import type {\n StellarAddress,\n StellarAssetId,\n StellarPendingClaim,\n StellarPendingClaimsPagination,\n} from '../../../types.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\ntype ClaimsWriteBridge = StellarStateServiceBase['bridge'];\n\nfunction appendPendingClaims(\n bridge: ClaimsWriteBridge,\n claims: StellarPendingClaim[],\n paginationInfo: StellarPendingClaimsPagination,\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.pendingClaims,\n claims,\n paginationInfo,\n });\n}\n\nfunction replacePendingClaimsPage(\n bridge: ClaimsWriteBridge,\n input: {\n owner: StellarAddress;\n claims: StellarPendingClaim[];\n paginationInfo: StellarPendingClaimsPagination;\n count?: number;\n },\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.replacePendingClaimsPage,\n owner: input.owner,\n claims: input.claims,\n paginationInfo: input.paginationInfo,\n ...(input.count === undefined ? {} : { count: input.count }),\n });\n}\n\nfunction upsertPendingClaims(\n bridge: ClaimsWriteBridge,\n claims: StellarPendingClaim[],\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.upsertPendingClaims,\n claims,\n });\n}\n\nfunction removePendingClaims(bridge: ClaimsWriteBridge, ids: string[]): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.removePendingClaims,\n ids,\n });\n}\n\nfunction clearPendingClaims(\n bridge: ClaimsWriteBridge,\n input: {\n owner?: StellarAddress;\n asset?: StellarAssetId;\n } = {},\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.clearPendingClaims,\n ...(input.owner === undefined ? {} : { owner: input.owner }),\n ...(input.asset === undefined ? {} : { asset: input.asset }),\n });\n}\n\nfunction setPendingClaimsCount(\n bridge: ClaimsWriteBridge,\n owner: StellarAddress,\n count: number,\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPendingClaimsCount,\n owner,\n count,\n });\n}\n\nexport function createClaimsWriteMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n appendPendingClaims: (\n claims: StellarPendingClaim[],\n paginationInfo: StellarPendingClaimsPagination,\n ) => appendPendingClaims(bridge, claims, paginationInfo),\n replacePendingClaimsPage: (input: {\n owner: StellarAddress;\n claims: StellarPendingClaim[];\n paginationInfo: StellarPendingClaimsPagination;\n count?: number;\n }) => replacePendingClaimsPage(bridge, input),\n upsertPendingClaims: (claims: StellarPendingClaim[]) =>\n upsertPendingClaims(bridge, claims),\n removePendingClaims: (ids: string[]) => removePendingClaims(bridge, ids),\n clearPendingClaims: (\n input: { owner?: StellarAddress; asset?: StellarAssetId } = {},\n ) => clearPendingClaims(bridge, input),\n setPendingClaimsCount: (owner: StellarAddress, count: number) =>\n setPendingClaimsCount(bridge, owner, count),\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createClaimsReadMethods } from './read-methods.js';\nimport { createClaimsWriteMethods } from './write-methods.js';\n\nexport function createClaimsService(context: StellarStateServiceBase) {\n return {\n ...createClaimsWriteMethods(context),\n ...createClaimsReadMethods(context),\n };\n}\n","import type {\n StellarIncomingDeliveriesFilter,\n StellarIncomingDelivery,\n} from '../../../types.js';\nimport { normalizeIncomingDeliveries } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createIncomingDeliveryMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function getIncomingDeliveries(\n filter: StellarIncomingDeliveriesFilter,\n ): Promise<StellarIncomingDelivery[]> {\n const values = await bridge.read<unknown>({\n type: stellarStateCallTypes.readIncomingDeliveries,\n });\n const deliveries = normalizeIncomingDeliveries(values);\n return deliveries.filter((delivery: StellarIncomingDelivery) => {\n if (delivery.privateAddress !== filter.privateAddress) {\n return false;\n }\n if (filter.asset !== undefined && delivery.asset !== filter.asset) {\n return false;\n }\n if (!filter.includeProcessed && delivery.processed) {\n return false;\n }\n return true;\n });\n }\n\n function upsertIncomingDeliveries(\n deliveries: StellarIncomingDelivery[],\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.upsertIncomingDeliveries,\n deliveries,\n });\n }\n\n return {\n getIncomingDeliveries,\n upsertIncomingDeliveries,\n\n async markDeliveryProcessed(id: number): Promise<void> {\n const deliveries = await bridge.read<unknown>({\n type: stellarStateCallTypes.readIncomingDeliveries,\n });\n const match = normalizeIncomingDeliveries(deliveries).find(\n (delivery: StellarIncomingDelivery) => delivery.id === id,\n );\n if (!match) {\n return;\n }\n await upsertIncomingDeliveries([{ ...match, processed: true }]);\n },\n };\n}\n","import type { StellarAssetId, StellarDeliverySyncState } from '../../../types.js';\nimport { normalizeDeliverySyncState } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createDeliverySyncMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getDeliverySyncState(input: {\n privateAddress: string;\n asset: StellarAssetId;\n }): Promise<StellarDeliverySyncState | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readDeliverySyncState,\n privateAddress: input.privateAddress,\n asset: input.asset,\n });\n return normalizeDeliverySyncState(value);\n },\n\n setDeliverySyncState(syncState: StellarDeliverySyncState): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setDeliverySyncState,\n syncState,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createIncomingDeliveryMethods } from './incoming-methods.js';\nimport { createDeliverySyncMethods } from './sync-methods.js';\n\nexport function createDeliveriesService(context: StellarStateServiceBase) {\n return {\n ...createIncomingDeliveryMethods(context),\n ...createDeliverySyncMethods(context),\n };\n}\n","import type { StellarLeafEphemeral } from '../../../types.js';\nimport { normalizeLeafEphemeral } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nfunction isMissingStatePathError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n return (\n error.message.includes('Record path not found:') ||\n error.message.includes('JSONPath segment not found:')\n );\n}\n\nexport function createPoolEphemeralService(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getLeafEphemeral(input: {\n poolContract: string;\n leafIndex: number;\n }): Promise<StellarLeafEphemeral | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readLeafEphemeral,\n poolContract: input.poolContract,\n leafIndex: input.leafIndex,\n });\n return normalizeLeafEphemeral(value);\n } catch (error) {\n if (isMissingStatePathError(error)) {\n return undefined;\n }\n throw error;\n }\n },\n\n setLeafEphemeral(ephemeral: StellarLeafEphemeral): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setLeafEphemeral,\n ephemeral,\n });\n },\n };\n}\n","import type { StellarPoolMerkleState } from '../../../types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\nimport { normalizePoolMerkleState } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nfunction isMissingStatePathError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n return (\n error.message.includes('Record path not found:') ||\n error.message.includes('JSONPath segment not found:')\n );\n}\n\nexport function createPoolMerkleService(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getPoolMerkleState(\n poolContract: string,\n ): Promise<StellarPoolMerkleState | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPoolMerkleState,\n poolContract,\n });\n return normalizePoolMerkleState(value);\n } catch (error) {\n if (isMissingStatePathError(error)) {\n return undefined;\n }\n throw error;\n }\n },\n\n setPoolMerkleState(state: StellarPoolMerkleState): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPoolMerkleState,\n state,\n });\n },\n\n async appendPoolCommitments(input: {\n poolContract: string;\n commitments: string[];\n merkleRootHex: string;\n syncedLedger?: number;\n }): Promise<void> {\n const current = await this.getPoolMerkleState(input.poolContract);\n const mergedCommitments = [...(current?.commitments ?? []), ...input.commitments];\n await this.setPoolMerkleState(\n withoutUndefinedFields({\n poolContract: input.poolContract,\n commitments: mergedCommitments,\n commitmentCount: mergedCommitments.length,\n merkleRootHex: input.merkleRootHex,\n updatedAt: Date.now(),\n syncedLedger: input.syncedLedger ?? current?.syncedLedger,\n }) as StellarPoolMerkleState,\n );\n },\n };\n}\n","import type { StellarPrivateRecord } from '../../../types.js';\n\nfunction privateCoinNotesEqual(\n left: StellarPrivateRecord['coinNote'],\n right: StellarPrivateRecord['coinNote'],\n): boolean {\n if (left === undefined || right === undefined) {\n return left === right;\n }\n return (\n left.value === right.value &&\n left.nullifier === right.nullifier &&\n left.secret === right.secret &&\n left.commitment === right.commitment &&\n left.asset_hi === right.asset_hi &&\n left.asset_lo === right.asset_lo &&\n left.application_id === right.application_id\n );\n}\n\nfunction privateRecordCoreFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.id === right.id &&\n left.owner === right.owner &&\n left.asset === right.asset &&\n left.amount === right.amount &&\n left.consumed === right.consumed &&\n left.status === right.status &&\n left.poolContract === right.poolContract &&\n left.amountDisplay === right.amountDisplay\n );\n}\n\nfunction privateRecordChainFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.commitmentHex === right.commitmentHex &&\n left.nullifierHex === right.nullifierHex &&\n left.deliveryId === right.deliveryId &&\n left.privateAddress === right.privateAddress &&\n left.txHash === right.txHash\n );\n}\n\nfunction privateRecordSecretFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.depositScalarHex === right.depositScalarHex &&\n left.precommitementHex === right.precommitementHex &&\n privateCoinNotesEqual(left.coinNote, right.coinNote)\n );\n}\n\nfunction privateRecordsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n privateRecordCoreFieldsEqual(left, right) &&\n privateRecordChainFieldsEqual(left, right) &&\n privateRecordSecretFieldsEqual(left, right)\n );\n}\n\nexport function privateRecordArraysEqual(\n left: StellarPrivateRecord[],\n right: StellarPrivateRecord[],\n): boolean {\n return (\n left.length === right.length &&\n left.every((record, index) => {\n const rightRecord = right.at(index);\n return rightRecord !== undefined && privateRecordsEqual(record, rightRecord);\n })\n );\n}\n\nexport function mergePrivateRecords(\n current: StellarPrivateRecord[],\n records: StellarPrivateRecord[],\n): StellarPrivateRecord[] {\n const ids = new Set(records.map((record) => record.id));\n return [...current.filter((record) => !ids.has(record.id)), ...records];\n}\n","import type {\n StellarAddress,\n StellarAssetId,\n StellarPrivateAssetRow,\n StellarPrivateRecord,\n StellarPrivateRecordStatus,\n} from '../../../types.js';\nimport { normalizePrivateRecords } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarAvailablePrivateRecordsFilter } from '../../domain/types.js';\nimport type { StellarStateServiceBase } from '../base.js';\nimport {\n mergePrivateRecords,\n privateRecordArraysEqual,\n} from './private-record-upsert.js';\n\ntype PrivateRecordBridge = StellarStateServiceBase['bridge'];\n\nasync function readPrivateRecords(\n bridge: PrivateRecordBridge,\n): Promise<StellarPrivateRecord[]> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.listPrivateRecords,\n });\n return normalizePrivateRecords(value);\n}\n\nfunction writeReplacePrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.replacePrivateRecords,\n records,\n });\n}\n\nasync function readAvailablePrivateRecords(\n bridge: PrivateRecordBridge,\n filter: StellarAvailablePrivateRecordsFilter,\n): Promise<StellarPrivateRecord[]> {\n const records = await readPrivateRecords(bridge);\n return records.filter((record) => matchesPrivateRecordFilter(record, filter, false));\n}\n\nasync function applyPrivateRecordsStatus(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n status: StellarPrivateRecordStatus,\n): Promise<void> {\n const current = await readPrivateRecords(bridge);\n const ids = new Set(records.map((record) => record.id));\n const next = current.map((record) =>\n ids.has(record.id)\n ? {\n ...record,\n status,\n consumed: status === 'spent' ? true : record.consumed,\n }\n : record,\n );\n await writeReplacePrivateRecords(bridge, next);\n}\n\nfunction aggregatePrivateAssetRows(\n records: StellarPrivateRecord[],\n owner: StellarAddress,\n): StellarPrivateAssetRow[] {\n const available = records.filter(\n (record) => record.owner === owner && !record.consumed && record.status !== 'spent',\n );\n const byAsset = new Map<string, StellarPrivateAssetRow>();\n for (const record of available) {\n const existing = byAsset.get(record.asset);\n const amountDisplay = record.amountDisplay ?? Number(record.amount);\n if (existing) {\n existing.totalAmount += record.amount;\n existing.totalAmountDisplay += amountDisplay;\n } else {\n byAsset.set(record.asset, {\n assetId: record.asset,\n poolContract: record.poolContract ?? '',\n totalAmount: record.amount,\n totalAmountDisplay: amountDisplay,\n });\n }\n }\n return [...byAsset.values()].toSorted((left, right) =>\n left.assetId.localeCompare(right.assetId),\n );\n}\n\nfunction pruneConsumedPrivateRecords(bridge: PrivateRecordBridge): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.pruneConsumedPrivateRecords,\n });\n}\n\nfunction savePrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.savePrivateRecords,\n records,\n });\n}\n\nasync function upsertPrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n if (records.length === 0) {\n return;\n }\n const current = await readPrivateRecords(bridge);\n const next = mergePrivateRecords(current, records);\n if (privateRecordArraysEqual(current, next)) {\n return;\n }\n return bridge.write({\n type: stellarStateCallTypes.upsertPrivateRecords,\n records,\n });\n}\n\nasync function readPrivateBalance(\n bridge: PrivateRecordBridge,\n input: { owner: StellarAddress; asset: StellarAssetId },\n): Promise<bigint> {\n const records = await readAvailablePrivateRecords(bridge, {\n owner: input.owner,\n asset: input.asset,\n });\n return records.reduce((total, record) => total + record.amount, 0n);\n}\n\nasync function readPrivateAssetRows(\n bridge: PrivateRecordBridge,\n owner: StellarAddress,\n): Promise<StellarPrivateAssetRow[]> {\n const records = await readPrivateRecords(bridge);\n return aggregatePrivateAssetRows(records, owner);\n}\n\nexport function createPrivateRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n pruneConsumedPrivateRecords: () => pruneConsumedPrivateRecords(bridge),\n getPrivateRecords: () => readPrivateRecords(bridge),\n getAvailablePrivateRecords: (filter: StellarAvailablePrivateRecordsFilter) =>\n readAvailablePrivateRecords(bridge, filter),\n listPrivateRecords: (filter: {\n owner?: StellarAddress;\n privateAddress?: string;\n asset?: StellarAssetId;\n amount?: bigint;\n }) => readAvailablePrivateRecords(bridge, filter),\n savePrivateRecords: (records: StellarPrivateRecord[]) =>\n savePrivateRecords(bridge, records),\n upsertPrivateRecords: (records: StellarPrivateRecord[]) =>\n upsertPrivateRecords(bridge, records),\n markPrivateRecordsUsed: (records: StellarPrivateRecord[]) =>\n applyPrivateRecordsStatus(bridge, records, 'spent'),\n markPrivateRecordsStatus: (\n records: StellarPrivateRecord[],\n status: StellarPrivateRecordStatus,\n ) => applyPrivateRecordsStatus(bridge, records, status),\n getPrivateBalance: (input: { owner: StellarAddress; asset: StellarAssetId }) =>\n readPrivateBalance(bridge, input),\n getPrivateAssetRows: (owner: StellarAddress) => readPrivateAssetRows(bridge, owner),\n };\n}\n\nfunction matchesPrivateRecordFilter(\n record: StellarPrivateRecord,\n filter: StellarAvailablePrivateRecordsFilter,\n includeConsumed: boolean,\n): boolean {\n if (filter.owner !== undefined && record.owner !== filter.owner) {\n return false;\n }\n if (\n filter.privateAddress !== undefined &&\n record.privateAddress !== filter.privateAddress\n ) {\n return false;\n }\n if (filter.owner === undefined && filter.privateAddress === undefined) {\n return false;\n }\n if (filter.asset !== undefined && record.asset !== filter.asset) {\n return false;\n }\n if (!includeConsumed && (record.consumed || record.status === 'spent')) {\n return false;\n }\n return true;\n}\n","import type { StellarTransactionStatus } from '../../../types.js';\nimport { normalizeTransactionStatus } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createTransactionRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getTransactionStatus(\n txHash: string,\n ): Promise<StellarTransactionStatus | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readTransactionStatus,\n txHash,\n });\n return normalizeTransactionStatus(value);\n },\n\n setTransactionStatus(status: StellarTransactionStatus): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setTransactionStatus,\n status,\n });\n },\n\n clearTransactionStatus(txHash: string): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.clearTransactionStatus,\n txHash,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createPrivateRecordMethods } from './private-methods.js';\nimport { createTransactionRecordMethods } from './transaction-methods.js';\n\nexport function createRecordsService(context: StellarStateServiceBase) {\n return {\n ...createPrivateRecordMethods(context),\n ...createTransactionRecordMethods(context),\n };\n}\n","import type { StellarAddress, StellarRegistryLookup } from '../../../types.js';\nimport {\n normalizeCachedPrivateAddress,\n normalizeRegistryLookup,\n normalizeRegistryLookupFromLegacy,\n} from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\ntype RegistryLookupBridge = StellarStateServiceBase['bridge'];\n\nasync function readRegistryLookup(\n bridge: RegistryLookupBridge,\n address: StellarAddress,\n): Promise<StellarRegistryLookup | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readRegistryLookup,\n address,\n });\n const lookup = normalizeRegistryLookup(value);\n if (lookup) {\n return lookup;\n }\n } catch {\n // Legacy states may not have $.registry.lookups yet.\n }\n let registered: unknown;\n let privateAddress: unknown;\n try {\n registered = await bridge.read<unknown>({\n type: stellarStateCallTypes.readStellarAddressRegistered,\n address,\n });\n } catch {\n registered = undefined;\n }\n try {\n privateAddress = await bridge.read<unknown>({\n type: stellarStateCallTypes.readCachedPrivateAddress,\n address,\n });\n } catch {\n privateAddress = undefined;\n }\n return normalizeRegistryLookupFromLegacy({\n address,\n registered,\n privateAddress,\n });\n}\n\nasync function readCachedPrivateAddress(\n bridge: RegistryLookupBridge,\n address: StellarAddress,\n): Promise<string | undefined> {\n const lookup = await readRegistryLookup(bridge, address);\n if (lookup?.privateAddressStpl1) {\n return lookup.privateAddressStpl1;\n }\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readCachedPrivateAddress,\n address,\n });\n return normalizeCachedPrivateAddress(value);\n}\n\nexport function createRegistryLookupReadMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n getRegistryLookup: (address: StellarAddress) => readRegistryLookup(bridge, address),\n\n async isStellarAddressRegistered(\n address: StellarAddress,\n ): Promise<boolean | undefined> {\n const lookup = await readRegistryLookup(bridge, address);\n if (lookup === undefined) {\n return undefined;\n }\n return lookup.status === 'registered';\n },\n\n getCachedPrivateAddress: (address: StellarAddress) =>\n readCachedPrivateAddress(bridge, address),\n };\n}\n","import type { StellarAddress, StellarRegistryLookup } from '../../../types.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createRegistryLookupWriteMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function invalidateRegistryLookup(address: StellarAddress): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.invalidateRegistryLookup,\n address,\n });\n }\n\n return {\n saveRegistryLookup(lookup: StellarRegistryLookup): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveRegistryLookup,\n lookup,\n });\n },\n\n saveRegisteredPrivateAddress(input: {\n address: StellarAddress;\n privateAddress: string;\n registered: boolean;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveRegisteredPrivateAddress,\n address: input.address,\n privateAddress: input.privateAddress,\n registered: input.registered,\n });\n },\n\n invalidateRegistryLookup,\n\n invalidateRegisteredAddress(address: StellarAddress): Promise<void> {\n return invalidateRegistryLookup(address);\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createRegistryLookupReadMethods } from './lookup-read.js';\nimport { createRegistryLookupWriteMethods } from './lookup-write.js';\n\nexport function createRegistryLookupService(context: StellarStateServiceBase) {\n return {\n ...createRegistryLookupReadMethods(context),\n ...createRegistryLookupWriteMethods(context),\n };\n}\n","import type {\n StellarAddress,\n StellarWalletPrivateAddressRecord,\n} from '../../../types.js';\nimport {\n normalizeWalletDefaultPrivateAddressNonce,\n normalizeWalletPrivateAddressRecord,\n} from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createWalletRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getWalletPrivateAddressRecord(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<StellarWalletPrivateAddressRecord | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletPrivateAddressRecord,\n owner: input.owner,\n nonce: input.nonce,\n });\n return normalizeWalletPrivateAddressRecord(value);\n },\n\n saveWalletPrivateAddressRecord(\n record: StellarWalletPrivateAddressRecord,\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveWalletPrivateAddressRecord,\n record,\n });\n },\n\n async getWalletDefaultPrivateAddressNonce(\n owner: StellarAddress,\n ): Promise<string | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletDefaultPrivateAddressNonce,\n owner,\n });\n return normalizeWalletDefaultPrivateAddressNonce(value);\n },\n\n setWalletDefaultPrivateAddressNonce(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setWalletDefaultPrivateAddressNonce,\n owner: input.owner,\n nonce: input.nonce,\n });\n },\n };\n}\n","import type {\n StellarAddress,\n StellarWalletPrivateAddressScalar,\n} from '../../../types.js';\nimport { normalizeWalletPrivateAddressScalar } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createWalletScalarMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getWalletPrivateAddressScalar(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<StellarWalletPrivateAddressScalar | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletPrivateAddressScalar,\n owner: input.owner,\n nonce: input.nonce,\n });\n return normalizeWalletPrivateAddressScalar(value);\n },\n\n saveWalletPrivateAddressScalar(\n scalar: StellarWalletPrivateAddressScalar,\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveWalletPrivateAddressScalar,\n scalar,\n });\n },\n\n deleteWalletPrivateAddressScalar(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.deleteWalletPrivateAddressScalar,\n owner: input.owner,\n nonce: input.nonce,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createWalletRecordMethods } from './wallet-record-methods.js';\nimport { createWalletScalarMethods } from './wallet-scalar-methods.js';\n\nexport function createWalletAddressService(context: StellarStateServiceBase) {\n return {\n ...createWalletScalarMethods(context),\n ...createWalletRecordMethods(context),\n };\n}\n","import type { StateBridgeAdapter } from '@arcanetech/privacy-sdk-core/state';\nimport { StellarStateServiceBase } from './base.js';\nimport { createAssetsService } from './assets/index.js';\nimport { createClaimsService } from './claims/index.js';\nimport { createDeliveriesService } from './deliveries/index.js';\nimport { createPoolEphemeralService } from './pool/ephemeral.js';\nimport { createPoolMerkleService } from './pool/merkle.js';\nimport { createRecordsService } from './records/index.js';\nimport { createRegistryLookupService } from './registry/lookup.js';\nimport { createWalletAddressService } from './registry/wallet-address.js';\n\nexport function composeStellarStateService(adapter: StateBridgeAdapter) {\n const base = new StellarStateServiceBase(adapter);\n\n return {\n bridge: base.bridge,\n ...createAssetsService(base),\n ...createRegistryLookupService(base),\n ...createWalletAddressService(base),\n ...createPoolMerkleService(base),\n ...createPoolEphemeralService(base),\n ...createClaimsService(base),\n ...createDeliveriesService(base),\n ...createRecordsService(base),\n };\n}\n\nexport type ComposedStellarStateService = ReturnType<typeof composeStellarStateService>;\n","import type { StateBridgeAdapter } from '@arcanetech/privacy-sdk-core/state';\nimport type { StellarStorageAdapter } from '../../types.js';\nimport {\n composeStellarStateService,\n type ComposedStellarStateService,\n} from './compose.js';\n\nexport type StellarStateService = ComposedStellarStateService;\n\nexport function createStellarStateService(\n adapter: StateBridgeAdapter,\n): StellarStateService {\n return composeStellarStateService(adapter);\n}\n\nexport function createStellarStorageAdapterFromState(\n state: StellarStateService,\n): StellarStorageAdapter {\n return {\n listPrivateRecords: (filter) => state.listPrivateRecords(filter),\n savePrivateRecords: (records) => state.savePrivateRecords(records),\n markPrivateRecordsUsed: (records) => state.markPrivateRecordsUsed(records),\n };\n}\n"],"mappings":"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","names":["registered","z","z","z","readRecordValue","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","registered","z","z","z","z","readRecordValue","readRecordValue","isMissingStatePathError","registered"]}
1
+ {"version":3,"sources":["../../src/state/foundation/paths.ts","../../src/state/schemas/shared.ts","../../src/state/foundation/coerce.ts","../../src/state/read/normalize/assets.ts","../../src/state/read/normalize/deliveries.ts","../../src/state/read/normalize/pool.ts","../../src/state/read/normalize/registry.ts","../../src/state/read/normalize/records.ts","../../src/state/read/normalize/wallet.ts","../../src/state/read/snapshot.ts","../../src/state/filters/register-schemas.ts","../../src/state/filters/ops.ts","../../src/state/bridge/call-types.ts","../../src/state/schemas/assets/catalog.ts","../../src/state/definitions/assets.ts","../../src/state/schemas/assets/balances.ts","../../src/state/foundation/keys.ts","../../src/state/definitions/balances.ts","../../src/state/schemas/claims/deliveries.ts","../../src/state/definitions/deliveries.ts","../../src/state/schemas/pool/merkle.ts","../../src/state/definitions/pool.ts","../../src/state/schemas/records/private.ts","../../src/state/schemas/records/transactions.ts","../../src/state/definitions/records.ts","../../src/state/schemas/registry/lookup.ts","../../src/state/definitions/registry.ts","../../src/state/definitions/transactions.ts","../../src/state/schemas/wallet/scalar.ts","../../src/state/schemas/wallet/private-address.ts","../../src/state/definitions/wallet.ts","../../src/state/definitions/index.ts","../../src/state/service/base.ts","../../src/state/service/assets/balance-methods.ts","../../src/state/service/assets/upsert-methods.ts","../../src/state/service/assets/catalog-methods.ts","../../src/state/service/assets/index.ts","../../src/state/service/deliveries/incoming-methods.ts","../../src/state/service/deliveries/sync-methods.ts","../../src/state/service/deliveries/index.ts","../../src/state/service/pool/ephemeral.ts","../../src/state/service/pool/merkle.ts","../../src/state/service/records/private-record-upsert.ts","../../src/state/service/records/private-methods.ts","../../src/state/service/records/transaction-methods.ts","../../src/state/service/records/index.ts","../../src/state/service/registry/lookup-read.ts","../../src/state/service/registry/lookup-write.ts","../../src/state/service/registry/lookup.ts","../../src/state/service/registry/wallet-record-methods.ts","../../src/state/service/registry/wallet-scalar-methods.ts","../../src/state/service/registry/wallet-address.ts","../../src/state/service/compose.ts","../../src/state/service/index.ts"],"sourcesContent":["export const STELLAR_STATE_PATHS = {\n privateRecords: '$.privateRecords',\n registryPrivateAddresses: '$.registry.privateAddresses',\n registryRegisteredAddresses: '$.registry.registeredAddresses',\n registryLookups: '$.registry.lookups',\n assets: '$.assets',\n assetsById: '$.assets.byId',\n assetsListOrder: '$.assets.listOrder',\n publicBalances: '$.balances.publicByOwnerAsset',\n poolsByContract: '$.pools.byContract',\n poolsLeafEphemeral: '$.pools.leafEphemeralByContractAndIndex',\n deliveriesIncomingById: '$.deliveries.incomingById',\n deliveriesSync: '$.deliveries.syncByPrivateAddressAsset',\n transactionsByHash: '$.transactions.byHash',\n walletPrivateAddressScalars: '$.wallet.privateAddressScalars',\n walletPrivateAddressRecords: '$.wallet.privateAddressRecords',\n walletDefaultPrivateAddressNonce: '$.wallet.defaultPrivateAddressNonce',\n} as const;\n","import { z } from 'zod';\n\nexport const paginationSchema = z.object({\n total: z.number().int().nonnegative(),\n page: z.number().int().positive(),\n pageSize: z.number().int().positive(),\n hasMore: z.boolean(),\n});\n\nconst stellarPrivateCoinNoteSchema = z.object({\n value: z.string(),\n nullifier: z.string(),\n secret: z.string(),\n commitment: z.string(),\n asset_hi: z.string(),\n asset_lo: z.string(),\n application_id: z.string().optional(),\n});\n\nexport const privateRecordSchema = z.object({\n id: z.string().min(1),\n owner: z.string().min(1),\n asset: z.string().min(1),\n amount: z.coerce.bigint(),\n consumed: z.boolean(),\n status: z.enum(['pending', 'finalized', 'spent']).optional(),\n poolContract: z.string().optional(),\n commitmentHex: z.string().optional(),\n nullifierHex: z.string().optional(),\n amountDisplay: z.number().optional(),\n deliveryId: z.number().int().optional(),\n privateAddress: z.string().optional(),\n txHash: z.string().optional(),\n coinNote: stellarPrivateCoinNoteSchema.optional(),\n depositScalarHex: z.string().optional(),\n precommitementHex: z.string().optional(),\n});\n\nexport const assetSchema = z.object({\n id: z.number().int(),\n assetId: z.string().min(1),\n name: z.string().min(1),\n logoUrl: z.string().nullable(),\n issuerAddress: z.string().nullable(),\n clientContract: z.string().nullable(),\n poolContracts: z.array(z.string()),\n poolContract: z.string().min(1),\n mintable: z.boolean(),\n mintAmount: z.string().nullable(),\n decimals: z.number().int().nullable().optional(),\n});\n\nexport const publicBalanceSchema = z.object({\n owner: z.string().min(1),\n asset: z.string().min(1),\n balance: z.string(),\n trustlineStatus: z.enum(['active', 'inactive', 'none']),\n});\n\nexport const registryLookupSchema = z.object({\n owner: z.string().min(1),\n status: z.enum(['registered', 'unregistered']),\n privateAddressStpl1: z.string().optional(),\n publicKeyXHex: z.string().optional(),\n publicKeyYHex: z.string().optional(),\n updatedAtLedger: z.number().int().optional(),\n cachedAt: z.string().optional(),\n});\n\nexport const walletPrivateAddressScalarSchema = z.object({\n owner: z.string().min(1),\n nonce: z.string().min(1),\n scalarHex: z.string().min(1),\n updatedAt: z.string().optional(),\n});\n\nexport const walletPrivateAddressRecordSchema = z.object({\n owner: z.string().min(1),\n nonce: z.string().min(1),\n privateAddress: z.string().min(1),\n createdAt: z.number(),\n});\n\nexport const poolMerkleStateSchema = z.object({\n poolContract: z.string().min(1),\n commitments: z.array(z.string()),\n commitmentCount: z.number().int().nonnegative(),\n merkleRootHex: z.string().min(1),\n updatedAt: z.number(),\n syncedLedger: z.number().int().optional(),\n});\n\nexport const leafEphemeralSchema = z.object({\n poolContract: z.string().min(1),\n leafIndex: z.number().int().nonnegative(),\n xHex: z.string().min(1),\n yHex: z.string().min(1),\n cachedAt: z.string().optional(),\n});\n\nexport const incomingDeliverySchema = z.object({\n id: z.number().int(),\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n ciphertextBase64: z.string().min(1),\n ephemeralKey: z.string().min(1),\n tagBase64: z.string().min(1),\n createdAt: z.string().min(1),\n processed: z.boolean().optional(),\n});\n\nexport const deliverySyncStateSchema = z.object({\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n bloomM: z.number().int().positive(),\n bloomK: z.number().int().positive(),\n bloomBitsBase64: z.string().optional(),\n lastPage: z.number().int().positive().optional(),\n lastPolledAt: z.string().optional(),\n});\n\nexport const transactionStatusSchema = z.object({\n txHash: z.string().min(1),\n status: z.enum(['pending', 'success', 'failed']),\n ledger: z.number().int().optional(),\n createdAt: z.string().optional(),\n});\n","export function withoutUndefinedFields<T extends Record<string, unknown>>(value: T): T {\n const next = {} as T;\n for (const [key, fieldValue] of Object.entries(value)) {\n if (fieldValue !== undefined) {\n Reflect.set(next, key, fieldValue);\n }\n }\n return next;\n}\n","import { assetSchema, publicBalanceSchema } from '../../schemas/shared.js';\nimport type {\n StellarAsset,\n StellarAssetsCatalog,\n StellarPublicBalance,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeAssetsCatalog(value: unknown): StellarAssetsCatalog {\n if (typeof value !== 'object' || value === null) {\n return { byId: {}, listOrder: [] };\n }\n const record = value as Record<string, unknown>;\n const byIdRaw = record.byId;\n const listOrderRaw = record.listOrder;\n const byId: Record<string, StellarAsset> = {};\n if (typeof byIdRaw === 'object' && byIdRaw !== null) {\n for (const [key, entry] of Object.entries(byIdRaw)) {\n const parsed = assetSchema.safeParse(entry);\n if (parsed.success) {\n byId[key] = withoutUndefinedFields(parsed.data) as StellarAsset;\n }\n }\n }\n const listOrder = Array.isArray(listOrderRaw)\n ? listOrderRaw.filter((item): item is string => typeof item === 'string')\n : [];\n return { byId, listOrder };\n}\n\nexport function normalizeAsset(value: unknown): StellarAsset | undefined {\n const parsed = assetSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarAsset)\n : undefined;\n}\n\nexport function normalizePublicBalance(\n value: unknown,\n): StellarPublicBalance | undefined {\n const parsed = publicBalanceSchema.safeParse(value);\n return parsed.success ? parsed.data : undefined;\n}\n\nexport function normalizePublicBalancesFromEntries(\n value: unknown,\n owner: string,\n): StellarPublicBalance[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((entry) => {\n if (!Array.isArray(entry) || entry.length < 2) {\n return;\n }\n const [key, balanceValue] = entry;\n if (typeof key !== 'string' || !key.startsWith(`${owner}:`)) {\n return;\n }\n return normalizePublicBalance(balanceValue);\n })\n .filter((balance): balance is StellarPublicBalance => balance !== undefined);\n}\n","import {\n deliverySyncStateSchema,\n incomingDeliverySchema,\n} from '../../schemas/shared.js';\nimport type {\n StellarDeliverySyncState,\n StellarIncomingDelivery,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeIncomingDeliveries(value: unknown): StellarIncomingDelivery[] {\n const entries =\n typeof value === 'object' && value !== null && !Array.isArray(value)\n ? Object.values(value)\n : value;\n if (!Array.isArray(entries)) {\n return [];\n }\n return entries.flatMap((entry) => {\n const parsed = incomingDeliverySchema.safeParse(entry);\n return parsed.success\n ? [withoutUndefinedFields(parsed.data) as StellarIncomingDelivery]\n : [];\n });\n}\n\nexport function normalizeDeliverySyncState(\n value: unknown,\n): StellarDeliverySyncState | undefined {\n const parsed = deliverySyncStateSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarDeliverySyncState)\n : undefined;\n}\n","import { leafEphemeralSchema, poolMerkleStateSchema } from '../../schemas/shared.js';\nimport type {\n StellarLeafEphemeral,\n StellarPoolMerkleState,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizePoolMerkleState(\n value: unknown,\n): StellarPoolMerkleState | undefined {\n const parsed = poolMerkleStateSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarPoolMerkleState)\n : undefined;\n}\n\nexport function normalizeLeafEphemeral(\n value: unknown,\n): StellarLeafEphemeral | undefined {\n const parsed = leafEphemeralSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarLeafEphemeral)\n : undefined;\n}\n","import { registryLookupSchema } from '../../schemas/shared.js';\nimport type { StellarRegistryLookup } from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeCachedPrivateAddress(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nexport function normalizeRegistryLookup(\n value: unknown,\n): StellarRegistryLookup | undefined {\n const parsed = registryLookupSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarRegistryLookup)\n : undefined;\n}\n\nexport function normalizeRegistryLookupFromLegacy(input: {\n address: string;\n registered: unknown;\n privateAddress: unknown;\n}): StellarRegistryLookup | undefined {\n const lookup = normalizeRegistryLookup(\n typeof input.registered === 'object' && input.registered !== null\n ? input.registered\n : undefined,\n );\n if (lookup) {\n return lookup;\n }\n if (input.registered === undefined && input.privateAddress === undefined) {\n return undefined;\n }\n const registered = Boolean(input.registered);\n const privateAddressStpl1 = normalizeCachedPrivateAddress(input.privateAddress);\n if (!registered && privateAddressStpl1 === undefined) {\n return { owner: input.address, status: 'unregistered' };\n }\n return withoutUndefinedFields({\n owner: input.address,\n status: registered ? 'registered' : 'unregistered',\n ...(privateAddressStpl1 === undefined ? {} : { privateAddressStpl1 }),\n }) as StellarRegistryLookup;\n}\n","import { z } from 'zod';\nimport { privateRecordSchema, transactionStatusSchema } from '../../schemas/shared.js';\nimport type {\n StellarPrivateRecord,\n StellarTransactionStatus,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizePrivateRecords(value: unknown): StellarPrivateRecord[] {\n if (!Array.isArray(value)) {\n return [];\n }\n const records = value.flatMap((item) => {\n const parsed = privateRecordSchema.safeParse(item);\n return parsed.success ? [normalizePrivateRecordFields(parsed.data)] : [];\n });\n return deduplicatePrivateRecords(records);\n}\n\nexport function normalizeTransactionStatus(\n value: unknown,\n): StellarTransactionStatus | undefined {\n const parsed = transactionStatusSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarTransactionStatus)\n : undefined;\n}\n\nfunction privateRecordCommitmentKey(record: StellarPrivateRecord): string {\n return (\n record.commitmentHex?.trim() ||\n record.coinNote?.commitment.trim() ||\n record.id.trim()\n )\n .replace(/^0x/iu, '')\n .toLowerCase();\n}\n\nfunction normalizePrivateRecordFields(\n record: z.infer<typeof privateRecordSchema>,\n): StellarPrivateRecord {\n const normalized = withoutUndefinedFields(record) as StellarPrivateRecord;\n if (!normalized.privateAddress && normalized.owner.trim().startsWith('stpl')) {\n return { ...normalized, privateAddress: normalized.owner.trim() };\n }\n return normalized;\n}\n\nfunction preferPrivateRecord(\n current: StellarPrivateRecord,\n incoming: StellarPrivateRecord,\n key: string,\n): StellarPrivateRecord {\n if (privateRecordIdKey(incoming) === key) {\n return incoming;\n }\n if (privateRecordIdKey(current) === key) {\n return current;\n }\n return incoming;\n}\n\nfunction privateRecordIdKey(record: StellarPrivateRecord): string {\n return record.id.trim().replace(/^0x/iu, '').toLowerCase();\n}\n\nfunction deduplicatePrivateRecords(\n records: StellarPrivateRecord[],\n): StellarPrivateRecord[] {\n const byCommitment = new Map<string, StellarPrivateRecord>();\n for (const record of records) {\n const key = privateRecordCommitmentKey(record);\n const current = byCommitment.get(key);\n byCommitment.set(key, current ? preferPrivateRecord(current, record, key) : record);\n }\n return [...byCommitment.values()];\n}\n","import {\n walletPrivateAddressScalarSchema,\n walletPrivateAddressRecordSchema,\n} from '../../schemas/shared.js';\nimport type {\n StellarWalletPrivateAddressScalar,\n StellarWalletPrivateAddressRecord,\n} from '../../domain/types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport function normalizeWalletPrivateAddressScalar(\n value: unknown,\n): StellarWalletPrivateAddressScalar | undefined {\n const parsed = walletPrivateAddressScalarSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarWalletPrivateAddressScalar)\n : undefined;\n}\n\nexport function normalizeWalletPrivateAddressRecord(\n value: unknown,\n): StellarWalletPrivateAddressRecord | undefined {\n const parsed = walletPrivateAddressRecordSchema.safeParse(value);\n return parsed.success\n ? (withoutUndefinedFields(parsed.data) as StellarWalletPrivateAddressRecord)\n : undefined;\n}\n\nexport function normalizeWalletDefaultPrivateAddressNonce(\n value: unknown,\n): string | undefined {\n return typeof value === 'string' ? value.trim() || undefined : undefined;\n}\n","import type {\n StellarPrivateRecord,\n StellarWalletPrivateAddressRecord,\n StellarWalletPrivateAddressScalar,\n} from '../domain/types.js';\nimport {\n normalizePrivateRecords,\n normalizeWalletDefaultPrivateAddressNonce,\n normalizeWalletPrivateAddressRecord,\n normalizeWalletPrivateAddressScalar,\n} from './normalize.js';\n\ntype SnapshotRoot = Record<string, unknown>;\ntype WalletMapKey =\n 'privateAddressScalars' | 'privateAddressRecords' | 'defaultPrivateAddressNonce';\n\nfunction readSnapshotObject(value: unknown): SnapshotRoot | undefined {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n return undefined;\n }\n return value as SnapshotRoot;\n}\n\nfunction resolveSdkSnapshot(value: unknown): SnapshotRoot | undefined {\n const record = readSnapshotObject(value);\n if (!record) {\n return undefined;\n }\n const branch = readSnapshotObject(record.privacySdkState);\n return branch ?? record;\n}\n\nfunction readWalletSnapshot(value: unknown): SnapshotRoot | undefined {\n const sdk = resolveSdkSnapshot(value);\n if (!sdk) {\n return undefined;\n }\n return readSnapshotObject(sdk.wallet);\n}\n\nfunction readWalletMap(value: unknown, key: WalletMapKey): SnapshotRoot | undefined {\n const wallet = readWalletSnapshot(value);\n if (!wallet) {\n return undefined;\n }\n if (key === 'privateAddressScalars') {\n return readSnapshotObject(wallet.privateAddressScalars);\n }\n if (key === 'privateAddressRecords') {\n return readSnapshotObject(wallet.privateAddressRecords);\n }\n return readSnapshotObject(wallet.defaultPrivateAddressNonce);\n}\n\nfunction readRecordValue(record: SnapshotRoot, key: string): unknown {\n for (const [entryKey, entryValue] of Object.entries(record)) {\n if (entryKey === key) {\n return entryValue;\n }\n }\n return undefined;\n}\n\nfunction ownerNonceKey(owner: string, nonce: string): string {\n return `${owner.trim()}:${nonce.trim()}`;\n}\n\nexport function readPrivateRecordsFromStateSnapshot(\n state: unknown,\n): StellarPrivateRecord[] {\n const sdk = resolveSdkSnapshot(state);\n if (!sdk) {\n return [];\n }\n return normalizePrivateRecords(sdk.privateRecords);\n}\n\nexport function readWalletPrivateAddressScalarFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n nonce: string;\n}): StellarWalletPrivateAddressScalar | undefined {\n const owner = input.owner.trim();\n const nonce = input.nonce.trim();\n if (!owner || !nonce) {\n return undefined;\n }\n const scalars = readWalletMap(input.state, 'privateAddressScalars');\n if (!scalars) {\n return undefined;\n }\n const value = scalars[ownerNonceKey(owner, nonce)];\n if (typeof value === 'string') {\n const scalarHex = value.trim();\n return scalarHex ? { owner, nonce, scalarHex } : undefined;\n }\n return normalizeWalletPrivateAddressScalar(value);\n}\n\nexport function readWalletPrivateAddressRecordFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n nonce: string;\n}): StellarWalletPrivateAddressRecord | undefined {\n const owner = input.owner.trim();\n const nonce = input.nonce.trim();\n if (!owner || !nonce) {\n return undefined;\n }\n const records = readWalletMap(input.state, 'privateAddressRecords');\n if (!records) {\n return undefined;\n }\n return normalizeWalletPrivateAddressRecord(records[ownerNonceKey(owner, nonce)]);\n}\n\nexport function readWalletDefaultPrivateAddressNonceFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): string | undefined {\n const owner = input.owner.trim();\n if (!owner) {\n return undefined;\n }\n const defaults = readWalletMap(input.state, 'defaultPrivateAddressNonce');\n if (!defaults) {\n return undefined;\n }\n return normalizeWalletDefaultPrivateAddressNonce(readRecordValue(defaults, owner));\n}\n\nexport function listWalletPrivateAddressScalarsForOwnerFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): StellarWalletPrivateAddressScalar[] {\n const owner = input.owner.trim();\n if (!owner) {\n return [];\n }\n const scalars = readWalletMap(input.state, 'privateAddressScalars');\n if (!scalars) {\n return [];\n }\n const prefix = `${owner}:`;\n return Object.keys(scalars).flatMap((key) => {\n if (!key.startsWith(prefix)) {\n return [];\n }\n const nonce = key.slice(prefix.length).trim();\n if (!nonce) {\n return [];\n }\n const entry = readWalletPrivateAddressScalarFromStateSnapshot({\n state: input.state,\n owner,\n nonce,\n });\n return entry ? [entry] : [];\n });\n}\n\nexport function listWalletPrivateAddressRecordsForOwnerFromStateSnapshot(input: {\n state: unknown;\n owner: string;\n}): StellarWalletPrivateAddressRecord[] {\n const owner = input.owner.trim();\n if (!owner) {\n return [];\n }\n const records = readWalletMap(input.state, 'privateAddressRecords');\n if (!records) {\n return [];\n }\n const prefix = `${owner}:`;\n return Object.keys(records).flatMap((key) => {\n if (!key.startsWith(prefix)) {\n return [];\n }\n const nonce = key.slice(prefix.length).trim();\n if (!nonce) {\n return [];\n }\n const entry = readWalletPrivateAddressRecordFromStateSnapshot({\n state: input.state,\n owner,\n nonce,\n });\n return entry ? [entry] : [];\n });\n}\n","import { registerArrayFilterItemSchema } from '@arcanetech/privacy-sdk-core/state';\nimport { privateRecordSchema } from '../schemas/shared.js';\nimport { stellarArrayFilterSchemaKeys } from './ops.js';\n\nlet registered = false;\n\nexport function registerStellarArrayFilterSchemas(): void {\n if (registered) {\n return;\n }\n registerArrayFilterItemSchema(\n stellarArrayFilterSchemaKeys.privateRecord,\n privateRecordSchema,\n );\n registered = true;\n}\n","import { STELLAR_STATE_PATHS } from '../foundation/paths.js';\n\nexport const stellarArrayFilterSchemaKeys = {\n privateRecord: 'privateRecord',\n} as const;\n\nexport function rejectPrivateRecordsByIds(ids: string[]) {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n itemSchemaKey: stellarArrayFilterSchemaKeys.privateRecord,\n rejectWhen: {\n op: 'fieldIn' as const,\n field: 'id',\n values: ids,\n },\n };\n}\n\nexport function rejectConsumedPrivateRecords() {\n return {\n opType: 'arrayFilter' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n itemSchemaKey: stellarArrayFilterSchemaKeys.privateRecord,\n rejectWhen: {\n op: 'fieldEquals' as const,\n field: 'consumed',\n value: true,\n },\n };\n}\n","import { type StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport type { StellarAddress, StellarAssetId } from '../../types.js';\n\nexport const stellarStateCallTypes = {\n readStellarAddressRegistered: 'readStellarAddressRegistered',\n readCachedPrivateAddress: 'readCachedPrivateAddress',\n readRegistryLookup: 'readRegistryLookup',\n saveRegisteredPrivateAddress: 'saveRegisteredPrivateAddress',\n saveRegistryLookup: 'saveRegistryLookup',\n invalidateRegisteredAddress: 'invalidateRegisteredAddress',\n invalidateRegistryLookup: 'invalidateRegistryLookup',\n readAssetsCatalog: 'readAssetsCatalog',\n readAsset: 'readAsset',\n replaceAssets: 'replaceAssets',\n upsertAssets: 'upsertAssets',\n readPublicBalance: 'readPublicBalance',\n readPublicBalances: 'readPublicBalances',\n setPublicBalance: 'setPublicBalance',\n setPublicBalances: 'setPublicBalances',\n readPoolMerkleState: 'readPoolMerkleState',\n setPoolMerkleState: 'setPoolMerkleState',\n readLeafEphemeral: 'readLeafEphemeral',\n setLeafEphemeral: 'setLeafEphemeral',\n listPrivateRecords: 'listPrivateRecords',\n savePrivateRecords: 'savePrivateRecords',\n replacePrivateRecords: 'replacePrivateRecords',\n upsertPrivateRecords: 'upsertPrivateRecords',\n pruneConsumedPrivateRecords: 'pruneConsumedPrivateRecords',\n readIncomingDeliveries: 'readIncomingDeliveries',\n upsertIncomingDeliveries: 'upsertIncomingDeliveries',\n readDeliverySyncState: 'readDeliverySyncState',\n setDeliverySyncState: 'setDeliverySyncState',\n readTransactionStatus: 'readTransactionStatus',\n setTransactionStatus: 'setTransactionStatus',\n clearTransactionStatus: 'clearTransactionStatus',\n saveWalletPrivateAddressScalar: 'saveWalletPrivateAddressScalar',\n readWalletPrivateAddressScalar: 'readWalletPrivateAddressScalar',\n saveWalletPrivateAddressRecord: 'saveWalletPrivateAddressRecord',\n readWalletPrivateAddressRecord: 'readWalletPrivateAddressRecord',\n setWalletDefaultPrivateAddressNonce: 'setWalletDefaultPrivateAddressNonce',\n readWalletDefaultPrivateAddressNonce: 'readWalletDefaultPrivateAddressNonce',\n deleteWalletPrivateAddressScalar: 'deleteWalletPrivateAddressScalar',\n} as const;\n\nexport type StellarStateDefinition = StateBridgeDefinition;\n\nexport interface StellarPublicBalanceInput {\n owner: StellarAddress;\n asset: StellarAssetId;\n balance: string;\n trustlineStatus: 'active' | 'inactive' | 'none';\n}\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { assetSchema } from '../shared.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\n\nexport const readAssetsCatalogSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readAssetsCatalog),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.assets,\n },\n ],\n }));\n\nexport const readAssetSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readAsset),\n assetId: z.string().min(1),\n })\n .transform(({ type, assetId }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.assetsById,\n key: assetId,\n },\n ],\n }));\n\nexport const replaceAssetsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.replaceAssets),\n assets: z.array(assetSchema),\n })\n .transform(({ type, assets }) => {\n const byId: Record<string, unknown> = {};\n const listOrder: string[] = [];\n for (const asset of assets) {\n Reflect.set(byId, asset.assetId, withoutUndefinedFields(asset));\n listOrder.push(asset.assetId);\n }\n return {\n type,\n operations: [\n {\n opType: 'primitiveSet' as const,\n jsonPath: STELLAR_STATE_PATHS.assets,\n value: { byId, listOrder },\n },\n ],\n };\n });\n\nexport const upsertAssetsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertAssets),\n assets: z.array(assetSchema),\n })\n .transform(({ type, assets }) => ({\n type,\n operations: assets.map((asset) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.assetsById,\n key: asset.assetId,\n value: asset,\n })),\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readAssetsCatalogSchema,\n readAssetSchema,\n replaceAssetsSchema,\n upsertAssetsSchema,\n} from '../schemas/assets/catalog.js';\n\nexport const stellarAssetsStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readAssetsCatalog,\n mode: 'read',\n schema: readAssetsCatalogSchema,\n },\n {\n type: stellarStateCallTypes.readAsset,\n mode: 'read',\n schema: readAssetSchema,\n },\n {\n type: stellarStateCallTypes.replaceAssets,\n mode: 'write',\n schema: replaceAssetsSchema,\n },\n {\n type: stellarStateCallTypes.upsertAssets,\n mode: 'write',\n schema: upsertAssetsSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { ownerAssetKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { publicBalanceSchema } from '../shared.js';\n\nexport const readPublicBalanceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPublicBalance),\n owner: z.string().min(1),\n asset: z.string().min(1),\n })\n .transform(({ type, owner, asset }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(owner, asset),\n },\n ],\n }));\n\nexport const readPublicBalancesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPublicBalances),\n owner: z.string().min(1),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'recordEntries' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n },\n ],\n }));\n\nexport const setPublicBalanceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPublicBalance),\n balance: publicBalanceSchema,\n })\n .transform(({ type, balance }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(balance.owner, balance.asset),\n value: balance,\n },\n ],\n }));\n\nexport const setPublicBalancesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPublicBalances),\n owner: z.string().min(1),\n balances: z.array(publicBalanceSchema),\n })\n .transform(({ type, owner, balances }) => ({\n type,\n operations: balances.map((balance) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.publicBalances,\n key: ownerAssetKey(owner, balance.asset),\n value: { ...balance, owner },\n })),\n }));\n","import type { StellarAddress, StellarAssetId } from '../../types.js';\n\nexport function ownerAssetKey(owner: StellarAddress, asset: StellarAssetId): string {\n return `${owner}:${asset}`;\n}\n\nexport function readRecordValue<T>(\n record: Record<string, T>,\n key: string,\n): T | undefined {\n if (!Object.hasOwn(record, key)) {\n return undefined;\n }\n return Reflect.get(record, key) as T | undefined;\n}\n\nexport function poolLeafKey(poolContract: string, leafIndex: number): string {\n return `${poolContract}:${leafIndex}`;\n}\n\nexport function privateAddressAssetKey(\n privateAddress: string,\n asset: StellarAssetId,\n): string {\n return `${privateAddress}:${asset}`;\n}\n\nexport function walletOwnerNonceKey(owner: StellarAddress, nonce: string): string {\n return `${owner}:${nonce}`;\n}\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readPublicBalanceSchema,\n readPublicBalancesSchema,\n setPublicBalanceSchema,\n setPublicBalancesSchema,\n} from '../schemas/assets/balances.js';\n\nexport const stellarBalancesStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readPublicBalance,\n mode: 'read',\n schema: readPublicBalanceSchema,\n },\n {\n type: stellarStateCallTypes.readPublicBalances,\n mode: 'read',\n schema: readPublicBalancesSchema,\n },\n {\n type: stellarStateCallTypes.setPublicBalance,\n mode: 'write',\n schema: setPublicBalanceSchema,\n },\n {\n type: stellarStateCallTypes.setPublicBalances,\n mode: 'write',\n schema: setPublicBalancesSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { privateAddressAssetKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { deliverySyncStateSchema, incomingDeliverySchema } from '../shared.js';\n\nexport const readIncomingDeliveriesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readIncomingDeliveries),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesIncomingById,\n },\n ],\n }));\n\nexport const upsertIncomingDeliveriesSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertIncomingDeliveries),\n deliveries: z.array(incomingDeliverySchema),\n })\n .transform(({ type, deliveries }) => ({\n type,\n operations: deliveries.map((delivery) => ({\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesIncomingById,\n key: String(delivery.id),\n value: delivery,\n })),\n }));\n\nexport const readDeliverySyncStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readDeliverySyncState),\n privateAddress: z.string().min(1),\n asset: z.string().min(1),\n })\n .transform(({ type, privateAddress, asset }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesSync,\n key: privateAddressAssetKey(privateAddress, asset),\n },\n ],\n }));\n\nexport const setDeliverySyncStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setDeliverySyncState),\n syncState: deliverySyncStateSchema,\n })\n .transform(({ type, syncState }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.deliveriesSync,\n key: privateAddressAssetKey(syncState.privateAddress, syncState.asset),\n value: syncState,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readDeliverySyncStateSchema,\n readIncomingDeliveriesSchema,\n setDeliverySyncStateSchema,\n upsertIncomingDeliveriesSchema,\n} from '../schemas/claims/deliveries.js';\n\nexport const stellarDeliveriesStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readIncomingDeliveries,\n mode: 'read',\n schema: readIncomingDeliveriesSchema,\n },\n {\n type: stellarStateCallTypes.upsertIncomingDeliveries,\n mode: 'write',\n schema: upsertIncomingDeliveriesSchema,\n },\n {\n type: stellarStateCallTypes.readDeliverySyncState,\n mode: 'read',\n schema: readDeliverySyncStateSchema,\n },\n {\n type: stellarStateCallTypes.setDeliverySyncState,\n mode: 'write',\n schema: setDeliverySyncStateSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { poolLeafKey } from '../../foundation/keys.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { leafEphemeralSchema, poolMerkleStateSchema } from '../shared.js';\n\nexport const readPoolMerkleStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readPoolMerkleState),\n poolContract: z.string().min(1),\n })\n .transform(({ type, poolContract }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsByContract,\n key: poolContract,\n },\n ],\n }));\n\nexport const setPoolMerkleStateSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setPoolMerkleState),\n state: poolMerkleStateSchema,\n })\n .transform(({ type, state }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsByContract,\n key: state.poolContract,\n value: state,\n },\n ],\n }));\n\nexport const readLeafEphemeralSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readLeafEphemeral),\n poolContract: z.string().min(1),\n leafIndex: z.number().int().nonnegative(),\n })\n .transform(({ type, poolContract, leafIndex }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsLeafEphemeral,\n key: poolLeafKey(poolContract, leafIndex),\n },\n ],\n }));\n\nexport const setLeafEphemeralSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setLeafEphemeral),\n ephemeral: leafEphemeralSchema,\n })\n .transform(({ type, ephemeral }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.poolsLeafEphemeral,\n key: poolLeafKey(ephemeral.poolContract, ephemeral.leafIndex),\n value: ephemeral,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n readLeafEphemeralSchema,\n readPoolMerkleStateSchema,\n setLeafEphemeralSchema,\n setPoolMerkleStateSchema,\n} from '../schemas/pool/merkle.js';\n\nexport const stellarPoolStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readPoolMerkleState,\n mode: 'read',\n schema: readPoolMerkleStateSchema,\n },\n {\n type: stellarStateCallTypes.setPoolMerkleState,\n mode: 'write',\n schema: setPoolMerkleStateSchema,\n },\n {\n type: stellarStateCallTypes.readLeafEphemeral,\n mode: 'read',\n schema: readLeafEphemeralSchema,\n },\n {\n type: stellarStateCallTypes.setLeafEphemeral,\n mode: 'write',\n schema: setLeafEphemeralSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { rejectConsumedPrivateRecords } from '../../filters/ops.js';\nimport { privateRecordSchema } from '../shared.js';\n\nexport const listPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.listPrivateRecords),\n })\n .transform(({ type }) => ({\n type,\n operations: [\n {\n opType: 'primitiveGet' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n },\n ],\n }));\n\nexport const savePrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.savePrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const replacePrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.replacePrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n {\n opType: 'arrayClean' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n },\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const pruneConsumedPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.pruneConsumedPrivateRecords),\n })\n .transform(({ type }) => ({\n type,\n operations: [rejectConsumedPrivateRecords()],\n }));\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { rejectPrivateRecordsByIds } from '../../filters/ops.js';\nimport { privateRecordSchema, transactionStatusSchema } from '../shared.js';\n\nexport const upsertPrivateRecordsSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.upsertPrivateRecords),\n records: z.array(privateRecordSchema),\n })\n .transform(({ type, records }) => ({\n type,\n operations: [\n rejectPrivateRecordsByIds(records.map((record) => record.id)),\n {\n opType: 'arrayPush' as const,\n jsonPath: STELLAR_STATE_PATHS.privateRecords,\n items: records,\n },\n ],\n }));\n\nexport const readTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readTransactionStatus),\n txHash: z.string().min(1),\n })\n .transform(({ type, txHash }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: txHash,\n },\n ],\n }));\n\nexport const setTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setTransactionStatus),\n status: transactionStatusSchema,\n })\n .transform(({ type, status }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: status.txHash,\n value: status,\n },\n ],\n }));\n\nexport const clearTransactionStatusSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.clearTransactionStatus),\n txHash: z.string().min(1),\n })\n .transform(({ type, txHash }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.transactionsByHash,\n key: txHash,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n listPrivateRecordsSchema,\n pruneConsumedPrivateRecordsSchema,\n replacePrivateRecordsSchema,\n savePrivateRecordsSchema,\n} from '../schemas/records/private.js';\nimport { upsertPrivateRecordsSchema } from '../schemas/records/transactions.js';\n\nexport const stellarRecordsStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.listPrivateRecords,\n mode: 'read',\n schema: listPrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.savePrivateRecords,\n mode: 'write',\n schema: savePrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.replacePrivateRecords,\n mode: 'write',\n schema: replacePrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.upsertPrivateRecords,\n mode: 'write',\n schema: upsertPrivateRecordsSchema,\n },\n {\n type: stellarStateCallTypes.pruneConsumedPrivateRecords,\n mode: 'write',\n schema: pruneConsumedPrivateRecordsSchema,\n },\n];\n","import { z } from 'zod';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { registryLookupSchema } from '../shared.js';\n\nexport const readStellarAddressRegisteredSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readStellarAddressRegistered),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n ],\n }));\n\nexport const readCachedPrivateAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readCachedPrivateAddress),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n ],\n }));\n\nexport const saveRegisteredPrivateAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveRegisteredPrivateAddress),\n address: z.string().min(1),\n privateAddress: z.string().min(1),\n registered: z.boolean(),\n })\n .transform(({ type, address, privateAddress, registered }) => {\n const lookup = registryLookupSchema.parse({\n owner: address,\n status: registered ? 'registered' : 'unregistered',\n privateAddressStpl1: registered ? privateAddress : undefined,\n cachedAt: new Date().toISOString(),\n });\n return {\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n value: privateAddress,\n },\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n value: registered,\n },\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n value: lookup,\n },\n ],\n };\n });\n\nexport const invalidateRegisteredAddressSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.invalidateRegisteredAddress),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n ],\n }));\n\nexport const readRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readRegistryLookup),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n ],\n }));\n\nexport const saveRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveRegistryLookup),\n lookup: registryLookupSchema,\n })\n .transform(({ type, lookup }) => {\n const operations: Array<{\n opType: 'recordSet';\n jsonPath: string;\n key: string;\n value: unknown;\n }> = [\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: lookup.owner,\n value: lookup,\n },\n ];\n if (lookup.status === 'registered' && lookup.privateAddressStpl1) {\n operations.push(\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: lookup.owner,\n value: lookup.privateAddressStpl1,\n },\n {\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: lookup.owner,\n value: true,\n },\n );\n } else {\n operations.push({\n opType: 'recordSet',\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: lookup.owner,\n value: false,\n });\n }\n return { type, operations };\n });\n\nexport const invalidateRegistryLookupSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.invalidateRegistryLookup),\n address: z.string().min(1),\n })\n .transform(({ type, address }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryLookups,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryPrivateAddresses,\n key: address,\n },\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.registryRegisteredAddresses,\n key: address,\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\nimport {\n invalidateRegisteredAddressSchema,\n invalidateRegistryLookupSchema,\n readCachedPrivateAddressSchema,\n readRegistryLookupSchema,\n readStellarAddressRegisteredSchema,\n saveRegisteredPrivateAddressSchema,\n saveRegistryLookupSchema,\n} from '../schemas/registry/lookup.js';\n\nexport const stellarRegistryStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readStellarAddressRegistered,\n mode: 'read',\n schema: readStellarAddressRegisteredSchema,\n },\n {\n type: stellarStateCallTypes.readCachedPrivateAddress,\n mode: 'read',\n schema: readCachedPrivateAddressSchema,\n },\n {\n type: stellarStateCallTypes.readRegistryLookup,\n mode: 'read',\n schema: readRegistryLookupSchema,\n },\n {\n type: stellarStateCallTypes.saveRegisteredPrivateAddress,\n mode: 'write',\n schema: saveRegisteredPrivateAddressSchema,\n },\n {\n type: stellarStateCallTypes.saveRegistryLookup,\n mode: 'write',\n schema: saveRegistryLookupSchema,\n },\n {\n type: stellarStateCallTypes.invalidateRegisteredAddress,\n mode: 'write',\n schema: invalidateRegisteredAddressSchema,\n },\n {\n type: stellarStateCallTypes.invalidateRegistryLookup,\n mode: 'write',\n schema: invalidateRegistryLookupSchema,\n },\n];\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport {\n clearTransactionStatusSchema,\n readTransactionStatusSchema,\n setTransactionStatusSchema,\n} from '../schemas/records/transactions.js';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\n\nexport const stellarTransactionStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.readTransactionStatus,\n mode: 'read',\n schema: readTransactionStatusSchema,\n },\n {\n type: stellarStateCallTypes.setTransactionStatus,\n mode: 'write',\n schema: setTransactionStatusSchema,\n },\n {\n type: stellarStateCallTypes.clearTransactionStatus,\n mode: 'write',\n schema: clearTransactionStatusSchema,\n },\n];\n","import { z } from 'zod';\nimport { walletOwnerNonceKey } from '../../foundation/keys.js';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { walletPrivateAddressScalarSchema } from '../shared.js';\n\nexport const saveWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveWalletPrivateAddressScalar),\n scalar: walletPrivateAddressScalarSchema,\n })\n .transform(({ type, scalar }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(scalar.owner, scalar.nonce),\n value: scalar,\n },\n ],\n }));\n\nexport const readWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletPrivateAddressScalar),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n","import { z } from 'zod';\nimport { walletOwnerNonceKey } from '../../foundation/keys.js';\nimport { STELLAR_STATE_PATHS } from '../../foundation/paths.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport { walletPrivateAddressRecordSchema } from '../shared.js';\n\nexport const saveWalletPrivateAddressRecordSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.saveWalletPrivateAddressRecord),\n record: walletPrivateAddressRecordSchema,\n })\n .transform(({ type, record }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressRecords,\n key: walletOwnerNonceKey(record.owner, record.nonce),\n value: record,\n },\n ],\n }));\n\nexport const readWalletPrivateAddressRecordSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletPrivateAddressRecord),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressRecords,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n\nexport const setWalletDefaultPrivateAddressNonceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.setWalletDefaultPrivateAddressNonce),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordSet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletDefaultPrivateAddressNonce,\n key: owner,\n value: nonce,\n },\n ],\n }));\n\nexport const readWalletDefaultPrivateAddressNonceSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.readWalletDefaultPrivateAddressNonce),\n owner: z.string().min(1),\n })\n .transform(({ type, owner }) => ({\n type,\n operations: [\n {\n opType: 'recordGet' as const,\n jsonPath: STELLAR_STATE_PATHS.walletDefaultPrivateAddressNonce,\n key: owner,\n },\n ],\n }));\n\nexport const deleteWalletPrivateAddressScalarSchema = z\n .object({\n type: z.literal(stellarStateCallTypes.deleteWalletPrivateAddressScalar),\n owner: z.string().min(1),\n nonce: z.string().min(1),\n })\n .transform(({ type, owner, nonce }) => ({\n type,\n operations: [\n {\n opType: 'recordDelete' as const,\n jsonPath: STELLAR_STATE_PATHS.walletPrivateAddressScalars,\n key: walletOwnerNonceKey(owner, nonce),\n },\n ],\n }));\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport {\n readWalletPrivateAddressScalarSchema,\n saveWalletPrivateAddressScalarSchema,\n} from '../schemas/wallet/scalar.js';\nimport {\n deleteWalletPrivateAddressScalarSchema,\n readWalletDefaultPrivateAddressNonceSchema,\n readWalletPrivateAddressRecordSchema,\n saveWalletPrivateAddressRecordSchema,\n setWalletDefaultPrivateAddressNonceSchema,\n} from '../schemas/wallet/private-address.js';\nimport { stellarStateCallTypes } from '../bridge/call-types.js';\n\nexport const stellarWalletStateDefinitions: StateBridgeDefinition[] = [\n {\n type: stellarStateCallTypes.saveWalletPrivateAddressScalar,\n mode: 'write',\n schema: saveWalletPrivateAddressScalarSchema,\n },\n {\n type: stellarStateCallTypes.readWalletPrivateAddressScalar,\n mode: 'read',\n schema: readWalletPrivateAddressScalarSchema,\n },\n {\n type: stellarStateCallTypes.saveWalletPrivateAddressRecord,\n mode: 'write',\n schema: saveWalletPrivateAddressRecordSchema,\n },\n {\n type: stellarStateCallTypes.readWalletPrivateAddressRecord,\n mode: 'read',\n schema: readWalletPrivateAddressRecordSchema,\n },\n {\n type: stellarStateCallTypes.setWalletDefaultPrivateAddressNonce,\n mode: 'write',\n schema: setWalletDefaultPrivateAddressNonceSchema,\n },\n {\n type: stellarStateCallTypes.readWalletDefaultPrivateAddressNonce,\n mode: 'read',\n schema: readWalletDefaultPrivateAddressNonceSchema,\n },\n {\n type: stellarStateCallTypes.deleteWalletPrivateAddressScalar,\n mode: 'write',\n schema: deleteWalletPrivateAddressScalarSchema,\n },\n];\n","import type { StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';\nimport { registerStellarArrayFilterSchemas } from '../filters/register-schemas.js';\nimport { stellarAssetsStateDefinitions } from './assets.js';\nimport { stellarBalancesStateDefinitions } from './balances.js';\nimport { stellarDeliveriesStateDefinitions } from './deliveries.js';\nimport { stellarPoolStateDefinitions } from './pool.js';\nimport { stellarRecordsStateDefinitions } from './records.js';\nimport { stellarRegistryStateDefinitions } from './registry.js';\nimport { stellarTransactionStateDefinitions } from './transactions.js';\nimport { stellarWalletStateDefinitions } from './wallet.js';\n\nregisterStellarArrayFilterSchemas();\n\nexport const stellarStateDefinitions: StateBridgeDefinition[] = [\n ...stellarRegistryStateDefinitions,\n ...stellarAssetsStateDefinitions,\n ...stellarBalancesStateDefinitions,\n ...stellarPoolStateDefinitions,\n ...stellarRecordsStateDefinitions,\n ...stellarDeliveriesStateDefinitions,\n ...stellarWalletStateDefinitions,\n ...stellarTransactionStateDefinitions,\n];\n","import {\n createStateBridge,\n type StateBridge,\n type StateBridgeAdapter,\n} from '@arcanetech/privacy-sdk-core/state';\nimport { stellarStateDefinitions } from '../definitions/index.js';\n\nexport class StellarStateServiceBase {\n readonly bridge: StateBridge;\n\n constructor(adapter: StateBridgeAdapter) {\n this.bridge = createStateBridge(adapter);\n this.bridge.init(stellarStateDefinitions);\n }\n}\n","import type {\n StellarAddress,\n StellarAssetId,\n StellarPublicBalance,\n} from '../../../types.js';\nimport {\n normalizePublicBalance,\n normalizePublicBalancesFromEntries,\n} from '../../read/normalize.js';\nimport {\n stellarStateCallTypes,\n type StellarPublicBalanceInput,\n} from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createPublicBalanceMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getPublicBalance(input: {\n owner: StellarAddress;\n asset: StellarAssetId;\n }): Promise<StellarPublicBalance | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPublicBalance,\n owner: input.owner,\n asset: input.asset,\n });\n return normalizePublicBalance(value);\n },\n\n async getPublicBalances(owner: StellarAddress): Promise<StellarPublicBalance[]> {\n const entries = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPublicBalances,\n owner,\n });\n return normalizePublicBalancesFromEntries(entries, owner);\n },\n\n setPublicBalance(balance: StellarPublicBalanceInput): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPublicBalance,\n balance,\n });\n },\n\n setPublicBalances(input: {\n owner: StellarAddress;\n balances: StellarPublicBalanceInput[];\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPublicBalances,\n owner: input.owner,\n balances: input.balances,\n });\n },\n };\n}\n","import type { StellarAsset } from '../../../types.js';\nimport { readRecordValue } from '../../foundation/keys.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\ntype AssetsCatalogDeps = {\n getAssetsCatalog: () => Promise<{\n byId: Record<string, StellarAsset>;\n listOrder: string[];\n }>;\n replaceAssets: (assets: StellarAsset[]) => Promise<void>;\n};\n\nexport function createAssetsUpsertMethods(\n _context: StellarStateServiceBase,\n deps: AssetsCatalogDeps,\n) {\n return {\n async upsertAssets(assets: StellarAsset[]): Promise<void> {\n if (assets.length === 0) {\n return;\n }\n const catalog = await deps.getAssetsCatalog();\n const byId = { ...catalog.byId };\n const listOrder = [...catalog.listOrder];\n for (const asset of assets) {\n byId[asset.assetId] = asset;\n if (!listOrder.includes(asset.assetId)) {\n listOrder.push(asset.assetId);\n }\n }\n const merged = listOrder\n .map((assetId) => readRecordValue(byId, assetId))\n .filter((asset): asset is StellarAsset => asset !== undefined);\n await deps.replaceAssets(merged);\n },\n };\n}\n","import type {\n StellarAsset,\n StellarAssetId,\n StellarAssetsCatalog,\n} from '../../../types.js';\nimport { readRecordValue } from '../../foundation/keys.js';\nimport { normalizeAsset, normalizeAssetsCatalog } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\nimport { createAssetsUpsertMethods } from './upsert-methods.js';\n\nexport function createAssetsCatalogMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function getAssetsCatalog(): Promise<StellarAssetsCatalog> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readAssetsCatalog,\n });\n return normalizeAssetsCatalog(value);\n }\n\n function replaceAssets(assets: StellarAsset[]): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.replaceAssets,\n assets,\n });\n }\n\n const coreMethods = {\n getAssetsCatalog,\n\n async getAsset(assetId: StellarAssetId): Promise<StellarAsset | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readAsset,\n assetId,\n });\n return normalizeAsset(value);\n },\n\n async getAssets(): Promise<StellarAsset[]> {\n const catalog = await getAssetsCatalog();\n return catalog.listOrder\n .map((assetId) => readRecordValue(catalog.byId, assetId))\n .filter((asset): asset is StellarAsset => asset !== undefined);\n },\n\n async getAssetsForPool(poolContract: string): Promise<StellarAsset[]> {\n const assets = await coreMethods.getAssets();\n return assets.filter((asset) => asset.poolContracts.includes(poolContract));\n },\n\n replaceAssets,\n };\n\n return {\n ...coreMethods,\n ...createAssetsUpsertMethods(context, {\n getAssetsCatalog,\n replaceAssets,\n }),\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createPublicBalanceMethods } from './balance-methods.js';\nimport { createAssetsCatalogMethods } from './catalog-methods.js';\n\nexport function createAssetsService(context: StellarStateServiceBase) {\n return {\n ...createAssetsCatalogMethods(context),\n ...createPublicBalanceMethods(context),\n };\n}\n","import type {\n StellarIncomingDeliveriesFilter,\n StellarIncomingDelivery,\n} from '../../../types.js';\nimport { normalizeIncomingDeliveries } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createIncomingDeliveryMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function getIncomingDeliveries(\n filter: StellarIncomingDeliveriesFilter,\n ): Promise<StellarIncomingDelivery[]> {\n const values = await bridge.read<unknown>({\n type: stellarStateCallTypes.readIncomingDeliveries,\n });\n const deliveries = normalizeIncomingDeliveries(values);\n return deliveries.filter((delivery: StellarIncomingDelivery) => {\n if (delivery.privateAddress !== filter.privateAddress) {\n return false;\n }\n if (filter.asset !== undefined && delivery.asset !== filter.asset) {\n return false;\n }\n if (!filter.includeProcessed && delivery.processed) {\n return false;\n }\n return true;\n });\n }\n\n function upsertIncomingDeliveries(\n deliveries: StellarIncomingDelivery[],\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.upsertIncomingDeliveries,\n deliveries,\n });\n }\n\n return {\n getIncomingDeliveries,\n upsertIncomingDeliveries,\n\n async markDeliveryProcessed(id: number): Promise<void> {\n const deliveries = await bridge.read<unknown>({\n type: stellarStateCallTypes.readIncomingDeliveries,\n });\n const match = normalizeIncomingDeliveries(deliveries).find(\n (delivery: StellarIncomingDelivery) => delivery.id === id,\n );\n if (!match) {\n return;\n }\n await upsertIncomingDeliveries([{ ...match, processed: true }]);\n },\n };\n}\n","import type { StellarAssetId, StellarDeliverySyncState } from '../../../types.js';\nimport { normalizeDeliverySyncState } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createDeliverySyncMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getDeliverySyncState(input: {\n privateAddress: string;\n asset: StellarAssetId;\n }): Promise<StellarDeliverySyncState | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readDeliverySyncState,\n privateAddress: input.privateAddress,\n asset: input.asset,\n });\n return normalizeDeliverySyncState(value);\n },\n\n setDeliverySyncState(syncState: StellarDeliverySyncState): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setDeliverySyncState,\n syncState,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createIncomingDeliveryMethods } from './incoming-methods.js';\nimport { createDeliverySyncMethods } from './sync-methods.js';\n\nexport function createDeliveriesService(context: StellarStateServiceBase) {\n return {\n ...createIncomingDeliveryMethods(context),\n ...createDeliverySyncMethods(context),\n };\n}\n","import type { StellarLeafEphemeral } from '../../../types.js';\nimport { normalizeLeafEphemeral } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nfunction isMissingStatePathError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n return (\n error.message.includes('Record path not found:') ||\n error.message.includes('JSONPath segment not found:')\n );\n}\n\nexport function createPoolEphemeralService(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getLeafEphemeral(input: {\n poolContract: string;\n leafIndex: number;\n }): Promise<StellarLeafEphemeral | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readLeafEphemeral,\n poolContract: input.poolContract,\n leafIndex: input.leafIndex,\n });\n return normalizeLeafEphemeral(value);\n } catch (error) {\n if (isMissingStatePathError(error)) {\n return undefined;\n }\n throw error;\n }\n },\n\n setLeafEphemeral(ephemeral: StellarLeafEphemeral): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setLeafEphemeral,\n ephemeral,\n });\n },\n };\n}\n","import type { StellarPoolMerkleState } from '../../../types.js';\nimport { withoutUndefinedFields } from '../../foundation/coerce.js';\nimport { normalizePoolMerkleState } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nfunction isMissingStatePathError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n return (\n error.message.includes('Record path not found:') ||\n error.message.includes('JSONPath segment not found:')\n );\n}\n\nexport function createPoolMerkleService(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getPoolMerkleState(\n poolContract: string,\n ): Promise<StellarPoolMerkleState | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readPoolMerkleState,\n poolContract,\n });\n return normalizePoolMerkleState(value);\n } catch (error) {\n if (isMissingStatePathError(error)) {\n return undefined;\n }\n throw error;\n }\n },\n\n setPoolMerkleState(state: StellarPoolMerkleState): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setPoolMerkleState,\n state,\n });\n },\n\n async appendPoolCommitments(input: {\n poolContract: string;\n commitments: string[];\n merkleRootHex: string;\n syncedLedger?: number;\n }): Promise<void> {\n const current = await this.getPoolMerkleState(input.poolContract);\n const mergedCommitments = [...(current?.commitments ?? []), ...input.commitments];\n await this.setPoolMerkleState(\n withoutUndefinedFields({\n poolContract: input.poolContract,\n commitments: mergedCommitments,\n commitmentCount: mergedCommitments.length,\n merkleRootHex: input.merkleRootHex,\n updatedAt: Date.now(),\n syncedLedger: input.syncedLedger ?? current?.syncedLedger,\n }) as StellarPoolMerkleState,\n );\n },\n };\n}\n","import type { StellarPrivateRecord } from '../../../types.js';\n\nfunction privateCoinNotesEqual(\n left: StellarPrivateRecord['coinNote'],\n right: StellarPrivateRecord['coinNote'],\n): boolean {\n if (left === undefined || right === undefined) {\n return left === right;\n }\n return (\n left.value === right.value &&\n left.nullifier === right.nullifier &&\n left.secret === right.secret &&\n left.commitment === right.commitment &&\n left.asset_hi === right.asset_hi &&\n left.asset_lo === right.asset_lo &&\n left.application_id === right.application_id\n );\n}\n\nfunction privateRecordCoreFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.id === right.id &&\n left.owner === right.owner &&\n left.asset === right.asset &&\n left.amount === right.amount &&\n left.consumed === right.consumed &&\n left.status === right.status &&\n left.poolContract === right.poolContract &&\n left.amountDisplay === right.amountDisplay\n );\n}\n\nfunction privateRecordChainFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.commitmentHex === right.commitmentHex &&\n left.nullifierHex === right.nullifierHex &&\n left.deliveryId === right.deliveryId &&\n left.privateAddress === right.privateAddress &&\n left.txHash === right.txHash\n );\n}\n\nfunction privateRecordSecretFieldsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n left.depositScalarHex === right.depositScalarHex &&\n left.precommitementHex === right.precommitementHex &&\n privateCoinNotesEqual(left.coinNote, right.coinNote)\n );\n}\n\nfunction privateRecordsEqual(\n left: StellarPrivateRecord,\n right: StellarPrivateRecord,\n): boolean {\n return (\n privateRecordCoreFieldsEqual(left, right) &&\n privateRecordChainFieldsEqual(left, right) &&\n privateRecordSecretFieldsEqual(left, right)\n );\n}\n\nexport function privateRecordArraysEqual(\n left: StellarPrivateRecord[],\n right: StellarPrivateRecord[],\n): boolean {\n return (\n left.length === right.length &&\n left.every((record, index) => {\n const rightRecord = right.at(index);\n return rightRecord !== undefined && privateRecordsEqual(record, rightRecord);\n })\n );\n}\n\nexport function mergePrivateRecords(\n current: StellarPrivateRecord[],\n records: StellarPrivateRecord[],\n): StellarPrivateRecord[] {\n const ids = new Set(records.map((record) => record.id));\n return [...current.filter((record) => !ids.has(record.id)), ...records];\n}\n","import type {\n StellarAddress,\n StellarAssetId,\n StellarPrivateAssetRow,\n StellarPrivateRecord,\n StellarPrivateRecordStatus,\n} from '../../../types.js';\nimport { normalizePrivateRecords } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarAvailablePrivateRecordsFilter } from '../../domain/types.js';\nimport type { StellarStateServiceBase } from '../base.js';\nimport {\n mergePrivateRecords,\n privateRecordArraysEqual,\n} from './private-record-upsert.js';\n\ntype PrivateRecordBridge = StellarStateServiceBase['bridge'];\n\nasync function readPrivateRecords(\n bridge: PrivateRecordBridge,\n): Promise<StellarPrivateRecord[]> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.listPrivateRecords,\n });\n return normalizePrivateRecords(value);\n}\n\nfunction writeReplacePrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.replacePrivateRecords,\n records,\n });\n}\n\nasync function readAvailablePrivateRecords(\n bridge: PrivateRecordBridge,\n filter: StellarAvailablePrivateRecordsFilter,\n): Promise<StellarPrivateRecord[]> {\n const records = await readPrivateRecords(bridge);\n return records.filter((record) => matchesPrivateRecordFilter(record, filter, false));\n}\n\nasync function applyPrivateRecordsStatus(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n status: StellarPrivateRecordStatus,\n): Promise<void> {\n const current = await readPrivateRecords(bridge);\n const ids = new Set(records.map((record) => record.id));\n const next = current.map((record) =>\n ids.has(record.id)\n ? {\n ...record,\n status,\n consumed: status === 'spent' ? true : record.consumed,\n }\n : record,\n );\n await writeReplacePrivateRecords(bridge, next);\n}\n\nfunction aggregatePrivateAssetRows(\n records: StellarPrivateRecord[],\n owner: StellarAddress,\n): StellarPrivateAssetRow[] {\n const available = records.filter(\n (record) => record.owner === owner && !record.consumed && record.status !== 'spent',\n );\n const byAsset = new Map<string, StellarPrivateAssetRow>();\n for (const record of available) {\n const existing = byAsset.get(record.asset);\n const amountDisplay = record.amountDisplay ?? Number(record.amount);\n if (existing) {\n existing.totalAmount += record.amount;\n existing.totalAmountDisplay += amountDisplay;\n } else {\n byAsset.set(record.asset, {\n assetId: record.asset,\n poolContract: record.poolContract ?? '',\n totalAmount: record.amount,\n totalAmountDisplay: amountDisplay,\n });\n }\n }\n return [...byAsset.values()].toSorted((left, right) =>\n left.assetId.localeCompare(right.assetId),\n );\n}\n\nfunction pruneConsumedPrivateRecords(bridge: PrivateRecordBridge): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.pruneConsumedPrivateRecords,\n });\n}\n\nfunction savePrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.savePrivateRecords,\n records,\n });\n}\n\nasync function upsertPrivateRecords(\n bridge: PrivateRecordBridge,\n records: StellarPrivateRecord[],\n): Promise<void> {\n if (records.length === 0) {\n return;\n }\n const current = await readPrivateRecords(bridge);\n const next = mergePrivateRecords(current, records);\n if (privateRecordArraysEqual(current, next)) {\n return;\n }\n return bridge.write({\n type: stellarStateCallTypes.upsertPrivateRecords,\n records,\n });\n}\n\nasync function readPrivateBalance(\n bridge: PrivateRecordBridge,\n input: { owner: StellarAddress; asset: StellarAssetId },\n): Promise<bigint> {\n const records = await readAvailablePrivateRecords(bridge, {\n owner: input.owner,\n asset: input.asset,\n });\n return records.reduce((total, record) => total + record.amount, 0n);\n}\n\nasync function readPrivateAssetRows(\n bridge: PrivateRecordBridge,\n owner: StellarAddress,\n): Promise<StellarPrivateAssetRow[]> {\n const records = await readPrivateRecords(bridge);\n return aggregatePrivateAssetRows(records, owner);\n}\n\nexport function createPrivateRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n pruneConsumedPrivateRecords: () => pruneConsumedPrivateRecords(bridge),\n getPrivateRecords: () => readPrivateRecords(bridge),\n getAvailablePrivateRecords: (filter: StellarAvailablePrivateRecordsFilter) =>\n readAvailablePrivateRecords(bridge, filter),\n listPrivateRecords: (filter: {\n owner?: StellarAddress;\n privateAddress?: string;\n asset?: StellarAssetId;\n amount?: bigint;\n }) => readAvailablePrivateRecords(bridge, filter),\n savePrivateRecords: (records: StellarPrivateRecord[]) =>\n savePrivateRecords(bridge, records),\n upsertPrivateRecords: (records: StellarPrivateRecord[]) =>\n upsertPrivateRecords(bridge, records),\n markPrivateRecordsUsed: (records: StellarPrivateRecord[]) =>\n applyPrivateRecordsStatus(bridge, records, 'spent'),\n markPrivateRecordsStatus: (\n records: StellarPrivateRecord[],\n status: StellarPrivateRecordStatus,\n ) => applyPrivateRecordsStatus(bridge, records, status),\n getPrivateBalance: (input: { owner: StellarAddress; asset: StellarAssetId }) =>\n readPrivateBalance(bridge, input),\n getPrivateAssetRows: (owner: StellarAddress) => readPrivateAssetRows(bridge, owner),\n };\n}\n\nfunction matchesPrivateRecordFilter(\n record: StellarPrivateRecord,\n filter: StellarAvailablePrivateRecordsFilter,\n includeConsumed: boolean,\n): boolean {\n if (filter.owner !== undefined && record.owner !== filter.owner) {\n return false;\n }\n if (\n filter.privateAddress !== undefined &&\n record.privateAddress !== filter.privateAddress\n ) {\n return false;\n }\n if (filter.owner === undefined && filter.privateAddress === undefined) {\n return false;\n }\n if (filter.asset !== undefined && record.asset !== filter.asset) {\n return false;\n }\n if (!includeConsumed && (record.consumed || record.status === 'spent')) {\n return false;\n }\n return true;\n}\n","import type { StellarTransactionStatus } from '../../../types.js';\nimport { normalizeTransactionStatus } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createTransactionRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getTransactionStatus(\n txHash: string,\n ): Promise<StellarTransactionStatus | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readTransactionStatus,\n txHash,\n });\n return normalizeTransactionStatus(value);\n },\n\n setTransactionStatus(status: StellarTransactionStatus): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setTransactionStatus,\n status,\n });\n },\n\n clearTransactionStatus(txHash: string): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.clearTransactionStatus,\n txHash,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createPrivateRecordMethods } from './private-methods.js';\nimport { createTransactionRecordMethods } from './transaction-methods.js';\n\nexport function createRecordsService(context: StellarStateServiceBase) {\n return {\n ...createPrivateRecordMethods(context),\n ...createTransactionRecordMethods(context),\n };\n}\n","import type { StellarAddress, StellarRegistryLookup } from '../../../types.js';\nimport {\n normalizeCachedPrivateAddress,\n normalizeRegistryLookup,\n normalizeRegistryLookupFromLegacy,\n} from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\ntype RegistryLookupBridge = StellarStateServiceBase['bridge'];\n\nasync function readRegistryLookup(\n bridge: RegistryLookupBridge,\n address: StellarAddress,\n): Promise<StellarRegistryLookup | undefined> {\n try {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readRegistryLookup,\n address,\n });\n const lookup = normalizeRegistryLookup(value);\n if (lookup) {\n return lookup;\n }\n } catch {\n // Legacy states may not have $.registry.lookups yet.\n }\n let registered: unknown;\n let privateAddress: unknown;\n try {\n registered = await bridge.read<unknown>({\n type: stellarStateCallTypes.readStellarAddressRegistered,\n address,\n });\n } catch {\n registered = undefined;\n }\n try {\n privateAddress = await bridge.read<unknown>({\n type: stellarStateCallTypes.readCachedPrivateAddress,\n address,\n });\n } catch {\n privateAddress = undefined;\n }\n return normalizeRegistryLookupFromLegacy({\n address,\n registered,\n privateAddress,\n });\n}\n\nasync function readCachedPrivateAddress(\n bridge: RegistryLookupBridge,\n address: StellarAddress,\n): Promise<string | undefined> {\n const lookup = await readRegistryLookup(bridge, address);\n if (lookup?.privateAddressStpl1) {\n return lookup.privateAddressStpl1;\n }\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readCachedPrivateAddress,\n address,\n });\n return normalizeCachedPrivateAddress(value);\n}\n\nexport function createRegistryLookupReadMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n getRegistryLookup: (address: StellarAddress) => readRegistryLookup(bridge, address),\n\n async isStellarAddressRegistered(\n address: StellarAddress,\n ): Promise<boolean | undefined> {\n const lookup = await readRegistryLookup(bridge, address);\n if (lookup === undefined) {\n return undefined;\n }\n return lookup.status === 'registered';\n },\n\n getCachedPrivateAddress: (address: StellarAddress) =>\n readCachedPrivateAddress(bridge, address),\n };\n}\n","import type { StellarAddress, StellarRegistryLookup } from '../../../types.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createRegistryLookupWriteMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n async function invalidateRegistryLookup(address: StellarAddress): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.invalidateRegistryLookup,\n address,\n });\n }\n\n return {\n saveRegistryLookup(lookup: StellarRegistryLookup): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveRegistryLookup,\n lookup,\n });\n },\n\n saveRegisteredPrivateAddress(input: {\n address: StellarAddress;\n privateAddress: string;\n registered: boolean;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveRegisteredPrivateAddress,\n address: input.address,\n privateAddress: input.privateAddress,\n registered: input.registered,\n });\n },\n\n invalidateRegistryLookup,\n\n invalidateRegisteredAddress(address: StellarAddress): Promise<void> {\n return invalidateRegistryLookup(address);\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createRegistryLookupReadMethods } from './lookup-read.js';\nimport { createRegistryLookupWriteMethods } from './lookup-write.js';\n\nexport function createRegistryLookupService(context: StellarStateServiceBase) {\n return {\n ...createRegistryLookupReadMethods(context),\n ...createRegistryLookupWriteMethods(context),\n };\n}\n","import type {\n StellarAddress,\n StellarWalletPrivateAddressRecord,\n} from '../../../types.js';\nimport {\n normalizeWalletDefaultPrivateAddressNonce,\n normalizeWalletPrivateAddressRecord,\n} from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createWalletRecordMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getWalletPrivateAddressRecord(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<StellarWalletPrivateAddressRecord | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletPrivateAddressRecord,\n owner: input.owner,\n nonce: input.nonce,\n });\n return normalizeWalletPrivateAddressRecord(value);\n },\n\n saveWalletPrivateAddressRecord(\n record: StellarWalletPrivateAddressRecord,\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveWalletPrivateAddressRecord,\n record,\n });\n },\n\n async getWalletDefaultPrivateAddressNonce(\n owner: StellarAddress,\n ): Promise<string | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletDefaultPrivateAddressNonce,\n owner,\n });\n return normalizeWalletDefaultPrivateAddressNonce(value);\n },\n\n setWalletDefaultPrivateAddressNonce(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.setWalletDefaultPrivateAddressNonce,\n owner: input.owner,\n nonce: input.nonce,\n });\n },\n };\n}\n","import type {\n StellarAddress,\n StellarWalletPrivateAddressScalar,\n} from '../../../types.js';\nimport { normalizeWalletPrivateAddressScalar } from '../../read/normalize.js';\nimport { stellarStateCallTypes } from '../../bridge/call-types.js';\nimport type { StellarStateServiceBase } from '../base.js';\n\nexport function createWalletScalarMethods(context: StellarStateServiceBase) {\n const { bridge } = context;\n\n return {\n async getWalletPrivateAddressScalar(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<StellarWalletPrivateAddressScalar | undefined> {\n const value = await bridge.read<unknown>({\n type: stellarStateCallTypes.readWalletPrivateAddressScalar,\n owner: input.owner,\n nonce: input.nonce,\n });\n return normalizeWalletPrivateAddressScalar(value);\n },\n\n saveWalletPrivateAddressScalar(\n scalar: StellarWalletPrivateAddressScalar,\n ): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.saveWalletPrivateAddressScalar,\n scalar,\n });\n },\n\n deleteWalletPrivateAddressScalar(input: {\n owner: StellarAddress;\n nonce: string;\n }): Promise<void> {\n return bridge.write({\n type: stellarStateCallTypes.deleteWalletPrivateAddressScalar,\n owner: input.owner,\n nonce: input.nonce,\n });\n },\n };\n}\n","import type { StellarStateServiceBase } from '../base.js';\nimport { createWalletRecordMethods } from './wallet-record-methods.js';\nimport { createWalletScalarMethods } from './wallet-scalar-methods.js';\n\nexport function createWalletAddressService(context: StellarStateServiceBase) {\n return {\n ...createWalletScalarMethods(context),\n ...createWalletRecordMethods(context),\n };\n}\n","import type { StateBridgeAdapter } from '@arcanetech/privacy-sdk-core/state';\nimport { StellarStateServiceBase } from './base.js';\nimport { createAssetsService } from './assets/index.js';\nimport { createDeliveriesService } from './deliveries/index.js';\nimport { createPoolEphemeralService } from './pool/ephemeral.js';\nimport { createPoolMerkleService } from './pool/merkle.js';\nimport { createRecordsService } from './records/index.js';\nimport { createRegistryLookupService } from './registry/lookup.js';\nimport { createWalletAddressService } from './registry/wallet-address.js';\n\nexport function composeStellarStateService(adapter: StateBridgeAdapter) {\n const base = new StellarStateServiceBase(adapter);\n\n return {\n bridge: base.bridge,\n ...createAssetsService(base),\n ...createRegistryLookupService(base),\n ...createWalletAddressService(base),\n ...createPoolMerkleService(base),\n ...createPoolEphemeralService(base),\n ...createDeliveriesService(base),\n ...createRecordsService(base),\n };\n}\n\nexport type ComposedStellarStateService = ReturnType<typeof composeStellarStateService>;\n","import type { StateBridgeAdapter } from '@arcanetech/privacy-sdk-core/state';\nimport type { StellarStorageAdapter } from '../../types.js';\nimport {\n composeStellarStateService,\n type ComposedStellarStateService,\n} from './compose.js';\n\nexport type StellarStateService = ComposedStellarStateService;\n\nexport function createStellarStateService(\n adapter: StateBridgeAdapter,\n): StellarStateService {\n return composeStellarStateService(adapter);\n}\n\nexport function createStellarStorageAdapterFromState(\n state: StellarStateService,\n): StellarStorageAdapter {\n return {\n listPrivateRecords: (filter) => state.listPrivateRecords(filter),\n savePrivateRecords: (records) => state.savePrivateRecords(records),\n markPrivateRecordsUsed: (records) => state.markPrivateRecordsUsed(records),\n };\n}\n"],"mappings":"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","names":["registered","z","z","z","readRecordValue","z","z","z","z","z","z","z","z","z","z","z","registered","z","z","z","z","readRecordValue","readRecordValue","isMissingStatePathError","registered"]}