@arkade-os/sdk 0.4.54 → 0.4.56

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.
Files changed (77) hide show
  1. package/dist/adapters/expo.cjs +5 -5
  2. package/dist/adapters/expo.d.cts +2 -2
  3. package/dist/adapters/expo.d.ts +2 -2
  4. package/dist/adapters/expo.js +3 -3
  5. package/dist/adapters/indexedDB.cjs +5 -5
  6. package/dist/adapters/indexedDB.js +4 -4
  7. package/dist/{ark-acFuA57I.d.cts → ark-Cgsd9tMd.d.cts} +40 -3
  8. package/dist/{ark-acFuA57I.d.ts → ark-Cgsd9tMd.d.ts} +40 -3
  9. package/dist/{asyncStorageTaskQueue-BO3cvMpP.d.cts → asyncStorageTaskQueue-C0ZsDE60.d.cts} +2 -2
  10. package/dist/{asyncStorageTaskQueue-DACXtP0I.d.ts → asyncStorageTaskQueue-CXz4PRBW.d.ts} +2 -2
  11. package/dist/{chunk-RNECH3TA.cjs → chunk-24YNIQSW.cjs} +15 -15
  12. package/dist/{chunk-RNECH3TA.cjs.map → chunk-24YNIQSW.cjs.map} +1 -1
  13. package/dist/{chunk-53XNU2EL.cjs → chunk-37XKN5DZ.cjs} +60 -40
  14. package/dist/chunk-37XKN5DZ.cjs.map +1 -0
  15. package/dist/{chunk-7L3P3EP5.js → chunk-5IMBONCK.js} +4 -4
  16. package/dist/{chunk-7L3P3EP5.js.map → chunk-5IMBONCK.js.map} +1 -1
  17. package/dist/{chunk-GMUVWKOK.cjs → chunk-CDWLZQQW.cjs} +11 -3
  18. package/dist/chunk-CDWLZQQW.cjs.map +1 -0
  19. package/dist/{chunk-D5LUPJJP.cjs → chunk-ENRRZFZ4.cjs} +774 -399
  20. package/dist/chunk-ENRRZFZ4.cjs.map +1 -0
  21. package/dist/{chunk-4EIKOJLD.js → chunk-IFGN2GB2.js} +11 -4
  22. package/dist/chunk-IFGN2GB2.js.map +1 -0
  23. package/dist/{chunk-YRLBZJYO.cjs → chunk-IMVKQQHU.cjs} +9 -9
  24. package/dist/{chunk-YRLBZJYO.cjs.map → chunk-IMVKQQHU.cjs.map} +1 -1
  25. package/dist/{chunk-BYJJIITU.cjs → chunk-MXPBHDOI.cjs} +17 -17
  26. package/dist/{chunk-BYJJIITU.cjs.map → chunk-MXPBHDOI.cjs.map} +1 -1
  27. package/dist/{chunk-ZOY5JSVA.js → chunk-NN7BNNF5.js} +3 -3
  28. package/dist/{chunk-ZOY5JSVA.js.map → chunk-NN7BNNF5.js.map} +1 -1
  29. package/dist/{chunk-A37WVZ5T.js → chunk-OOPDT2WV.js} +23 -4
  30. package/dist/chunk-OOPDT2WV.js.map +1 -0
  31. package/dist/{chunk-TEHJCEF3.js → chunk-T22257HW.js} +422 -56
  32. package/dist/chunk-T22257HW.js.map +1 -0
  33. package/dist/{chunk-QY2YVFZT.js → chunk-VNDVUM2W.js} +4 -4
  34. package/dist/{chunk-QY2YVFZT.js.map → chunk-VNDVUM2W.js.map} +1 -1
  35. package/dist/contracts/handlers/index.cjs +8 -8
  36. package/dist/contracts/handlers/index.d.cts +3 -3
  37. package/dist/contracts/handlers/index.d.ts +3 -3
  38. package/dist/contracts/handlers/index.js +2 -2
  39. package/dist/{delegate-DjwZZi6L.d.ts → delegate-CZPXtd2F.d.ts} +1 -1
  40. package/dist/{delegate-Ca_wXiYE.d.cts → delegate-xXT8O-Kn.d.cts} +1 -1
  41. package/dist/{index-Ddq0mIKX.d.ts → index-BBJ466mM.d.ts} +2 -2
  42. package/dist/{index-DFfefdpc.d.cts → index-BYG2eKOA.d.cts} +2 -2
  43. package/dist/index.cjs +246 -202
  44. package/dist/index.d.cts +169 -16
  45. package/dist/index.d.ts +169 -16
  46. package/dist/index.js +4 -4
  47. package/dist/repositories/realm/index.cjs +19 -19
  48. package/dist/repositories/realm/index.d.cts +2 -2
  49. package/dist/repositories/realm/index.d.ts +2 -2
  50. package/dist/repositories/realm/index.js +5 -5
  51. package/dist/repositories/sqlite/index.cjs +18 -18
  52. package/dist/repositories/sqlite/index.d.cts +2 -2
  53. package/dist/repositories/sqlite/index.d.ts +2 -2
  54. package/dist/repositories/sqlite/index.js +5 -5
  55. package/dist/{taskRunner-DEwlrgId.d.cts → taskRunner-BG1PRFps.d.cts} +2 -2
  56. package/dist/{taskRunner-DbCNRP31.d.ts → taskRunner-C46NnRsY.d.ts} +2 -2
  57. package/dist/wallet/expo/background.cjs +14 -14
  58. package/dist/wallet/expo/background.d.cts +3 -3
  59. package/dist/wallet/expo/background.d.ts +3 -3
  60. package/dist/wallet/expo/background.js +6 -6
  61. package/dist/wallet/expo/index.cjs +14 -14
  62. package/dist/wallet/expo/index.d.cts +5 -5
  63. package/dist/wallet/expo/index.d.ts +5 -5
  64. package/dist/wallet/expo/index.js +5 -5
  65. package/dist/{wallet-B9rpddG2.d.ts → wallet-1yWg75gN.d.cts} +100 -6
  66. package/dist/{wallet-ByjM6L20.d.cts → wallet-DuCm55EC.d.ts} +100 -6
  67. package/dist/worker/expo/index.cjs +9 -9
  68. package/dist/worker/expo/index.d.cts +4 -4
  69. package/dist/worker/expo/index.d.ts +4 -4
  70. package/dist/worker/expo/index.js +5 -5
  71. package/package.json +1 -1
  72. package/dist/chunk-4EIKOJLD.js.map +0 -1
  73. package/dist/chunk-53XNU2EL.cjs.map +0 -1
  74. package/dist/chunk-A37WVZ5T.js.map +0 -1
  75. package/dist/chunk-D5LUPJJP.cjs.map +0 -1
  76. package/dist/chunk-GMUVWKOK.cjs.map +0 -1
  77. package/dist/chunk-TEHJCEF3.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,11 +1,11 @@
1
- import { $ as ReadonlyIdentity, a as Identity, al as DescriptorSigningRequest, am as Transaction, ah as SignerSession, x as IntentRepository, y as ArkIntent, z as IntentFilter, O as Outpoint, B as VirtualTxRepository, D as VirtualTx, F as VtxoBranch, W as WalletRepository, t as ExtendedVirtualCoin, u as VtxoRepositoryKey, E as ExtendedCoin, A as ArkTransaction, v as WalletState, s as Contract, C as ContractRepository, w as ContractFilter, an as IntentFeeConfig, ao as OffchainInput, ap as FeeAmount, aq as OnchainInput, ar as FeeOutput, n as ArkProvider, af as SettlementConfig, as as ContractWatcherConfig, at as Asset, R as Recipient, I as IWallet, au as FeeInfo, i as SettlementEvent, Z as DescriptorProvider, h as SettleParams, S as SendBitcoinParams, G as GetVtxosFilter, av as CreateContractParams, aw as GetContractsFilter, r as VirtualCoin, ax as GetSpendablePathsOptions, ay as GetAllSpendingPathsOptions, az as IssuanceParams, aA as ReissuanceParams, aB as BurnParams, aC as RenewVtxosOptions, c as WalletBalance, a7 as ContractSyncState, aD as ContractWithVtxos, aE as PathSelection, aF as ContractEvent, aG as AssetDetails, aH as IssuanceResult, aI as DelegateInfo, aJ as MigrationGlobalSkipReason, aK as MigrationLegSkipReason, aL as SignerStatus, _ as IReadonlyWallet, d as ActivityRegistry, a6 as IReadonlyAssetManager, aM as StorageConfig, e as Activity, N as NormalizedExtendedVirtualCoin, f as IContractManager, j as IAssetManager, g as IDelegateManager, aN as IVtxoManager, a1 as OnchainProvider, a0 as Network, a8 as NetworkName, ab as Coin, aO as ExplorerTransaction, q as TapLeafScript, aP as EncodedVtxoScript, ae as CSVMultisigTapscript, p as RelativeTimelock, V as VtxoScript, aQ as Status, aa as ArkAddress, aj as Intent, aR as ChainTx, o as IndexerProvider, L as TxTree, aS as PathContext } from './ark-acFuA57I.cjs';
2
- export { aT as ActivityIntent, aU as ActivityResolver, a9 as ArkInfo, aV as ArkIntentState, aW as ArkTapscript, aX as AssetMetadata, aY as BaseWalletConfig, U as BatchFailedEvent, P as BatchFinalizationEvent, Q as BatchFinalizedEvent, aZ as BatchInfo, a_ as BatchSignableIdentity, J as BatchStartedEvent, a$ as CLTVMultisigTapscript, b0 as CandidateDeps, b1 as ChainTxType, H as ChainedTxType, b2 as CommitmentTx, b3 as ConditionCSVMultisigTapscript, b4 as ConditionMultisigTapscript, b5 as ContractBalance, b6 as ContractEventCallback, b7 as ContractHandler, ac as ContractManager, ad as ContractManagerConfig, b8 as ContractState, b9 as ContractVtxo, ba as ContractWatcher, bb as DelegateManagerImpl, bc as DelegateOptions, a2 as DelegateProvider, bd as DelegatorManagerImpl, be as DelegatorProvider, bf as DeprecatedSignerMigrationReport, bg as DeprecatedSignerReport, bh as DigestMismatchError, bi as Discoverable, bj as DiscoveredContract, bk as DiscoveryDeps, bl as ESPLORA_URL, bm as EsploraProvider, a4 as ExitCaptureMode, bn as ExitChainResolver, a5 as ExitDataSource, bo as ExtendedContractVtxo, bp as GroupMembership, bq as HandlerError, br as IDelegatorManager, bs as INTENT_TERMINAL_STATES, bt as IndexerTxType, bu as KnownMetadata, bv as MigrateDeprecatedSignerOptions, bw as MigrationLegReport, bx as MigrationVtxoRef, by as MultisigTapscript, bz as Nonces, bA as Output, bB as PageResponse, bC as PaginationOptions, bD as PartialSig, bE as ProviderClass, a3 as ReadonlyWalletConfig, k as RestArkProvider, bF as RestDelegateProvider, bG as RestDelegatorProvider, l as RestIndexerProvider, bH as ScanContractsOptions, bI as ScanResult, bJ as ScheduledSession, bK as SettlementEventType, bL as SignRequest, ai as SignedIntent, bM as SignerClassification, bN as SignerSet, bO as SubscriptionEvent, bP as SubscriptionHeartbeat, m as SubscriptionResponse, bQ as TapLeaves, bR as TapTreeCoder, bS as TapscriptType, ak as TimeHeight, bT as TreeNonces, M as TreeNoncesEvent, bU as TreePartialSigs, Y as TreeSignatureEvent, K as TreeSigningStartedEvent, X as TreeTxEvent, bV as Tx, bW as TxHistoryRecord, bX as TxKey, T as TxNotification, bY as TxTreeNode, bZ as TxType, b_ as VirtualStatus, b$ as Vtxo, c0 as VtxoChain, ag as VtxoManager, c1 as VtxoType, b as WalletConfig, c2 as WalletMode, c3 as boardingResolver, c4 as canRecoverOnchain, c5 as canSpendOffchain, c6 as classifyAgainstSignerSet, c7 as classifyContractSigner, c8 as createDefaultActivityRegistry, c9 as createExitChainResolver, ca as decodeTapscript, cb as getNetwork, cc as getSequence, cd as hasCandidates, ce as hasTerminalSpend, cf as isBatchSignable, cg as isCooperativelyMigratable, ch as isDiscoverable, ci as isExpired, cj as isPastExpiry, ck as isRecoverable, cl as isSpendable, cm as isSubdust, cn as isTerminalIntentState, co as isVirtualCoin, cp as isVtxoExpiringSoon, cq as networks, cr as scriptFromTapLeafScript, cs as signerSetFromInfo, ct as toXOnlySignerHex } from './ark-acFuA57I.cjs';
3
- import { P as Program, A as ArkadeParamValue, a as ArkadeProgramScript, b as ProgramKeys, c as ArkadeArgValue, C as CompiledProgramFunction, d as ArkadeFunction, I as InputRef, e as InputDef, f as ArkadeValueType, g as ArkadeArgType, h as ArkadeContractParams, i as ArkadeSegment, j as AsmToken, S as SUPPORTED_PROGRAM_VERSION, k as SignerRef, T as TapscriptSegment, W as WitnessRef, l as deserializeArkadeContractParams, p as parseArtifact, r as resolveAsm, s as serializeArkadeContractParams, m as stringifyArtifact, v as validateProgram, w as witnessRefToBytes } from './index-DFfefdpc.cjs';
4
- export { n as ArkadeContractHandler, B as BoardingContractHandler, o as BoardingContractParams, D as DefaultContractHandler, q as DefaultContractParams, t as DelegateContractHandler, u as DelegateContractParams, V as VHTLC, x as VHTLCContractHandler, y as VHTLCContractParams, z as contractHandlers } from './index-DFfefdpc.cjs';
5
- import { D as DefaultVtxo } from './delegate-Ca_wXiYE.cjs';
6
- export { a as DelegateVtxo } from './delegate-Ca_wXiYE.cjs';
7
- import { W as Wallet, R as ReadonlyWallet, a as ReceiveRotatorFactory, b as ReceiveRotatorBootOpts, c as ReceiveRotatorBoot, P as ProviderConnectionState, B as Batch } from './wallet-ByjM6L20.cjs';
8
- export { A as ArkError, d as ArkErrorName, e as ArkadeCashClaimResult, f as ArkadeCashCreateError, g as ArkadeCashUnclaimedReason, h as ArkadeCashUnclaimedVtxo, i as BoardingUtxoGroup, I as IncomingFunds, j as ProviderKind, k as ProviderUnavailableError, S as ServerInfoSource, l as isArkError, m as maybeArkError, s as selectVirtualCoins, w as waitForIncomingFunds } from './wallet-ByjM6L20.cjs';
1
+ import { a0 as ReadonlyIdentity, a as Identity, am as DescriptorSigningRequest, an as Transaction, ai as SignerSession, _ as DescriptorProvider, x as IntentRepository, y as ArkIntent, z as IntentFilter, O as Outpoint, B as VirtualTxRepository, D as VirtualTx, F as VtxoBranch, W as WalletRepository, t as ExtendedVirtualCoin, u as VtxoRepositoryKey, E as ExtendedCoin, A as ArkTransaction, v as WalletState, s as Contract, C as ContractRepository, w as ContractFilter, ao as IntentFeeConfig, ap as OffchainInput, aq as FeeAmount, ar as OnchainInput, as as FeeOutput, n as ArkProvider, ag as SettlementConfig, at as ContractWatcherConfig, au as Asset, R as Recipient, I as IWallet, av as FeeInfo, i as SettlementEvent, h as SettleParams, S as SendBitcoinParams, G as GetVtxosFilter, aw as CreateContractParams, ax as GetContractsFilter, r as VirtualCoin, ay as GetSpendablePathsOptions, az as GetAllSpendingPathsOptions, aA as IssuanceParams, aB as ReissuanceParams, aC as BurnParams, aD as RenewVtxosOptions, c as WalletBalance, a8 as ContractSyncState, aE as ContractWithVtxos, aF as PathSelection, aG as ContractEvent, aH as AssetDetails, aI as IssuanceResult, aJ as DelegateInfo, aK as MigrationGlobalSkipReason, aL as MigrationLegSkipReason, aM as SignerStatus, $ as IReadonlyWallet, d as ActivityRegistry, a7 as IReadonlyAssetManager, aN as StorageConfig, e as Activity, N as NormalizedExtendedVirtualCoin, f as IContractManager, j as IAssetManager, g as IDelegateManager, aO as IVtxoManager, a2 as OnchainProvider, a1 as Network, a9 as NetworkName, ac as Coin, aP as ExplorerTransaction, q as TapLeafScript, aQ as EncodedVtxoScript, af as CSVMultisigTapscript, p as RelativeTimelock, V as VtxoScript, aR as Status, ab as ArkAddress, ak as Intent, aS as ChainTx, o as IndexerProvider, M as TxTree, aT as PathContext } from './ark-Cgsd9tMd.cjs';
2
+ export { aU as ActivityIntent, aV as ActivityResolver, aa as ArkInfo, aW as ArkIntentState, aX as ArkTapscript, aY as AssetMetadata, aZ as BaseWalletConfig, X as BatchFailedEvent, Q as BatchFinalizationEvent, U as BatchFinalizedEvent, a_ as BatchInfo, a$ as BatchSignableIdentity, K as BatchStartedEvent, b0 as CLTVMultisigTapscript, b1 as CandidateDeps, b2 as ChainTxType, H as ChainedTxType, b3 as CommitmentTx, b4 as ConditionCSVMultisigTapscript, b5 as ConditionMultisigTapscript, b6 as ContractBalance, b7 as ContractEventCallback, b8 as ContractHandler, ad as ContractManager, ae as ContractManagerConfig, b9 as ContractState, ba as ContractVtxo, bb as ContractWatcher, bc as DelegateManagerImpl, bd as DelegateOptions, a3 as DelegateProvider, be as DelegatorManagerImpl, bf as DelegatorProvider, bg as DeprecatedSignerMigrationReport, bh as DeprecatedSignerReport, bi as DigestMismatchError, bj as Discoverable, bk as DiscoveredContract, bl as DiscoveryDeps, bm as ESPLORA_URL, bn as EsploraProvider, a5 as ExitCaptureMode, bo as ExitChainResolver, a6 as ExitDataSource, bp as ExtendedContractVtxo, bq as GroupMembership, br as HandlerError, bs as IDelegatorManager, bt as INTENT_TERMINAL_STATES, bu as IndexerTxType, bv as KnownMetadata, bw as MigrateDeprecatedSignerOptions, bx as MigrationLegReport, by as MigrationVtxoRef, bz as MultisigTapscript, bA as Nonces, bB as Output, bC as PageResponse, bD as PaginationOptions, bE as PartialSig, bF as ProviderClass, a4 as ReadonlyWalletConfig, k as RestArkProvider, bG as RestDelegateProvider, bH as RestDelegatorProvider, l as RestIndexerProvider, bI as ScanContractsOptions, bJ as ScanResult, bK as ScheduledSession, bL as SettlementEventType, bM as SignRequest, aj as SignedIntent, bN as SignerClassification, J as SignerSet, bO as SubscriptionEvent, bP as SubscriptionHeartbeat, m as SubscriptionResponse, bQ as TapLeaves, bR as TapTreeCoder, bS as TapscriptType, al as TimeHeight, bT as TreeNonces, P as TreeNoncesEvent, bU as TreePartialSigs, Z as TreeSignatureEvent, L as TreeSigningStartedEvent, Y as TreeTxEvent, bV as Tx, bW as TxHistoryRecord, bX as TxKey, T as TxNotification, bY as TxTag, bZ as TxTreeNode, b_ as TxType, b$ as VirtualStatus, c0 as Vtxo, c1 as VtxoChain, ah as VtxoManager, c2 as VtxoType, b as WalletConfig, c3 as WalletMode, c4 as assetMintResolver, c5 as boardingResolver, c6 as canRecoverOnchain, c7 as canSpendOffchain, c8 as classifyAgainstSignerSet, c9 as classifyContractSigner, ca as collabExitResolver, cb as createDefaultActivityRegistry, cc as createExitChainResolver, cd as decodeTapscript, ce as getNetwork, cf as getSequence, cg as hasCandidates, ch as hasTerminalSpend, ci as isBatchSignable, cj as isCooperativelyMigratable, ck as isDiscoverable, cl as isExpired, cm as isPastExpiry, cn as isRecoverable, co as isSpendable, cp as isSubdust, cq as isTerminalIntentState, cr as isVirtualCoin, cs as isVtxoExpiringSoon, ct as networks, cu as scriptFromTapLeafScript, cv as signerSetFromInfo, cw as toXOnlySignerHex } from './ark-Cgsd9tMd.cjs';
3
+ import { W as Wallet, R as ReadonlyWallet, a as ReceiveRotatorFactory, b as ReceiveRotatorBootOpts, c as ReceiveRotatorBoot, P as ProviderConnectionState, B as Batch } from './wallet-1yWg75gN.cjs';
4
+ export { A as ArkError, d as ArkErrorName, e as ArkadeCashClaimResult, f as ArkadeCashCreateError, g as ArkadeCashUnclaimedReason, h as ArkadeCashUnclaimedVtxo, i as BoardingUtxoGroup, H as HDWalletCapable, I as IncomingFunds, j as ProviderKind, k as ProviderUnavailableError, S as ServerInfoSource, l as ServerResponseMismatchError, m as getRandomId, n as isArkError, o as isHDWalletCapable, p as maybeArkError, s as selectVirtualCoins, w as waitForIncomingFunds } from './wallet-1yWg75gN.cjs';
5
+ import { P as Program, A as ArkadeParamValue, a as ArkadeProgramScript, b as ProgramKeys, c as ArkadeArgValue, C as CompiledProgramFunction, d as ArkadeFunction, I as InputRef, e as InputDef, f as ArkadeValueType, g as ArkadeArgType, h as ArkadeContractParams, i as ArkadeSegment, j as AsmToken, S as SUPPORTED_PROGRAM_VERSION, k as SignerRef, T as TapscriptSegment, W as WitnessRef, l as deserializeArkadeContractParams, p as parseArtifact, r as resolveAsm, s as serializeArkadeContractParams, m as stringifyArtifact, v as validateProgram, w as witnessRefToBytes } from './index-BYG2eKOA.cjs';
6
+ export { n as ArkadeContractHandler, B as BoardingContractHandler, o as BoardingContractParams, D as DefaultContractHandler, q as DefaultContractParams, t as DelegateContractHandler, u as DelegateContractParams, V as VHTLC, x as VHTLCContractHandler, y as VHTLCContractParams, z as contractHandlers } from './index-BYG2eKOA.cjs';
7
+ import { D as DefaultVtxo } from './delegate-xXT8O-Kn.cjs';
8
+ export { a as DelegateVtxo } from './delegate-xXT8O-Kn.cjs';
9
9
  import { Bytes, BTC_NETWORK } from '@scure/btc-signer/utils.js';
10
10
  import { P2TR } from '@scure/btc-signer/payment.js';
11
11
  import { Transaction as Transaction$1, OP, Script, ScriptType } from '@scure/btc-signer';
@@ -265,6 +265,12 @@ declare class SeedIdentity implements HDCapableIdentity {
265
265
  * this method only as backing implementation for descriptor providers.
266
266
  */
267
267
  signMessageWithDescriptor(descriptor: string, message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
268
+ /**
269
+ * BIP-340 sign `messageHash` with the key derived from `descriptor`,
270
+ * aux_rand = 0. Backs {@link DescriptorIdentity.signSchnorrDeterministic},
271
+ * which swap preimage derivation reads through.
272
+ */
273
+ signSchnorrDeterministicWithDescriptor(descriptor: string, messageHash: Uint8Array): Promise<Uint8Array>;
268
274
  private derivePrivateKeyForDescriptor;
269
275
  private signTxWithKey;
270
276
  private signMessageWithKey;
@@ -357,6 +363,77 @@ declare class ReadonlyDescriptorIdentity implements ReadonlyHDCapableIdentity {
357
363
  isOurs(descriptor: string): boolean;
358
364
  }
359
365
 
366
+ /**
367
+ * Compressed (33-byte) counterpart of {@link deriveDescriptorLeafPubKey}, for
368
+ * protocols that key on the parity byte (Boltz swap keys).
369
+ *
370
+ * Only HD descriptors are supported: a bare `tr(xonly)` has lost its parity and
371
+ * synthesizing `02||xonly` would silently produce the wrong key half the time.
372
+ */
373
+ declare function deriveDescriptorLeafCompressedPubKey(descriptor: string): Uint8Array;
374
+
375
+ /**
376
+ * Descriptor-scoped signing surface — the two members every
377
+ * {@link DescriptorProvider} and every `HDCapableIdentity` share.
378
+ */
379
+ type DescriptorSigner = Pick<DescriptorProvider, "signWithDescriptor" | "signMessageWithDescriptor">;
380
+ /**
381
+ * Per-descriptor deterministic Schnorr signing. Separate from the baseline
382
+ * `DeterministicSignCapable` marker because the seed holder — not the
383
+ * descriptor — is the only party that can derive the key at an index.
384
+ */
385
+ interface HDDeterministicSignCapable {
386
+ /** BIP-340 sign `messageHash` with the descriptor's key and aux_rand = 0. */
387
+ signSchnorrDeterministicWithDescriptor(descriptor: string, messageHash: Uint8Array): Promise<Uint8Array>;
388
+ }
389
+ /** Type guard for {@link HDDeterministicSignCapable}. */
390
+ declare function isHDDeterministicSignCapable(value: unknown): value is HDDeterministicSignCapable;
391
+ /** Constructor arguments for {@link DescriptorIdentity}. */
392
+ interface DescriptorIdentityOptions {
393
+ /** Materialized descriptor (no wildcard) this identity is pinned to. */
394
+ descriptor: string;
395
+ /** Descriptor-aware signer — an `HDDescriptorProvider` or an HD identity. */
396
+ signer: DescriptorSigner;
397
+ /**
398
+ * Seed-holding identity behind `signer`. Backs the members that are not
399
+ * descriptor-scoped in the provider contract: musig2 sessions and
400
+ * deterministic Schnorr.
401
+ */
402
+ base: Identity;
403
+ }
404
+ /**
405
+ * {@link Identity} pinned to one materialized HD descriptor: every key and
406
+ * signature it produces belongs to that index rather than to the wallet's
407
+ * baseline key.
408
+ *
409
+ * Lets components that take a plain `Identity` (VHTLC claim/refund, batch
410
+ * joins) operate on a rotated index without knowing about descriptors.
411
+ *
412
+ * Deliberately does NOT satisfy `isBatchSignable`, `isHDCapableIdentity`, or
413
+ * `hasToReadonly` — it is a leaf signer, not another HD root.
414
+ */
415
+ declare class DescriptorIdentity implements Identity {
416
+ private readonly descriptor;
417
+ private readonly signer;
418
+ private readonly base;
419
+ constructor({ descriptor, signer, base }: DescriptorIdentityOptions);
420
+ xOnlyPublicKey(): Promise<Uint8Array>;
421
+ compressedPublicKey(): Promise<Uint8Array>;
422
+ sign(tx: Transaction, inputIndexes?: number[]): Promise<Transaction>;
423
+ signMessage(message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
424
+ /**
425
+ * Delegated: `TreeSignerSession.random()` consults no key material, so the
426
+ * session is index-independent.
427
+ */
428
+ signerSession(): SignerSession;
429
+ /**
430
+ * Throws rather than falling back to the baseline key: a preimage derived
431
+ * from the wrong index is unrecoverable, and callers probe this member
432
+ * through a structural guard that cannot tell the two apart.
433
+ */
434
+ signSchnorrDeterministic(messageHash: Uint8Array): Promise<Uint8Array>;
435
+ }
436
+
360
437
  /**
361
438
  * In-memory single key implementation for Bitcoin transaction signing.
362
439
  *
@@ -3286,8 +3363,45 @@ declare function combineTapscriptSigs(signedTx: Transaction, originalTx: Transac
3286
3363
  * @returns True if the address is valid, false otherwise.
3287
3364
  */
3288
3365
  declare function isValidArkAddress(address: string): boolean;
3289
-
3290
- declare function getRandomId(): string;
3366
+ /**
3367
+ * Pair each server-returned checkpoint PSBT with the locally built checkpoint
3368
+ * of the same txid, rejecting anything else.
3369
+ *
3370
+ * The ark tx signed just above spends each checkpoint at `checkpointTxid:0`, so
3371
+ * the response is only usable if it carries the same txids: a checkpoint with
3372
+ * any other txid leaves that ark tx unspendable. The two sets are therefore
3373
+ * equal by construction, and this pairing is what the signing step below
3374
+ * consumes.
3375
+ *
3376
+ * Matching is by txid rather than by position — nothing in the wire contract
3377
+ * promises arkd echoes checkpoints in submission order — while the result keeps
3378
+ * the server's order, so nothing downstream is reordered.
3379
+ *
3380
+ * Comparing txids is sound while checkpoint inputs are taproot-only: witness
3381
+ * data does not affect the txid, so the server's signature cannot change it. A
3382
+ * future P2SH-wrapped/scriptSig input could acquire a `finalScriptSig`
3383
+ * server-side and legitimately change txid; that protocol shape would need a
3384
+ * different comparison target.
3385
+ */
3386
+ declare function matchServerCheckpoints(serverCheckpointTxs: string[], expectedCheckpoints: Transaction[], context: string): {
3387
+ server: Transaction;
3388
+ local: Transaction;
3389
+ }[];
3390
+ /**
3391
+ * Assert a `submitTx` response refers to the ark transaction just submitted.
3392
+ *
3393
+ * The returned `arkTxid` is what gets passed to `finalizeTx` and persisted by
3394
+ * callers, so a stale or misrouted response must be rejected before either
3395
+ * happens: it must equal the locally signed transaction's txid, and when the
3396
+ * response carries the counter-signed `finalArkTx`, that transaction's txid
3397
+ * must match too. Server signatures live in the witness and cannot
3398
+ * legitimately change either — with the same taproot-only caveat as
3399
+ * {@link matchServerCheckpoints}.
3400
+ */
3401
+ declare function assertSubmittedArkTxid(response: {
3402
+ arkTxid: string;
3403
+ finalArkTx?: string;
3404
+ }, signedArkTx: Transaction, context: string): void;
3291
3405
 
3292
3406
  /**
3293
3407
  * ArkPsbtFieldKey are the available key names for the Arkade PSBT custom fields.
@@ -3659,8 +3773,10 @@ type ArkadeBatchInput = ArkadeExtendedCoin | ArkadeExtendedVirtualCoin;
3659
3773
  declare function createArkadeBatchHandler(intentId: string, inputs: ArkadeBatchInput[], signer: Identity, signedProof: string, message: Intent.RegisterMessage, session: SignerSession, arkProvider: ArkProvider, emulator: EmulatorProvider, network: Network,
3660
3774
  /**
3661
3775
  * Expected recipients of the settlement, validated against the virtual
3662
- * output tree before co-signing it (mirrors `Wallet.createBatchHandler`).
3663
- * Without this the handler signs whatever tree the server proposes.
3776
+ * output tree before co-signing it, and — when tree signing did not run —
3777
+ * against the commitment tx before signing anything at finalization
3778
+ * (mirrors `Wallet.createBatchHandler`). Without this the handler signs
3779
+ * whatever the server proposes, on both paths.
3664
3780
  */
3665
3781
  recipients?: Recipient[]): Batch.Handler;
3666
3782
 
@@ -4003,9 +4119,15 @@ declare class Executor implements AsyncIterable<ExecutorEvent> {
4003
4119
  constructor(pkg: ExitPackage, provider: OnchainProvider, opts?: {
4004
4120
  pollIntervalMs?: number;
4005
4121
  feeWallet?: ExitFeeWallet;
4006
- /** Abort to stop execution. Iteration then rejects with an error
4007
- * whose `name` is "AbortError". Already-broadcast transactions are
4008
- * not recalled; the executor is idempotent, so a later run resumes. */
4122
+ /** Abort to stop execution.
4123
+ *
4124
+ * Iteration then rejects with `signal.reason`. Calling `abort()`
4125
+ * with no argument yields an error whose `name` is `"AbortError"`;
4126
+ * a custom reason is forwarded as-is, matching `fetch` and
4127
+ * `AbortSignal.prototype.throwIfAborted`.
4128
+ *
4129
+ * Already-broadcast transactions are not recalled; the executor is
4130
+ * idempotent, so a later run resumes from the chain. */
4009
4131
  signal?: AbortSignal;
4010
4132
  });
4011
4133
  /**
@@ -4070,6 +4192,37 @@ declare function isRetryableProviderError(error: unknown): boolean;
4070
4192
  declare function validateConnectorsTxGraph(settlementTxB64: string, connectorsGraph: TxTree): void;
4071
4193
  declare function validateVtxoTxGraph(graph: TxTree, roundTransaction: Transaction$2, sweepTapTreeRoot: Uint8Array): void;
4072
4194
 
4195
+ /**
4196
+ * Assert the commitment tx received at batch finalization is the one validated
4197
+ * at tree signing.
4198
+ *
4199
+ * The vtxo tree co-signed at tree signing spends `commitmentTxid:0`, so a
4200
+ * finalization commitment carrying another txid does not correspond to the tree
4201
+ * that was validated. The two are the same transaction by construction.
4202
+ *
4203
+ * No-op when `validatedCommitmentTxid` is undefined: tree signing was skipped
4204
+ * (not a cosigner, or an onchain-only settle), so there is nothing to compare
4205
+ * against.
4206
+ */
4207
+ declare function assertFinalCommitmentMatchesValidated(finalCommitmentTx: Transaction, validatedCommitmentTxid: string | undefined, context: string): void;
4208
+ /**
4209
+ * Validates both offchain and onchain recipients.
4210
+ * Offchain recipients are checked against vtxo tree leaves for correct amounts and assets.
4211
+ * Onchain recipients are validated against the round transaction outputs (amounts and scripts)
4212
+ * via validateOnchainRecipient.
4213
+ *
4214
+ * Presence only: the commitment tx and the tree are shared with every other intent in the batch,
4215
+ * so outputs paying someone else are legitimate and cannot be rejected. What this asserts is that
4216
+ * a settlement cannot consume our inputs and pay us nothing.
4217
+ *
4218
+ * @param commitmentTx - The commitment transaction to validate against
4219
+ * @param vtxoTreeLeaves - The vtxo tree leaves to validate against
4220
+ * @param recipients - The expected recipients to validate (both offchain and onchain)
4221
+ * @param network - Network for decoding onchain addresses (e.g. mainnet, testnet)
4222
+ * @throws {Error} if a recipient is not present or invalid in the vtxo tree or commitment tx
4223
+ */
4224
+ declare function validateBatchRecipients(commitmentTx: Transaction, vtxoTreeLeaves: Transaction[], recipients: Recipient[], network: Network): void;
4225
+
4073
4226
  /**
4074
4227
  * Build a forfeit transaction that spends the provided inputs to a single forfeit output.
4075
4228
  *
@@ -5372,4 +5525,4 @@ declare class AssetManager extends ReadonlyAssetManager implements IAssetManager
5372
5525
  burn(params: BurnParams): Promise<string>;
5373
5526
  }
5374
5527
 
5375
- export { ARKADE_MAGIC, Activity, ActivityRegistry, AmbiguousRouteError, type AnchorBumper, ArkAddress, ArkIntent, ArkNote, ArkProvider, type ArkPsbtFieldCoder, ArkPsbtFieldKey, ArkPsbtFieldKeyType, ArkTransaction, type ArkTxInput, type ArkadeBatchInput, ArkadeCash, ArkadeContractParams, type ArkadeExtendedCoin, type ArkadeExtendedVirtualCoin, Asset, AssetDetails, AssetManager, BIP21, BIP21Error, type BIP21Params, type BIP21ParseResult, BIP322, Batch, BurnParams, CSVMultisigTapscript, ChainTx, Coin, ConditionWitness, type ConnectorTreeNode, Contract, ContractEvent, ContractRepository, ContractRepositoryImpl, ContractSyncState, ContractWatcherConfig, ContractWithVtxos, CosignerPublicKey, CreateContractParams, DEFAULT_MESSAGE_TIMEOUTS, DefaultVtxo, DelegateInfo, DelegateNotConfiguredError, DelegatorNotConfiguredError, type DescriptorOptions, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, type BlockHeader as ElectrumBlockHeader, ElectrumOnchainProvider, type TransactionHistory as ElectrumTransactionHistory, type Unspent as ElectrumUnspent, type EmulatorEntry, type EmulatorInfo, EmulatorPacket, type EmulatorProvider, EncodedVtxoScript, Estimator, type ExecutorEvent, type ExitDelay, type ExitFeeWallet, type ExitMode, type ExitOptions, type ExitPackage, type ExitQuote, type ExitStep, type ExitTotals, type ExitVtxoInfo, ExplorerTransaction, ExtendedCoin, ExtendedVirtualCoin, Extension, ExtensionNotFoundError, type ExtensionPacket, FeeAmount, FeeInfo, FeeOutput, FetchError, GetVtxosFilter, HDDescriptorProvider, IAssetManager, IContractManager, IDelegateManager, IReadonlyAssetManager, IReadonlyWallet, IVtxoManager, IWallet, Identity, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, IndexerProvider, Intent, IntentFeeConfig, IntentFilter, IntentRepository, IssuanceParams, IssuanceResult, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, type MessageHandler, type MessageTimeouts, MigrationGlobalSkipReason, MigrationLegSkipReason, type MigrationStatus, MissingSigningDescriptorError, MnemonicIdentity, type MnemonicOptions, Network, NetworkName, type NetworkOptions, OffchainInput, type OffchainTx, OnchainInput, OnchainProvider, OnchainWallet, Outpoint, P2A, type ParsedArkContract, PathContext, PathSelection, type PaymentHandle, type PaymentOption, type PaymentRail, type PaymentRequest, PaymentRouter, type PaymentStatus, PrevArkTxField, PrevoutTxField, ProviderConnectionState, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlyIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, Recipient, ReissuanceParams, RelativeTimelock, RenewVtxosOptions, type RequestEnvelope, type ResponseEnvelope, RestEmulatorProvider, type RouteQuote, type RouteResult, type RouterContext, type RouterPreferences, SeedIdentity, type SeedIdentityOptions, SendBitcoinParams, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, type ServiceWorkerWalletMode, SettleParams, SettlementConfig, SettlementEvent, SignerSession, SignerStatus, SingleKey, Status, StorageConfig, TapLeafScript, Transaction, TxTree, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, type VSize, VirtualCoin, VirtualTx, VirtualTxRepository, VtxoBranch, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, Wallet, WalletBalance, WalletMessageHandler, WalletNotInitializedError, WalletRepository, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, index as arkade, assembleBtcdTaprootTree, assertSendableAmount, index$1 as asset, btcTarget, buildForfeitTx, buildOffchainTx, buildVersion, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultPaymentRouter, decodeArkContract, deserializeExitPackage, encodeArkContract, getArkPsbtFields, getMigrationStatus, getRandomId, hasBoardingTxExpired, invoiceTarget, isArkContract, isBtcAddress, isCltvSatisfied, isCsvSpendable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isRetryableProviderError, isValidArkAddress, makeHandle, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, sdkVersion, selectCoinsWithAsset, sequenceToTimelock, serializeExitPackage, setArkPsbtField, setupServiceWorker, timelockToSequence, tryResolveSendAmount, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures };
5528
+ export { ARKADE_MAGIC, Activity, ActivityRegistry, AmbiguousRouteError, type AnchorBumper, ArkAddress, ArkIntent, ArkNote, ArkProvider, type ArkPsbtFieldCoder, ArkPsbtFieldKey, ArkPsbtFieldKeyType, ArkTransaction, type ArkTxInput, type ArkadeBatchInput, ArkadeCash, ArkadeContractParams, type ArkadeExtendedCoin, type ArkadeExtendedVirtualCoin, Asset, AssetDetails, AssetManager, BIP21, BIP21Error, type BIP21Params, type BIP21ParseResult, BIP322, Batch, BurnParams, CSVMultisigTapscript, ChainTx, Coin, ConditionWitness, type ConnectorTreeNode, Contract, ContractEvent, ContractRepository, ContractRepositoryImpl, ContractSyncState, ContractWatcherConfig, ContractWithVtxos, CosignerPublicKey, CreateContractParams, DEFAULT_MESSAGE_TIMEOUTS, DefaultVtxo, DelegateInfo, DelegateNotConfiguredError, DelegatorNotConfiguredError, DescriptorIdentity, type DescriptorIdentityOptions, type DescriptorOptions, type DescriptorSigner, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, type BlockHeader as ElectrumBlockHeader, ElectrumOnchainProvider, type TransactionHistory as ElectrumTransactionHistory, type Unspent as ElectrumUnspent, type EmulatorEntry, type EmulatorInfo, EmulatorPacket, type EmulatorProvider, EncodedVtxoScript, Estimator, type ExecutorEvent, type ExitDelay, type ExitFeeWallet, type ExitMode, type ExitOptions, type ExitPackage, type ExitQuote, type ExitStep, type ExitTotals, type ExitVtxoInfo, ExplorerTransaction, ExtendedCoin, ExtendedVirtualCoin, Extension, ExtensionNotFoundError, type ExtensionPacket, FeeAmount, FeeInfo, FeeOutput, FetchError, GetVtxosFilter, HDDescriptorProvider, type HDDeterministicSignCapable, IAssetManager, IContractManager, IDelegateManager, IReadonlyAssetManager, IReadonlyWallet, IVtxoManager, IWallet, Identity, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, IndexerProvider, Intent, IntentFeeConfig, IntentFilter, IntentRepository, IssuanceParams, IssuanceResult, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, type MessageHandler, type MessageTimeouts, MigrationGlobalSkipReason, MigrationLegSkipReason, type MigrationStatus, MissingSigningDescriptorError, MnemonicIdentity, type MnemonicOptions, Network, NetworkName, type NetworkOptions, OffchainInput, type OffchainTx, OnchainInput, OnchainProvider, OnchainWallet, Outpoint, P2A, type ParsedArkContract, PathContext, PathSelection, type PaymentHandle, type PaymentOption, type PaymentRail, type PaymentRequest, PaymentRouter, type PaymentStatus, PrevArkTxField, PrevoutTxField, ProviderConnectionState, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlyIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, Recipient, ReissuanceParams, RelativeTimelock, RenewVtxosOptions, type RequestEnvelope, type ResponseEnvelope, RestEmulatorProvider, type RouteQuote, type RouteResult, type RouterContext, type RouterPreferences, SeedIdentity, type SeedIdentityOptions, SendBitcoinParams, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, type ServiceWorkerWalletMode, SettleParams, SettlementConfig, SettlementEvent, SignerSession, SignerStatus, SingleKey, Status, StorageConfig, TapLeafScript, Transaction, TxTree, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, type VSize, VirtualCoin, VirtualTx, VirtualTxRepository, VtxoBranch, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, Wallet, WalletBalance, WalletMessageHandler, WalletNotInitializedError, WalletRepository, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, index as arkade, assembleBtcdTaprootTree, assertFinalCommitmentMatchesValidated, assertSendableAmount, assertSubmittedArkTxid, index$1 as asset, btcTarget, buildForfeitTx, buildOffchainTx, buildVersion, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultPaymentRouter, decodeArkContract, deriveDescriptorLeafCompressedPubKey, deserializeExitPackage, encodeArkContract, getArkPsbtFields, getMigrationStatus, hasBoardingTxExpired, invoiceTarget, isArkContract, isBtcAddress, isCltvSatisfied, isCsvSpendable, isHDDeterministicSignCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isRetryableProviderError, isValidArkAddress, makeHandle, matchServerCheckpoints, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, sdkVersion, selectCoinsWithAsset, sequenceToTimelock, serializeExitPackage, setArkPsbtField, setupServiceWorker, timelockToSequence, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { $ as ReadonlyIdentity, a as Identity, al as DescriptorSigningRequest, am as Transaction, ah as SignerSession, x as IntentRepository, y as ArkIntent, z as IntentFilter, O as Outpoint, B as VirtualTxRepository, D as VirtualTx, F as VtxoBranch, W as WalletRepository, t as ExtendedVirtualCoin, u as VtxoRepositoryKey, E as ExtendedCoin, A as ArkTransaction, v as WalletState, s as Contract, C as ContractRepository, w as ContractFilter, an as IntentFeeConfig, ao as OffchainInput, ap as FeeAmount, aq as OnchainInput, ar as FeeOutput, n as ArkProvider, af as SettlementConfig, as as ContractWatcherConfig, at as Asset, R as Recipient, I as IWallet, au as FeeInfo, i as SettlementEvent, Z as DescriptorProvider, h as SettleParams, S as SendBitcoinParams, G as GetVtxosFilter, av as CreateContractParams, aw as GetContractsFilter, r as VirtualCoin, ax as GetSpendablePathsOptions, ay as GetAllSpendingPathsOptions, az as IssuanceParams, aA as ReissuanceParams, aB as BurnParams, aC as RenewVtxosOptions, c as WalletBalance, a7 as ContractSyncState, aD as ContractWithVtxos, aE as PathSelection, aF as ContractEvent, aG as AssetDetails, aH as IssuanceResult, aI as DelegateInfo, aJ as MigrationGlobalSkipReason, aK as MigrationLegSkipReason, aL as SignerStatus, _ as IReadonlyWallet, d as ActivityRegistry, a6 as IReadonlyAssetManager, aM as StorageConfig, e as Activity, N as NormalizedExtendedVirtualCoin, f as IContractManager, j as IAssetManager, g as IDelegateManager, aN as IVtxoManager, a1 as OnchainProvider, a0 as Network, a8 as NetworkName, ab as Coin, aO as ExplorerTransaction, q as TapLeafScript, aP as EncodedVtxoScript, ae as CSVMultisigTapscript, p as RelativeTimelock, V as VtxoScript, aQ as Status, aa as ArkAddress, aj as Intent, aR as ChainTx, o as IndexerProvider, L as TxTree, aS as PathContext } from './ark-acFuA57I.js';
2
- export { aT as ActivityIntent, aU as ActivityResolver, a9 as ArkInfo, aV as ArkIntentState, aW as ArkTapscript, aX as AssetMetadata, aY as BaseWalletConfig, U as BatchFailedEvent, P as BatchFinalizationEvent, Q as BatchFinalizedEvent, aZ as BatchInfo, a_ as BatchSignableIdentity, J as BatchStartedEvent, a$ as CLTVMultisigTapscript, b0 as CandidateDeps, b1 as ChainTxType, H as ChainedTxType, b2 as CommitmentTx, b3 as ConditionCSVMultisigTapscript, b4 as ConditionMultisigTapscript, b5 as ContractBalance, b6 as ContractEventCallback, b7 as ContractHandler, ac as ContractManager, ad as ContractManagerConfig, b8 as ContractState, b9 as ContractVtxo, ba as ContractWatcher, bb as DelegateManagerImpl, bc as DelegateOptions, a2 as DelegateProvider, bd as DelegatorManagerImpl, be as DelegatorProvider, bf as DeprecatedSignerMigrationReport, bg as DeprecatedSignerReport, bh as DigestMismatchError, bi as Discoverable, bj as DiscoveredContract, bk as DiscoveryDeps, bl as ESPLORA_URL, bm as EsploraProvider, a4 as ExitCaptureMode, bn as ExitChainResolver, a5 as ExitDataSource, bo as ExtendedContractVtxo, bp as GroupMembership, bq as HandlerError, br as IDelegatorManager, bs as INTENT_TERMINAL_STATES, bt as IndexerTxType, bu as KnownMetadata, bv as MigrateDeprecatedSignerOptions, bw as MigrationLegReport, bx as MigrationVtxoRef, by as MultisigTapscript, bz as Nonces, bA as Output, bB as PageResponse, bC as PaginationOptions, bD as PartialSig, bE as ProviderClass, a3 as ReadonlyWalletConfig, k as RestArkProvider, bF as RestDelegateProvider, bG as RestDelegatorProvider, l as RestIndexerProvider, bH as ScanContractsOptions, bI as ScanResult, bJ as ScheduledSession, bK as SettlementEventType, bL as SignRequest, ai as SignedIntent, bM as SignerClassification, bN as SignerSet, bO as SubscriptionEvent, bP as SubscriptionHeartbeat, m as SubscriptionResponse, bQ as TapLeaves, bR as TapTreeCoder, bS as TapscriptType, ak as TimeHeight, bT as TreeNonces, M as TreeNoncesEvent, bU as TreePartialSigs, Y as TreeSignatureEvent, K as TreeSigningStartedEvent, X as TreeTxEvent, bV as Tx, bW as TxHistoryRecord, bX as TxKey, T as TxNotification, bY as TxTreeNode, bZ as TxType, b_ as VirtualStatus, b$ as Vtxo, c0 as VtxoChain, ag as VtxoManager, c1 as VtxoType, b as WalletConfig, c2 as WalletMode, c3 as boardingResolver, c4 as canRecoverOnchain, c5 as canSpendOffchain, c6 as classifyAgainstSignerSet, c7 as classifyContractSigner, c8 as createDefaultActivityRegistry, c9 as createExitChainResolver, ca as decodeTapscript, cb as getNetwork, cc as getSequence, cd as hasCandidates, ce as hasTerminalSpend, cf as isBatchSignable, cg as isCooperativelyMigratable, ch as isDiscoverable, ci as isExpired, cj as isPastExpiry, ck as isRecoverable, cl as isSpendable, cm as isSubdust, cn as isTerminalIntentState, co as isVirtualCoin, cp as isVtxoExpiringSoon, cq as networks, cr as scriptFromTapLeafScript, cs as signerSetFromInfo, ct as toXOnlySignerHex } from './ark-acFuA57I.js';
3
- import { P as Program, A as ArkadeParamValue, a as ArkadeProgramScript, b as ProgramKeys, c as ArkadeArgValue, C as CompiledProgramFunction, d as ArkadeFunction, I as InputRef, e as InputDef, f as ArkadeValueType, g as ArkadeArgType, h as ArkadeContractParams, i as ArkadeSegment, j as AsmToken, S as SUPPORTED_PROGRAM_VERSION, k as SignerRef, T as TapscriptSegment, W as WitnessRef, l as deserializeArkadeContractParams, p as parseArtifact, r as resolveAsm, s as serializeArkadeContractParams, m as stringifyArtifact, v as validateProgram, w as witnessRefToBytes } from './index-Ddq0mIKX.js';
4
- export { n as ArkadeContractHandler, B as BoardingContractHandler, o as BoardingContractParams, D as DefaultContractHandler, q as DefaultContractParams, t as DelegateContractHandler, u as DelegateContractParams, V as VHTLC, x as VHTLCContractHandler, y as VHTLCContractParams, z as contractHandlers } from './index-Ddq0mIKX.js';
5
- import { D as DefaultVtxo } from './delegate-DjwZZi6L.js';
6
- export { a as DelegateVtxo } from './delegate-DjwZZi6L.js';
7
- import { W as Wallet, R as ReadonlyWallet, a as ReceiveRotatorFactory, b as ReceiveRotatorBootOpts, c as ReceiveRotatorBoot, P as ProviderConnectionState, B as Batch } from './wallet-B9rpddG2.js';
8
- export { A as ArkError, d as ArkErrorName, e as ArkadeCashClaimResult, f as ArkadeCashCreateError, g as ArkadeCashUnclaimedReason, h as ArkadeCashUnclaimedVtxo, i as BoardingUtxoGroup, I as IncomingFunds, j as ProviderKind, k as ProviderUnavailableError, S as ServerInfoSource, l as isArkError, m as maybeArkError, s as selectVirtualCoins, w as waitForIncomingFunds } from './wallet-B9rpddG2.js';
1
+ import { a0 as ReadonlyIdentity, a as Identity, am as DescriptorSigningRequest, an as Transaction, ai as SignerSession, _ as DescriptorProvider, x as IntentRepository, y as ArkIntent, z as IntentFilter, O as Outpoint, B as VirtualTxRepository, D as VirtualTx, F as VtxoBranch, W as WalletRepository, t as ExtendedVirtualCoin, u as VtxoRepositoryKey, E as ExtendedCoin, A as ArkTransaction, v as WalletState, s as Contract, C as ContractRepository, w as ContractFilter, ao as IntentFeeConfig, ap as OffchainInput, aq as FeeAmount, ar as OnchainInput, as as FeeOutput, n as ArkProvider, ag as SettlementConfig, at as ContractWatcherConfig, au as Asset, R as Recipient, I as IWallet, av as FeeInfo, i as SettlementEvent, h as SettleParams, S as SendBitcoinParams, G as GetVtxosFilter, aw as CreateContractParams, ax as GetContractsFilter, r as VirtualCoin, ay as GetSpendablePathsOptions, az as GetAllSpendingPathsOptions, aA as IssuanceParams, aB as ReissuanceParams, aC as BurnParams, aD as RenewVtxosOptions, c as WalletBalance, a8 as ContractSyncState, aE as ContractWithVtxos, aF as PathSelection, aG as ContractEvent, aH as AssetDetails, aI as IssuanceResult, aJ as DelegateInfo, aK as MigrationGlobalSkipReason, aL as MigrationLegSkipReason, aM as SignerStatus, $ as IReadonlyWallet, d as ActivityRegistry, a7 as IReadonlyAssetManager, aN as StorageConfig, e as Activity, N as NormalizedExtendedVirtualCoin, f as IContractManager, j as IAssetManager, g as IDelegateManager, aO as IVtxoManager, a2 as OnchainProvider, a1 as Network, a9 as NetworkName, ac as Coin, aP as ExplorerTransaction, q as TapLeafScript, aQ as EncodedVtxoScript, af as CSVMultisigTapscript, p as RelativeTimelock, V as VtxoScript, aR as Status, ab as ArkAddress, ak as Intent, aS as ChainTx, o as IndexerProvider, M as TxTree, aT as PathContext } from './ark-Cgsd9tMd.js';
2
+ export { aU as ActivityIntent, aV as ActivityResolver, aa as ArkInfo, aW as ArkIntentState, aX as ArkTapscript, aY as AssetMetadata, aZ as BaseWalletConfig, X as BatchFailedEvent, Q as BatchFinalizationEvent, U as BatchFinalizedEvent, a_ as BatchInfo, a$ as BatchSignableIdentity, K as BatchStartedEvent, b0 as CLTVMultisigTapscript, b1 as CandidateDeps, b2 as ChainTxType, H as ChainedTxType, b3 as CommitmentTx, b4 as ConditionCSVMultisigTapscript, b5 as ConditionMultisigTapscript, b6 as ContractBalance, b7 as ContractEventCallback, b8 as ContractHandler, ad as ContractManager, ae as ContractManagerConfig, b9 as ContractState, ba as ContractVtxo, bb as ContractWatcher, bc as DelegateManagerImpl, bd as DelegateOptions, a3 as DelegateProvider, be as DelegatorManagerImpl, bf as DelegatorProvider, bg as DeprecatedSignerMigrationReport, bh as DeprecatedSignerReport, bi as DigestMismatchError, bj as Discoverable, bk as DiscoveredContract, bl as DiscoveryDeps, bm as ESPLORA_URL, bn as EsploraProvider, a5 as ExitCaptureMode, bo as ExitChainResolver, a6 as ExitDataSource, bp as ExtendedContractVtxo, bq as GroupMembership, br as HandlerError, bs as IDelegatorManager, bt as INTENT_TERMINAL_STATES, bu as IndexerTxType, bv as KnownMetadata, bw as MigrateDeprecatedSignerOptions, bx as MigrationLegReport, by as MigrationVtxoRef, bz as MultisigTapscript, bA as Nonces, bB as Output, bC as PageResponse, bD as PaginationOptions, bE as PartialSig, bF as ProviderClass, a4 as ReadonlyWalletConfig, k as RestArkProvider, bG as RestDelegateProvider, bH as RestDelegatorProvider, l as RestIndexerProvider, bI as ScanContractsOptions, bJ as ScanResult, bK as ScheduledSession, bL as SettlementEventType, bM as SignRequest, aj as SignedIntent, bN as SignerClassification, J as SignerSet, bO as SubscriptionEvent, bP as SubscriptionHeartbeat, m as SubscriptionResponse, bQ as TapLeaves, bR as TapTreeCoder, bS as TapscriptType, al as TimeHeight, bT as TreeNonces, P as TreeNoncesEvent, bU as TreePartialSigs, Z as TreeSignatureEvent, L as TreeSigningStartedEvent, Y as TreeTxEvent, bV as Tx, bW as TxHistoryRecord, bX as TxKey, T as TxNotification, bY as TxTag, bZ as TxTreeNode, b_ as TxType, b$ as VirtualStatus, c0 as Vtxo, c1 as VtxoChain, ah as VtxoManager, c2 as VtxoType, b as WalletConfig, c3 as WalletMode, c4 as assetMintResolver, c5 as boardingResolver, c6 as canRecoverOnchain, c7 as canSpendOffchain, c8 as classifyAgainstSignerSet, c9 as classifyContractSigner, ca as collabExitResolver, cb as createDefaultActivityRegistry, cc as createExitChainResolver, cd as decodeTapscript, ce as getNetwork, cf as getSequence, cg as hasCandidates, ch as hasTerminalSpend, ci as isBatchSignable, cj as isCooperativelyMigratable, ck as isDiscoverable, cl as isExpired, cm as isPastExpiry, cn as isRecoverable, co as isSpendable, cp as isSubdust, cq as isTerminalIntentState, cr as isVirtualCoin, cs as isVtxoExpiringSoon, ct as networks, cu as scriptFromTapLeafScript, cv as signerSetFromInfo, cw as toXOnlySignerHex } from './ark-Cgsd9tMd.js';
3
+ import { W as Wallet, R as ReadonlyWallet, a as ReceiveRotatorFactory, b as ReceiveRotatorBootOpts, c as ReceiveRotatorBoot, P as ProviderConnectionState, B as Batch } from './wallet-DuCm55EC.js';
4
+ export { A as ArkError, d as ArkErrorName, e as ArkadeCashClaimResult, f as ArkadeCashCreateError, g as ArkadeCashUnclaimedReason, h as ArkadeCashUnclaimedVtxo, i as BoardingUtxoGroup, H as HDWalletCapable, I as IncomingFunds, j as ProviderKind, k as ProviderUnavailableError, S as ServerInfoSource, l as ServerResponseMismatchError, m as getRandomId, n as isArkError, o as isHDWalletCapable, p as maybeArkError, s as selectVirtualCoins, w as waitForIncomingFunds } from './wallet-DuCm55EC.js';
5
+ import { P as Program, A as ArkadeParamValue, a as ArkadeProgramScript, b as ProgramKeys, c as ArkadeArgValue, C as CompiledProgramFunction, d as ArkadeFunction, I as InputRef, e as InputDef, f as ArkadeValueType, g as ArkadeArgType, h as ArkadeContractParams, i as ArkadeSegment, j as AsmToken, S as SUPPORTED_PROGRAM_VERSION, k as SignerRef, T as TapscriptSegment, W as WitnessRef, l as deserializeArkadeContractParams, p as parseArtifact, r as resolveAsm, s as serializeArkadeContractParams, m as stringifyArtifact, v as validateProgram, w as witnessRefToBytes } from './index-BBJ466mM.js';
6
+ export { n as ArkadeContractHandler, B as BoardingContractHandler, o as BoardingContractParams, D as DefaultContractHandler, q as DefaultContractParams, t as DelegateContractHandler, u as DelegateContractParams, V as VHTLC, x as VHTLCContractHandler, y as VHTLCContractParams, z as contractHandlers } from './index-BBJ466mM.js';
7
+ import { D as DefaultVtxo } from './delegate-CZPXtd2F.js';
8
+ export { a as DelegateVtxo } from './delegate-CZPXtd2F.js';
9
9
  import { Bytes, BTC_NETWORK } from '@scure/btc-signer/utils.js';
10
10
  import { P2TR } from '@scure/btc-signer/payment.js';
11
11
  import { Transaction as Transaction$1, OP, Script, ScriptType } from '@scure/btc-signer';
@@ -265,6 +265,12 @@ declare class SeedIdentity implements HDCapableIdentity {
265
265
  * this method only as backing implementation for descriptor providers.
266
266
  */
267
267
  signMessageWithDescriptor(descriptor: string, message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
268
+ /**
269
+ * BIP-340 sign `messageHash` with the key derived from `descriptor`,
270
+ * aux_rand = 0. Backs {@link DescriptorIdentity.signSchnorrDeterministic},
271
+ * which swap preimage derivation reads through.
272
+ */
273
+ signSchnorrDeterministicWithDescriptor(descriptor: string, messageHash: Uint8Array): Promise<Uint8Array>;
268
274
  private derivePrivateKeyForDescriptor;
269
275
  private signTxWithKey;
270
276
  private signMessageWithKey;
@@ -357,6 +363,77 @@ declare class ReadonlyDescriptorIdentity implements ReadonlyHDCapableIdentity {
357
363
  isOurs(descriptor: string): boolean;
358
364
  }
359
365
 
366
+ /**
367
+ * Compressed (33-byte) counterpart of {@link deriveDescriptorLeafPubKey}, for
368
+ * protocols that key on the parity byte (Boltz swap keys).
369
+ *
370
+ * Only HD descriptors are supported: a bare `tr(xonly)` has lost its parity and
371
+ * synthesizing `02||xonly` would silently produce the wrong key half the time.
372
+ */
373
+ declare function deriveDescriptorLeafCompressedPubKey(descriptor: string): Uint8Array;
374
+
375
+ /**
376
+ * Descriptor-scoped signing surface — the two members every
377
+ * {@link DescriptorProvider} and every `HDCapableIdentity` share.
378
+ */
379
+ type DescriptorSigner = Pick<DescriptorProvider, "signWithDescriptor" | "signMessageWithDescriptor">;
380
+ /**
381
+ * Per-descriptor deterministic Schnorr signing. Separate from the baseline
382
+ * `DeterministicSignCapable` marker because the seed holder — not the
383
+ * descriptor — is the only party that can derive the key at an index.
384
+ */
385
+ interface HDDeterministicSignCapable {
386
+ /** BIP-340 sign `messageHash` with the descriptor's key and aux_rand = 0. */
387
+ signSchnorrDeterministicWithDescriptor(descriptor: string, messageHash: Uint8Array): Promise<Uint8Array>;
388
+ }
389
+ /** Type guard for {@link HDDeterministicSignCapable}. */
390
+ declare function isHDDeterministicSignCapable(value: unknown): value is HDDeterministicSignCapable;
391
+ /** Constructor arguments for {@link DescriptorIdentity}. */
392
+ interface DescriptorIdentityOptions {
393
+ /** Materialized descriptor (no wildcard) this identity is pinned to. */
394
+ descriptor: string;
395
+ /** Descriptor-aware signer — an `HDDescriptorProvider` or an HD identity. */
396
+ signer: DescriptorSigner;
397
+ /**
398
+ * Seed-holding identity behind `signer`. Backs the members that are not
399
+ * descriptor-scoped in the provider contract: musig2 sessions and
400
+ * deterministic Schnorr.
401
+ */
402
+ base: Identity;
403
+ }
404
+ /**
405
+ * {@link Identity} pinned to one materialized HD descriptor: every key and
406
+ * signature it produces belongs to that index rather than to the wallet's
407
+ * baseline key.
408
+ *
409
+ * Lets components that take a plain `Identity` (VHTLC claim/refund, batch
410
+ * joins) operate on a rotated index without knowing about descriptors.
411
+ *
412
+ * Deliberately does NOT satisfy `isBatchSignable`, `isHDCapableIdentity`, or
413
+ * `hasToReadonly` — it is a leaf signer, not another HD root.
414
+ */
415
+ declare class DescriptorIdentity implements Identity {
416
+ private readonly descriptor;
417
+ private readonly signer;
418
+ private readonly base;
419
+ constructor({ descriptor, signer, base }: DescriptorIdentityOptions);
420
+ xOnlyPublicKey(): Promise<Uint8Array>;
421
+ compressedPublicKey(): Promise<Uint8Array>;
422
+ sign(tx: Transaction, inputIndexes?: number[]): Promise<Transaction>;
423
+ signMessage(message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
424
+ /**
425
+ * Delegated: `TreeSignerSession.random()` consults no key material, so the
426
+ * session is index-independent.
427
+ */
428
+ signerSession(): SignerSession;
429
+ /**
430
+ * Throws rather than falling back to the baseline key: a preimage derived
431
+ * from the wrong index is unrecoverable, and callers probe this member
432
+ * through a structural guard that cannot tell the two apart.
433
+ */
434
+ signSchnorrDeterministic(messageHash: Uint8Array): Promise<Uint8Array>;
435
+ }
436
+
360
437
  /**
361
438
  * In-memory single key implementation for Bitcoin transaction signing.
362
439
  *
@@ -3286,8 +3363,45 @@ declare function combineTapscriptSigs(signedTx: Transaction, originalTx: Transac
3286
3363
  * @returns True if the address is valid, false otherwise.
3287
3364
  */
3288
3365
  declare function isValidArkAddress(address: string): boolean;
3289
-
3290
- declare function getRandomId(): string;
3366
+ /**
3367
+ * Pair each server-returned checkpoint PSBT with the locally built checkpoint
3368
+ * of the same txid, rejecting anything else.
3369
+ *
3370
+ * The ark tx signed just above spends each checkpoint at `checkpointTxid:0`, so
3371
+ * the response is only usable if it carries the same txids: a checkpoint with
3372
+ * any other txid leaves that ark tx unspendable. The two sets are therefore
3373
+ * equal by construction, and this pairing is what the signing step below
3374
+ * consumes.
3375
+ *
3376
+ * Matching is by txid rather than by position — nothing in the wire contract
3377
+ * promises arkd echoes checkpoints in submission order — while the result keeps
3378
+ * the server's order, so nothing downstream is reordered.
3379
+ *
3380
+ * Comparing txids is sound while checkpoint inputs are taproot-only: witness
3381
+ * data does not affect the txid, so the server's signature cannot change it. A
3382
+ * future P2SH-wrapped/scriptSig input could acquire a `finalScriptSig`
3383
+ * server-side and legitimately change txid; that protocol shape would need a
3384
+ * different comparison target.
3385
+ */
3386
+ declare function matchServerCheckpoints(serverCheckpointTxs: string[], expectedCheckpoints: Transaction[], context: string): {
3387
+ server: Transaction;
3388
+ local: Transaction;
3389
+ }[];
3390
+ /**
3391
+ * Assert a `submitTx` response refers to the ark transaction just submitted.
3392
+ *
3393
+ * The returned `arkTxid` is what gets passed to `finalizeTx` and persisted by
3394
+ * callers, so a stale or misrouted response must be rejected before either
3395
+ * happens: it must equal the locally signed transaction's txid, and when the
3396
+ * response carries the counter-signed `finalArkTx`, that transaction's txid
3397
+ * must match too. Server signatures live in the witness and cannot
3398
+ * legitimately change either — with the same taproot-only caveat as
3399
+ * {@link matchServerCheckpoints}.
3400
+ */
3401
+ declare function assertSubmittedArkTxid(response: {
3402
+ arkTxid: string;
3403
+ finalArkTx?: string;
3404
+ }, signedArkTx: Transaction, context: string): void;
3291
3405
 
3292
3406
  /**
3293
3407
  * ArkPsbtFieldKey are the available key names for the Arkade PSBT custom fields.
@@ -3659,8 +3773,10 @@ type ArkadeBatchInput = ArkadeExtendedCoin | ArkadeExtendedVirtualCoin;
3659
3773
  declare function createArkadeBatchHandler(intentId: string, inputs: ArkadeBatchInput[], signer: Identity, signedProof: string, message: Intent.RegisterMessage, session: SignerSession, arkProvider: ArkProvider, emulator: EmulatorProvider, network: Network,
3660
3774
  /**
3661
3775
  * Expected recipients of the settlement, validated against the virtual
3662
- * output tree before co-signing it (mirrors `Wallet.createBatchHandler`).
3663
- * Without this the handler signs whatever tree the server proposes.
3776
+ * output tree before co-signing it, and — when tree signing did not run —
3777
+ * against the commitment tx before signing anything at finalization
3778
+ * (mirrors `Wallet.createBatchHandler`). Without this the handler signs
3779
+ * whatever the server proposes, on both paths.
3664
3780
  */
3665
3781
  recipients?: Recipient[]): Batch.Handler;
3666
3782
 
@@ -4003,9 +4119,15 @@ declare class Executor implements AsyncIterable<ExecutorEvent> {
4003
4119
  constructor(pkg: ExitPackage, provider: OnchainProvider, opts?: {
4004
4120
  pollIntervalMs?: number;
4005
4121
  feeWallet?: ExitFeeWallet;
4006
- /** Abort to stop execution. Iteration then rejects with an error
4007
- * whose `name` is "AbortError". Already-broadcast transactions are
4008
- * not recalled; the executor is idempotent, so a later run resumes. */
4122
+ /** Abort to stop execution.
4123
+ *
4124
+ * Iteration then rejects with `signal.reason`. Calling `abort()`
4125
+ * with no argument yields an error whose `name` is `"AbortError"`;
4126
+ * a custom reason is forwarded as-is, matching `fetch` and
4127
+ * `AbortSignal.prototype.throwIfAborted`.
4128
+ *
4129
+ * Already-broadcast transactions are not recalled; the executor is
4130
+ * idempotent, so a later run resumes from the chain. */
4009
4131
  signal?: AbortSignal;
4010
4132
  });
4011
4133
  /**
@@ -4070,6 +4192,37 @@ declare function isRetryableProviderError(error: unknown): boolean;
4070
4192
  declare function validateConnectorsTxGraph(settlementTxB64: string, connectorsGraph: TxTree): void;
4071
4193
  declare function validateVtxoTxGraph(graph: TxTree, roundTransaction: Transaction$2, sweepTapTreeRoot: Uint8Array): void;
4072
4194
 
4195
+ /**
4196
+ * Assert the commitment tx received at batch finalization is the one validated
4197
+ * at tree signing.
4198
+ *
4199
+ * The vtxo tree co-signed at tree signing spends `commitmentTxid:0`, so a
4200
+ * finalization commitment carrying another txid does not correspond to the tree
4201
+ * that was validated. The two are the same transaction by construction.
4202
+ *
4203
+ * No-op when `validatedCommitmentTxid` is undefined: tree signing was skipped
4204
+ * (not a cosigner, or an onchain-only settle), so there is nothing to compare
4205
+ * against.
4206
+ */
4207
+ declare function assertFinalCommitmentMatchesValidated(finalCommitmentTx: Transaction, validatedCommitmentTxid: string | undefined, context: string): void;
4208
+ /**
4209
+ * Validates both offchain and onchain recipients.
4210
+ * Offchain recipients are checked against vtxo tree leaves for correct amounts and assets.
4211
+ * Onchain recipients are validated against the round transaction outputs (amounts and scripts)
4212
+ * via validateOnchainRecipient.
4213
+ *
4214
+ * Presence only: the commitment tx and the tree are shared with every other intent in the batch,
4215
+ * so outputs paying someone else are legitimate and cannot be rejected. What this asserts is that
4216
+ * a settlement cannot consume our inputs and pay us nothing.
4217
+ *
4218
+ * @param commitmentTx - The commitment transaction to validate against
4219
+ * @param vtxoTreeLeaves - The vtxo tree leaves to validate against
4220
+ * @param recipients - The expected recipients to validate (both offchain and onchain)
4221
+ * @param network - Network for decoding onchain addresses (e.g. mainnet, testnet)
4222
+ * @throws {Error} if a recipient is not present or invalid in the vtxo tree or commitment tx
4223
+ */
4224
+ declare function validateBatchRecipients(commitmentTx: Transaction, vtxoTreeLeaves: Transaction[], recipients: Recipient[], network: Network): void;
4225
+
4073
4226
  /**
4074
4227
  * Build a forfeit transaction that spends the provided inputs to a single forfeit output.
4075
4228
  *
@@ -5372,4 +5525,4 @@ declare class AssetManager extends ReadonlyAssetManager implements IAssetManager
5372
5525
  burn(params: BurnParams): Promise<string>;
5373
5526
  }
5374
5527
 
5375
- export { ARKADE_MAGIC, Activity, ActivityRegistry, AmbiguousRouteError, type AnchorBumper, ArkAddress, ArkIntent, ArkNote, ArkProvider, type ArkPsbtFieldCoder, ArkPsbtFieldKey, ArkPsbtFieldKeyType, ArkTransaction, type ArkTxInput, type ArkadeBatchInput, ArkadeCash, ArkadeContractParams, type ArkadeExtendedCoin, type ArkadeExtendedVirtualCoin, Asset, AssetDetails, AssetManager, BIP21, BIP21Error, type BIP21Params, type BIP21ParseResult, BIP322, Batch, BurnParams, CSVMultisigTapscript, ChainTx, Coin, ConditionWitness, type ConnectorTreeNode, Contract, ContractEvent, ContractRepository, ContractRepositoryImpl, ContractSyncState, ContractWatcherConfig, ContractWithVtxos, CosignerPublicKey, CreateContractParams, DEFAULT_MESSAGE_TIMEOUTS, DefaultVtxo, DelegateInfo, DelegateNotConfiguredError, DelegatorNotConfiguredError, type DescriptorOptions, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, type BlockHeader as ElectrumBlockHeader, ElectrumOnchainProvider, type TransactionHistory as ElectrumTransactionHistory, type Unspent as ElectrumUnspent, type EmulatorEntry, type EmulatorInfo, EmulatorPacket, type EmulatorProvider, EncodedVtxoScript, Estimator, type ExecutorEvent, type ExitDelay, type ExitFeeWallet, type ExitMode, type ExitOptions, type ExitPackage, type ExitQuote, type ExitStep, type ExitTotals, type ExitVtxoInfo, ExplorerTransaction, ExtendedCoin, ExtendedVirtualCoin, Extension, ExtensionNotFoundError, type ExtensionPacket, FeeAmount, FeeInfo, FeeOutput, FetchError, GetVtxosFilter, HDDescriptorProvider, IAssetManager, IContractManager, IDelegateManager, IReadonlyAssetManager, IReadonlyWallet, IVtxoManager, IWallet, Identity, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, IndexerProvider, Intent, IntentFeeConfig, IntentFilter, IntentRepository, IssuanceParams, IssuanceResult, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, type MessageHandler, type MessageTimeouts, MigrationGlobalSkipReason, MigrationLegSkipReason, type MigrationStatus, MissingSigningDescriptorError, MnemonicIdentity, type MnemonicOptions, Network, NetworkName, type NetworkOptions, OffchainInput, type OffchainTx, OnchainInput, OnchainProvider, OnchainWallet, Outpoint, P2A, type ParsedArkContract, PathContext, PathSelection, type PaymentHandle, type PaymentOption, type PaymentRail, type PaymentRequest, PaymentRouter, type PaymentStatus, PrevArkTxField, PrevoutTxField, ProviderConnectionState, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlyIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, Recipient, ReissuanceParams, RelativeTimelock, RenewVtxosOptions, type RequestEnvelope, type ResponseEnvelope, RestEmulatorProvider, type RouteQuote, type RouteResult, type RouterContext, type RouterPreferences, SeedIdentity, type SeedIdentityOptions, SendBitcoinParams, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, type ServiceWorkerWalletMode, SettleParams, SettlementConfig, SettlementEvent, SignerSession, SignerStatus, SingleKey, Status, StorageConfig, TapLeafScript, Transaction, TxTree, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, type VSize, VirtualCoin, VirtualTx, VirtualTxRepository, VtxoBranch, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, Wallet, WalletBalance, WalletMessageHandler, WalletNotInitializedError, WalletRepository, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, index as arkade, assembleBtcdTaprootTree, assertSendableAmount, index$1 as asset, btcTarget, buildForfeitTx, buildOffchainTx, buildVersion, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultPaymentRouter, decodeArkContract, deserializeExitPackage, encodeArkContract, getArkPsbtFields, getMigrationStatus, getRandomId, hasBoardingTxExpired, invoiceTarget, isArkContract, isBtcAddress, isCltvSatisfied, isCsvSpendable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isRetryableProviderError, isValidArkAddress, makeHandle, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, sdkVersion, selectCoinsWithAsset, sequenceToTimelock, serializeExitPackage, setArkPsbtField, setupServiceWorker, timelockToSequence, tryResolveSendAmount, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures };
5528
+ export { ARKADE_MAGIC, Activity, ActivityRegistry, AmbiguousRouteError, type AnchorBumper, ArkAddress, ArkIntent, ArkNote, ArkProvider, type ArkPsbtFieldCoder, ArkPsbtFieldKey, ArkPsbtFieldKeyType, ArkTransaction, type ArkTxInput, type ArkadeBatchInput, ArkadeCash, ArkadeContractParams, type ArkadeExtendedCoin, type ArkadeExtendedVirtualCoin, Asset, AssetDetails, AssetManager, BIP21, BIP21Error, type BIP21Params, type BIP21ParseResult, BIP322, Batch, BurnParams, CSVMultisigTapscript, ChainTx, Coin, ConditionWitness, type ConnectorTreeNode, Contract, ContractEvent, ContractRepository, ContractRepositoryImpl, ContractSyncState, ContractWatcherConfig, ContractWithVtxos, CosignerPublicKey, CreateContractParams, DEFAULT_MESSAGE_TIMEOUTS, DefaultVtxo, DelegateInfo, DelegateNotConfiguredError, DelegatorNotConfiguredError, DescriptorIdentity, type DescriptorIdentityOptions, type DescriptorOptions, type DescriptorSigner, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, type BlockHeader as ElectrumBlockHeader, ElectrumOnchainProvider, type TransactionHistory as ElectrumTransactionHistory, type Unspent as ElectrumUnspent, type EmulatorEntry, type EmulatorInfo, EmulatorPacket, type EmulatorProvider, EncodedVtxoScript, Estimator, type ExecutorEvent, type ExitDelay, type ExitFeeWallet, type ExitMode, type ExitOptions, type ExitPackage, type ExitQuote, type ExitStep, type ExitTotals, type ExitVtxoInfo, ExplorerTransaction, ExtendedCoin, ExtendedVirtualCoin, Extension, ExtensionNotFoundError, type ExtensionPacket, FeeAmount, FeeInfo, FeeOutput, FetchError, GetVtxosFilter, HDDescriptorProvider, type HDDeterministicSignCapable, IAssetManager, IContractManager, IDelegateManager, IReadonlyAssetManager, IReadonlyWallet, IVtxoManager, IWallet, Identity, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, IndexerProvider, Intent, IntentFeeConfig, IntentFilter, IntentRepository, IssuanceParams, IssuanceResult, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, type MessageHandler, type MessageTimeouts, MigrationGlobalSkipReason, MigrationLegSkipReason, type MigrationStatus, MissingSigningDescriptorError, MnemonicIdentity, type MnemonicOptions, Network, NetworkName, type NetworkOptions, OffchainInput, type OffchainTx, OnchainInput, OnchainProvider, OnchainWallet, Outpoint, P2A, type ParsedArkContract, PathContext, PathSelection, type PaymentHandle, type PaymentOption, type PaymentRail, type PaymentRequest, PaymentRouter, type PaymentStatus, PrevArkTxField, PrevoutTxField, ProviderConnectionState, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlyIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, Recipient, ReissuanceParams, RelativeTimelock, RenewVtxosOptions, type RequestEnvelope, type ResponseEnvelope, RestEmulatorProvider, type RouteQuote, type RouteResult, type RouterContext, type RouterPreferences, SeedIdentity, type SeedIdentityOptions, SendBitcoinParams, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, type ServiceWorkerWalletMode, SettleParams, SettlementConfig, SettlementEvent, SignerSession, SignerStatus, SingleKey, Status, StorageConfig, TapLeafScript, Transaction, TxTree, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, type VSize, VirtualCoin, VirtualTx, VirtualTxRepository, VtxoBranch, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, Wallet, WalletBalance, WalletMessageHandler, WalletNotInitializedError, WalletRepository, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, index as arkade, assembleBtcdTaprootTree, assertFinalCommitmentMatchesValidated, assertSendableAmount, assertSubmittedArkTxid, index$1 as asset, btcTarget, buildForfeitTx, buildOffchainTx, buildVersion, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultPaymentRouter, decodeArkContract, deriveDescriptorLeafCompressedPubKey, deserializeExitPackage, encodeArkContract, getArkPsbtFields, getMigrationStatus, hasBoardingTxExpired, invoiceTarget, isArkContract, isBtcAddress, isCltvSatisfied, isCsvSpendable, isHDDeterministicSignCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isRetryableProviderError, isValidArkAddress, makeHandle, matchServerCheckpoints, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, sdkVersion, selectCoinsWithAsset, sequenceToTimelock, serializeExitPackage, setArkPsbtField, setupServiceWorker, timelockToSequence, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { ARKADE_MAGIC, ActivityRegistry, AmbiguousRouteError, ArkNote, ArkadeCash, ArkadeCashCreateError, AssetManager, BIP21, BIP21Error, BIP322, Batch, ChainedTxType, ContractManager, ContractRepositoryImpl, ContractWatcher, DEFAULT_MESSAGE_TIMEOUTS, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, PaymentRouter, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, RestEmulatorProvider, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, VtxoManager, Wallet, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, arkade_exports as arkade, assertSendableAmount, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, decodeArkContract, deserializeExitPackage, encodeArkContract, getMigrationStatus, getRandomId, hasBoardingTxExpired, hasCandidates, invoiceTarget, isArkContract, isBatchSignable, isBtcAddress, isCooperativelyMigratable, isDiscoverable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, makeHandle, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, selectCoinsWithAsset, selectVirtualCoins, serializeExitPackage, setupServiceWorker, signerSetFromInfo, toXOnlySignerHex, tryResolveSendAmount, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds } from './chunk-TEHJCEF3.js';
2
- export { ChainTxType, IndexerTxType, RestIndexerProvider, asset_exports as asset } from './chunk-ZOY5JSVA.js';
3
- export { ArkadeContractHandler, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, VHTLC, VHTLCContractHandler, contractHandlers, isCltvSatisfied, isCsvSpendable } from './chunk-A37WVZ5T.js';
4
- export { ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DigestMismatchError, FetchError, Intent, MultisigTapscript, PrevArkTxField, PrevoutTxField, ProviderUnavailableError, RestArkProvider, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, assembleBtcdTaprootTree, buildVersion, canRecoverOnchain, canSpendOffchain, decodeTapscript, getArkPsbtFields, getNetwork, getSequence, hasTerminalSpend, isArkError, isExpired, isPastExpiry, isRecoverable, isRetryableProviderError, isSpendable, isVirtualCoin, maybeArkError, networks, scriptFromTapLeafScript, sdkVersion, sequenceToTimelock, setArkPsbtField, timelockToSequence } from './chunk-4EIKOJLD.js';
1
+ export { ARKADE_MAGIC, ActivityRegistry, AmbiguousRouteError, ArkNote, ArkadeCash, ArkadeCashCreateError, AssetManager, BIP21, BIP21Error, BIP322, Batch, ChainedTxType, ContractManager, ContractRepositoryImpl, ContractWatcher, DEFAULT_MESSAGE_TIMEOUTS, DelegateManagerImpl, DelegateNotConfiguredError, DelegatorManagerImpl, DelegatorNotConfiguredError, DescriptorIdentity, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MIGRATION_KEY, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, PaymentRouter, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestDelegatorProvider, RestEmulatorProvider, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, UnilateralExit, UnknownPacket, Unroll, VtxoManager, Wallet, WalletMessageHandler, WalletNotInitializedError, WalletRepositoryImpl, WsElectrumChainSource, arkRail, arkTarget, arkade_exports as arkade, assertFinalCommitmentMatchesValidated, assertSendableAmount, assertSubmittedArkTxid, assetMintResolver, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, collabExitResolver, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, decodeArkContract, deserializeExitPackage, encodeArkContract, getMigrationStatus, getRandomId, hasBoardingTxExpired, hasCandidates, invoiceTarget, isArkContract, isBatchSignable, isBtcAddress, isCooperativelyMigratable, isDiscoverable, isHDDeterministicSignCapable, isHDWalletCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, makeHandle, matchServerCheckpoints, migrateWalletRepository, onchainRail, openDatabase, requiresMigration, resolveSendAmount, rollbackMigration, selectCoinsWithAsset, selectVirtualCoins, serializeExitPackage, setupServiceWorker, signerSetFromInfo, toXOnlySignerHex, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds } from './chunk-T22257HW.js';
2
+ export { ChainTxType, IndexerTxType, RestIndexerProvider, asset_exports as asset } from './chunk-NN7BNNF5.js';
3
+ export { ArkadeContractHandler, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, VHTLC, VHTLCContractHandler, contractHandlers, deriveDescriptorLeafCompressedPubKey, isCltvSatisfied, isCsvSpendable } from './chunk-OOPDT2WV.js';
4
+ export { ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DigestMismatchError, FetchError, Intent, MultisigTapscript, PrevArkTxField, PrevoutTxField, ProviderUnavailableError, RestArkProvider, ServerResponseMismatchError, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, assembleBtcdTaprootTree, buildVersion, canRecoverOnchain, canSpendOffchain, decodeTapscript, getArkPsbtFields, getNetwork, getSequence, hasTerminalSpend, isArkError, isExpired, isPastExpiry, isRecoverable, isRetryableProviderError, isSpendable, isVirtualCoin, maybeArkError, networks, scriptFromTapLeafScript, sdkVersion, sequenceToTimelock, setArkPsbtField, timelockToSequence } from './chunk-IFGN2GB2.js';
5
5
  import './chunk-NSBPE2FW.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map