@arkade-os/sdk 0.4.43 → 0.4.45

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 (68) hide show
  1. package/README.md +100 -0
  2. package/dist/adapters/expo.cjs +4 -4
  3. package/dist/adapters/expo.d.cts +2 -2
  4. package/dist/adapters/expo.d.ts +2 -2
  5. package/dist/adapters/expo.js +2 -2
  6. package/dist/adapters/indexedDB.cjs +3 -3
  7. package/dist/adapters/indexedDB.js +2 -2
  8. package/dist/{ark-I8jfe5VE.d.cts → ark-C-PjOngm.d.cts} +89 -1
  9. package/dist/{ark-I8jfe5VE.d.ts → ark-C-PjOngm.d.ts} +89 -1
  10. package/dist/{asyncStorageTaskQueue-D1FfHfgK.d.cts → asyncStorageTaskQueue-BmBPvTyh.d.cts} +1 -1
  11. package/dist/{asyncStorageTaskQueue-CjoL-35w.d.ts → asyncStorageTaskQueue-CHpI3moJ.d.ts} +1 -1
  12. package/dist/{chunk-VKKLOT2E.js → chunk-BOA4SHCD.js} +3 -3
  13. package/dist/{chunk-VKKLOT2E.js.map → chunk-BOA4SHCD.js.map} +1 -1
  14. package/dist/{chunk-PLJZRIFZ.cjs → chunk-HZ7VIN7P.cjs} +11 -11
  15. package/dist/{chunk-PLJZRIFZ.cjs.map → chunk-HZ7VIN7P.cjs.map} +1 -1
  16. package/dist/{chunk-JIWCE2IK.cjs → chunk-OFQGANH2.cjs} +7 -7
  17. package/dist/{chunk-JIWCE2IK.cjs.map → chunk-OFQGANH2.cjs.map} +1 -1
  18. package/dist/{chunk-US274KZO.js → chunk-QZ6HZZZK.js} +3 -3
  19. package/dist/{chunk-US274KZO.js.map → chunk-QZ6HZZZK.js.map} +1 -1
  20. package/dist/{chunk-QGNTDGMN.cjs → chunk-SRCWBFSZ.cjs} +1945 -357
  21. package/dist/chunk-SRCWBFSZ.cjs.map +1 -0
  22. package/dist/{chunk-B4R36PRN.js → chunk-TGRJ5WAX.js} +1868 -285
  23. package/dist/chunk-TGRJ5WAX.js.map +1 -0
  24. package/dist/{chunk-3AQNLQPM.cjs → chunk-UHOHLN3C.cjs} +119 -69
  25. package/dist/chunk-UHOHLN3C.cjs.map +1 -0
  26. package/dist/{chunk-763XHDAJ.js → chunk-YBQV7XBC.js} +119 -70
  27. package/dist/chunk-YBQV7XBC.js.map +1 -0
  28. package/dist/contracts/handlers/index.d.cts +3 -3
  29. package/dist/contracts/handlers/index.d.ts +3 -3
  30. package/dist/{delegate-CgjVjYOP.d.ts → delegate-BKNqva1j.d.ts} +1 -1
  31. package/dist/{delegate-BRqbh2fW.d.cts → delegate-DOEobYwH.d.cts} +1 -1
  32. package/dist/{index-DHuXlDEg.d.cts → index-BlW4I30l.d.cts} +2 -2
  33. package/dist/{index-DvWNB_rl.d.ts → index-Cm2fGeox.d.ts} +2 -2
  34. package/dist/index.cjs +150 -126
  35. package/dist/index.d.cts +275 -19
  36. package/dist/index.d.ts +275 -19
  37. package/dist/index.js +2 -2
  38. package/dist/repositories/realm/index.cjs +17 -17
  39. package/dist/repositories/realm/index.d.cts +2 -2
  40. package/dist/repositories/realm/index.d.ts +2 -2
  41. package/dist/repositories/realm/index.js +3 -3
  42. package/dist/repositories/sqlite/index.cjs +16 -16
  43. package/dist/repositories/sqlite/index.d.cts +2 -2
  44. package/dist/repositories/sqlite/index.d.ts +2 -2
  45. package/dist/repositories/sqlite/index.js +3 -3
  46. package/dist/{taskRunner-Djlhfgi1.d.ts → taskRunner-BngWSFMi.d.ts} +1 -1
  47. package/dist/{taskRunner-BSnslNmq.d.cts → taskRunner-DOiyRuJa.d.cts} +1 -1
  48. package/dist/wallet/expo/background.cjs +12 -12
  49. package/dist/wallet/expo/background.d.cts +3 -3
  50. package/dist/wallet/expo/background.d.ts +3 -3
  51. package/dist/wallet/expo/background.js +4 -4
  52. package/dist/wallet/expo/index.cjs +21 -12
  53. package/dist/wallet/expo/index.cjs.map +1 -1
  54. package/dist/wallet/expo/index.d.cts +11 -4
  55. package/dist/wallet/expo/index.d.ts +11 -4
  56. package/dist/wallet/expo/index.js +12 -3
  57. package/dist/wallet/expo/index.js.map +1 -1
  58. package/dist/{wallet-BsqRU8KM.d.cts → wallet-B3awP1Nj.d.ts} +105 -3
  59. package/dist/{wallet-D9z7wssl.d.ts → wallet-DBjumS42.d.cts} +105 -3
  60. package/dist/worker/expo/index.cjs +7 -7
  61. package/dist/worker/expo/index.d.cts +4 -4
  62. package/dist/worker/expo/index.d.ts +4 -4
  63. package/dist/worker/expo/index.js +3 -3
  64. package/package.json +1 -1
  65. package/dist/chunk-3AQNLQPM.cjs.map +0 -1
  66. package/dist/chunk-763XHDAJ.js.map +0 -1
  67. package/dist/chunk-B4R36PRN.js.map +0 -1
  68. package/dist/chunk-QGNTDGMN.cjs.map +0 -1
package/README.md CHANGED
@@ -797,6 +797,106 @@ await Unroll.completeUnroll(
797
797
  - The `completeUnroll` method can only be called after all virtual outputs are fully unrolled and the timelock has expired
798
798
  - You need sufficient onchain funds in the `OnchainWallet` to pay for P2A transaction fees
799
799
 
800
+ ### Unilateral Exit Packages (pre-signed)
801
+
802
+ `Unroll.Session` requires the wallet (keys + indexer access) to stay online for the whole
803
+ multi-day exit. `UnilateralExit` removes that requirement: it pre-signs **every** transaction
804
+ needed to unroll a VTXO's offchain transaction chain onchain **and** sweep each matured output
805
+ to an address you solely control, then emits a versioned JSON package that anything with an
806
+ Esplora-compatible endpoint can execute — no keys, no Arkade infrastructure.
807
+
808
+ > **Note:** Unilateral exit handles **BTC value only** and does not represent any assets a
809
+ > VTXO carries — do not pass asset-bearing VTXOs (those with a non-empty `assets` field).
810
+
811
+ The flow is **quote → fund → prepare → execute**:
812
+
813
+ ```typescript
814
+ import { UnilateralExit, OnchainWallet, serializeExitPackage } from '@arkade-os/sdk'
815
+
816
+ const onchainWallet = await OnchainWallet.create(identity, 'mainnet')
817
+
818
+ // 1. Quote: how many txs, how many sats (no funds needed, nothing signed)
819
+ const quote = await UnilateralExit.estimate({
820
+ wallet,
821
+ onchainWallet,
822
+ sweepAddress: 'bc1p...', // where the exited funds land
823
+ // feeRate: 2, // sat/vB — defaults to the provider estimate
824
+ })
825
+ console.log(quote.totals.txCount, quote.totals.fundingRequiredSats, quote.shortfallSats)
826
+
827
+ // 2. Deposit quote.shortfallSats to quote.fundingAddress, wait for confirmation
828
+
829
+ // 3. Prepare: signs everything and broadcasts the fee-funding splitter,
830
+ // reserving the fee budget onchain
831
+ const pkg = await UnilateralExit.prepare({ wallet, onchainWallet, sweepAddress: 'bc1p...' })
832
+ const json = serializeExitPackage(pkg) // hand this to any executor
833
+
834
+ // 4. Execute anywhere — here, or on a machine that has only an Esplora URL
835
+ const executor = new UnilateralExit.Executor(pkg, wallet.onchainProvider)
836
+ for await (const event of executor) {
837
+ console.log(event.stepIndex, event.kind, event.status)
838
+ }
839
+ ```
840
+
841
+ Every exit terminates in a **sweep**. Unrolling only lands a VTXO back onchain still encumbered
842
+ by its Arkade script; the funds become yours unilaterally only once a sweep spends that output
843
+ through the CSV-timelocked exit path to `sweepAddress`. So the package always pairs each exited
844
+ VTXO with a pre-signed sweep, and `totals.recoveredSats` is what arrives at `sweepAddress` after
845
+ the timelocks mature. A VTXO whose sweep cannot be signed — e.g. a contract path that needs
846
+ another party — is dropped from the package rather than left half-exited onchain.
847
+
848
+ Key properties:
849
+
850
+ - **Contract-aware**: exit paths are resolved through the contract handler registry, so
851
+ contract VTXOs (e.g. a VHTLC whose preimage is in the contract params) are pre-signable
852
+ too — paths needing other parties' signatures are skipped with a reason.
853
+ - **Shared ancestors are paid once**: VTXOs under the same commitment share tree
854
+ transactions; the package contains one step (and one fee) per unique transaction.
855
+ - **Idempotent execution**: the executor re-checks the chain before every action, so it can
856
+ be killed, moved, and re-run at any point; already-confirmed steps are skipped.
857
+ - **Per-VTXO isolation**: one sweep per VTXO plus fan-out fee funding means one failed
858
+ branch never blocks the others.
859
+ - **Confidentiality**: packages contain no key material, but sweeps of condition paths embed
860
+ the condition witness (e.g. a VHTLC preimage) — treat the file as confidential until
861
+ broadcast.
862
+ - `validUntil` carries the earliest batch expiry: execute before it, or the operator may
863
+ sweep the expired batch first.
864
+
865
+ ### Exit data available offline
866
+
867
+ The exit above resolves a VTXO's transaction chain from the Ark **indexer** at
868
+ exit time. To make a unilateral exit work even when the indexer is unreachable,
869
+ configure a `virtualTxRepository` (SQLite / Realm / IndexedDB / InMemory): the
870
+ wallet then captures each received VTXO's exit branch locally and prunes it on
871
+ spend, and `estimate` / `prepare` read that data **local-first**, falling back to
872
+ the indexer only on a miss.
873
+
874
+ ```typescript
875
+ import { Wallet, InMemoryVirtualTxRepository } from '@arkade-os/sdk'
876
+
877
+ const wallet = await Wallet.create({
878
+ identity,
879
+ storage: {
880
+ walletRepository,
881
+ contractRepository,
882
+ virtualTxRepository: new InMemoryVirtualTxRepository(),
883
+ // Optional. `mode` defaults to "lite" (structure only, cheap — most VTXOs
884
+ // never exit). Use "full" to also store the pre-signed PSBTs, so an exit
885
+ // needs no Ark indexer (only an Esplora endpoint to broadcast).
886
+ exitDataCapture: { mode: 'full' },
887
+ },
888
+ })
889
+ ```
890
+
891
+ - **Lite (default)** stores only the chain structure; an exit still fetches PSBTs
892
+ from the indexer. **Full** stores the PSBTs too, so the exit is fully
893
+ indexer-independent. `minExitWorthSats` (default 1000) skips dust VTXOs.
894
+ - Capture and prune are best-effort — a persistence failure never blocks sync or
895
+ the exit. Pruning is ref-counted, so tree ancestors shared by other VTXOs survive.
896
+ - **Provider tier:** pass extra sources via `exitDataCapture.sources` to resolve
897
+ exit data from your own service before the indexer — implement the
898
+ `ExitDataSource` interface (`getVtxoChain` / `getVirtualTxs`).
899
+
800
900
  ### Running the wallet in a service worker
801
901
 
802
902
  The SDK provides a `MessageBus` orchestrator that runs inside a service worker
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPLJZRIFZ_cjs = require('../chunk-PLJZRIFZ.cjs');
4
- require('../chunk-3AQNLQPM.cjs');
3
+ var chunkHZ7VIN7P_cjs = require('../chunk-HZ7VIN7P.cjs');
4
+ require('../chunk-UHOHLN3C.cjs');
5
5
  require('../chunk-HXDZ2QTW.cjs');
6
6
  require('../chunk-5BLDMQED.cjs');
7
7
 
@@ -9,11 +9,11 @@ require('../chunk-5BLDMQED.cjs');
9
9
 
10
10
  Object.defineProperty(exports, "ExpoArkProvider", {
11
11
  enumerable: true,
12
- get: function () { return chunkPLJZRIFZ_cjs.ExpoArkProvider; }
12
+ get: function () { return chunkHZ7VIN7P_cjs.ExpoArkProvider; }
13
13
  });
14
14
  Object.defineProperty(exports, "ExpoIndexerProvider", {
15
15
  enumerable: true,
16
- get: function () { return chunkPLJZRIFZ_cjs.ExpoIndexerProvider; }
16
+ get: function () { return chunkHZ7VIN7P_cjs.ExpoIndexerProvider; }
17
17
  });
18
18
  //# sourceMappingURL=expo.cjs.map
19
19
  //# sourceMappingURL=expo.cjs.map
@@ -1,5 +1,5 @@
1
- import { l as RestArkProvider, j as SettlementEvent, T as TxNotification, m as RestIndexerProvider, n as SubscriptionResponse } from '../ark-I8jfe5VE.cjs';
2
- export { o as ArkProvider, p as IndexerProvider } from '../ark-I8jfe5VE.cjs';
1
+ import { l as RestArkProvider, j as SettlementEvent, T as TxNotification, m as RestIndexerProvider, n as SubscriptionResponse } from '../ark-C-PjOngm.cjs';
2
+ export { o as ArkProvider, p as IndexerProvider } from '../ark-C-PjOngm.cjs';
3
3
  import '@scure/btc-signer/transaction.js';
4
4
  import '@scure/btc-signer/utils.js';
5
5
  import '@scure/btc-signer/psbt.js';
@@ -1,5 +1,5 @@
1
- import { l as RestArkProvider, j as SettlementEvent, T as TxNotification, m as RestIndexerProvider, n as SubscriptionResponse } from '../ark-I8jfe5VE.js';
2
- export { o as ArkProvider, p as IndexerProvider } from '../ark-I8jfe5VE.js';
1
+ import { l as RestArkProvider, j as SettlementEvent, T as TxNotification, m as RestIndexerProvider, n as SubscriptionResponse } from '../ark-C-PjOngm.js';
2
+ export { o as ArkProvider, p as IndexerProvider } from '../ark-C-PjOngm.js';
3
3
  import '@scure/btc-signer/transaction.js';
4
4
  import '@scure/btc-signer/utils.js';
5
5
  import '@scure/btc-signer/psbt.js';
@@ -1,5 +1,5 @@
1
- export { ExpoArkProvider, ExpoIndexerProvider } from '../chunk-VKKLOT2E.js';
2
- import '../chunk-763XHDAJ.js';
1
+ export { ExpoArkProvider, ExpoIndexerProvider } from '../chunk-BOA4SHCD.js';
2
+ import '../chunk-YBQV7XBC.js';
3
3
  import '../chunk-BE5MUB7T.js';
4
4
  import '../chunk-NSBPE2FW.js';
5
5
  //# sourceMappingURL=expo.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkQGNTDGMN_cjs = require('../chunk-QGNTDGMN.cjs');
4
- require('../chunk-3AQNLQPM.cjs');
3
+ var chunkSRCWBFSZ_cjs = require('../chunk-SRCWBFSZ.cjs');
4
+ require('../chunk-UHOHLN3C.cjs');
5
5
  require('../chunk-32YKLQPS.cjs');
6
6
  require('../chunk-HXDZ2QTW.cjs');
7
7
  require('../chunk-5BLDMQED.cjs');
@@ -11,7 +11,7 @@ var IndexedDBStorageAdapter = class {
11
11
  dbName;
12
12
  version;
13
13
  db = null;
14
- constructor(dbName, version = chunkQGNTDGMN_cjs.DB_VERSION) {
14
+ constructor(dbName, version = chunkSRCWBFSZ_cjs.DB_VERSION) {
15
15
  this.dbName = dbName;
16
16
  this.version = version;
17
17
  }
@@ -1,5 +1,5 @@
1
- import { DB_VERSION } from '../chunk-B4R36PRN.js';
2
- import '../chunk-763XHDAJ.js';
1
+ import { DB_VERSION } from '../chunk-TGRJ5WAX.js';
2
+ import '../chunk-YBQV7XBC.js';
3
3
  import '../chunk-YNEDJTX2.js';
4
4
  import '../chunk-BE5MUB7T.js';
5
5
  import '../chunk-NSBPE2FW.js';
@@ -1836,6 +1836,21 @@ interface ScanContractsOptions {
1836
1836
  /** Read-only context injected into every `discoverAt` call. */
1837
1837
  deps: DiscoveryDeps;
1838
1838
  }
1839
+ /**
1840
+ * Freshness of the ContractManager's provider-backed sync. `degraded` means the
1841
+ * most recent sync (boot, best-effort read, or contract hydration) hit a
1842
+ * retryable indexer/operator failure and the manager is serving repository
1843
+ * state; it returns to `online` on the next successful sync. This only
1844
+ * describes sync freshness — never wallet data itself.
1845
+ */
1846
+ type ContractSyncState = {
1847
+ mode: "online";
1848
+ lastSyncedAt?: number;
1849
+ } | {
1850
+ mode: "degraded";
1851
+ reason: string;
1852
+ lastSyncedAt?: number;
1853
+ };
1839
1854
  interface IContractManager extends Disposable {
1840
1855
  /**
1841
1856
  * Create and register a new contract.
@@ -1863,6 +1878,11 @@ interface IContractManager extends Disposable {
1863
1878
  * If no filter is provided, returns all contracts with their virtual outputs.
1864
1879
  */
1865
1880
  getContractsWithVtxos(filter?: GetContractsFilter): Promise<ContractWithVtxos[]>;
1881
+ /**
1882
+ * Latest provider-sync health (online vs. degraded to repository data).
1883
+ * See {@link ContractSyncState}.
1884
+ */
1885
+ getSyncState(): ContractSyncState;
1866
1886
  /**
1867
1887
  * Stamp raw virtual outputs with the correct per-contract tapscripts
1868
1888
  * (forfeit, intent, tap tree).
@@ -2003,6 +2023,18 @@ interface ContractManagerConfig {
2003
2023
  * {@link reconcileIntents}. Absent ⇒ no-op.
2004
2024
  */
2005
2025
  intentRepository?: IntentRepository;
2026
+ /**
2027
+ * Optional exit-data capture hook. Fired best-effort after VTXOs are
2028
+ * persisted so a configured virtualTxRepository can store each one's
2029
+ * unilateral-exit branch. Absent ⇒ no-op.
2030
+ */
2031
+ onVtxosPersisted?: (contract: Contract, vtxos: ExtendedVirtualCoin[]) => Promise<void>;
2032
+ /**
2033
+ * Optional exit-data prune hook. Fired best-effort with the spent outpoints
2034
+ * on `vtxo_spent` so a configured virtualTxRepository can drop their branch.
2035
+ * Absent ⇒ no-op.
2036
+ */
2037
+ onVtxosSpent?: (vtxos: Outpoint[]) => Promise<void>;
2006
2038
  /** Watcher configuration */
2007
2039
  watcherConfig?: Partial<ContractWatcherConfig>;
2008
2040
  }
@@ -2066,6 +2098,10 @@ declare class ContractManager implements IContractManager {
2066
2098
  private initialized;
2067
2099
  private eventCallbacks;
2068
2100
  private stopWatcherFn?;
2101
+ /** `undefined` while online; the failure reason once a sync degrades. */
2102
+ private syncDegradedReason?;
2103
+ /** Epoch-ms of the last successful provider sync, if any. */
2104
+ private lastSyncedAt?;
2069
2105
  private constructor();
2070
2106
  /**
2071
2107
  * Static factory method for creating a new ContractManager.
@@ -2077,6 +2113,15 @@ declare class ContractManager implements IContractManager {
2077
2113
  * @param config ContractManagerConfig
2078
2114
  */
2079
2115
  static create(config: ContractManagerConfig): Promise<ContractManager>;
2116
+ /**
2117
+ * Latest provider-sync health. See {@link ContractSyncState}. Degradation is
2118
+ * recorded by {@link initialize}, {@link getContractsWithVtxos}, and
2119
+ * {@link createContract}; it flips back to `online` on the next successful
2120
+ * sync. Purely a freshness signal — not a source of truth for wallet data.
2121
+ */
2122
+ getSyncState(): ContractSyncState;
2123
+ private markSyncOnline;
2124
+ private markSyncDegraded;
2080
2125
  private initialize;
2081
2126
  /**
2082
2127
  * Delta-sync the full watched set and reconcile the pending frontier.
@@ -3134,6 +3179,36 @@ declare function boardingResolver(): ActivityResolver;
3134
3179
  /** Default registry with SDK built-ins. */
3135
3180
  declare function createDefaultActivityRegistry(): ActivityRegistry;
3136
3181
 
3182
+ /**
3183
+ * A source of unilateral-exit chain data for a set of VTXOs. Sources are tried
3184
+ * in order by the resolver; a source returns `null` (chain) or omits keys (psbts)
3185
+ * for data it cannot supply — a "miss" — and the resolver falls through.
3186
+ */
3187
+ interface ExitDataSource {
3188
+ readonly name: string;
3189
+ /** Full ancestry chain for a vtxo (all pages merged), or null on a miss. */
3190
+ getVtxoChain(vtxo: Outpoint): Promise<ChainTx[] | null>;
3191
+ /** Base64 PSBTs this source has, keyed by (unsigned) txid. Absent key = miss. */
3192
+ getVirtualTxs(txids: string[]): Promise<Map<string, string>>;
3193
+ }
3194
+ /** Reads exit chain data through an ordered chain of sources. */
3195
+ interface ExitChainResolver {
3196
+ getVtxoChain(vtxo: Outpoint): Promise<ChainTx[]>;
3197
+ getVirtualTxs(txids: string[]): Promise<string[]>;
3198
+ }
3199
+ /**
3200
+ * Assemble the standard exit-data resolver: local repo (if configured) → any
3201
+ * extra sources (e.g. a future provider) → indexer. Read-through persists to the
3202
+ * repository. With no repository this is exactly the indexer path (a no-op seam).
3203
+ */
3204
+ declare function createExitChainResolver(params: {
3205
+ indexer: IndexerProvider;
3206
+ repository?: VirtualTxRepository;
3207
+ extraSources?: ExitDataSource[];
3208
+ }): ExitChainResolver;
3209
+
3210
+ type ExitCaptureMode = "lite" | "full";
3211
+
3137
3212
  /**
3138
3213
  * Wallet receive-address strategy.
3139
3214
  *
@@ -3346,6 +3421,19 @@ type StorageConfig = {
3346
3421
  * option as experimental until those paths land. Absent ⇒ no-op.
3347
3422
  */
3348
3423
  virtualTxRepository?: VirtualTxRepository;
3424
+ /**
3425
+ * Optional exit-data capture settings (only in effect when
3426
+ * `virtualTxRepository` is set). `mode` "lite" (default) stores structure
3427
+ * only; "full" stores PSBTs so a unilateral exit needs no Ark indexer.
3428
+ * `minExitWorthSats` (default 1000) skips dust. `sources` are extra
3429
+ * `ExitDataSource`s (e.g. a wallet-provider) tried before the indexer for
3430
+ * both capture and exit reads.
3431
+ */
3432
+ exitDataCapture?: {
3433
+ mode?: ExitCaptureMode;
3434
+ minExitWorthSats?: number;
3435
+ sources?: ExitDataSource[];
3436
+ };
3349
3437
  };
3350
3438
  /**
3351
3439
  * Provider class constructor interface for dependency injection.
@@ -4694,4 +4782,4 @@ declare namespace ProtoTypes {
4694
4782
  export { };
4695
4783
  }
4696
4784
 
4697
- export { ContractManager as $, type ArkTransaction as A, type BatchStartedEvent as B, type ContractRepository as C, type TreeTxEvent as D, type ExtendedVirtualCoin as E, type TreeSignatureEvent as F, type GetVtxosFilter as G, type DescriptorProvider as H, type IWallet as I, type IReadonlyWallet as J, type ReadonlyIdentity as K, type DelegateProvider as L, type ReadonlyWalletConfig as M, type Network as N, type OnchainProvider as O, type IntentRepository as P, type VirtualTxRepository as Q, type Recipient as R, type SendBitcoinParams as S, type TxNotification as T, type IReadonlyAssetManager as U, VtxoScript as V, type WalletRepository as W, type NetworkName as X, type ArkInfo as Y, ArkAddress as Z, type Coin as _, type Identity as a, type ContractEventCallback as a$, CSVMultisigTapscript as a0, type SettlementConfig as a1, VtxoManager as a2, type SignerSession as a3, type SignedIntent as a4, Intent as a5, type VtxoRepositoryKey as a6, type WalletState as a7, type ContractFilter as a8, type ArkIntent as a9, type IssuanceResult as aA, type DelegateInfo as aB, type MigrationGlobalSkipReason as aC, type MigrationLegSkipReason as aD, type SignerStatus as aE, type StorageConfig as aF, type IVtxoManager as aG, type ExplorerTransaction as aH, type EncodedVtxoScript as aI, type Status as aJ, type ChainTx as aK, type PathContext as aL, type ActivityIntent as aM, type ActivityResolver as aN, type ArkIntentState as aO, type ArkTapscript as aP, type Asset as aQ, type AssetMetadata as aR, type BaseWalletConfig as aS, type BatchInfo as aT, type BatchSignableIdentity as aU, CLTVMultisigTapscript as aV, ChainTxType as aW, type CommitmentTx as aX, ConditionCSVMultisigTapscript as aY, ConditionMultisigTapscript as aZ, type ContractBalance as a_, type IntentFilter as aa, type Outpoint as ab, type VirtualTx as ac, type VtxoBranch as ad, ChainedTxType as ae, type DescriptorSigningRequest as af, Transaction as ag, type IntentFeeConfig as ah, type OffchainInput as ai, FeeAmount as aj, type OnchainInput as ak, type FeeOutput as al, type ContractWatcherConfig as am, type FeeInfo as an, type CreateContractParams as ao, type GetContractsFilter as ap, type GetSpendablePathsOptions as aq, type GetAllSpendingPathsOptions as ar, type IssuanceParams as as, type ReissuanceParams as at, type BurnParams as au, type RenewVtxosOptions as av, type ContractWithVtxos as aw, type PathSelection as ax, type ContractEvent as ay, type AssetDetails as az, type WalletConfig as b, createDefaultActivityRegistry as b$, type ContractHandler as b0, type ContractManagerConfig as b1, type ContractState as b2, type ContractVtxo as b3, ContractWatcher as b4, DelegateManagerImpl as b5, type DelegateOptions as b6, DelegatorManagerImpl as b7, type DelegatorProvider as b8, type DeprecatedSignerMigrationReport as b9, type ScanContractsOptions as bA, type ScanResult as bB, type ScheduledSession as bC, SettlementEventType as bD, type SignRequest as bE, type SignerClassification as bF, type SignerSet as bG, type SubscriptionEvent as bH, type SubscriptionHeartbeat as bI, type TapLeaves as bJ, TapTreeCoder as bK, TapscriptType as bL, type TreeNonces as bM, type TreePartialSigs as bN, type Tx as bO, type TxHistoryRecord as bP, type TxKey as bQ, type TxTreeNode as bR, TxType as bS, type VirtualStatus as bT, type Vtxo as bU, type VtxoChain as bV, type VtxoType as bW, type WalletMode as bX, boardingResolver as bY, classifyAgainstSignerSet as bZ, classifyContractSigner as b_, type DeprecatedSignerReport as ba, DigestMismatchError as bb, type Discoverable as bc, type DiscoveredContract as bd, type DiscoveryDeps as be, ESPLORA_URL as bf, EsploraProvider as bg, type ExtendedContractVtxo as bh, type GroupMembership as bi, type HandlerError as bj, type IDelegatorManager as bk, INTENT_TERMINAL_STATES as bl, IndexerTxType as bm, type KnownMetadata as bn, type MigrateDeprecatedSignerOptions as bo, type MigrationLegReport as bp, type MigrationVtxoRef as bq, MultisigTapscript as br, type Nonces as bs, type Output as bt, type PageResponse as bu, type PaginationOptions as bv, PartialSig as bw, type ProviderClass as bx, RestDelegateProvider as by, RestDelegatorProvider as bz, type WalletBalance as c, decodeTapscript as c0, getNetwork as c1, getSequence as c2, isBatchSignable as c3, isCooperativelyMigratable as c4, isDiscoverable as c5, isExpired as c6, isRecoverable as c7, isSpendable as c8, isSubdust as c9, isTerminalIntentState as ca, isVtxoExpiringSoon as cb, networks as cc, signerSetFromInfo as cd, toXOnlySignerHex as ce, type ExtendedCoin as d, ActivityRegistry as e, type Activity as f, type IContractManager as g, type IDelegateManager as h, type SettleParams as i, type SettlementEvent as j, type IAssetManager as k, RestArkProvider as l, RestIndexerProvider as m, type SubscriptionResponse as n, type ArkProvider as o, type IndexerProvider as p, type RelativeTimelock as q, type TapLeafScript as r, type VirtualCoin as s, type Contract as t, type TreeSigningStartedEvent as u, TxTree as v, type TreeNoncesEvent as w, type BatchFinalizationEvent as x, type BatchFinalizedEvent as y, type BatchFailedEvent as z };
4785
+ export { type ArkInfo as $, type ArkTransaction as A, type BatchStartedEvent as B, type ContractRepository as C, type TreeTxEvent as D, type ExtendedVirtualCoin as E, type TreeSignatureEvent as F, type GetVtxosFilter as G, type DescriptorProvider as H, type IWallet as I, type IReadonlyWallet as J, type ReadonlyIdentity as K, type DelegateProvider as L, type ReadonlyWalletConfig as M, type Network as N, type OnchainProvider as O, type IntentRepository as P, type VirtualTxRepository as Q, type Recipient as R, type SendBitcoinParams as S, type TxNotification as T, type ExitCaptureMode as U, VtxoScript as V, type WalletRepository as W, type ExitDataSource as X, type IReadonlyAssetManager as Y, type ContractSyncState as Z, type NetworkName as _, type Identity as a, ConditionCSVMultisigTapscript as a$, ArkAddress as a0, type Coin as a1, ContractManager as a2, CSVMultisigTapscript as a3, type SettlementConfig as a4, VtxoManager as a5, type SignerSession as a6, type SignedIntent as a7, Intent as a8, type VtxoRepositoryKey as a9, type PathSelection as aA, type ContractEvent as aB, type AssetDetails as aC, type IssuanceResult as aD, type DelegateInfo as aE, type MigrationGlobalSkipReason as aF, type MigrationLegSkipReason as aG, type SignerStatus as aH, type StorageConfig as aI, type IVtxoManager as aJ, type ExplorerTransaction as aK, type EncodedVtxoScript as aL, type Status as aM, type ChainTx as aN, type PathContext as aO, type ActivityIntent as aP, type ActivityResolver as aQ, type ArkIntentState as aR, type ArkTapscript as aS, type Asset as aT, type AssetMetadata as aU, type BaseWalletConfig as aV, type BatchInfo as aW, type BatchSignableIdentity as aX, CLTVMultisigTapscript as aY, ChainTxType as aZ, type CommitmentTx as a_, type WalletState as aa, type ContractFilter as ab, type ArkIntent as ac, type IntentFilter as ad, type Outpoint as ae, type VirtualTx as af, type VtxoBranch as ag, ChainedTxType as ah, type DescriptorSigningRequest as ai, Transaction as aj, type IntentFeeConfig as ak, type OffchainInput as al, FeeAmount as am, type OnchainInput as an, type FeeOutput as ao, type ContractWatcherConfig as ap, type FeeInfo as aq, type CreateContractParams as ar, type GetContractsFilter as as, type GetSpendablePathsOptions as at, type GetAllSpendingPathsOptions as au, type IssuanceParams as av, type ReissuanceParams as aw, type BurnParams as ax, type RenewVtxosOptions as ay, type ContractWithVtxos as az, type WalletConfig as b, type WalletMode as b$, ConditionMultisigTapscript as b0, type ContractBalance as b1, type ContractEventCallback as b2, type ContractHandler as b3, type ContractManagerConfig as b4, type ContractState as b5, type ContractVtxo as b6, ContractWatcher as b7, DelegateManagerImpl as b8, type DelegateOptions as b9, PartialSig as bA, type ProviderClass as bB, RestDelegateProvider as bC, RestDelegatorProvider as bD, type ScanContractsOptions as bE, type ScanResult as bF, type ScheduledSession as bG, SettlementEventType as bH, type SignRequest as bI, type SignerClassification as bJ, type SignerSet as bK, type SubscriptionEvent as bL, type SubscriptionHeartbeat as bM, type TapLeaves as bN, TapTreeCoder as bO, TapscriptType as bP, type TreeNonces as bQ, type TreePartialSigs as bR, type Tx as bS, type TxHistoryRecord as bT, type TxKey as bU, type TxTreeNode as bV, TxType as bW, type VirtualStatus as bX, type Vtxo as bY, type VtxoChain as bZ, type VtxoType as b_, DelegatorManagerImpl as ba, type DelegatorProvider as bb, type DeprecatedSignerMigrationReport as bc, type DeprecatedSignerReport as bd, DigestMismatchError as be, type Discoverable as bf, type DiscoveredContract as bg, type DiscoveryDeps as bh, ESPLORA_URL as bi, EsploraProvider as bj, type ExitChainResolver as bk, type ExtendedContractVtxo as bl, type GroupMembership as bm, type HandlerError as bn, type IDelegatorManager as bo, INTENT_TERMINAL_STATES as bp, IndexerTxType as bq, type KnownMetadata as br, type MigrateDeprecatedSignerOptions as bs, type MigrationLegReport as bt, type MigrationVtxoRef as bu, MultisigTapscript as bv, type Nonces as bw, type Output as bx, type PageResponse as by, type PaginationOptions as bz, type WalletBalance as c, boardingResolver as c0, classifyAgainstSignerSet as c1, classifyContractSigner as c2, createDefaultActivityRegistry as c3, createExitChainResolver as c4, decodeTapscript as c5, getNetwork as c6, getSequence as c7, isBatchSignable as c8, isCooperativelyMigratable as c9, isDiscoverable as ca, isExpired as cb, isRecoverable as cc, isSpendable as cd, isSubdust as ce, isTerminalIntentState as cf, isVtxoExpiringSoon as cg, networks as ch, signerSetFromInfo as ci, toXOnlySignerHex as cj, type ExtendedCoin as d, ActivityRegistry as e, type Activity as f, type IContractManager as g, type IDelegateManager as h, type SettleParams as i, type SettlementEvent as j, type IAssetManager as k, RestArkProvider as l, RestIndexerProvider as m, type SubscriptionResponse as n, type ArkProvider as o, type IndexerProvider as p, type RelativeTimelock as q, type TapLeafScript as r, type VirtualCoin as s, type Contract as t, type TreeSigningStartedEvent as u, TxTree as v, type TreeNoncesEvent as w, type BatchFinalizationEvent as x, type BatchFinalizedEvent as y, type BatchFailedEvent as z };
@@ -1836,6 +1836,21 @@ interface ScanContractsOptions {
1836
1836
  /** Read-only context injected into every `discoverAt` call. */
1837
1837
  deps: DiscoveryDeps;
1838
1838
  }
1839
+ /**
1840
+ * Freshness of the ContractManager's provider-backed sync. `degraded` means the
1841
+ * most recent sync (boot, best-effort read, or contract hydration) hit a
1842
+ * retryable indexer/operator failure and the manager is serving repository
1843
+ * state; it returns to `online` on the next successful sync. This only
1844
+ * describes sync freshness — never wallet data itself.
1845
+ */
1846
+ type ContractSyncState = {
1847
+ mode: "online";
1848
+ lastSyncedAt?: number;
1849
+ } | {
1850
+ mode: "degraded";
1851
+ reason: string;
1852
+ lastSyncedAt?: number;
1853
+ };
1839
1854
  interface IContractManager extends Disposable {
1840
1855
  /**
1841
1856
  * Create and register a new contract.
@@ -1863,6 +1878,11 @@ interface IContractManager extends Disposable {
1863
1878
  * If no filter is provided, returns all contracts with their virtual outputs.
1864
1879
  */
1865
1880
  getContractsWithVtxos(filter?: GetContractsFilter): Promise<ContractWithVtxos[]>;
1881
+ /**
1882
+ * Latest provider-sync health (online vs. degraded to repository data).
1883
+ * See {@link ContractSyncState}.
1884
+ */
1885
+ getSyncState(): ContractSyncState;
1866
1886
  /**
1867
1887
  * Stamp raw virtual outputs with the correct per-contract tapscripts
1868
1888
  * (forfeit, intent, tap tree).
@@ -2003,6 +2023,18 @@ interface ContractManagerConfig {
2003
2023
  * {@link reconcileIntents}. Absent ⇒ no-op.
2004
2024
  */
2005
2025
  intentRepository?: IntentRepository;
2026
+ /**
2027
+ * Optional exit-data capture hook. Fired best-effort after VTXOs are
2028
+ * persisted so a configured virtualTxRepository can store each one's
2029
+ * unilateral-exit branch. Absent ⇒ no-op.
2030
+ */
2031
+ onVtxosPersisted?: (contract: Contract, vtxos: ExtendedVirtualCoin[]) => Promise<void>;
2032
+ /**
2033
+ * Optional exit-data prune hook. Fired best-effort with the spent outpoints
2034
+ * on `vtxo_spent` so a configured virtualTxRepository can drop their branch.
2035
+ * Absent ⇒ no-op.
2036
+ */
2037
+ onVtxosSpent?: (vtxos: Outpoint[]) => Promise<void>;
2006
2038
  /** Watcher configuration */
2007
2039
  watcherConfig?: Partial<ContractWatcherConfig>;
2008
2040
  }
@@ -2066,6 +2098,10 @@ declare class ContractManager implements IContractManager {
2066
2098
  private initialized;
2067
2099
  private eventCallbacks;
2068
2100
  private stopWatcherFn?;
2101
+ /** `undefined` while online; the failure reason once a sync degrades. */
2102
+ private syncDegradedReason?;
2103
+ /** Epoch-ms of the last successful provider sync, if any. */
2104
+ private lastSyncedAt?;
2069
2105
  private constructor();
2070
2106
  /**
2071
2107
  * Static factory method for creating a new ContractManager.
@@ -2077,6 +2113,15 @@ declare class ContractManager implements IContractManager {
2077
2113
  * @param config ContractManagerConfig
2078
2114
  */
2079
2115
  static create(config: ContractManagerConfig): Promise<ContractManager>;
2116
+ /**
2117
+ * Latest provider-sync health. See {@link ContractSyncState}. Degradation is
2118
+ * recorded by {@link initialize}, {@link getContractsWithVtxos}, and
2119
+ * {@link createContract}; it flips back to `online` on the next successful
2120
+ * sync. Purely a freshness signal — not a source of truth for wallet data.
2121
+ */
2122
+ getSyncState(): ContractSyncState;
2123
+ private markSyncOnline;
2124
+ private markSyncDegraded;
2080
2125
  private initialize;
2081
2126
  /**
2082
2127
  * Delta-sync the full watched set and reconcile the pending frontier.
@@ -3134,6 +3179,36 @@ declare function boardingResolver(): ActivityResolver;
3134
3179
  /** Default registry with SDK built-ins. */
3135
3180
  declare function createDefaultActivityRegistry(): ActivityRegistry;
3136
3181
 
3182
+ /**
3183
+ * A source of unilateral-exit chain data for a set of VTXOs. Sources are tried
3184
+ * in order by the resolver; a source returns `null` (chain) or omits keys (psbts)
3185
+ * for data it cannot supply — a "miss" — and the resolver falls through.
3186
+ */
3187
+ interface ExitDataSource {
3188
+ readonly name: string;
3189
+ /** Full ancestry chain for a vtxo (all pages merged), or null on a miss. */
3190
+ getVtxoChain(vtxo: Outpoint): Promise<ChainTx[] | null>;
3191
+ /** Base64 PSBTs this source has, keyed by (unsigned) txid. Absent key = miss. */
3192
+ getVirtualTxs(txids: string[]): Promise<Map<string, string>>;
3193
+ }
3194
+ /** Reads exit chain data through an ordered chain of sources. */
3195
+ interface ExitChainResolver {
3196
+ getVtxoChain(vtxo: Outpoint): Promise<ChainTx[]>;
3197
+ getVirtualTxs(txids: string[]): Promise<string[]>;
3198
+ }
3199
+ /**
3200
+ * Assemble the standard exit-data resolver: local repo (if configured) → any
3201
+ * extra sources (e.g. a future provider) → indexer. Read-through persists to the
3202
+ * repository. With no repository this is exactly the indexer path (a no-op seam).
3203
+ */
3204
+ declare function createExitChainResolver(params: {
3205
+ indexer: IndexerProvider;
3206
+ repository?: VirtualTxRepository;
3207
+ extraSources?: ExitDataSource[];
3208
+ }): ExitChainResolver;
3209
+
3210
+ type ExitCaptureMode = "lite" | "full";
3211
+
3137
3212
  /**
3138
3213
  * Wallet receive-address strategy.
3139
3214
  *
@@ -3346,6 +3421,19 @@ type StorageConfig = {
3346
3421
  * option as experimental until those paths land. Absent ⇒ no-op.
3347
3422
  */
3348
3423
  virtualTxRepository?: VirtualTxRepository;
3424
+ /**
3425
+ * Optional exit-data capture settings (only in effect when
3426
+ * `virtualTxRepository` is set). `mode` "lite" (default) stores structure
3427
+ * only; "full" stores PSBTs so a unilateral exit needs no Ark indexer.
3428
+ * `minExitWorthSats` (default 1000) skips dust. `sources` are extra
3429
+ * `ExitDataSource`s (e.g. a wallet-provider) tried before the indexer for
3430
+ * both capture and exit reads.
3431
+ */
3432
+ exitDataCapture?: {
3433
+ mode?: ExitCaptureMode;
3434
+ minExitWorthSats?: number;
3435
+ sources?: ExitDataSource[];
3436
+ };
3349
3437
  };
3350
3438
  /**
3351
3439
  * Provider class constructor interface for dependency injection.
@@ -4694,4 +4782,4 @@ declare namespace ProtoTypes {
4694
4782
  export { };
4695
4783
  }
4696
4784
 
4697
- export { ContractManager as $, type ArkTransaction as A, type BatchStartedEvent as B, type ContractRepository as C, type TreeTxEvent as D, type ExtendedVirtualCoin as E, type TreeSignatureEvent as F, type GetVtxosFilter as G, type DescriptorProvider as H, type IWallet as I, type IReadonlyWallet as J, type ReadonlyIdentity as K, type DelegateProvider as L, type ReadonlyWalletConfig as M, type Network as N, type OnchainProvider as O, type IntentRepository as P, type VirtualTxRepository as Q, type Recipient as R, type SendBitcoinParams as S, type TxNotification as T, type IReadonlyAssetManager as U, VtxoScript as V, type WalletRepository as W, type NetworkName as X, type ArkInfo as Y, ArkAddress as Z, type Coin as _, type Identity as a, type ContractEventCallback as a$, CSVMultisigTapscript as a0, type SettlementConfig as a1, VtxoManager as a2, type SignerSession as a3, type SignedIntent as a4, Intent as a5, type VtxoRepositoryKey as a6, type WalletState as a7, type ContractFilter as a8, type ArkIntent as a9, type IssuanceResult as aA, type DelegateInfo as aB, type MigrationGlobalSkipReason as aC, type MigrationLegSkipReason as aD, type SignerStatus as aE, type StorageConfig as aF, type IVtxoManager as aG, type ExplorerTransaction as aH, type EncodedVtxoScript as aI, type Status as aJ, type ChainTx as aK, type PathContext as aL, type ActivityIntent as aM, type ActivityResolver as aN, type ArkIntentState as aO, type ArkTapscript as aP, type Asset as aQ, type AssetMetadata as aR, type BaseWalletConfig as aS, type BatchInfo as aT, type BatchSignableIdentity as aU, CLTVMultisigTapscript as aV, ChainTxType as aW, type CommitmentTx as aX, ConditionCSVMultisigTapscript as aY, ConditionMultisigTapscript as aZ, type ContractBalance as a_, type IntentFilter as aa, type Outpoint as ab, type VirtualTx as ac, type VtxoBranch as ad, ChainedTxType as ae, type DescriptorSigningRequest as af, Transaction as ag, type IntentFeeConfig as ah, type OffchainInput as ai, FeeAmount as aj, type OnchainInput as ak, type FeeOutput as al, type ContractWatcherConfig as am, type FeeInfo as an, type CreateContractParams as ao, type GetContractsFilter as ap, type GetSpendablePathsOptions as aq, type GetAllSpendingPathsOptions as ar, type IssuanceParams as as, type ReissuanceParams as at, type BurnParams as au, type RenewVtxosOptions as av, type ContractWithVtxos as aw, type PathSelection as ax, type ContractEvent as ay, type AssetDetails as az, type WalletConfig as b, createDefaultActivityRegistry as b$, type ContractHandler as b0, type ContractManagerConfig as b1, type ContractState as b2, type ContractVtxo as b3, ContractWatcher as b4, DelegateManagerImpl as b5, type DelegateOptions as b6, DelegatorManagerImpl as b7, type DelegatorProvider as b8, type DeprecatedSignerMigrationReport as b9, type ScanContractsOptions as bA, type ScanResult as bB, type ScheduledSession as bC, SettlementEventType as bD, type SignRequest as bE, type SignerClassification as bF, type SignerSet as bG, type SubscriptionEvent as bH, type SubscriptionHeartbeat as bI, type TapLeaves as bJ, TapTreeCoder as bK, TapscriptType as bL, type TreeNonces as bM, type TreePartialSigs as bN, type Tx as bO, type TxHistoryRecord as bP, type TxKey as bQ, type TxTreeNode as bR, TxType as bS, type VirtualStatus as bT, type Vtxo as bU, type VtxoChain as bV, type VtxoType as bW, type WalletMode as bX, boardingResolver as bY, classifyAgainstSignerSet as bZ, classifyContractSigner as b_, type DeprecatedSignerReport as ba, DigestMismatchError as bb, type Discoverable as bc, type DiscoveredContract as bd, type DiscoveryDeps as be, ESPLORA_URL as bf, EsploraProvider as bg, type ExtendedContractVtxo as bh, type GroupMembership as bi, type HandlerError as bj, type IDelegatorManager as bk, INTENT_TERMINAL_STATES as bl, IndexerTxType as bm, type KnownMetadata as bn, type MigrateDeprecatedSignerOptions as bo, type MigrationLegReport as bp, type MigrationVtxoRef as bq, MultisigTapscript as br, type Nonces as bs, type Output as bt, type PageResponse as bu, type PaginationOptions as bv, PartialSig as bw, type ProviderClass as bx, RestDelegateProvider as by, RestDelegatorProvider as bz, type WalletBalance as c, decodeTapscript as c0, getNetwork as c1, getSequence as c2, isBatchSignable as c3, isCooperativelyMigratable as c4, isDiscoverable as c5, isExpired as c6, isRecoverable as c7, isSpendable as c8, isSubdust as c9, isTerminalIntentState as ca, isVtxoExpiringSoon as cb, networks as cc, signerSetFromInfo as cd, toXOnlySignerHex as ce, type ExtendedCoin as d, ActivityRegistry as e, type Activity as f, type IContractManager as g, type IDelegateManager as h, type SettleParams as i, type SettlementEvent as j, type IAssetManager as k, RestArkProvider as l, RestIndexerProvider as m, type SubscriptionResponse as n, type ArkProvider as o, type IndexerProvider as p, type RelativeTimelock as q, type TapLeafScript as r, type VirtualCoin as s, type Contract as t, type TreeSigningStartedEvent as u, TxTree as v, type TreeNoncesEvent as w, type BatchFinalizationEvent as x, type BatchFinalizedEvent as y, type BatchFailedEvent as z };
4785
+ export { type ArkInfo as $, type ArkTransaction as A, type BatchStartedEvent as B, type ContractRepository as C, type TreeTxEvent as D, type ExtendedVirtualCoin as E, type TreeSignatureEvent as F, type GetVtxosFilter as G, type DescriptorProvider as H, type IWallet as I, type IReadonlyWallet as J, type ReadonlyIdentity as K, type DelegateProvider as L, type ReadonlyWalletConfig as M, type Network as N, type OnchainProvider as O, type IntentRepository as P, type VirtualTxRepository as Q, type Recipient as R, type SendBitcoinParams as S, type TxNotification as T, type ExitCaptureMode as U, VtxoScript as V, type WalletRepository as W, type ExitDataSource as X, type IReadonlyAssetManager as Y, type ContractSyncState as Z, type NetworkName as _, type Identity as a, ConditionCSVMultisigTapscript as a$, ArkAddress as a0, type Coin as a1, ContractManager as a2, CSVMultisigTapscript as a3, type SettlementConfig as a4, VtxoManager as a5, type SignerSession as a6, type SignedIntent as a7, Intent as a8, type VtxoRepositoryKey as a9, type PathSelection as aA, type ContractEvent as aB, type AssetDetails as aC, type IssuanceResult as aD, type DelegateInfo as aE, type MigrationGlobalSkipReason as aF, type MigrationLegSkipReason as aG, type SignerStatus as aH, type StorageConfig as aI, type IVtxoManager as aJ, type ExplorerTransaction as aK, type EncodedVtxoScript as aL, type Status as aM, type ChainTx as aN, type PathContext as aO, type ActivityIntent as aP, type ActivityResolver as aQ, type ArkIntentState as aR, type ArkTapscript as aS, type Asset as aT, type AssetMetadata as aU, type BaseWalletConfig as aV, type BatchInfo as aW, type BatchSignableIdentity as aX, CLTVMultisigTapscript as aY, ChainTxType as aZ, type CommitmentTx as a_, type WalletState as aa, type ContractFilter as ab, type ArkIntent as ac, type IntentFilter as ad, type Outpoint as ae, type VirtualTx as af, type VtxoBranch as ag, ChainedTxType as ah, type DescriptorSigningRequest as ai, Transaction as aj, type IntentFeeConfig as ak, type OffchainInput as al, FeeAmount as am, type OnchainInput as an, type FeeOutput as ao, type ContractWatcherConfig as ap, type FeeInfo as aq, type CreateContractParams as ar, type GetContractsFilter as as, type GetSpendablePathsOptions as at, type GetAllSpendingPathsOptions as au, type IssuanceParams as av, type ReissuanceParams as aw, type BurnParams as ax, type RenewVtxosOptions as ay, type ContractWithVtxos as az, type WalletConfig as b, type WalletMode as b$, ConditionMultisigTapscript as b0, type ContractBalance as b1, type ContractEventCallback as b2, type ContractHandler as b3, type ContractManagerConfig as b4, type ContractState as b5, type ContractVtxo as b6, ContractWatcher as b7, DelegateManagerImpl as b8, type DelegateOptions as b9, PartialSig as bA, type ProviderClass as bB, RestDelegateProvider as bC, RestDelegatorProvider as bD, type ScanContractsOptions as bE, type ScanResult as bF, type ScheduledSession as bG, SettlementEventType as bH, type SignRequest as bI, type SignerClassification as bJ, type SignerSet as bK, type SubscriptionEvent as bL, type SubscriptionHeartbeat as bM, type TapLeaves as bN, TapTreeCoder as bO, TapscriptType as bP, type TreeNonces as bQ, type TreePartialSigs as bR, type Tx as bS, type TxHistoryRecord as bT, type TxKey as bU, type TxTreeNode as bV, TxType as bW, type VirtualStatus as bX, type Vtxo as bY, type VtxoChain as bZ, type VtxoType as b_, DelegatorManagerImpl as ba, type DelegatorProvider as bb, type DeprecatedSignerMigrationReport as bc, type DeprecatedSignerReport as bd, DigestMismatchError as be, type Discoverable as bf, type DiscoveredContract as bg, type DiscoveryDeps as bh, ESPLORA_URL as bi, EsploraProvider as bj, type ExitChainResolver as bk, type ExtendedContractVtxo as bl, type GroupMembership as bm, type HandlerError as bn, type IDelegatorManager as bo, INTENT_TERMINAL_STATES as bp, IndexerTxType as bq, type KnownMetadata as br, type MigrateDeprecatedSignerOptions as bs, type MigrationLegReport as bt, type MigrationVtxoRef as bu, MultisigTapscript as bv, type Nonces as bw, type Output as bx, type PageResponse as by, type PaginationOptions as bz, type WalletBalance as c, boardingResolver as c0, classifyAgainstSignerSet as c1, classifyContractSigner as c2, createDefaultActivityRegistry as c3, createExitChainResolver as c4, decodeTapscript as c5, getNetwork as c6, getSequence as c7, isBatchSignable as c8, isCooperativelyMigratable as c9, isDiscoverable as ca, isExpired as cb, isRecoverable as cc, isSpendable as cd, isSubdust as ce, isTerminalIntentState as cf, isVtxoExpiringSoon as cg, networks as ch, signerSetFromInfo as ci, toXOnlySignerHex as cj, type ExtendedCoin as d, ActivityRegistry as e, type Activity as f, type IContractManager as g, type IDelegateManager as h, type SettleParams as i, type SettlementEvent as j, type IAssetManager as k, RestArkProvider as l, RestIndexerProvider as m, type SubscriptionResponse as n, type ArkProvider as o, type IndexerProvider as p, type RelativeTimelock as q, type TapLeafScript as r, type VirtualCoin as s, type Contract as t, type TreeSigningStartedEvent as u, TxTree as v, type TreeNoncesEvent as w, type BatchFinalizationEvent as x, type BatchFinalizedEvent as y, type BatchFailedEvent as z };
@@ -1,4 +1,4 @@
1
- import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-BSnslNmq.cjs';
1
+ import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-DOiyRuJa.cjs';
2
2
 
3
3
  /**
4
4
  * Minimal async key-value storage interface.
@@ -1,4 +1,4 @@
1
- import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-Djlhfgi1.js';
1
+ import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-BngWSFMi.js';
2
2
 
3
3
  /**
4
4
  * Minimal async key-value storage interface.
@@ -1,4 +1,4 @@
1
- import { RestArkProvider, isFetchTimeoutError, RestIndexerProvider, buildVersion, sdkVersion, fetch } from './chunk-763XHDAJ.js';
1
+ import { RestArkProvider, isFetchTimeoutError, RestIndexerProvider, buildVersion, sdkVersion, fetch } from './chunk-YBQV7XBC.js';
2
2
  import { DEFAULT_ARKADE_SERVER_URL } from './chunk-BE5MUB7T.js';
3
3
 
4
4
  // src/providers/expoUtils.ts
@@ -212,5 +212,5 @@ var ExpoIndexerProvider = class extends RestIndexerProvider {
212
212
  };
213
213
 
214
214
  export { ExpoArkProvider, ExpoIndexerProvider };
215
- //# sourceMappingURL=chunk-VKKLOT2E.js.map
216
- //# sourceMappingURL=chunk-VKKLOT2E.js.map
215
+ //# sourceMappingURL=chunk-BOA4SHCD.js.map
216
+ //# sourceMappingURL=chunk-BOA4SHCD.js.map