@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
@@ -7,67 +7,115 @@
7
7
  * receive via Boltz reverse submarine swaps.
8
8
  *
9
9
  * Discipline: no WDK/@arkade-os types cross the contract — domain types only;
10
- * module objects are read as `any`.
10
+ * module objects are read as `any`. The WDK **account** surface is the primary path;
11
+ * the underlying @arkade-os/sdk Wallet (`account._signingWallet`) is reached only for
12
+ * the VTXO-lifecycle ops the WDK surface does not expose (getVtxos, getBoardingUtxos,
13
+ * onboard, offboard, rich balance summary) — ported from the native ArkadeAdapter.
14
+ * `@arkade-os/sdk` is lazy-loaded in `connect()` so this sub-path stays SDK-free until used.
11
15
  *
12
- * Arkade WDK surface (from JSDoc in the cloned source, v0.1.3):
16
+ * Arkade WDK surface (from JSDoc, v0.1.4):
13
17
  * read-only: getAddress(): string (Ark address, inherited), getBoardingAddress(): string,
14
18
  * getBalance(): bigint, getTokenBalance(id): bigint, getTransactionHistory()
15
19
  * account: sendTransaction({to,value}), transfer({token,recipient,amount}),
16
20
  * createLightningInvoice(amountSats, description?): {invoice,paymentHash},
17
21
  * waitForLightningPayment(invoice): {txid}, getLightningLimits/Fees,
18
- * subscribeToIncomingFunds, sign, dispose
19
- * NOTE: Lightning *send* (pay a BOLT11) is not exposed as a simple method in v0.1.3.
22
+ * arkadeSwaps (Boltz client, for Lightning send), subscribeToIncomingFunds, sign, dispose
20
23
  */
21
- import { ProtocolError, } from '../../types/base';
22
- import { getCapabilities } from '../../capabilities';
23
- import { loadWdkModule } from './moduleLoader';
24
- import { decodeBolt11, isBolt11 } from '../../lib/bolt11';
25
- export class ArkadeWdkAdapter {
24
+ import { ProtocolError, } from '../../types/base.js';
25
+ import { getCapabilities } from '../../capabilities/index.js';
26
+ import { BaseWdkAdapter } from './BaseWdkAdapter.js';
27
+ import { PROTOCOL_OPERATIONS } from '../../capabilities/operations.js';
28
+ import { loadWdkModule } from './moduleLoader.js';
29
+ import { decodeBolt11, isBolt11 } from '../../lib/bolt11.js';
30
+ import { normalizeVtxos, sortVtxosByExpiry, toNumber } from '../../lib/arkade-helpers.js';
31
+ import { signLnMessage, verifyLnMessage } from '../../lib/ln-message-sign.js';
32
+ import { resolveWalletSeed } from '../../lib/wallet-seed.js';
33
+ const isBitcoinAddress = (value) => /^(bc1|tb1|bcrt1)/i.test(value.trim());
34
+ const isLightningInvoice = (value) => {
35
+ const body = value.trim().toLowerCase().replace(/^lightning:/, '');
36
+ return /^ln(bc|tb|bcrt|sb)/.test(body);
37
+ };
38
+ /**
39
+ * Allowlist of Arkade account methods reachable via `executeProtocolOperation`.
40
+ * VTXO-lifecycle ops (onboard/offboard/getVtxos/getBoardingUtxos) are now typed
41
+ * adapter methods, so they are intentionally NOT here.
42
+ */
43
+ const ARKADE_ALLOWED_OPS = new Set([
44
+ 'waitForLightningPayment',
45
+ 'getLightningLimits',
46
+ 'getLightningFees',
47
+ 'subscribeToIncomingFunds',
48
+ 'getBoardingAddress',
49
+ 'getTokenBalance',
50
+ 'getTransactionHistory',
51
+ ]);
52
+ export class ArkadeWdkAdapter extends BaseWdkAdapter {
26
53
  constructor() {
54
+ super(...arguments);
27
55
  this.protocolName = 'ARKADE';
56
+ this.capabilities = PROTOCOL_OPERATIONS.ARKADE;
28
57
  this.supportedLayers = getCapabilities('ARKADE').layers;
29
- this.version = '0.1.0-wdk';
30
- this.manager = null;
31
- this.account = null;
32
- this.connected = false;
33
- this.network = 'mainnet';
58
+ /** BIP-39 mnemonic — retained for message signing (derives its own key). */
59
+ this.mnemonic = null;
60
+ /** Lazily-loaded `@arkade-os/sdk` (for Ramps onboard/offboard). Kept off the static import graph. */
61
+ this.arkSdk = null;
62
+ }
63
+ /** The underlying @arkade-os/sdk Wallet the WDK account wraps — for VTXO-lifecycle ops. */
64
+ get rawWallet() {
65
+ const w = this.account?._signingWallet ?? this.account?._wallet;
66
+ if (!w)
67
+ throw new ProtocolError('Arkade wallet unavailable', 'ARKADE', 'NOT_CONNECTED');
68
+ return w;
34
69
  }
35
70
  // --- Connection ---------------------------------------------------------
36
71
  async connect(config) {
37
72
  const cfg = config;
38
73
  if (!cfg.mnemonic)
39
74
  throw new ProtocolError('ArkadeWdkAdapter requires a mnemonic', 'ARKADE', 'CONFIG');
75
+ this.mnemonic = cfg.mnemonic;
40
76
  this.network = cfg.network ?? 'mainnet';
77
+ // Accept either an explicit `arkadeConfig` passthrough OR the native adapter's
78
+ // flat fields (arkServerUrl/esploraUrl/swapProviderUrl) — so hosts can switch
79
+ // to this adapter without reshaping their connect config. The WDK manager
80
+ // spreads this straight into @arkade-os/sdk's Wallet.create.
81
+ const arkadeConfig = cfg.arkadeConfig ??
82
+ {
83
+ ...(cfg.arkServerUrl ? { arkServerUrl: cfg.arkServerUrl } : {}),
84
+ ...(cfg.esploraUrl ? { esploraUrl: cfg.esploraUrl } : {}),
85
+ ...(cfg.swapProviderUrl ? { swapProviderUrl: cfg.swapProviderUrl } : {}),
86
+ };
41
87
  // @ts-ignore — external module, resolved at runtime in the consuming app.
42
88
  const mod = await loadWdkModule('@arkade-os/wdk', () => import('@arkade-os/wdk'));
43
89
  const WalletManagerArkade = mod.default ?? mod.WalletManagerArkade ?? mod;
44
- this.manager = new WalletManagerArkade(cfg.mnemonic, cfg.arkadeConfig ?? {});
90
+ // Resolve to seed bytes so nsec/hex-rooted wallets bypass the WDK base's
91
+ // BIP-39 string validation (which throws "The seed phrase is invalid").
92
+ this.manager = new WalletManagerArkade(resolveWalletSeed(cfg.mnemonic), arkadeConfig);
45
93
  this.account = await this.manager.getAccount(cfg.accountIndex ?? 0);
94
+ // Lazy-load the SDK for Ramps (onboard/offboard). Off the static import graph.
95
+ // @ts-ignore — resolved at runtime; a transitive dep of the WDK Arkade module.
96
+ this.arkSdk = await loadWdkModule('@arkade-os/sdk', () => import('@arkade-os/sdk'));
46
97
  this.connected = true;
47
98
  }
48
- async disconnect() {
49
- try {
50
- this.account?.dispose?.();
51
- await this.manager?.dispose?.();
52
- }
53
- finally {
54
- this.account = null;
55
- this.manager = null;
56
- this.connected = false;
57
- }
58
- }
59
- isConnected() {
60
- return this.connected;
61
- }
62
99
  async getConnectionInfo() {
63
- return { protocol: 'ARKADE', connected: this.connected, network: this.network };
100
+ this.assertConnected();
101
+ return {
102
+ protocol: 'ARKADE',
103
+ connected: this.connected,
104
+ network: this.network,
105
+ syncStatus: { synced: true, progress: 100 },
106
+ };
64
107
  }
65
108
  // --- Address / receive --------------------------------------------------
66
109
  /** Default Ark address. For the on-chain boarding address use `getBoardingAddress`. */
67
- async getReceiveAddress(_assetId) {
110
+ async getReceiveAddress(assetId) {
68
111
  this.assertConnected();
112
+ // 'onchain'/'boarding' → on-chain boarding address for funding.
113
+ if (assetId === 'onchain' || assetId === 'boarding') {
114
+ const address = await this.account.getBoardingAddress();
115
+ return { address, format: 'BTC_ADDRESS', asset: 'BTC' };
116
+ }
69
117
  const address = await this.account.getAddress();
70
- return { address, format: 'ARKADE_ADDRESS' };
118
+ return { address, format: 'ARKADE_ADDRESS', asset: assetId && assetId !== 'BTC' ? assetId : 'BTC' };
71
119
  }
72
120
  /** On-chain BTC boarding address for funding the Arkade account. */
73
121
  async getBoardingAddress() {
@@ -78,57 +126,124 @@ export class ArkadeWdkAdapter {
78
126
  // --- Balance ------------------------------------------------------------
79
127
  async getBtcBalance() {
80
128
  this.assertConnected();
81
- const bal = await this.account.getBalance();
82
- const total = Number(bal);
83
- return { confirmed: total, unconfirmed: 0, total };
129
+ const b = await this.getWalletBalanceSummary();
130
+ // preconfirmed VTXOs are spendable, so `confirmed` = settled + preconfirmed.
131
+ const confirmed = b.available;
132
+ return { confirmed, unconfirmed: Math.max(b.total - confirmed, 0), total: b.total };
84
133
  }
85
134
  async refreshBalances() {
86
135
  // Arkade syncs against the indexer on read; no explicit sync call.
87
136
  }
88
137
  async listAssets() {
89
138
  this.assertConnected();
90
- const { total } = await this.getBtcBalance();
139
+ const b = await this.getWalletBalanceSummary();
91
140
  const btc = {
92
141
  id: 'BTC',
93
- name: 'Bitcoin',
142
+ name: 'Bitcoin (Arkade)',
94
143
  ticker: 'BTC',
95
144
  precision: 8,
96
145
  protocol: 'ARKADE',
97
146
  layer: 'BTC_ARKADE',
98
- balance: { total, available: total, pending: 0, totalDisplay: String(total), availableDisplay: String(total) },
99
- capabilities: { canSend: true, canReceive: true, canSwap: false, supportsLightning: true, supportsOnchain: true },
147
+ balance: {
148
+ total: b.total,
149
+ available: b.available,
150
+ pending: 0,
151
+ locked: 0,
152
+ totalDisplay: String(b.total),
153
+ availableDisplay: String(b.available),
154
+ },
155
+ capabilities: { canSend: true, canReceive: true, canSwap: false, supportsLightning: false, supportsOnchain: true },
156
+ metadata: { boarding: b.boardingTotal, settled: b.settled, preconfirmed: b.preconfirmed, recoverable: b.recoverable },
100
157
  };
101
- // Arkade exposes getTokenBalance(id) but no token enumeration → BTC only here.
102
- return [btc];
158
+ const out = [btc];
159
+ // Arkade tokens. The wallet's `getBalance()` includes `assets: { assetId, amount }[]`;
160
+ // resolve metadata via `assetManager.getAssetDetails(assetId).metadata`.
161
+ try {
162
+ const wallet = this.rawWallet;
163
+ const rawBalance = wallet?.getBalance ? await wallet.getBalance() : null;
164
+ const rawAssets = Array.isArray(rawBalance?.assets) ? rawBalance.assets : [];
165
+ for (const entry of rawAssets) {
166
+ const assetId = String(entry?.assetId ?? '');
167
+ const amount = Number(entry?.amount ?? 0);
168
+ if (!assetId || amount <= 0)
169
+ continue;
170
+ let meta = {};
171
+ try {
172
+ meta = (await wallet?.assetManager?.getAssetDetails?.(assetId))?.metadata ?? {};
173
+ }
174
+ catch {
175
+ /* metadata lookup is optional */
176
+ }
177
+ const decimals = Number(meta.decimals ?? 0) || 0;
178
+ const ticker = typeof meta.ticker === 'string' && meta.ticker.trim() ? meta.ticker : assetId.slice(0, 6);
179
+ const name = typeof meta.name === 'string' && meta.name.trim() ? meta.name : ticker;
180
+ out.push({
181
+ id: assetId,
182
+ name,
183
+ ticker,
184
+ precision: decimals,
185
+ protocol: 'ARKADE',
186
+ layer: 'ARKADE_ARKADE',
187
+ balance: { total: amount, available: amount, pending: 0, totalDisplay: String(amount), availableDisplay: String(amount) },
188
+ icon: typeof meta.icon === 'string' ? meta.icon : undefined,
189
+ capabilities: { canSend: true, canReceive: true, canSwap: false, supportsLightning: false, supportsOnchain: false },
190
+ });
191
+ }
192
+ }
193
+ catch {
194
+ /* token enumeration is best-effort — keep BTC even if unavailable */
195
+ }
196
+ return out;
103
197
  }
104
198
  async getAssetBalance(assetId) {
105
199
  this.assertConnected();
200
+ if (assetId === 'BTC' || assetId.toLowerCase() === 'btc') {
201
+ const { balance } = await this.getAsset('BTC').then((a) => ({ balance: a.balance }));
202
+ return balance;
203
+ }
106
204
  const bal = await this.account.getTokenBalance(assetId);
107
205
  const n = Number(bal);
108
206
  return { total: n, available: n, pending: 0, totalDisplay: String(n), availableDisplay: String(n) };
109
207
  }
110
208
  async getAsset(assetId) {
111
209
  const assets = await this.listAssets();
112
- const found = assets.find((a) => a.id === assetId);
210
+ const found = assets.find((a) => a.id === assetId || a.ticker === assetId);
113
211
  if (!found)
114
212
  throw new ProtocolError(`Unknown asset ${assetId}`, 'ARKADE', 'NO_ASSET');
115
213
  return found;
116
214
  }
117
215
  // --- Invoices -----------------------------------------------------------
216
+ /** Arkade on-chain receive is an address, not a bolt11 invoice (mirrors the native adapter). */
118
217
  async createInvoice(request) {
119
218
  this.assertConnected();
120
- if (request.layer === 'BTC_LN' || request.amount != null) {
121
- // createLightningInvoice(amountSats, description?) — POSITIONAL args; via Boltz reverse swap.
122
- const r = await this.account.createLightningInvoice(request.amount ?? 0, request.description);
123
- return {
124
- invoice: r?.invoice ?? '',
125
- paymentHash: r?.paymentHash ?? '',
126
- amount: request.amount,
127
- expiresAt: Date.now() + (request.expirySeconds ?? 3600) * 1000,
128
- description: request.description,
129
- };
219
+ const address = await this.account.getAddress();
220
+ return {
221
+ invoice: address,
222
+ paymentHash: '',
223
+ amount: request.amount,
224
+ expiresAt: Date.now() + (request.expirySeconds ?? 3600) * 1000,
225
+ description: request.description ?? 'Arkade receiving address',
226
+ };
227
+ }
228
+ /**
229
+ * Boltz reverse-swap Lightning invoice that lands funds in this Arkade wallet as a
230
+ * VTXO. Requires amount > 0 (Boltz can't issue an amountless invoice). The embedded
231
+ * SwapManager claims the VHTLC automatically once the LN payment settles.
232
+ */
233
+ async createArkadeLightningInvoice(request) {
234
+ this.assertConnected();
235
+ if (!request.amount || request.amount <= 0) {
236
+ throw new ProtocolError('Amount is required for Boltz Lightning invoices into Arkade', 'ARKADE', 'INVALID_AMOUNT');
130
237
  }
131
- throw new ProtocolError('Arkade on-chain receive uses getReceiveAddress/getBoardingAddress', 'ARKADE', 'NOT_SUPPORTED');
238
+ // createLightningInvoice(amountSats, description?) POSITIONAL args; via Boltz reverse swap.
239
+ const r = await this.account.createLightningInvoice(request.amount, request.description);
240
+ return {
241
+ invoice: r?.invoice ?? '',
242
+ paymentHash: r?.paymentHash ?? '',
243
+ amount: request.amount,
244
+ expiresAt: Date.now() + (request.expirySeconds ?? 3600) * 1000,
245
+ description: request.description ?? 'Boltz reverse swap into Arkade',
246
+ };
132
247
  }
133
248
  async decodeInvoice(invoice) {
134
249
  const dest = invoice.trim();
@@ -142,30 +257,68 @@ export class ArkadeWdkAdapter {
142
257
  async sendPayment(request) {
143
258
  this.assertConnected();
144
259
  const dest = request.invoice.trim();
145
- if (/^ln(bc|tb|bcrt)/i.test(dest)) {
146
- // TODO(boltz): Lightning SEND via Boltz submarine swap (Arkade VTXO → LN).
147
- // @arkade-os/wdk v0.1.3 doesn't expose pay-a-BOLT11 directly. rate-extension
148
- // does this with `@arkade-os/boltz-swap` (ArkadeSwaps.sendLightningPayment),
149
- // backed by a persistent SwapManager + IndexedDb repo that auto-claims/refunds.
150
- // To implement here: add an arkadeSwaps client manager (see docs/BOLTZ_TODO.md),
151
- // init it on connect(), and route LN sends through swaps.sendLightningPayment().
152
- // Note: Lightning RECEIVE already works above via account.createLightningInvoice
153
- // (Boltz reverse swap), so only the SEND leg is missing.
154
- throw new ProtocolError('Arkade Lightning send not available in this module version', 'ARKADE', 'NOT_SUPPORTED');
260
+ // Lightning send via Boltz submarine swap (Arkade → Lightning), if the account exposes the swap client.
261
+ if (isLightningInvoice(dest)) {
262
+ const swaps = this.account?.arkadeSwaps;
263
+ if (!swaps?.sendLightningPayment) {
264
+ throw new ProtocolError('Arkade Lightning send not available in this module version', 'ARKADE', 'NOT_SUPPORTED');
265
+ }
266
+ const invoiceBody = dest.toLowerCase().startsWith('lightning:') ? dest.slice('lightning:'.length) : dest;
267
+ try {
268
+ const result = await swaps.sendLightningPayment({ invoice: invoiceBody });
269
+ return {
270
+ paymentHash: result?.preimage ?? result?.txid ?? '',
271
+ amount: Number(result?.amount ?? request.amount ?? 0),
272
+ fee: 0,
273
+ status: 'pending',
274
+ timestamp: Date.now(),
275
+ };
276
+ }
277
+ catch (error) {
278
+ const msg = error instanceof Error ? error.message : String(error);
279
+ if (/less than minimal/i.test(msg)) {
280
+ throw new ProtocolError("Arkade can't pay amountless Lightning invoices. Ask the recipient for an invoice with an amount.", 'ARKADE', 'INVALID_AMOUNT');
281
+ }
282
+ throw new ProtocolError(`Failed to send Lightning payment via Boltz: ${msg}`, 'ARKADE', 'SEND_PAYMENT_ERROR');
283
+ }
155
284
  }
156
285
  if (request.amount == null) {
157
286
  throw new ProtocolError('Arkade send requires an explicit amount', 'ARKADE', 'NO_AMOUNT');
158
287
  }
159
- // Off-chain Ark transfer to an Ark address.
288
+ // Bitcoin destination → on-chain offboard. Route through sendBtcOnchain so the
289
+ // missing-tx-id guard and async `pending` status apply regardless of entry point.
290
+ if (isBitcoinAddress(dest)) {
291
+ return this.sendBtcOnchain({ address: dest, amount: request.amount });
292
+ }
293
+ // Off-chain Ark transfer to an Ark address (settles immediately, zero-conf UX).
160
294
  const r = await this.account.sendTransaction({ to: dest, value: request.amount });
295
+ const hash = r?.hash ?? '';
161
296
  return {
162
- paymentHash: r?.hash ?? '',
297
+ paymentHash: hash,
298
+ txid: hash,
163
299
  amount: request.amount,
164
300
  fee: Number(r?.fee ?? 0),
165
301
  status: 'confirmed',
166
302
  timestamp: Date.now(),
167
303
  };
168
304
  }
305
+ /** Arkade BTC send/offboard. Bitcoin destinations settle on-chain asynchronously. */
306
+ async sendBtcOnchain(params) {
307
+ this.assertConnected();
308
+ const r = await this.account.sendTransaction({ to: params.address.trim(), value: params.amount });
309
+ const hash = r?.hash ?? '';
310
+ if (!hash) {
311
+ throw new ProtocolError('Arkade offboard did not return a transaction ID', 'ARKADE', 'SEND_ERROR');
312
+ }
313
+ return {
314
+ txid: hash,
315
+ paymentHash: hash,
316
+ amount: params.amount,
317
+ fee: Number(r?.fee ?? 0),
318
+ status: 'pending',
319
+ timestamp: Date.now(),
320
+ };
321
+ }
169
322
  /** Arkade asset transfer (token). */
170
323
  async sendAsset(params) {
171
324
  this.assertConnected();
@@ -181,16 +334,27 @@ export class ArkadeWdkAdapter {
181
334
  async listTransactions(_filter) {
182
335
  this.assertConnected();
183
336
  const history = await this.account.getTransactionHistory();
184
- return (history ?? []).map((t) => ({
185
- id: t.txid ?? t.key?.boardingTxid ?? t.key?.roundTxid ?? '',
186
- type: (Number(t.amount ?? 0) < 0 ? 'send' : 'receive'),
187
- status: (t.confirmedAt ? 'confirmed' : 'pending'),
188
- timestamp: Number(t.createdAt ?? t.confirmedAt ?? 0) * 1000,
189
- amount: Math.abs(Number(t.amount ?? 0)),
190
- amountDisplay: '',
191
- asset: undefined,
192
- protocolData: t,
193
- }));
337
+ return (history ?? []).map((t) => {
338
+ // @arkade-os/sdk ArkTransaction shape:
339
+ // { key:{ arkTxid, commitmentTxid, boardingTxid }, type:'SENT'|'RECEIVED',
340
+ // amount(sats, net), settled(boolean), createdAt(ms since epoch) }.
341
+ // The txid lives on `key` (unused fields are empty strings, so pick the first
342
+ // NON-EMPTY one — `??` would stop at `''`). Direction is the explicit `type`.
343
+ const key = t?.key ?? {};
344
+ const id = t?.txid || key.arkTxid || key.commitmentTxid || key.boardingTxid || '';
345
+ const isSend = String(t?.type ?? '').toUpperCase() === 'SENT';
346
+ const createdAt = Number(t?.createdAt ?? 0);
347
+ return {
348
+ id,
349
+ type: isSend ? 'send' : 'receive',
350
+ status: (t?.settled || (!isSend && !key.boardingTxid) ? 'confirmed' : 'pending'),
351
+ timestamp: Number.isFinite(createdAt) && createdAt > 0 ? createdAt : 0,
352
+ amount: Math.abs(Number(t?.amount ?? 0)),
353
+ amountDisplay: '',
354
+ asset: undefined,
355
+ protocolData: t,
356
+ };
357
+ });
194
358
  }
195
359
  async getTransaction(txId) {
196
360
  const all = await this.listTransactions();
@@ -199,35 +363,147 @@ export class ArkadeWdkAdapter {
199
363
  throw new ProtocolError(`Unknown tx ${txId}`, 'ARKADE', 'NO_TX');
200
364
  return found;
201
365
  }
366
+ // --- Node & balance -----------------------------------------------------
202
367
  async getNodeInfo() {
203
- return { protocol: 'ARKADE', network: this.network };
368
+ this.assertConnected();
369
+ const b = await this.getWalletBalanceSummary();
370
+ const spendableSats = b.available;
371
+ return {
372
+ channelsBalanceMsat: spendableSats * 1000,
373
+ maxPayableMsat: spendableSats * 1000,
374
+ onchainBalanceMsat: b.boardingConfirmed * 1000,
375
+ pendingOnchainBalanceMsat: b.boardingUnconfirmed * 1000,
376
+ maxReceivableMsat: 0,
377
+ inboundLiquidityMsats: 0,
378
+ connectedPeers: [],
379
+ utxos: 0,
380
+ };
204
381
  }
205
382
  async listChannels() {
206
383
  return []; // Arkade has no LN channels (LN via Boltz swaps)
207
384
  }
208
385
  async listPayments() {
209
- return this.listTransactions();
386
+ const txs = await this.listTransactions();
387
+ return { payments: txs };
210
388
  }
211
389
  async listTransfers() {
212
- return this.account.getTransactionHistory();
390
+ return { transfers: [] };
213
391
  }
214
- supportsSwaps() {
215
- return getCapabilities('ARKADE').supportsSwaps;
392
+ // --- VTXO lifecycle -----------------------------------------------------
393
+ /** All VTXOs, sorted by batchExpiry ascending (expiry-first) so soon-to-expire coins surface first. */
394
+ async getVtxos() {
395
+ this.assertConnected();
396
+ const vtxos = await this.rawWallet.getVtxos();
397
+ return normalizeVtxos(sortVtxosByExpiry(vtxos)).map((vtxo) => ({
398
+ txid: vtxo.txid,
399
+ vout: vtxo.vout,
400
+ value: vtxo.value,
401
+ state: vtxo.state,
402
+ batchTxid: vtxo.batchTxid,
403
+ batchExpiry: vtxo.batchExpiry,
404
+ createdAt: vtxo.createdAt,
405
+ assets: vtxo.assets,
406
+ }));
216
407
  }
217
- /** Escape hatch for Arkade-specific ops (waitForLightningPayment, getLightningLimits, …). */
218
- async executeProtocolOperation(operation, params) {
408
+ async getBoardingUtxos() {
219
409
  this.assertConnected();
220
- const fn = this.account[operation];
221
- if (typeof fn !== 'function') {
222
- throw new ProtocolError(`Unknown Arkade operation '${operation}'`, 'ARKADE', 'NO_OP');
410
+ const utxos = await this.rawWallet.getBoardingUtxos();
411
+ return (utxos ?? []).map((u) => ({
412
+ txid: u.txid,
413
+ vout: u.vout,
414
+ value: u.value,
415
+ confirmed: u.status?.confirmed ?? false,
416
+ }));
417
+ }
418
+ /** Onboard — settle confirmed boarding UTXOs into VTXOs via a Commitment Transaction. */
419
+ async onboard() {
420
+ this.assertConnected();
421
+ const wallet = this.rawWallet;
422
+ const info = await wallet.arkProvider.getInfo();
423
+ const commitmentTxid = await new this.arkSdk.Ramps(wallet).onboard(info.fees);
424
+ return { txid: commitmentTxid };
425
+ }
426
+ /** Offboard — collaborative exit: convert VTXOs back to an on-chain Bitcoin UTXO. */
427
+ async offboard(address, amount) {
428
+ this.assertConnected();
429
+ if (!address)
430
+ throw new ProtocolError('Destination address required for offboard', 'ARKADE', 'INVALID_ADDRESS');
431
+ if (amount !== undefined && (!Number.isInteger(amount) || amount <= 0)) {
432
+ throw new ProtocolError(`Invalid offboard amount: ${amount}`, 'ARKADE', 'INVALID_AMOUNT');
223
433
  }
224
- return fn.call(this.account, params);
434
+ const wallet = this.rawWallet;
435
+ const info = await wallet.arkProvider.getInfo();
436
+ const exitTxid = await new this.arkSdk.Ramps(wallet).offboard(address, info.fees, amount !== undefined ? BigInt(amount) : undefined);
437
+ return { txid: exitTxid };
225
438
  }
226
- // --- helpers ------------------------------------------------------------
227
- assertConnected() {
228
- if (!this.connected || !this.account) {
229
- throw new ProtocolError('ArkadeWdkAdapter not connected', 'ARKADE', 'NOT_CONNECTED');
439
+ // --- Message signing ----------------------------------------------------
440
+ async signMessage(message) {
441
+ if (!this.mnemonic)
442
+ throw new ProtocolError('Wallet mnemonic not available', 'ARKADE', 'NOT_CONNECTED');
443
+ const { mnemonicToSeedSync } = await import('@scure/bip39');
444
+ const { HDKey } = await import('@scure/bip32');
445
+ const seed = mnemonicToSeedSync(this.mnemonic);
446
+ const node = HDKey.fromMasterSeed(seed).derive("m/138'/1");
447
+ if (!node.privateKey) {
448
+ throw new ProtocolError('Failed to derive message-signing key', 'ARKADE', 'KEY_DERIVATION_ERROR');
230
449
  }
450
+ return signLnMessage(message, node.privateKey);
451
+ }
452
+ async verifyMessage(message, signature) {
453
+ return verifyLnMessage(message, signature);
454
+ }
455
+ /** Escape hatch for Arkade-specific ops (waitForLightningPayment, getLightningLimits, …) — allowlisted. */
456
+ async executeProtocolOperation(operation, params) {
457
+ return this.runAllowlistedOp(ARKADE_ALLOWED_OPS, operation, params);
458
+ }
459
+ // --- Private helpers ----------------------------------------------------
460
+ /**
461
+ * Rich balance summary derived from VTXOs + boarding UTXOs (ported from the native
462
+ * adapter). The SDK's top-level `balance.total` omits the boarding portion, so we
463
+ * recompute it: available = settled + preconfirmed; total includes boarding + recoverable.
464
+ */
465
+ async getWalletBalanceSummary() {
466
+ const wallet = this.rawWallet;
467
+ const balance = await wallet.getBalance();
468
+ const normalized = {
469
+ boardingConfirmed: toNumber(balance?.boarding?.confirmed),
470
+ boardingUnconfirmed: toNumber(balance?.boarding?.unconfirmed),
471
+ boardingTotal: toNumber(balance?.boarding?.total),
472
+ settled: toNumber(balance?.settled),
473
+ preconfirmed: toNumber(balance?.preconfirmed),
474
+ available: toNumber(balance?.available),
475
+ recoverable: toNumber(balance?.recoverable),
476
+ total: toNumber(balance?.total),
477
+ };
478
+ let normalizedVtxos = [];
479
+ try {
480
+ normalizedVtxos = normalizeVtxos(await wallet.getVtxos());
481
+ }
482
+ catch {
483
+ /* fall back to wallet.getBalance() */
484
+ }
485
+ if (normalizedVtxos.length === 0) {
486
+ const available = normalized.settled + normalized.preconfirmed;
487
+ return { ...normalized, available, total: normalized.boardingTotal + available + normalized.recoverable };
488
+ }
489
+ const vtxoSummary = normalizedVtxos.reduce((summary, vtxo) => {
490
+ if (vtxo.state === 'swept')
491
+ summary.recoverable += vtxo.value;
492
+ else if (vtxo.state === 'preconfirmed')
493
+ summary.preconfirmed += vtxo.value;
494
+ else
495
+ summary.settled += vtxo.value;
496
+ return summary;
497
+ }, { settled: 0, preconfirmed: 0, recoverable: 0 });
498
+ const available = vtxoSummary.settled + vtxoSummary.preconfirmed;
499
+ return {
500
+ ...normalized,
501
+ settled: vtxoSummary.settled,
502
+ preconfirmed: vtxoSummary.preconfirmed,
503
+ available,
504
+ recoverable: vtxoSummary.recoverable,
505
+ total: normalized.boardingTotal + available + vtxoSummary.recoverable,
506
+ };
231
507
  }
232
508
  }
233
509
  //# sourceMappingURL=ArkadeWdkAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkadeWdkAdapter.js","sourceRoot":"","sources":["../../../src/adapters/wdk/ArkadeWdkAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkadeWdkAdapter.js","sourceRoot":"","sources":["../../../src/adapters/wdk/ArkadeWdkAdapter.ts"],"names":[],"mappings":"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"}