@kaleidorg/wallet-engine 1.0.0-beta.4 → 1.0.0-beta.41

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 (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -10
  3. package/dist/adapters/ArkadeAdapter.d.ts +78 -14
  4. package/dist/adapters/ArkadeAdapter.d.ts.map +1 -1
  5. package/dist/adapters/ArkadeAdapter.js +653 -161
  6. package/dist/adapters/ArkadeAdapter.js.map +1 -1
  7. package/dist/adapters/IProtocolAdapter.d.ts +195 -18
  8. package/dist/adapters/IProtocolAdapter.d.ts.map +1 -1
  9. package/dist/adapters/IProtocolAdapter.js +6 -2
  10. package/dist/adapters/IProtocolAdapter.js.map +1 -1
  11. package/dist/adapters/RgbAdapter.d.ts +70 -27
  12. package/dist/adapters/RgbAdapter.d.ts.map +1 -1
  13. package/dist/adapters/RgbAdapter.js +464 -370
  14. package/dist/adapters/RgbAdapter.js.map +1 -1
  15. package/dist/adapters/SparkAdapter.d.ts +93 -15
  16. package/dist/adapters/SparkAdapter.d.ts.map +1 -1
  17. package/dist/adapters/SparkAdapter.js +833 -168
  18. package/dist/adapters/SparkAdapter.js.map +1 -1
  19. package/dist/adapters/arkade.d.ts +15 -0
  20. package/dist/adapters/arkade.d.ts.map +1 -0
  21. package/dist/adapters/arkade.js +15 -0
  22. package/dist/adapters/arkade.js.map +1 -0
  23. package/dist/adapters/flashnet.d.ts +15 -0
  24. package/dist/adapters/flashnet.d.ts.map +1 -0
  25. package/dist/adapters/flashnet.js +17 -0
  26. package/dist/adapters/flashnet.js.map +1 -0
  27. package/dist/adapters/native.d.ts +17 -0
  28. package/dist/adapters/native.d.ts.map +1 -0
  29. package/dist/adapters/native.js +17 -0
  30. package/dist/adapters/native.js.map +1 -0
  31. package/dist/adapters/rgb.d.ts +11 -0
  32. package/dist/adapters/rgb.d.ts.map +1 -0
  33. package/dist/adapters/rgb.js +11 -0
  34. package/dist/adapters/rgb.js.map +1 -0
  35. package/dist/adapters/spark.d.ts +12 -0
  36. package/dist/adapters/spark.d.ts.map +1 -0
  37. package/dist/adapters/spark.js +14 -0
  38. package/dist/adapters/spark.js.map +1 -0
  39. package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +53 -19
  40. package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -1
  41. package/dist/adapters/wdk/ArkadeWdkAdapter.js +366 -90
  42. package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -1
  43. package/dist/adapters/wdk/BaseWdkAdapter.d.ts +40 -0
  44. package/dist/adapters/wdk/BaseWdkAdapter.d.ts.map +1 -0
  45. package/dist/adapters/wdk/BaseWdkAdapter.js +71 -0
  46. package/dist/adapters/wdk/BaseWdkAdapter.js.map +1 -0
  47. package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +6 -13
  48. package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -1
  49. package/dist/adapters/wdk/LiquidWdkAdapter.js +14 -32
  50. package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -1
  51. package/dist/adapters/wdk/RgbCore.d.ts +64 -0
  52. package/dist/adapters/wdk/RgbCore.d.ts.map +1 -0
  53. package/dist/adapters/wdk/RgbCore.js +111 -0
  54. package/dist/adapters/wdk/RgbCore.js.map +1 -0
  55. package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts +277 -0
  56. package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts.map +1 -0
  57. package/dist/adapters/wdk/RgbLibWasmAdapter.js +728 -0
  58. package/dist/adapters/wdk/RgbLibWasmAdapter.js.map +1 -0
  59. package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts +104 -0
  60. package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts.map +1 -0
  61. package/dist/adapters/wdk/RgbLibWdkAdapter.js +249 -0
  62. package/dist/adapters/wdk/RgbLibWdkAdapter.js.map +1 -0
  63. package/dist/adapters/wdk/RlnWdkAdapter.d.ts +27 -14
  64. package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -1
  65. package/dist/adapters/wdk/RlnWdkAdapter.js +111 -87
  66. package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -1
  67. package/dist/adapters/wdk/SparkWdkAdapter.d.ts +74 -41
  68. package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -1
  69. package/dist/adapters/wdk/SparkWdkAdapter.js +706 -249
  70. package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -1
  71. package/dist/adapters/wdk/index.d.ts +17 -0
  72. package/dist/adapters/wdk/index.d.ts.map +1 -0
  73. package/dist/adapters/wdk/index.js +17 -0
  74. package/dist/adapters/wdk/index.js.map +1 -0
  75. package/dist/adapters/wdk/wasm-rgb.d.ts +15 -0
  76. package/dist/adapters/wdk/wasm-rgb.d.ts.map +1 -0
  77. package/dist/adapters/wdk/wasm-rgb.js +15 -0
  78. package/dist/adapters/wdk/wasm-rgb.js.map +1 -0
  79. package/dist/capabilities/index.d.ts +1 -1
  80. package/dist/capabilities/index.d.ts.map +1 -1
  81. package/dist/capabilities/index.js +17 -2
  82. package/dist/capabilities/index.js.map +1 -1
  83. package/dist/capabilities/operations.d.ts +22 -0
  84. package/dist/capabilities/operations.d.ts.map +1 -0
  85. package/dist/capabilities/operations.js +62 -0
  86. package/dist/capabilities/operations.js.map +1 -0
  87. package/dist/constants.d.ts +8 -0
  88. package/dist/constants.d.ts.map +1 -0
  89. package/dist/constants.js +8 -0
  90. package/dist/constants.js.map +1 -0
  91. package/dist/disclosure/index.d.ts +1 -1
  92. package/dist/disclosure/index.js +1 -1
  93. package/dist/disclosure/index.js.map +1 -1
  94. package/dist/format.d.ts +11 -0
  95. package/dist/format.d.ts.map +1 -0
  96. package/dist/format.js +10 -0
  97. package/dist/format.js.map +1 -0
  98. package/dist/index.d.ts +21 -31
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +32 -32
  101. package/dist/index.js.map +1 -1
  102. package/dist/lib/arkade-client-manager.d.ts +64 -24
  103. package/dist/lib/arkade-client-manager.d.ts.map +1 -1
  104. package/dist/lib/arkade-client-manager.js +240 -65
  105. package/dist/lib/arkade-client-manager.js.map +1 -1
  106. package/dist/lib/arkade-converters.d.ts +39 -0
  107. package/dist/lib/arkade-converters.d.ts.map +1 -0
  108. package/dist/lib/arkade-converters.js +148 -0
  109. package/dist/lib/arkade-converters.js.map +1 -0
  110. package/dist/lib/arkade-helpers.d.ts +110 -0
  111. package/dist/lib/arkade-helpers.d.ts.map +1 -0
  112. package/dist/lib/arkade-helpers.js +227 -0
  113. package/dist/lib/arkade-helpers.js.map +1 -0
  114. package/dist/lib/arkade-swaps-client-manager.d.ts +55 -0
  115. package/dist/lib/arkade-swaps-client-manager.d.ts.map +1 -0
  116. package/dist/lib/arkade-swaps-client-manager.js +127 -0
  117. package/dist/lib/arkade-swaps-client-manager.js.map +1 -0
  118. package/dist/lib/arkade-vtxo-lifecycle.d.ts +116 -0
  119. package/dist/lib/arkade-vtxo-lifecycle.d.ts.map +1 -0
  120. package/dist/lib/arkade-vtxo-lifecycle.js +184 -0
  121. package/dist/lib/arkade-vtxo-lifecycle.js.map +1 -0
  122. package/dist/lib/flashnet-client-manager.d.ts +26 -9
  123. package/dist/lib/flashnet-client-manager.d.ts.map +1 -1
  124. package/dist/lib/flashnet-client-manager.js +97 -13
  125. package/dist/lib/flashnet-client-manager.js.map +1 -1
  126. package/dist/lib/kaleido-client-manager.d.ts +38 -3
  127. package/dist/lib/kaleido-client-manager.d.ts.map +1 -1
  128. package/dist/lib/kaleido-client-manager.js +79 -10
  129. package/dist/lib/kaleido-client-manager.js.map +1 -1
  130. package/dist/lib/ln-message-sign.d.ts +20 -0
  131. package/dist/lib/ln-message-sign.d.ts.map +1 -0
  132. package/dist/lib/ln-message-sign.js +90 -0
  133. package/dist/lib/ln-message-sign.js.map +1 -0
  134. package/dist/lib/log.d.ts +15 -0
  135. package/dist/lib/log.d.ts.map +1 -0
  136. package/dist/lib/log.js +16 -0
  137. package/dist/lib/log.js.map +1 -0
  138. package/dist/lib/orchestra-client.d.ts +149 -0
  139. package/dist/lib/orchestra-client.d.ts.map +1 -0
  140. package/dist/lib/orchestra-client.js +178 -0
  141. package/dist/lib/orchestra-client.js.map +1 -0
  142. package/dist/lib/psbt-signer.d.ts +60 -0
  143. package/dist/lib/psbt-signer.d.ts.map +1 -0
  144. package/dist/lib/psbt-signer.js +161 -0
  145. package/dist/lib/psbt-signer.js.map +1 -0
  146. package/dist/lib/rgb-converters.d.ts +62 -0
  147. package/dist/lib/rgb-converters.d.ts.map +1 -0
  148. package/dist/lib/rgb-converters.js +179 -0
  149. package/dist/lib/rgb-converters.js.map +1 -0
  150. package/dist/lib/rgb-fee-policy.d.ts +41 -0
  151. package/dist/lib/rgb-fee-policy.d.ts.map +1 -0
  152. package/dist/lib/rgb-fee-policy.js +52 -0
  153. package/dist/lib/rgb-fee-policy.js.map +1 -0
  154. package/dist/lib/rgb-helpers.d.ts +54 -0
  155. package/dist/lib/rgb-helpers.d.ts.map +1 -0
  156. package/dist/lib/rgb-helpers.js +89 -0
  157. package/dist/lib/rgb-helpers.js.map +1 -0
  158. package/dist/lib/spark-activity.d.ts +5 -0
  159. package/dist/lib/spark-activity.d.ts.map +1 -0
  160. package/dist/lib/spark-activity.js +11 -0
  161. package/dist/lib/spark-activity.js.map +1 -0
  162. package/dist/lib/spark-balance-cache.d.ts +58 -0
  163. package/dist/lib/spark-balance-cache.d.ts.map +1 -0
  164. package/dist/lib/spark-balance-cache.js +86 -0
  165. package/dist/lib/spark-balance-cache.js.map +1 -0
  166. package/dist/lib/spark-client-manager.d.ts +64 -10
  167. package/dist/lib/spark-client-manager.d.ts.map +1 -1
  168. package/dist/lib/spark-client-manager.js +191 -35
  169. package/dist/lib/spark-client-manager.js.map +1 -1
  170. package/dist/lib/spark-converters.d.ts +64 -0
  171. package/dist/lib/spark-converters.d.ts.map +1 -0
  172. package/dist/lib/spark-converters.js +242 -0
  173. package/dist/lib/spark-converters.js.map +1 -0
  174. package/dist/lib/spark-helpers.d.ts +72 -0
  175. package/dist/lib/spark-helpers.d.ts.map +1 -0
  176. package/dist/lib/spark-helpers.js +151 -0
  177. package/dist/lib/spark-helpers.js.map +1 -0
  178. package/dist/lib/spark-sent-token-records.d.ts +43 -0
  179. package/dist/lib/spark-sent-token-records.d.ts.map +1 -0
  180. package/dist/lib/spark-sent-token-records.js +105 -0
  181. package/dist/lib/spark-sent-token-records.js.map +1 -0
  182. package/dist/lib/wallet-seed.d.ts +31 -0
  183. package/dist/lib/wallet-seed.d.ts.map +1 -0
  184. package/dist/lib/wallet-seed.js +58 -0
  185. package/dist/lib/wallet-seed.js.map +1 -0
  186. package/dist/lib/zbase32.d.ts +3 -0
  187. package/dist/lib/zbase32.d.ts.map +1 -0
  188. package/dist/lib/zbase32.js +64 -0
  189. package/dist/lib/zbase32.js.map +1 -0
  190. package/dist/manager/ProtocolManager.d.ts +54 -3
  191. package/dist/manager/ProtocolManager.d.ts.map +1 -1
  192. package/dist/manager/ProtocolManager.js +118 -41
  193. package/dist/manager/ProtocolManager.js.map +1 -1
  194. package/dist/ports/index.d.ts +20 -0
  195. package/dist/ports/index.d.ts.map +1 -1
  196. package/dist/ports/index.js +23 -1
  197. package/dist/ports/index.js.map +1 -1
  198. package/dist/receive/unifiedReceive.d.ts +12 -0
  199. package/dist/receive/unifiedReceive.d.ts.map +1 -1
  200. package/dist/receive/unifiedReceive.js +35 -4
  201. package/dist/receive/unifiedReceive.js.map +1 -1
  202. package/dist/registry/createWdkRegistry.d.ts +10 -2
  203. package/dist/registry/createWdkRegistry.d.ts.map +1 -1
  204. package/dist/registry/createWdkRegistry.js +14 -7
  205. package/dist/registry/createWdkRegistry.js.map +1 -1
  206. package/dist/router/destination.d.ts +2 -2
  207. package/dist/router/destination.d.ts.map +1 -1
  208. package/dist/router/destination.js +34 -11
  209. package/dist/router/destination.js.map +1 -1
  210. package/dist/router/index.d.ts +39 -3
  211. package/dist/router/index.d.ts.map +1 -1
  212. package/dist/router/index.js +113 -4
  213. package/dist/router/index.js.map +1 -1
  214. package/dist/router/preference.d.ts +53 -0
  215. package/dist/router/preference.d.ts.map +1 -0
  216. package/dist/router/preference.js +81 -0
  217. package/dist/router/preference.js.map +1 -0
  218. package/dist/swap/KaleidoswapSwap.d.ts +1 -1
  219. package/dist/swap/KaleidoswapSwap.d.ts.map +1 -1
  220. package/dist/swap/KaleidoswapSwap.js +37 -20
  221. package/dist/swap/KaleidoswapSwap.js.map +1 -1
  222. package/dist/swap/index.d.ts +8 -0
  223. package/dist/swap/index.d.ts.map +1 -0
  224. package/dist/swap/index.js +8 -0
  225. package/dist/swap/index.js.map +1 -0
  226. package/dist/types/arkade.d.ts +1 -1
  227. package/dist/types/base.d.ts +35 -25
  228. package/dist/types/base.d.ts.map +1 -1
  229. package/dist/types/base.js +28 -2
  230. package/dist/types/base.js.map +1 -1
  231. package/dist/types/cross-l2.d.ts +1 -1
  232. package/dist/types/flashnet.d.ts +20 -0
  233. package/dist/types/flashnet.d.ts.map +1 -1
  234. package/dist/types/flashnet.js +34 -6
  235. package/dist/types/flashnet.js.map +1 -1
  236. package/dist/types/rgb.d.ts +18 -4
  237. package/dist/types/rgb.d.ts.map +1 -1
  238. package/dist/types/spark.d.ts +1 -1
  239. package/dist/utils.d.ts +1 -1
  240. package/dist/utils.js +2 -2
  241. package/dist/utils.js.map +1 -1
  242. package/package.json +68 -14
@@ -0,0 +1,277 @@
1
+ /**
2
+ * RgbLibWasmAdapter
3
+ * -----------------
4
+ * RGB-L1 (on-chain) backed by the BROWSER/WASM rgb-lib build
5
+ * (`@utexo/rgb-lib-wasm`) instead of the native addon used by
6
+ * `RgbLibWdkAdapter`. Same protocol surface (BTC on-chain + RGB assets on-chain,
7
+ * NO Lightning/channels/swaps), same `RgbCore` translation — only the backing
8
+ * differs, so the two cannot drift on asset/balance shape.
9
+ *
10
+ * Why a separate adapter: the native `@utexo/wdk-wallet-rgb` needs a filesystem
11
+ * `dataDir` + a Node/Bare runtime and cannot load in a browser / MV3 service
12
+ * worker. The wasm build is a wasm-bindgen `--target web` module that persists to
13
+ * IndexedDB and uses only fetch / crypto / WebAssembly — so it runs node-less in
14
+ * the extension (and on mobile). It is the path that makes self-custodial RGB-L1
15
+ * possible without an rgb-lightning-node.
16
+ *
17
+ * Runtime-agnostic: the host injects an ALREADY-wasm-initialized module via
18
+ * `registerWdkModule('@utexo/rgb-lib-wasm', () => initializedModule)`. The host
19
+ * owns where the 13 MB `_bg.wasm` comes from (`chrome.runtime.getURL(...)` in the
20
+ * extension; a bundled asset on mobile) and must have awaited the default
21
+ * `init(...)` export before injecting. This adapter never touches `fetch`/URLs.
22
+ *
23
+ * Discipline: no rgb-lib/wasm types cross the contract — the module + wallet are
24
+ * read as `any` and translated. Field names are read defensively and should be
25
+ * smoke-tested on-device (validated offline: keys, wallet, address, listAssets).
26
+ *
27
+ * WasmWallet API used (from @utexo/rgb-lib-wasm@1.0.0-beta.2):
28
+ * static create(walletDataJson) → WasmWallet (IndexedDB-restoring)
29
+ * goOnline(skipConsistencyCheck, indexerUrl) → online
30
+ * getAddress() · getBtcBalance() · getAssetBalance(id) · listAssets(schemas[])
31
+ * blindReceive(assetId|null, assignment, duration|null, transportEndpoints, minConf)
32
+ * sendBegin(online, recipientMap, donation, feeRate, minConf) · signPsbt(psbt)
33
+ * · sendEnd(online, signedPsbt, skipSync)
34
+ * sendBtcBegin/sendBtcEnd · createUtxosBegin/createUtxosEnd · refresh · sync
35
+ * listTransactions() · listTransfers(assetId?)
36
+ * Top-level: init() (panic/log hook) · restoreKeys(network, mnemonic) → keys.
37
+ */
38
+ import { IProtocolAdapter, BaseProtocolConfig } from '../IProtocolAdapter.js';
39
+ import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, NodeInfo } from '../../types/base.js';
40
+ import { BaseWdkAdapter } from './BaseWdkAdapter.js';
41
+ export interface RgbLibWasmAdapterConfig extends BaseProtocolConfig {
42
+ protocol: 'RGB_L1';
43
+ /** BIP-39 mnemonic for this wallet. */
44
+ mnemonic: string;
45
+ /** RGB indexer (electrum/esplora) URL — required to go online. */
46
+ indexerUrl: string;
47
+ /**
48
+ * RGB proxy / transport endpoints used when generating blinded receive
49
+ * invoices. Optional; rgb-lib uses its defaults when omitted.
50
+ */
51
+ transportEndpoints?: string[];
52
+ /**
53
+ * Namespace key for this wallet's IndexedDB store (rgb-lib's `dataDir`). Lets
54
+ * multiple wallets/networks coexist; defaults to a network-scoped name.
55
+ */
56
+ dataDir?: string;
57
+ /** Max allocations per UTXO (rgb-lib tuning). Defaults to 5. */
58
+ maxAllocationsPerUtxo?: number;
59
+ }
60
+ export declare class RgbLibWasmAdapter extends BaseWdkAdapter implements IProtocolAdapter {
61
+ readonly protocolName: ProtocolType;
62
+ readonly capabilities: readonly import("../../index.js").ProtocolCapability[];
63
+ readonly supportedLayers: Layer[];
64
+ readonly version = "0.1.0-wasm";
65
+ /** The rgb-lib `online` handle returned by goOnline(); required by network ops. */
66
+ private online;
67
+ private transportEndpoints;
68
+ connect(config: BaseProtocolConfig): Promise<void>;
69
+ /**
70
+ * One-time recovery for a wallet restored from a *thin* BDK snapshot (no
71
+ * revealed SPKs) — the state left behind when an MV3 service-worker teardown
72
+ * interrupts rgb-lib-wasm's async IndexedDB save. In that state an incremental
73
+ * `sync` can only re-query already-revealed SPKs, so it can't rediscover the
74
+ * on-chain BTC and the balance reads 0 even though funds exist.
75
+ *
76
+ * Strategy: after an incremental sync, if BTC still reads 0, run a `fullScan`
77
+ * (BIP44 stop-gap) to rebuild the UTXO set from the indexer, then `flush` so
78
+ * the recovered state durably persists (and normal incremental sync suffices
79
+ * from then on). Version-guarded — `fullScan` is absent on rgb-lib-wasm
80
+ * ≤ beta.2 — and best-effort so a scan failure never blocks connect.
81
+ */
82
+ private recoverBtcStateIfThin;
83
+ getConnectionInfo(): Promise<ConnectionInfo>;
84
+ getReceiveAddress(assetId?: string): Promise<Address>;
85
+ /** Raw vanilla / colored BTC split as rgb-lib reports it (both in sats). */
86
+ private detailedBtcBalance;
87
+ getBtcBalance(): Promise<{
88
+ confirmed: number;
89
+ unconfirmed: number;
90
+ total: number;
91
+ }>;
92
+ /** Detailed BTC balance with the vanilla / colored split (IProtocolAdapter hook). */
93
+ getRgbDetailedBalance(): Promise<{
94
+ vanilla: {
95
+ settled: number;
96
+ future: number;
97
+ spendable: number;
98
+ };
99
+ colored: {
100
+ settled: number;
101
+ future: number;
102
+ spendable: number;
103
+ };
104
+ }>;
105
+ refreshBalances(): Promise<void>;
106
+ listAssets(): Promise<UnifiedAsset[]>;
107
+ getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
108
+ getAsset(assetId: string): Promise<UnifiedAsset>;
109
+ createInvoice(request: InvoiceRequest): Promise<Invoice>;
110
+ decodeInvoice(_invoice: string): Promise<DecodedInvoice>;
111
+ sendPayment(_request: PaymentRequest): Promise<PaymentResult>;
112
+ getPaymentStatus(_paymentHash: string): Promise<PaymentStatus>;
113
+ listTransactions(_filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
114
+ getTransaction(txId: string): Promise<UnifiedTransaction>;
115
+ getNodeInfo(): Promise<NodeInfo>;
116
+ listChannels(): Promise<unknown[]>;
117
+ listPayments(): Promise<unknown>;
118
+ listTransfers(options?: {
119
+ asset_id?: string;
120
+ }): Promise<unknown>;
121
+ createRgbInvoice(params: {
122
+ assetId?: string;
123
+ amount?: number;
124
+ durationSeconds?: number;
125
+ minConfirmations?: number;
126
+ /** false ⇒ blinded receive (private, default); true ⇒ witness receive. */
127
+ witness?: boolean;
128
+ /** Host-supplied assignment, e.g. { type: 'Fungible', value: 100 }. */
129
+ assignment?: {
130
+ type?: string;
131
+ value?: number;
132
+ } | null;
133
+ }): Promise<any>;
134
+ /**
135
+ * Generate an RGB receive invoice. Defaults to a blinded receive (the
136
+ * recipient UTXO is hidden); `witness: true` uses a witness receive (the
137
+ * sender creates the UTXO). rgb-lib's `Assignment` enum is `{ Fungible: <num> }`
138
+ * for a specific amount or the unit string `"Any"` — NOT null, and NOT bigint.
139
+ */
140
+ private receiveRgb;
141
+ signPsbt(psbtHex: string): Promise<{
142
+ psbt: string;
143
+ unchanged: boolean;
144
+ }>;
145
+ createRgbUtxos(params: {
146
+ num?: number;
147
+ size?: number;
148
+ feeRate?: number;
149
+ upTo?: boolean;
150
+ }): Promise<{
151
+ success: boolean;
152
+ }>;
153
+ sendAsset(params: {
154
+ assetId?: string;
155
+ token: string;
156
+ recipientId?: string;
157
+ recipient: string;
158
+ amount: number;
159
+ assignment?: {
160
+ type?: string;
161
+ value?: number;
162
+ } | null;
163
+ feeRate?: number;
164
+ minConfirmations?: number;
165
+ donation?: boolean;
166
+ /** Transport endpoints from the recipient's invoice; falls back to the sender's. */
167
+ transportEndpoints?: string[];
168
+ /** Set only for witness invoices (blinded otherwise). */
169
+ witnessData?: {
170
+ amountSat?: number;
171
+ amount_sat?: number;
172
+ blinding?: number;
173
+ } | null;
174
+ witness_data?: {
175
+ amountSat?: number;
176
+ amount_sat?: number;
177
+ blinding?: number;
178
+ } | null;
179
+ }): Promise<any>;
180
+ sendBtcOnchain(params: {
181
+ address: string;
182
+ amount: number;
183
+ feeRate?: number;
184
+ }): Promise<any>;
185
+ /**
186
+ * List the wallet's unspent outputs and their RGB allocations
187
+ * (IProtocolAdapter hook). Normalizes rgb-lib's camel/snake casing and the
188
+ * `Outpoint` (object `{txid,vout}` or `"txid:vout"` string) into the flat shape
189
+ * the host consumes.
190
+ */
191
+ listRgbUnspents(): Promise<{
192
+ unspents: Array<{
193
+ utxo: {
194
+ outpoint: string;
195
+ btc_amount: number;
196
+ colorable: boolean;
197
+ };
198
+ rgb_allocations: Array<{
199
+ asset_id?: string | null;
200
+ assignment: unknown;
201
+ settled: boolean;
202
+ }>;
203
+ }>;
204
+ }>;
205
+ /** Estimate the on-chain fee rate (sat/vB) for a confirmation target (IProtocolAdapter hook). */
206
+ estimateRgbFee(blocks: number): Promise<{
207
+ fee_rate: number;
208
+ }>;
209
+ /** Asset metadata (name, ticker, precision, supply). */
210
+ getAssetMetadata(assetId: string): Promise<Record<string, unknown>>;
211
+ /**
212
+ * Status of a received invoice: matches the pending transfer by recipient id /
213
+ * invoice string and returns its rgb-lib status (WaitingCounterparty,
214
+ * WaitingConfirmations, Settled, Failed, …).
215
+ */
216
+ getInvoiceStatus(params: {
217
+ invoice: string;
218
+ }): Promise<unknown>;
219
+ /**
220
+ * Fail expired/stuck pending transfers (default: all). Stuck WaitingCounterparty
221
+ * transfers hold allocations and can block a later spend with "insufficient
222
+ * assignments"; failing then deleting them frees those allocations.
223
+ */
224
+ failRgbTransfers(params?: {
225
+ batchTransferIdx?: number | null;
226
+ noAssetOnly?: boolean;
227
+ }): Promise<{
228
+ changed: boolean;
229
+ }>;
230
+ /** Delete already-failed transfers from the wallet DB. */
231
+ deleteRgbTransfers(params?: {
232
+ batchTransferIdx?: number | null;
233
+ noAssetOnly?: boolean;
234
+ }): Promise<{
235
+ changed: boolean;
236
+ }>;
237
+ /**
238
+ * Durably commit wallet state to IndexedDB. Best-effort and version-guarded:
239
+ * `flush()` was added after `@utexo/rgb-lib-wasm@1.0.0-beta.2`, so on older
240
+ * builds this is a no-op (the wasm persists opportunistically). A failed flush
241
+ * leaves in-memory state intact and is safe to retry, so we log and continue.
242
+ */
243
+ private flushState;
244
+ /** Encrypted wallet backup bytes (rgb-lib's own format). */
245
+ backup(password: string): Promise<Uint8Array>;
246
+ /** Restore wallet state from encrypted backup bytes produced by {@link backup}. */
247
+ restoreBackup(params: {
248
+ backupBytes: Uint8Array;
249
+ password: string;
250
+ }): Promise<void>;
251
+ /** Whether local wallet state has changed since the last backup. */
252
+ backupInfo(): Promise<{
253
+ required: boolean;
254
+ }>;
255
+ /** Configure VSS (cloud) backup: server URL, per-wallet store id, signing key (hex). */
256
+ configureVssBackup(params: {
257
+ serverUrl: string;
258
+ storeId: string;
259
+ signingKeyHex: string;
260
+ }): Promise<void>;
261
+ /** Disable VSS (cloud) backup for this wallet. */
262
+ disableVssBackup(): Promise<void>;
263
+ /** Upload an encrypted backup to the configured VSS server. Returns the new server version. */
264
+ vssBackup(): Promise<{
265
+ serverVersion: number | null;
266
+ }>;
267
+ /** VSS backup status: { backup_exists, server_version, backup_required } → camelCase, no BigInt. */
268
+ vssBackupInfo(): Promise<{
269
+ backupExists: boolean;
270
+ serverVersion: number | null;
271
+ backupRequired: boolean;
272
+ }>;
273
+ /** Download and restore wallet state from the configured VSS server. */
274
+ vssRestoreBackup(): Promise<void>;
275
+ disconnect(): Promise<void>;
276
+ }
277
+ //# sourceMappingURL=RgbLibWasmAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RgbLibWasmAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wdk/RgbLibWasmAdapter.ts"],"names":[],"mappings":"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"}