react-native-rgb 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +165 -0
  3. package/Rgb.podspec +23 -0
  4. package/android/build.gradle +80 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/java/com/rgb/AppConstants.kt +57 -0
  8. package/android/src/main/java/com/rgb/RgbModule.kt +1959 -0
  9. package/android/src/main/java/com/rgb/RgbPackage.kt +33 -0
  10. package/android/src/main/java/com/rgb/WalletStore.kt +49 -0
  11. package/ios/AppConstants.swift +71 -0
  12. package/ios/Rgb.h +5 -0
  13. package/ios/Rgb.mm +1740 -0
  14. package/ios/Rgb.swift +1916 -0
  15. package/ios/RgbLib.swift +7615 -0
  16. package/ios/WalletStore.swift +61 -0
  17. package/lib/module/Interfaces.js +65 -0
  18. package/lib/module/Interfaces.js.map +1 -0
  19. package/lib/module/NativeRgb.js +5 -0
  20. package/lib/module/NativeRgb.js.map +1 -0
  21. package/lib/module/RgbError.js +65 -0
  22. package/lib/module/RgbError.js.map +1 -0
  23. package/lib/module/Wallet.js +854 -0
  24. package/lib/module/Wallet.js.map +1 -0
  25. package/lib/module/index.js +39 -0
  26. package/lib/module/index.js.map +1 -0
  27. package/lib/module/package.json +1 -0
  28. package/lib/typescript/package.json +1 -0
  29. package/lib/typescript/src/Interfaces.d.ts +390 -0
  30. package/lib/typescript/src/Interfaces.d.ts.map +1 -0
  31. package/lib/typescript/src/NativeRgb.d.ts +417 -0
  32. package/lib/typescript/src/NativeRgb.d.ts.map +1 -0
  33. package/lib/typescript/src/RgbError.d.ts +28 -0
  34. package/lib/typescript/src/RgbError.d.ts.map +1 -0
  35. package/lib/typescript/src/Wallet.d.ts +648 -0
  36. package/lib/typescript/src/Wallet.d.ts.map +1 -0
  37. package/lib/typescript/src/index.d.ts +28 -0
  38. package/lib/typescript/src/index.d.ts.map +1 -0
  39. package/package.json +174 -0
  40. package/src/Interfaces.ts +376 -0
  41. package/src/NativeRgb.ts +630 -0
  42. package/src/RgbError.ts +84 -0
  43. package/src/Wallet.ts +1118 -0
  44. package/src/index.tsx +46 -0
@@ -0,0 +1,648 @@
1
+ import * as Interfaces from './Interfaces';
2
+ export interface WalletOptions {
3
+ network?: Interfaces.BitcoinNetwork;
4
+ supportedSchemas?: Interfaces.AssetSchema[];
5
+ maxAllocationsPerUtxo?: number;
6
+ vanillaKeychain?: number;
7
+ }
8
+ export declare class Wallet {
9
+ private walletId;
10
+ private keys;
11
+ private network;
12
+ private supportedSchemas;
13
+ private maxAllocationsPerUtxo;
14
+ private vanillaKeychain;
15
+ private initializationPromise;
16
+ /**
17
+ * Creates a new Wallet instance with the provided keys and configuration.
18
+ * @param keys - The cryptographic keys required for wallet operations (mnemonic, master fingerprint, xPubs)
19
+ * @param options - Optional wallet configuration settings
20
+ * @param options.network - The Bitcoin network to use (defaults to 'TESTNET')
21
+ * @param options.supportedSchemas - List of RGB asset schemas the wallet supports (defaults to CFA, NIA, UDA)
22
+ * @param options.maxAllocationsPerUtxo - Maximum number of RGB allocations allowed per UTXO (defaults to 1)
23
+ * @param options.vanillaKeychain - Keychain index for the vanilla-side of the wallet (defaults to 0)
24
+ */
25
+ constructor(keys: Interfaces.Keys, options?: WalletOptions);
26
+ /**
27
+ * Ensures the wallet is initialized before performing operations.
28
+ * This method is called automatically by other wallet methods and handles
29
+ * concurrent initialization attempts safely.
30
+ * @returns Promise that resolves when wallet initialization is complete
31
+ */
32
+ private ensureInitialized;
33
+ /**
34
+ * Connects the wallet to an online indexer service for syncing and transaction operations.
35
+ * Must be called before performing operations that require network connectivity.
36
+ * @param indexerUrl - The URL of the RGB indexer service to connect to
37
+ * @param skipConsistencyCheck - If true, skips the consistency check with the indexer (default: false)
38
+ * @returns Promise that resolves when the wallet is successfully connected online
39
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
40
+ * - The wallet is not found
41
+ * - The indexer URL is invalid or unreachable
42
+ * - Network connectivity issues occur
43
+ * - The consistency check fails (if skipConsistencyCheck is false)
44
+ */
45
+ goOnline(indexerUrl: string, skipConsistencyCheck?: boolean): Promise<void>;
46
+ /**
47
+ * Retrieves the Bitcoin balance for both vanilla and colored wallets.
48
+ * Returns settled, future, and spendable balances for each wallet side.
49
+ * @param skipSync - If true, skips syncing with the indexer before calculating balance (default: false)
50
+ * @returns Promise resolving to BtcBalance containing vanilla and colored wallet balances
51
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
52
+ * - The wallet is not found
53
+ * - The wallet is not online
54
+ * - Sync operation fails (if skipSync is false)
55
+ */
56
+ getBtcBalance(skipSync?: boolean): Promise<Interfaces.BtcBalance>;
57
+ /**
58
+ * Closes the wallet and releases all associated resources.
59
+ * After calling this method, the wallet instance can no longer be used for operations.
60
+ * @returns Promise that resolves when the wallet has been successfully closed
61
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
62
+ * - The wallet is not found
63
+ * - An error occurs while closing the wallet
64
+ */
65
+ close(): Promise<void>;
66
+ /**
67
+ * Checks whether the wallet has been initialized.
68
+ * @returns True if the wallet is initialized and ready to use, false otherwise
69
+ */
70
+ isInitialized(): boolean;
71
+ /**
72
+ * Retrieves the internal wallet identifier.
73
+ * @returns The wallet ID number
74
+ * @throws Error if the wallet is not initialized
75
+ * @internal This method is for internal use only
76
+ */
77
+ private getWalletId;
78
+ /**
79
+ * Creates an encrypted backup of the wallet data to the specified location.
80
+ * The backup includes all wallet state necessary for full restoration.
81
+ * @param backupPath - The file path where the backup should be saved
82
+ * @param password - The encryption password for securing the backup file
83
+ * @returns Promise that resolves when the backup has been successfully created
84
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
85
+ * - The wallet is not found
86
+ * - The backup path is invalid or inaccessible
87
+ * - Encryption fails
88
+ * - File system errors occur
89
+ */
90
+ backup(backupPath: string, password: string): Promise<void>;
91
+ /**
92
+ * Checks whether a backup of the wallet has been created.
93
+ * @returns Promise resolving to true if a backup exists, false otherwise
94
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
95
+ * - The wallet is not found
96
+ * - An error occurs while checking backup status
97
+ */
98
+ backupInfo(): Promise<boolean>;
99
+ /**
100
+ * Creates a blinded UTXO for receiving RGB assets and generates an invoice.
101
+ * This method blinds an existing UTXO to maintain privacy when receiving assets.
102
+ * An optional asset ID can be specified to restrict the invoice to a specific asset.
103
+ * @param assetId - Optional asset ID to embed in the invoice (null accepts any asset)
104
+ * @param assignment - The type and amount of assignment to receive (FUNGIBLE, NON_FUNGIBLE, etc.)
105
+ * @param durationSeconds - Optional invoice expiration duration in seconds (null uses default, 0 means no expiration)
106
+ * @param transportEndpoints - Array of transport endpoint URLs (1-3 endpoints) for RGB data exchange (e.g., 'rpc://127.0.0.1')
107
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
108
+ * @returns Promise resolving to ReceiveData containing invoice, recipient ID, expiration, and batch transfer index
109
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
110
+ * - The wallet is not found
111
+ * - Invalid assignment parameters
112
+ * - Insufficient UTXOs available
113
+ * - Invalid transport endpoints
114
+ */
115
+ blindReceive(assetId: string | null, assignment: Interfaces.Assignment, durationSeconds: number | null, transportEndpoints: string[], minConfirmations: number): Promise<Interfaces.ReceiveData>;
116
+ /**
117
+ * Creates a Bitcoin address for receiving RGB assets via witness transaction and generates an invoice.
118
+ * This method generates a new address from the vanilla wallet for receiving assets.
119
+ * An optional asset ID can be specified to restrict the invoice to a specific asset.
120
+ * @param assetId - Optional asset ID to embed in the invoice (null accepts any asset)
121
+ * @param assignment - The type and amount of assignment to receive (FUNGIBLE, NON_FUNGIBLE, etc.)
122
+ * @param durationSeconds - Optional invoice expiration duration in seconds (null uses default, 0 means no expiration)
123
+ * @param transportEndpoints - Array of transport endpoint URLs (1-3 endpoints) for RGB data exchange (e.g., 'rpc://127.0.0.1')
124
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
125
+ * @returns Promise resolving to ReceiveData containing invoice, recipient ID, expiration, and batch transfer index
126
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
127
+ * - The wallet is not found
128
+ * - Invalid assignment parameters
129
+ * - Invalid transport endpoints
130
+ */
131
+ witnessReceive(assetId: string | null, assignment: Interfaces.Assignment, durationSeconds: number | null, transportEndpoints: string[], minConfirmations: number): Promise<Interfaces.ReceiveData>;
132
+ /**
133
+ * Creates new UTXOs for RGB operations in a single operation.
134
+ * UTXOs are necessary for receiving and managing RGB asset allocations.
135
+ * This method creates the PSBT, signs it, finalizes it, and broadcasts the transaction.
136
+ * @param upTo - If true, creates UTXOs until reaching the target count (ignores num parameter)
137
+ * @param num - Target number of UTXOs to create (required if upTo is false)
138
+ * @param size - Size in sats for each UTXO to create (required if upTo is false)
139
+ * @param feeRate - Transaction fee rate in sat/vbyte
140
+ * @param skipSync - If true, skips syncing with the indexer before creating UTXOs (default: false)
141
+ * @returns Promise resolving to the number of UTXOs successfully created
142
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
143
+ * - The wallet is not found
144
+ * - The wallet is not online
145
+ * - Insufficient funds for UTXO creation
146
+ * - Invalid fee rate
147
+ * - Sync operation fails (if skipSync is false)
148
+ */
149
+ createUtxos(upTo: boolean, num: number | null, size: number | null, feeRate: number, skipSync?: boolean): Promise<number>;
150
+ /**
151
+ * Begins the process of creating UTXOs by generating an unsigned PSBT.
152
+ * Use this method when you need to sign the transaction externally.
153
+ * Must be followed by createUtxosEnd to complete the operation.
154
+ * @param upTo - If true, creates UTXOs until reaching the target count (ignores num parameter)
155
+ * @param num - Target number of UTXOs to create (required if upTo is false)
156
+ * @param size - Size in sats for each UTXO to create (required if upTo is false)
157
+ * @param feeRate - Transaction fee rate in sat/vbyte
158
+ * @param skipSync - If true, skips syncing with the indexer before creating UTXOs (default: false)
159
+ * @returns Promise resolving to an unsigned PSBT string that needs to be signed externally
160
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
161
+ * - The wallet is not found
162
+ * - The wallet is not online
163
+ * - Insufficient funds for UTXO creation
164
+ * - Invalid fee rate
165
+ * - Sync operation fails (if skipSync is false)
166
+ */
167
+ createUtxosBegin(upTo: boolean, num: number | null, size: number | null, feeRate: number, skipSync?: boolean): Promise<string>;
168
+ /**
169
+ * Completes the UTXO creation process by finalizing and broadcasting a signed PSBT.
170
+ * This method should be called after createUtxosBegin and external signing.
171
+ * @param signedPsbt - The PSBT string that has been signed externally
172
+ * @param skipSync - If true, skips syncing with the indexer after processing (default: false)
173
+ * @returns Promise resolving to the number of UTXOs successfully created
174
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
175
+ * - The wallet is not found
176
+ * - The wallet is not online
177
+ * - Invalid or improperly signed PSBT
178
+ * - Transaction broadcast fails
179
+ * - Sync operation fails (if skipSync is false)
180
+ */
181
+ createUtxosEnd(signedPsbt: string, skipSync?: boolean): Promise<number>;
182
+ /**
183
+ * Deletes eligible failed transfers from the wallet database.
184
+ * Only transfers in FAILED status can be deleted. When batchTransferIdx is provided,
185
+ * only that specific batch transfer is deleted (if noAssetOnly is true, transfers with
186
+ * an associated asset ID will be rejected). When batchTransferIdx is null, all failed
187
+ * transfers are deleted (if noAssetOnly is true, transfers with asset IDs are skipped).
188
+ * @param batchTransferIdx - Optional specific batch transfer index to delete (null deletes all failed transfers)
189
+ * @param noAssetOnly - If true, only deletes transfers without associated asset IDs
190
+ * @returns Promise resolving to true if any transfers were deleted, false otherwise
191
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
192
+ * - The wallet is not found
193
+ * - Database operation fails
194
+ */
195
+ deleteTransfers(batchTransferIdx: number | null, noAssetOnly: boolean): Promise<boolean>;
196
+ /**
197
+ * Marks eligible transfers as failed in the wallet database.
198
+ * This is useful for cleaning up stuck or expired transfers. When batchTransferIdx
199
+ * is provided, only that batch transfer is marked as failed. When null, all eligible
200
+ * transfers are marked as failed (subject to noAssetOnly filter).
201
+ * @param batchTransferIdx - Optional specific batch transfer index to mark as failed (null marks all eligible)
202
+ * @param noAssetOnly - If true, only affects transfers without associated asset IDs
203
+ * @param skipSync - If true, skips syncing with the indexer before failing transfers (default: false)
204
+ * @returns Promise resolving to true if any transfers were marked as failed, false otherwise
205
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
206
+ * - The wallet is not found
207
+ * - The wallet is not online
208
+ * - Sync operation fails (if skipSync is false)
209
+ * - Database operation fails
210
+ */
211
+ failTransfers(batchTransferIdx: number | null, noAssetOnly: boolean, skipSync?: boolean): Promise<boolean>;
212
+ /**
213
+ * Drains all funds (Bitcoin and RGB assets) from the wallet to a specified address in a single operation.
214
+ * This method creates the PSBT, signs it, finalizes it, and broadcasts the transaction.
215
+ * When destroyAssets is true, RGB assets are destroyed rather than transferred.
216
+ * @param address - The Bitcoin address to send all funds to
217
+ * @param destroyAssets - If true, RGB assets are destroyed; if false, they are transferred if possible
218
+ * @param feeRate - Transaction fee rate in sat/vbyte
219
+ * @returns Promise resolving to the transaction ID of the drain transaction
220
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
221
+ * - The wallet is not found
222
+ * - The wallet is not online
223
+ * - Invalid Bitcoin address
224
+ * - Insufficient funds
225
+ * - Invalid fee rate
226
+ */
227
+ drainTo(address: string, destroyAssets: boolean, feeRate: number): Promise<string>;
228
+ /**
229
+ * Begins the drain operation by generating an unsigned PSBT.
230
+ * Use this method when you need to sign the transaction externally.
231
+ * Must be followed by drainToEnd to complete the operation.
232
+ * @param address - The Bitcoin address to send all funds to
233
+ * @param destroyAssets - If true, RGB assets are destroyed; if false, they are transferred if possible
234
+ * @param feeRate - Transaction fee rate in sat/vbyte
235
+ * @returns Promise resolving to an unsigned PSBT string that needs to be signed externally
236
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
237
+ * - The wallet is not found
238
+ * - The wallet is not online
239
+ * - Invalid Bitcoin address
240
+ * - Insufficient funds
241
+ * - Invalid fee rate
242
+ */
243
+ drainToBegin(address: string, destroyAssets: boolean, feeRate: number): Promise<string>;
244
+ /**
245
+ * Completes the drain operation by finalizing and broadcasting a signed PSBT.
246
+ * This method should be called after drainToBegin and external signing.
247
+ * @param signedPsbt - The PSBT string that has been signed externally
248
+ * @returns Promise resolving to the transaction ID of the drain transaction
249
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
250
+ * - The wallet is not found
251
+ * - The wallet is not online
252
+ * - Invalid or improperly signed PSBT
253
+ * - Transaction broadcast fails
254
+ */
255
+ drainToEnd(signedPsbt: string): Promise<string>;
256
+ /**
257
+ * Finalizes a partially signed Bitcoin transaction (PSBT).
258
+ * This completes the transaction by combining all signatures and preparing it for broadcast.
259
+ * @param signedPsbt - The PSBT string that has been signed (may be partially signed)
260
+ * @returns Promise resolving to the finalized PSBT string ready for broadcast
261
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
262
+ * - The wallet is not found
263
+ * - Invalid or improperly formatted PSBT
264
+ * - Insufficient signatures
265
+ */
266
+ finalizePsbt(signedPsbt: string): Promise<string>;
267
+ /**
268
+ * Signs a Bitcoin transaction (PSBT) with the wallet's keys.
269
+ * This method signs all inputs that the wallet can sign and returns the signed PSBT.
270
+ * @param unsignedPsbt - The unsigned PSBT string to sign
271
+ * @returns Promise resolving to the signed PSBT string
272
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
273
+ * - The wallet is not found
274
+ * - Invalid or improperly formatted PSBT
275
+ * - The wallet cannot sign the required inputs
276
+ */
277
+ signPsbt(unsignedPsbt: string): Promise<string>;
278
+ /**
279
+ * Generates and returns a new Bitcoin address from the vanilla wallet.
280
+ * Each call returns the next address in the derivation sequence.
281
+ * @returns Promise resolving to a new Bitcoin address string
282
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
283
+ * - The wallet is not found
284
+ * - Address generation fails
285
+ */
286
+ getAddress(): Promise<string>;
287
+ /**
288
+ * Retrieves the balance information for a specific RGB asset.
289
+ * Returns settled, future, and spendable balances for the asset.
290
+ * @param assetId - The RGB asset identifier to query balance for
291
+ * @returns Promise resolving to Balance containing settled, future, and spendable amounts
292
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
293
+ * - The wallet is not found
294
+ * - Invalid asset ID
295
+ * - Asset not found in wallet
296
+ */
297
+ getAssetBalance(assetId: string): Promise<Interfaces.Balance>;
298
+ /**
299
+ * Retrieves comprehensive metadata for a specific RGB asset.
300
+ * Includes information such as supply, precision, schema type, token data (for UDA), and more.
301
+ * @param assetId - The RGB asset identifier to retrieve metadata for
302
+ * @returns Promise resolving to AssetMetadata containing all asset information
303
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
304
+ * - The wallet is not found
305
+ * - Invalid asset ID
306
+ * - Asset not found in wallet
307
+ */
308
+ getAssetMetadata(assetId: string): Promise<Interfaces.AssetMetadata>;
309
+ /**
310
+ * Estimates the fee rate required for a transaction to be confirmed within a target number of blocks.
311
+ * @param blocks - The target number of blocks for confirmation
312
+ * @returns Promise resolving to the estimated fee rate in sat/vbyte
313
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
314
+ * - The wallet is not found
315
+ * - The wallet is not online
316
+ * - Fee estimation service unavailable
317
+ */
318
+ getFeeEstimation(blocks: number): Promise<number>;
319
+ /**
320
+ * Returns the file system path to the wallet's media directory.
321
+ * This directory stores media files associated with RGB assets (e.g., images for UDA tokens).
322
+ * @returns Promise resolving to the absolute path of the media directory
323
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
324
+ * - The wallet is not found
325
+ * - Media directory path cannot be determined
326
+ */
327
+ getMediaDir(): Promise<string>;
328
+ /**
329
+ * Retrieves the wallet configuration and metadata.
330
+ * Returns information such as network, supported schemas, xPubs, and wallet directory.
331
+ * @returns Promise resolving to WalletData containing all wallet configuration
332
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
333
+ * - The wallet is not found
334
+ * - Wallet data cannot be retrieved
335
+ */
336
+ getWalletData(): Promise<Interfaces.WalletData>;
337
+ /**
338
+ * Returns the file system path to the wallet's data directory.
339
+ * This directory contains all wallet files including the database and media files.
340
+ * @returns Promise resolving to the absolute path of the wallet directory
341
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
342
+ * - The wallet is not found
343
+ * - Wallet directory path cannot be determined
344
+ */
345
+ getWalletDir(): Promise<string>;
346
+ /**
347
+ * Inflates an Inflatable Fungible Asset (IFA) by minting additional supply in a single operation.
348
+ * This method creates the PSBT, signs it, finalizes it, and broadcasts the transaction.
349
+ * The asset must support inflation and you must have inflation rights.
350
+ * @param assetId - The IFA asset identifier to inflate
351
+ * @param inflationAmounts - Array of amounts to mint (each amount is allocated to a separate UTXO)
352
+ * @param feeRate - Transaction fee rate in sat/vbyte
353
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
354
+ * @returns Promise resolving to OperationResult containing the transaction ID and batch transfer index
355
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
356
+ * - The wallet is not found
357
+ * - The wallet is not online
358
+ * - Invalid asset ID
359
+ * - Asset does not support inflation
360
+ * - Insufficient inflation rights
361
+ * - Insufficient funds for fees
362
+ * - Invalid fee rate
363
+ */
364
+ inflate(assetId: string, inflationAmounts: number[], feeRate: number, minConfirmations: number): Promise<Interfaces.OperationResult>;
365
+ /**
366
+ * Begins the inflation process by generating an unsigned PSBT.
367
+ * Use this method when you need to sign the transaction externally.
368
+ * Must be followed by inflateEnd to complete the operation.
369
+ * @param assetId - The IFA asset identifier to inflate
370
+ * @param inflationAmounts - Array of amounts to mint (each amount is allocated to a separate UTXO)
371
+ * @param feeRate - Transaction fee rate in sat/vbyte
372
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
373
+ * @returns Promise resolving to an unsigned PSBT string that needs to be signed externally
374
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
375
+ * - The wallet is not found
376
+ * - The wallet is not online
377
+ * - Invalid asset ID
378
+ * - Asset does not support inflation
379
+ * - Insufficient inflation rights
380
+ * - Insufficient funds for fees
381
+ * - Invalid fee rate
382
+ */
383
+ inflateBegin(assetId: string, inflationAmounts: number[], feeRate: number, minConfirmations: number): Promise<string>;
384
+ /**
385
+ * Completes the inflation process by finalizing and broadcasting a signed PSBT.
386
+ * This method should be called after inflateBegin and external signing.
387
+ * @param signedPsbt - The PSBT string that has been signed externally
388
+ * @returns Promise resolving to OperationResult containing the transaction ID and batch transfer index
389
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
390
+ * - The wallet is not found
391
+ * - The wallet is not online
392
+ * - Invalid or improperly signed PSBT
393
+ * - Transaction broadcast fails
394
+ */
395
+ inflateEnd(signedPsbt: string): Promise<Interfaces.OperationResult>;
396
+ /**
397
+ * Issues a new Collectible Fungible Asset (CFA) with the specified parameters.
398
+ * CFA assets are fungible tokens that can have associated media files.
399
+ * Each amount in the amounts array will be allocated to a separate UTXO.
400
+ * @param name - The name of the asset
401
+ * @param details - Optional detailed description of the asset
402
+ * @param precision - The decimal precision (divisibility) of the asset (0-18)
403
+ * @param amounts - Array of initial amounts to issue (each allocated to a separate UTXO)
404
+ * @param filePath - Optional path to a media file to associate with the asset
405
+ * @returns Promise resolving to AssetCfa containing the asset ID and details
406
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
407
+ * - The wallet is not found
408
+ * - Invalid asset parameters (name, precision, amounts)
409
+ * - Media file not found or invalid (if filePath provided)
410
+ * - Insufficient UTXOs for allocation
411
+ */
412
+ issueAssetCfa(name: string, details: string | null, precision: number, amounts: number[], filePath: string | null): Promise<Interfaces.AssetCfa>;
413
+ /**
414
+ * Issues a new Inflatable Fungible Asset (IFA) with the specified parameters.
415
+ * IFA assets are fungible tokens that support inflation and replace rights.
416
+ * The inflationAmounts array can be empty. If provided, the sum of inflationAmounts
417
+ * and amounts cannot exceed the maximum u64 value. replaceRightsNum can be 0 or
418
+ * represent the number of replace rights to create.
419
+ * @param ticker - The ticker symbol of the asset (e.g., 'BTC', 'USD')
420
+ * @param name - The name of the asset
421
+ * @param precision - The decimal precision (divisibility) of the asset (0-18)
422
+ * @param amounts - Array of initial amounts to issue (each allocated to a separate UTXO)
423
+ * @param inflationAmounts - Array of inflation amounts to issue initially (each allocated to a separate UTXO)
424
+ * @param replaceRightsNum - Number of replace rights to create (can be 0)
425
+ * @param rejectListUrl - Optional URL to a reject list for the asset
426
+ * @returns Promise resolving to AssetIfa containing the asset ID and details
427
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
428
+ * - The wallet is not found
429
+ * - Invalid asset parameters (ticker, name, precision, amounts)
430
+ * - Invalid inflation amounts or replace rights configuration
431
+ * - Invalid reject list URL (if provided)
432
+ * - Insufficient UTXOs for allocation
433
+ */
434
+ issueAssetIfa(ticker: string, name: string, precision: number, amounts: number[], inflationAmounts: number[], replaceRightsNum: number, rejectListUrl: string | null): Promise<Interfaces.AssetIfa>;
435
+ /**
436
+ * Issues a new Non-Inflatable Asset (NIA) with the specified parameters.
437
+ * NIA assets are simple fungible tokens that cannot be inflated after issuance.
438
+ * Each amount in the amounts array will be allocated to a separate UTXO.
439
+ * @param ticker - The ticker symbol of the asset (e.g., 'BTC', 'USD')
440
+ * @param name - The name of the asset
441
+ * @param precision - The decimal precision (divisibility) of the asset (0-18)
442
+ * @param amounts - Array of initial amounts to issue (each allocated to a separate UTXO)
443
+ * @returns Promise resolving to AssetNia containing the asset ID and details
444
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
445
+ * - The wallet is not found
446
+ * - Invalid asset parameters (ticker, name, precision, amounts)
447
+ * - Insufficient UTXOs for allocation
448
+ */
449
+ issueAssetNia(ticker: string, name: string, precision: number, amounts: number[]): Promise<Interfaces.AssetNia>;
450
+ /**
451
+ * Issues a new Unique Digital Asset (UDA) with the specified parameters.
452
+ * UDA assets are non-fungible tokens that represent unique digital items.
453
+ * Each UDA can have a primary media file and multiple attachment files.
454
+ * @param ticker - The ticker symbol of the asset
455
+ * @param name - The name of the asset
456
+ * @param details - Optional detailed description of the asset
457
+ * @param precision - The decimal precision (divisibility) of the asset (typically 0 for NFTs)
458
+ * @param mediaFilePath - Optional path to the primary media file for the asset
459
+ * @param attachmentsFilePaths - Array of paths to additional attachment files (max 20)
460
+ * @returns Promise resolving to AssetUda containing the asset ID and details
461
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
462
+ * - The wallet is not found
463
+ * - Invalid asset parameters (ticker, name, precision)
464
+ * - Media file not found or invalid (if mediaFilePath provided)
465
+ * - Attachment files not found or invalid (if attachmentsFilePaths provided)
466
+ * - Too many attachment files (max 20)
467
+ * - Insufficient UTXOs for allocation
468
+ */
469
+ issueAssetUda(ticker: string, name: string, details: string | null, precision: number, mediaFilePath: string | null, attachmentsFilePaths: string[]): Promise<Interfaces.AssetUda>;
470
+ /**
471
+ * Lists all RGB assets known to the wallet, optionally filtered by schema type.
472
+ * Returns assets grouped by schema (NIA, UDA, CFA, IFA). If filterAssetSchemas is empty,
473
+ * all assets are returned. Otherwise, only assets matching the provided schemas are returned.
474
+ * @param filterAssetSchemas - Array of asset schemas to filter by (empty array returns all schemas)
475
+ * @returns Promise resolving to Assets object containing arrays of assets grouped by schema
476
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
477
+ * - The wallet is not found
478
+ * - Invalid schema filter values
479
+ * - Database query fails
480
+ */
481
+ listAssets(filterAssetSchemas: Interfaces.AssetSchema[]): Promise<Interfaces.Assets>;
482
+ /**
483
+ * Lists all Bitcoin transactions known to the wallet.
484
+ * Includes transactions created for RGB operations (sends, UTXO creation, drains) as well as regular Bitcoin transactions.
485
+ * @param skipSync - If true, skips syncing with the indexer before listing transactions (default: false)
486
+ * @returns Promise resolving to an array of Transaction objects
487
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
488
+ * - The wallet is not found
489
+ * - Sync operation fails (if skipSync is false)
490
+ * - Database query fails
491
+ */
492
+ listTransactions(skipSync?: boolean): Promise<Interfaces.Transaction[]>;
493
+ /**
494
+ * Lists all RGB transfers for a specific asset or all assets.
495
+ * Returns user-driven transfers including incoming, outgoing, issuance, and inflation transfers.
496
+ * @param assetId - Optional asset ID to filter transfers for a specific asset (null returns all transfers)
497
+ * @returns Promise resolving to an array of Transfer objects
498
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
499
+ * - The wallet is not found
500
+ * - Invalid asset ID (if provided)
501
+ * - Database query fails
502
+ */
503
+ listTransfers(assetId: string | null): Promise<Interfaces.Transfer[]>;
504
+ /**
505
+ * Lists all unspent transaction outputs (UTXOs) in the wallet.
506
+ * Each UTXO includes its Bitcoin balance and any RGB asset allocations.
507
+ * @param settledOnly - If true, only includes settled RGB allocations (default: false includes all)
508
+ * @param skipSync - If true, skips syncing with the indexer before listing unspents (default: false)
509
+ * @returns Promise resolving to an array of Unspent objects
510
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
511
+ * - The wallet is not found
512
+ * - Sync operation fails (if skipSync is false)
513
+ * - Database query fails
514
+ */
515
+ listUnspents(settledOnly: boolean, skipSync?: boolean): Promise<Interfaces.Unspent[]>;
516
+ /**
517
+ * Refreshes RGB transfers by checking for new consignments and updating transfer statuses.
518
+ * This method queries the transport endpoints to fetch new transfer data and processes any
519
+ * pending incoming or outgoing transfers. The filter parameter controls which transfers to refresh.
520
+ * @param assetId - Optional asset ID to refresh transfers for a specific asset (null refreshes all)
521
+ * @param filter - Array of RefreshFilter values to control which transfers are refreshed
522
+ * @param skipSync - If true, skips syncing with the indexer before refreshing (default: false)
523
+ * @returns Promise resolving to a record mapping transfer IDs to RefreshedTransfer objects
524
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
525
+ * - The wallet is not found
526
+ * - The wallet is not online
527
+ * - Invalid filter parameters
528
+ * - Transport endpoint connection fails
529
+ * - Sync operation fails (if skipSync is false)
530
+ */
531
+ refresh(assetId: string | null, filter: Interfaces.RefreshFilter[], skipSync?: boolean): Promise<Record<string, Interfaces.RefreshedTransfer>>;
532
+ /**
533
+ * Sends RGB assets to recipients in a single operation.
534
+ * This method creates the PSBT, signs it, finalizes it, and broadcasts the transaction.
535
+ * The recipientMap maps asset IDs to arrays of recipients. When donation is true, assets
536
+ * that cannot be fully sent are donated (destroyed) rather than creating change.
537
+ * @param recipientMap - Map of asset IDs to arrays of recipients for that asset
538
+ * @param donation - If true, assets that cannot be fully sent are donated rather than creating change
539
+ * @param feeRate - Transaction fee rate in sat/vbyte
540
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
541
+ * @param skipSync - If true, skips syncing with the indexer before sending (default: false)
542
+ * @returns Promise resolving to OperationResult containing the transaction ID and batch transfer index
543
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
544
+ * - The wallet is not found
545
+ * - The wallet is not online
546
+ * - Invalid recipient data
547
+ * - Insufficient asset balance
548
+ * - Insufficient funds for fees
549
+ * - Invalid fee rate
550
+ * - Sync operation fails (if skipSync is false)
551
+ */
552
+ send(recipientMap: Record<string, Interfaces.Recipient[]>, donation: boolean, feeRate: number, minConfirmations: number, skipSync?: boolean): Promise<Interfaces.OperationResult>;
553
+ /**
554
+ * Begins the send operation by generating an unsigned PSBT.
555
+ * Use this method when you need to sign the transaction externally.
556
+ * Must be followed by sendEnd to complete the operation.
557
+ * @param recipientMap - Map of asset IDs to arrays of recipients for that asset
558
+ * @param donation - If true, assets that cannot be fully sent are donated rather than creating change
559
+ * @param feeRate - Transaction fee rate in sat/vbyte
560
+ * @param minConfirmations - Minimum number of confirmations required for the transaction to be considered settled
561
+ * @returns Promise resolving to an unsigned PSBT string that needs to be signed externally
562
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
563
+ * - The wallet is not found
564
+ * - The wallet is not online
565
+ * - Invalid recipient data
566
+ * - Insufficient asset balance
567
+ * - Insufficient funds for fees
568
+ * - Invalid fee rate
569
+ */
570
+ sendBegin(recipientMap: Record<string, Interfaces.Recipient[]>, donation: boolean, feeRate: number, minConfirmations: number): Promise<string>;
571
+ /**
572
+ * Completes the send operation by finalizing and broadcasting a signed PSBT.
573
+ * This method should be called after sendBegin and external signing.
574
+ * @param signedPsbt - The PSBT string that has been signed externally
575
+ * @param skipSync - If true, skips syncing with the indexer after processing (default: false)
576
+ * @returns Promise resolving to OperationResult containing the transaction ID and batch transfer index
577
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
578
+ * - The wallet is not found
579
+ * - The wallet is not online
580
+ * - Invalid or improperly signed PSBT
581
+ * - Transaction broadcast fails
582
+ * - Sync operation fails (if skipSync is false)
583
+ */
584
+ sendEnd(signedPsbt: string, skipSync?: boolean): Promise<Interfaces.OperationResult>;
585
+ /**
586
+ * Sends Bitcoin to a specified address in a single operation.
587
+ * This method creates the PSBT, signs it, finalizes it, and broadcasts the transaction.
588
+ * @param address - The Bitcoin address to send to
589
+ * @param amount - The amount to send in satoshis
590
+ * @param feeRate - Transaction fee rate in sat/vbyte
591
+ * @param skipSync - If true, skips syncing with the indexer before sending (default: false)
592
+ * @returns Promise resolving to the transaction ID of the Bitcoin transaction
593
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
594
+ * - The wallet is not found
595
+ * - The wallet is not online
596
+ * - Invalid Bitcoin address
597
+ * - Insufficient balance
598
+ * - Invalid fee rate
599
+ * - Sync operation fails (if skipSync is false)
600
+ */
601
+ sendBtc(address: string, amount: number, feeRate: number, skipSync?: boolean): Promise<string>;
602
+ /**
603
+ * Begins the Bitcoin send operation by generating an unsigned PSBT.
604
+ * Use this method when you need to sign the transaction externally.
605
+ * Must be followed by sendBtcEnd to complete the operation.
606
+ * @param address - The Bitcoin address to send to
607
+ * @param amount - The amount to send in satoshis
608
+ * @param feeRate - Transaction fee rate in sat/vbyte
609
+ * @param skipSync - If true, skips syncing with the indexer before creating the PSBT (default: false)
610
+ * @returns Promise resolving to an unsigned PSBT string that needs to be signed externally
611
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
612
+ * - The wallet is not found
613
+ * - The wallet is not online
614
+ * - Invalid Bitcoin address
615
+ * - Insufficient balance
616
+ * - Invalid fee rate
617
+ * - Sync operation fails (if skipSync is false)
618
+ */
619
+ sendBtcBegin(address: string, amount: number, feeRate: number, skipSync?: boolean): Promise<string>;
620
+ /**
621
+ * Completes the Bitcoin send operation by finalizing and broadcasting a signed PSBT.
622
+ * This method should be called after sendBtcBegin and external signing.
623
+ * @param signedPsbt - The PSBT string that has been signed externally
624
+ * @param skipSync - If true, skips syncing with the indexer after processing (default: false)
625
+ * @returns Promise resolving to the transaction ID of the Bitcoin transaction
626
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
627
+ * - The wallet is not found
628
+ * - The wallet is not online
629
+ * - Invalid or improperly signed PSBT
630
+ * - Transaction broadcast fails
631
+ * - Sync operation fails (if skipSync is false)
632
+ */
633
+ sendBtcEnd(signedPsbt: string, skipSync?: boolean): Promise<string>;
634
+ /**
635
+ * Synchronizes the wallet with the connected indexer.
636
+ * Updates the wallet's view of the blockchain state, including UTXO status,
637
+ * transaction confirmations, and RGB transfer states. This method requires
638
+ * the wallet to be online (goOnline must be called first).
639
+ * @returns Promise that resolves when synchronization is complete
640
+ * @throws {RgbError} Throws RgbError with a code from {@link RgbLibErrors} if:
641
+ * - The wallet is not found
642
+ * - The wallet is not online
643
+ * - Indexer connection fails
644
+ * - Network connectivity issues occur
645
+ */
646
+ sync(): Promise<void>;
647
+ }
648
+ //# sourceMappingURL=Wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../src/Wallet.ts"],"names":[],"mappings":"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"}