@arkade-os/sdk 0.4.20 → 0.4.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,12 @@
1
+ export type ManagedEventSourceIterator = AsyncGenerator<MessageEvent, void, unknown> & {
2
+ close(): void;
3
+ };
1
4
  /**
2
- * Creates an async iterator over EventSource messages that attaches listeners
3
- * eagerly (at call time) rather than lazily (at first .next() call).
4
- * This ensures events are buffered immediately, preventing race conditions
5
- * where events arrive before iteration begins.
5
+ * Creates a close-aware EventSource async iterator.
6
+ *
7
+ * Listeners attach eagerly so events are buffered before the first next() call.
8
+ * close() closes the EventSource, removes listeners, and wakes any pending
9
+ * next() even when the browser does not emit an error from EventSource.close().
6
10
  */
7
- export declare function eventSourceIterator(eventSource: EventSource): AsyncGenerator<MessageEvent, void, unknown>;
11
+ export declare function eventSourceIterator(eventSource: EventSource): ManagedEventSourceIterator;
8
12
  export declare function isEventSourceError(error: unknown): error is Error;
@@ -8,7 +8,7 @@ import { ArkProvider, SettlementEvent, SignedIntent } from "../providers/ark";
8
8
  import { SignerSession } from "../tree/signingSession";
9
9
  import { Identity, ReadonlyIdentity } from "../identity";
10
10
  import { ArkTransaction, Coin, ExtendedCoin, ExtendedVirtualCoin, GetVtxosFilter, IAssetManager, IReadonlyAssetManager, IReadonlyWallet, IWallet, ReadonlyWalletConfig, Recipient, SendBitcoinParams, SettleParams, WalletBalance, WalletConfig } from ".";
11
- import { CSVMultisigTapscript } from "../script/tapscript";
11
+ import { CSVMultisigTapscript, RelativeTimelock } from "../script/tapscript";
12
12
  import { SettlementConfig, VtxoManager } from "./vtxo-manager";
13
13
  import { Intent } from "../intent";
14
14
  import { IndexerProvider } from "../providers/indexer";
@@ -44,9 +44,10 @@ export declare class ReadonlyWallet implements IReadonlyWallet {
44
44
  protected readonly watcherConfig?: ReadonlyWalletConfig["watcherConfig"];
45
45
  private readonly _assetManager;
46
46
  private _syncVtxosInflight?;
47
+ readonly walletContractTimelocks: RelativeTimelock[];
47
48
  protected _pendingSpendOutpoints: Set<string>;
48
49
  get assetManager(): IReadonlyAssetManager;
49
- protected constructor(identity: ReadonlyIdentity, network: Network, onchainProvider: OnchainProvider, indexerProvider: IndexerProvider, arkServerPublicKey: Bytes, offchainTapscript: DefaultVtxo.Script | DelegateVtxo.Script, boardingTapscript: DefaultVtxo.Script, dustAmount: bigint, walletRepository: WalletRepository, contractRepository: ContractRepository, delegatorProvider?: DelegatorProvider | undefined, watcherConfig?: ReadonlyWalletConfig["watcherConfig"]);
50
+ protected constructor(identity: ReadonlyIdentity, network: Network, onchainProvider: OnchainProvider, indexerProvider: IndexerProvider, arkServerPublicKey: Bytes, offchainTapscript: DefaultVtxo.Script | DelegateVtxo.Script, boardingTapscript: DefaultVtxo.Script, dustAmount: bigint, walletRepository: WalletRepository, contractRepository: ContractRepository, delegatorProvider?: DelegatorProvider | undefined, watcherConfig?: ReadonlyWalletConfig["watcherConfig"], walletContractTimelocks?: RelativeTimelock[]);
50
51
  /**
51
52
  * Protected helper to set up shared wallet configuration.
52
53
  * Extracts common logic used by both ReadonlyWallet.create() and Wallet.create().
@@ -65,6 +66,7 @@ export declare class ReadonlyWallet implements IReadonlyWallet {
65
66
  contractRepository: ContractRepository;
66
67
  info: import("../providers/ark").ArkInfo;
67
68
  delegatorProvider: DelegatorProvider | undefined;
69
+ walletContractTimelocks: RelativeTimelock[];
68
70
  }>;
69
71
  /**
70
72
  * Create a readonly wallet for querying balances, addresses, and history.
@@ -75,8 +77,8 @@ export declare class ReadonlyWallet implements IReadonlyWallet {
75
77
  static create(config: ReadonlyWalletConfig): Promise<ReadonlyWallet>;
76
78
  get arkAddress(): ArkAddress;
77
79
  /**
78
- * Get the contract script for the wallet's default address.
79
- * This is the pkScript hex, used to identify the wallet in ContractManager.
80
+ * Get the pkScript hex for the wallet's primary offchain address.
81
+ * For the full wallet-owned script set registered in ContractManager, use getWalletScripts().
80
82
  */
81
83
  get defaultContractScript(): string;
82
84
  /** Returns the wallet's Arkade address. */
@@ -125,7 +127,6 @@ export declare class ReadonlyWallet implements IReadonlyWallet {
125
127
  /**
126
128
  * Get all pkScript hex strings for the wallet's own addresses
127
129
  * (both delegate and non-delegate, current and historical).
128
- * Falls back to only the current script if ContractManager is not yet initialized.
129
130
  */
130
131
  getWalletScripts(): Promise<string[]>;
131
132
  /**
@@ -229,7 +230,7 @@ export declare class Wallet extends ReadonlyWallet implements IWallet {
229
230
  readonly settlementConfig: SettlementConfig | false;
230
231
  protected constructor(identity: Identity, network: Network, onchainProvider: OnchainProvider, arkProvider: ArkProvider, indexerProvider: IndexerProvider, arkServerPublicKey: Bytes, offchainTapscript: DefaultVtxo.Script | DelegateVtxo.Script, boardingTapscript: DefaultVtxo.Script, serverUnrollScript: CSVMultisigTapscript.Type, forfeitOutputScript: Bytes, forfeitPubkey: Bytes, dustAmount: bigint, walletRepository: WalletRepository, contractRepository: ContractRepository,
231
232
  /** @deprecated Use settlementConfig */
232
- renewalConfig?: WalletConfig["renewalConfig"], delegatorProvider?: DelegatorProvider, watcherConfig?: WalletConfig["watcherConfig"], settlementConfig?: WalletConfig["settlementConfig"]);
233
+ renewalConfig?: WalletConfig["renewalConfig"], delegatorProvider?: DelegatorProvider, watcherConfig?: WalletConfig["watcherConfig"], settlementConfig?: WalletConfig["settlementConfig"], walletContractTimelocks?: RelativeTimelock[]);
233
234
  get assetManager(): IAssetManager;
234
235
  getVtxoManager(): Promise<VtxoManager>;
235
236
  dispose(): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkade-os/sdk",
3
- "version": "0.4.20",
3
+ "version": "0.4.21",
4
4
  "description": "TypeScript SDK for building Bitcoin wallets using the Arkade protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",