@kaleidorg/wallet-engine 1.0.0-beta.12

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/dist/adapters/ArkadeAdapter.d.ts +49 -0
  4. package/dist/adapters/ArkadeAdapter.d.ts.map +1 -0
  5. package/dist/adapters/ArkadeAdapter.js +316 -0
  6. package/dist/adapters/ArkadeAdapter.js.map +1 -0
  7. package/dist/adapters/IProtocolAdapter.d.ts +217 -0
  8. package/dist/adapters/IProtocolAdapter.d.ts.map +1 -0
  9. package/dist/adapters/IProtocolAdapter.js +33 -0
  10. package/dist/adapters/IProtocolAdapter.js.map +1 -0
  11. package/dist/adapters/RgbAdapter.d.ts +71 -0
  12. package/dist/adapters/RgbAdapter.d.ts.map +1 -0
  13. package/dist/adapters/RgbAdapter.js +820 -0
  14. package/dist/adapters/RgbAdapter.js.map +1 -0
  15. package/dist/adapters/SparkAdapter.d.ts +48 -0
  16. package/dist/adapters/SparkAdapter.d.ts.map +1 -0
  17. package/dist/adapters/SparkAdapter.js +395 -0
  18. package/dist/adapters/SparkAdapter.js.map +1 -0
  19. package/dist/adapters/native.d.ts +16 -0
  20. package/dist/adapters/native.d.ts.map +1 -0
  21. package/dist/adapters/native.js +16 -0
  22. package/dist/adapters/native.js.map +1 -0
  23. package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +85 -0
  24. package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -0
  25. package/dist/adapters/wdk/ArkadeWdkAdapter.js +313 -0
  26. package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -0
  27. package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +88 -0
  28. package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -0
  29. package/dist/adapters/wdk/LiquidWdkAdapter.js +276 -0
  30. package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -0
  31. package/dist/adapters/wdk/RlnWdkAdapter.d.ts +86 -0
  32. package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -0
  33. package/dist/adapters/wdk/RlnWdkAdapter.js +310 -0
  34. package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -0
  35. package/dist/adapters/wdk/SparkWdkAdapter.d.ts +81 -0
  36. package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -0
  37. package/dist/adapters/wdk/SparkWdkAdapter.js +417 -0
  38. package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -0
  39. package/dist/adapters/wdk/index.d.ts +15 -0
  40. package/dist/adapters/wdk/index.d.ts.map +1 -0
  41. package/dist/adapters/wdk/index.js +15 -0
  42. package/dist/adapters/wdk/index.js.map +1 -0
  43. package/dist/adapters/wdk/moduleLoader.d.ts +22 -0
  44. package/dist/adapters/wdk/moduleLoader.d.ts.map +1 -0
  45. package/dist/adapters/wdk/moduleLoader.js +31 -0
  46. package/dist/adapters/wdk/moduleLoader.js.map +1 -0
  47. package/dist/capabilities/index.d.ts +46 -0
  48. package/dist/capabilities/index.d.ts.map +1 -0
  49. package/dist/capabilities/index.js +102 -0
  50. package/dist/capabilities/index.js.map +1 -0
  51. package/dist/capabilities/operations.d.ts +22 -0
  52. package/dist/capabilities/operations.d.ts.map +1 -0
  53. package/dist/capabilities/operations.js +55 -0
  54. package/dist/capabilities/operations.js.map +1 -0
  55. package/dist/constants.d.ts +8 -0
  56. package/dist/constants.d.ts.map +1 -0
  57. package/dist/constants.js +8 -0
  58. package/dist/constants.js.map +1 -0
  59. package/dist/disclosure/index.d.ts +51 -0
  60. package/dist/disclosure/index.d.ts.map +1 -0
  61. package/dist/disclosure/index.js +64 -0
  62. package/dist/disclosure/index.js.map +1 -0
  63. package/dist/index.d.ts +22 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +34 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/lib/arkade-client-manager.d.ts +47 -0
  68. package/dist/lib/arkade-client-manager.d.ts.map +1 -0
  69. package/dist/lib/arkade-client-manager.js +121 -0
  70. package/dist/lib/arkade-client-manager.js.map +1 -0
  71. package/dist/lib/bolt11.d.ts +18 -0
  72. package/dist/lib/bolt11.d.ts.map +1 -0
  73. package/dist/lib/bolt11.js +31 -0
  74. package/dist/lib/bolt11.js.map +1 -0
  75. package/dist/lib/flashnet-client-manager.d.ts +29 -0
  76. package/dist/lib/flashnet-client-manager.d.ts.map +1 -0
  77. package/dist/lib/flashnet-client-manager.js +116 -0
  78. package/dist/lib/flashnet-client-manager.js.map +1 -0
  79. package/dist/lib/kaleido-client-manager.d.ts +26 -0
  80. package/dist/lib/kaleido-client-manager.d.ts.map +1 -0
  81. package/dist/lib/kaleido-client-manager.js +55 -0
  82. package/dist/lib/kaleido-client-manager.js.map +1 -0
  83. package/dist/lib/spark-client-manager.d.ts +41 -0
  84. package/dist/lib/spark-client-manager.d.ts.map +1 -0
  85. package/dist/lib/spark-client-manager.js +101 -0
  86. package/dist/lib/spark-client-manager.js.map +1 -0
  87. package/dist/manager/ProtocolManager.d.ts +108 -0
  88. package/dist/manager/ProtocolManager.d.ts.map +1 -0
  89. package/dist/manager/ProtocolManager.js +305 -0
  90. package/dist/manager/ProtocolManager.js.map +1 -0
  91. package/dist/ports/index.d.ts +49 -0
  92. package/dist/ports/index.d.ts.map +1 -0
  93. package/dist/ports/index.js +31 -0
  94. package/dist/ports/index.js.map +1 -0
  95. package/dist/receive/unifiedReceive.d.ts +54 -0
  96. package/dist/receive/unifiedReceive.d.ts.map +1 -0
  97. package/dist/receive/unifiedReceive.js +102 -0
  98. package/dist/receive/unifiedReceive.js.map +1 -0
  99. package/dist/registry/createWdkRegistry.d.ts +20 -0
  100. package/dist/registry/createWdkRegistry.d.ts.map +1 -0
  101. package/dist/registry/createWdkRegistry.js +32 -0
  102. package/dist/registry/createWdkRegistry.js.map +1 -0
  103. package/dist/router/destination.d.ts +28 -0
  104. package/dist/router/destination.d.ts.map +1 -0
  105. package/dist/router/destination.js +72 -0
  106. package/dist/router/destination.js.map +1 -0
  107. package/dist/router/index.d.ts +55 -0
  108. package/dist/router/index.d.ts.map +1 -0
  109. package/dist/router/index.js +67 -0
  110. package/dist/router/index.js.map +1 -0
  111. package/dist/swap/KaleidoswapSwap.d.ts +44 -0
  112. package/dist/swap/KaleidoswapSwap.d.ts.map +1 -0
  113. package/dist/swap/KaleidoswapSwap.js +123 -0
  114. package/dist/swap/KaleidoswapSwap.js.map +1 -0
  115. package/dist/swap/index.d.ts +8 -0
  116. package/dist/swap/index.d.ts.map +1 -0
  117. package/dist/swap/index.js +8 -0
  118. package/dist/swap/index.js.map +1 -0
  119. package/dist/types/arkade.d.ts +40 -0
  120. package/dist/types/arkade.d.ts.map +1 -0
  121. package/dist/types/arkade.js +6 -0
  122. package/dist/types/arkade.js.map +1 -0
  123. package/dist/types/base.d.ts +228 -0
  124. package/dist/types/base.d.ts.map +1 -0
  125. package/dist/types/base.js +53 -0
  126. package/dist/types/base.js.map +1 -0
  127. package/dist/types/cross-l2.d.ts +108 -0
  128. package/dist/types/cross-l2.d.ts.map +1 -0
  129. package/dist/types/cross-l2.js +16 -0
  130. package/dist/types/cross-l2.js.map +1 -0
  131. package/dist/types/flashnet.d.ts +31 -0
  132. package/dist/types/flashnet.d.ts.map +1 -0
  133. package/dist/types/flashnet.js +23 -0
  134. package/dist/types/flashnet.js.map +1 -0
  135. package/dist/types/rgb.d.ts +105 -0
  136. package/dist/types/rgb.d.ts.map +1 -0
  137. package/dist/types/rgb.js +6 -0
  138. package/dist/types/rgb.js.map +1 -0
  139. package/dist/types/spark.d.ts +59 -0
  140. package/dist/types/spark.d.ts.map +1 -0
  141. package/dist/types/spark.js +6 -0
  142. package/dist/types/spark.js.map +1 -0
  143. package/dist/utils.d.ts +10 -0
  144. package/dist/utils.d.ts.map +1 -0
  145. package/dist/utils.js +23 -0
  146. package/dist/utils.js.map +1 -0
  147. package/package.json +71 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Destination Classifier
3
+ * ----------------------
4
+ * Pure, dependency-free classification of a send destination string into a
5
+ * (kind, layer, candidate protocols) triple. The cross-protocol router uses this
6
+ * to decide which adapter(s) can pay a given destination — without any adapter
7
+ * needing to know about the others.
8
+ *
9
+ * This is the cross-protocol layer that WDK's per-module detection does NOT cover:
10
+ * WDK detects within a protocol; this chooses BETWEEN protocols.
11
+ */
12
+ import { ProtocolType, Layer, AddressFormat } from '../types/base.js';
13
+ export type DestinationKind = 'BOLT11' | 'LN_ADDRESS' | 'RGB_INVOICE' | 'SPARK' | 'ARKADE' | 'LIQUID' | 'BTC_ONCHAIN' | 'BIP21' | 'UNKNOWN';
14
+ export interface ClassifiedDestination {
15
+ kind: DestinationKind;
16
+ /** The most specific layer this destination settles on. */
17
+ layer: Layer | null;
18
+ /** Address format (for passing to swap receiverAddressFormat / UI). */
19
+ format: AddressFormat | null;
20
+ /** Protocols capable of paying this destination, best-first. */
21
+ candidates: ProtocolType[];
22
+ /** For BIP21: an embedded BOLT11 fallback, if present. */
23
+ lightningFallback?: string;
24
+ /** The normalized payable string (URI-stripped where relevant). */
25
+ value: string;
26
+ }
27
+ export declare function classifyDestination(raw: string): ClassifiedDestination;
28
+ //# sourceMappingURL=destination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../../src/router/destination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElE,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,OAAO,GACP,SAAS,CAAA;AAEb,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAA;IACrB,2DAA2D;IAC3D,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,uEAAuE;IACvE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,gEAAgE;IAChE,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;CACd;AAoBD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAoDtE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Destination Classifier
3
+ * ----------------------
4
+ * Pure, dependency-free classification of a send destination string into a
5
+ * (kind, layer, candidate protocols) triple. The cross-protocol router uses this
6
+ * to decide which adapter(s) can pay a given destination — without any adapter
7
+ * needing to know about the others.
8
+ *
9
+ * This is the cross-protocol layer that WDK's per-module detection does NOT cover:
10
+ * WDK detects within a protocol; this chooses BETWEEN protocols.
11
+ */
12
+ const RE = {
13
+ bolt11: /^ln(bc|tb|bcrt|sb)[0-9]/i,
14
+ lnurl: /^lnurl[0-9a-z]/i,
15
+ lnAddress: /^[^@\s]+@[^@\s]+\.[^@\s]+$/i,
16
+ rgb: /^(rgb:|utxob:)/i,
17
+ spark: /^(spark|sparkrt|sprt|spt)1[0-9a-z]/i,
18
+ arkade: /^(ark|tark)1[0-9a-z]/i,
19
+ liquid: /^(lq1|tlq1|ex1|el1|VJL|VT|CT|Az|Gq|H)/, // confidential + segwit Liquid prefixes
20
+ btc: /^(bc1|tb1|bcrt1|[13]|[mn2])[0-9a-zA-Z]/,
21
+ bip21: /^bitcoin:/i,
22
+ };
23
+ /** Pull a `lightning=` parameter out of a BIP21 URI, if present. */
24
+ function extractLightning(uri) {
25
+ const m = uri.match(/[?&]lightning=([^&]+)/i);
26
+ return m ? decodeURIComponent(m[1]) : undefined;
27
+ }
28
+ export function classifyDestination(raw) {
29
+ const dest = (raw ?? '').trim();
30
+ if (RE.bip21.test(dest)) {
31
+ const addr = dest.slice('bitcoin:'.length).split('?')[0];
32
+ const lightningFallback = extractLightning(dest);
33
+ return {
34
+ kind: 'BIP21',
35
+ layer: 'BTC_L1',
36
+ format: 'BTC_ADDRESS',
37
+ // On-chain BTC can be served by any protocol with an on-chain path; LN fallback widens it.
38
+ candidates: ['RGB', 'ARKADE', 'SPARK', 'LIQUID'],
39
+ lightningFallback,
40
+ value: addr,
41
+ };
42
+ }
43
+ if (RE.bolt11.test(dest)) {
44
+ return { kind: 'BOLT11', layer: 'BTC_LN', format: 'BOLT11', candidates: ['RGB', 'SPARK', 'ARKADE'], value: dest };
45
+ }
46
+ if (RE.lnurl.test(dest) || RE.lnAddress.test(dest)) {
47
+ return { kind: 'LN_ADDRESS', layer: 'BTC_LN', format: 'BOLT11', candidates: ['RGB', 'SPARK', 'ARKADE'], value: dest };
48
+ }
49
+ if (RE.rgb.test(dest)) {
50
+ return { kind: 'RGB_INVOICE', layer: 'RGB_LN', format: 'RGB_INVOICE', candidates: ['RGB'], value: dest };
51
+ }
52
+ if (RE.spark.test(dest)) {
53
+ return { kind: 'SPARK', layer: 'SPARK_SPARK', format: 'SPARK_ADDRESS', candidates: ['SPARK'], value: dest };
54
+ }
55
+ if (RE.arkade.test(dest)) {
56
+ return { kind: 'ARKADE', layer: 'ARKADE_ARKADE', format: 'ARKADE_ADDRESS', candidates: ['ARKADE'], value: dest };
57
+ }
58
+ if (RE.liquid.test(dest)) {
59
+ return { kind: 'LIQUID', layer: 'BTC_LIQUID', format: 'LIQUID_ADDRESS', candidates: ['LIQUID'], value: dest };
60
+ }
61
+ if (RE.btc.test(dest)) {
62
+ return {
63
+ kind: 'BTC_ONCHAIN',
64
+ layer: 'BTC_L1',
65
+ format: 'BTC_ADDRESS',
66
+ candidates: ['RGB', 'ARKADE', 'SPARK'], // protocols that can pay an on-chain BTC address
67
+ value: dest,
68
+ };
69
+ }
70
+ return { kind: 'UNKNOWN', layer: null, format: null, candidates: [], value: dest };
71
+ }
72
+ //# sourceMappingURL=destination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.js","sourceRoot":"","sources":["../../src/router/destination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * CrossProtocolRouter
3
+ * -------------------
4
+ * Sits ON TOP of the adapters and chooses BETWEEN protocols. Given a send
5
+ * destination or a receive intent, it returns the protocol(s) that can fulfil it,
6
+ * filtered to what's actually registered and connected. This is the layer that
7
+ * makes lite mode possible: it auto-selects the route so the UI never has to.
8
+ *
9
+ * It reads the capability manifest (differences-as-data) + the destination
10
+ * classifier — never the adapters' internals.
11
+ */
12
+ import { ProtocolAdapterRegistry, IProtocolAdapter } from '../adapters/IProtocolAdapter.js';
13
+ import { ProtocolType, Layer } from '../types/base.js';
14
+ import { ClassifiedDestination } from './destination.js';
15
+ export interface SendRoute {
16
+ protocol: ProtocolType;
17
+ adapter: IProtocolAdapter;
18
+ layer: Layer | null;
19
+ /** True when this protocol can pay the destination directly (no swap). */
20
+ direct: boolean;
21
+ }
22
+ export interface SendResolution {
23
+ destination: ClassifiedDestination;
24
+ /** Routes that can pay the destination directly, best-first. */
25
+ routes: SendRoute[];
26
+ /** The auto-selected route for lite mode (first direct route), or null. */
27
+ best: SendRoute | null;
28
+ }
29
+ export interface ReceiveRoute {
30
+ protocol: ProtocolType;
31
+ adapter: IProtocolAdapter;
32
+ layer: Layer;
33
+ }
34
+ export declare class CrossProtocolRouter {
35
+ private registry;
36
+ constructor(registry: ProtocolAdapterRegistry);
37
+ /** Only adapters that are registered AND connected are eligible to route. */
38
+ private connected;
39
+ /**
40
+ * Resolve how to SEND to a destination string.
41
+ * Lite mode uses `.best`; advanced mode can offer the full `.routes` list.
42
+ */
43
+ resolveSend(destination: string): SendResolution;
44
+ /**
45
+ * Resolve which protocols can RECEIVE on a given layer (e.g. show the user
46
+ * the available "receive over Lightning / Spark / on-chain" options).
47
+ */
48
+ resolveReceive(layer: Layer): ReceiveRoute[];
49
+ /**
50
+ * Which registered+connected protocols hold/transfer a given asset family.
51
+ * `assetFamily`: 'BTC' or a specific asset id resolved by the caller to a protocol.
52
+ */
53
+ resolveByCapability(predicate: (protocol: ProtocolType) => boolean): IProtocolAdapter[];
54
+ }
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAuB,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,qBAAqB,CAAA;IAClC,gEAAgE;IAChE,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,2EAA2E;IAC3E,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,uBAAuB;IAErD,6EAA6E;IAC7E,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc;IAahD;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE;IAY5C;;;OAGG;IACH,mBAAmB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,GAAG,gBAAgB,EAAE;CAOxF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * CrossProtocolRouter
3
+ * -------------------
4
+ * Sits ON TOP of the adapters and chooses BETWEEN protocols. Given a send
5
+ * destination or a receive intent, it returns the protocol(s) that can fulfil it,
6
+ * filtered to what's actually registered and connected. This is the layer that
7
+ * makes lite mode possible: it auto-selects the route so the UI never has to.
8
+ *
9
+ * It reads the capability manifest (differences-as-data) + the destination
10
+ * classifier — never the adapters' internals.
11
+ */
12
+ import { getCapabilities } from '../capabilities/index.js';
13
+ import { classifyDestination } from './destination.js';
14
+ export class CrossProtocolRouter {
15
+ constructor(registry) {
16
+ this.registry = registry;
17
+ }
18
+ /** Only adapters that are registered AND connected are eligible to route. */
19
+ connected(protocol) {
20
+ const a = this.registry.get(protocol);
21
+ return a && a.isConnected() ? a : null;
22
+ }
23
+ /**
24
+ * Resolve how to SEND to a destination string.
25
+ * Lite mode uses `.best`; advanced mode can offer the full `.routes` list.
26
+ */
27
+ resolveSend(destination) {
28
+ const classified = classifyDestination(destination);
29
+ const routes = [];
30
+ for (const protocol of classified.candidates) {
31
+ const adapter = this.connected(protocol);
32
+ if (!adapter)
33
+ continue;
34
+ routes.push({ protocol, adapter, layer: classified.layer, direct: true });
35
+ }
36
+ return { destination: classified, routes, best: routes[0] ?? null };
37
+ }
38
+ /**
39
+ * Resolve which protocols can RECEIVE on a given layer (e.g. show the user
40
+ * the available "receive over Lightning / Spark / on-chain" options).
41
+ */
42
+ resolveReceive(layer) {
43
+ const out = [];
44
+ for (const protocol of this.registry.getSupportedProtocols()) {
45
+ const caps = getCapabilities(protocol);
46
+ if (!caps.layers.includes(layer))
47
+ continue;
48
+ const adapter = this.connected(protocol);
49
+ if (!adapter)
50
+ continue;
51
+ out.push({ protocol, adapter, layer });
52
+ }
53
+ return out;
54
+ }
55
+ /**
56
+ * Which registered+connected protocols hold/transfer a given asset family.
57
+ * `assetFamily`: 'BTC' or a specific asset id resolved by the caller to a protocol.
58
+ */
59
+ resolveByCapability(predicate) {
60
+ return this.registry
61
+ .getSupportedProtocols()
62
+ .filter(predicate)
63
+ .map((p) => this.connected(p))
64
+ .filter((a) => a != null);
65
+ }
66
+ }
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAyB,MAAM,eAAe,CAAA;AAwB1E,MAAM,OAAO,mBAAmB;IAC9B,YAAoB,QAAiC;QAAjC,aAAQ,GAAR,QAAQ,CAAyB;IAAG,CAAC;IAEzD,6EAA6E;IACrE,SAAS,CAAC,QAAsB;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,WAAmB;QAC7B,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,MAAM,GAAgB,EAAE,CAAA;QAE9B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO;gBAAE,SAAQ;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IACrE,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAY;QACzB,MAAM,GAAG,GAAmB,EAAE,CAAA;QAC9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO;gBAAE,SAAQ;YACtB,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,SAA8C;QAChE,OAAO,IAAI,CAAC,QAAQ;aACjB,qBAAqB,EAAE;aACvB,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;IACpD,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * KaleidoswapSwap
3
+ * ---------------
4
+ * Wraps the WDK Kaleidoswap swap protocol module (@kaleidorg/wdk-protocol-swap-kaleidoswap)
5
+ * behind domain `Quote`/`SwapResult` types. This is the cross-asset swap path (RFQ via the
6
+ * maker) — distinct from the lower-level cross-L2 atomic (VHTLC/Boltz) layer in types/cross-l2.
7
+ *
8
+ * The swap module is bound to an account (it needs a wallet to settle legs) + a baseUrl.
9
+ * No WDK/kaleido-sdk types cross this boundary.
10
+ */
11
+ import { Quote, QuoteRequest, SwapResult } from '../types/base.js';
12
+ export interface KaleidoswapSwapConfig {
13
+ /** KaleidoSwap maker API base URL. */
14
+ baseUrl: string;
15
+ }
16
+ /** Extended quote request carrying the layer hints the maker RFQ needs. */
17
+ export interface SwapQuoteRequest extends QuoteRequest {
18
+ fromLayer: string;
19
+ toLayer: string;
20
+ }
21
+ export interface SwapExecuteRequest extends SwapQuoteRequest {
22
+ /** Destination address/invoice for the OUTPUT asset. */
23
+ receiverAddress: string;
24
+ /** Format of the receiver address (e.g. 'RGB_INVOICE', 'BOLT11', 'BTC_ADDRESS'). */
25
+ receiverAddressFormat: string;
26
+ }
27
+ export declare class KaleidoswapSwap {
28
+ private account;
29
+ private config;
30
+ private proto;
31
+ /**
32
+ * @param account a connected WDK account (e.g. the RLN account that settles RGB-LN legs).
33
+ * Passed straight through to the swap module; held as `any`.
34
+ */
35
+ constructor(account: any, config: KaleidoswapSwapConfig);
36
+ private ensure;
37
+ getQuote(req: SwapQuoteRequest): Promise<Quote>;
38
+ executeSwap(req: SwapExecuteRequest): Promise<SwapResult & {
39
+ depositAddress: string | null;
40
+ depositAddressFormat: string | null;
41
+ }>;
42
+ getSwapStatus(orderId: string): Promise<SwapResult>;
43
+ }
44
+ //# sourceMappingURL=KaleidoswapSwap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaleidoswapSwap.d.ts","sourceRoot":"","sources":["../../src/swap/KaleidoswapSwap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;AAG9E,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;IACvB,oFAAoF;IACpF,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,qBAAa,eAAe;IAOd,OAAO,CAAC,OAAO;IAAO,OAAO,CAAC,MAAM;IANhD,OAAO,CAAC,KAAK,CAAY;IAEzB;;;OAGG;gBACiB,OAAO,EAAE,GAAG,EAAU,MAAM,EAAE,qBAAqB;YAEzD,MAAM;IASd,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAyB/C,WAAW,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAkClI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAqB1D"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * KaleidoswapSwap
3
+ * ---------------
4
+ * Wraps the WDK Kaleidoswap swap protocol module (@kaleidorg/wdk-protocol-swap-kaleidoswap)
5
+ * behind domain `Quote`/`SwapResult` types. This is the cross-asset swap path (RFQ via the
6
+ * maker) — distinct from the lower-level cross-L2 atomic (VHTLC/Boltz) layer in types/cross-l2.
7
+ *
8
+ * The swap module is bound to an account (it needs a wallet to settle legs) + a baseUrl.
9
+ * No WDK/kaleido-sdk types cross this boundary.
10
+ */
11
+ import { ProtocolError } from '../types/base.js';
12
+ import { loadWdkModule } from '../adapters/wdk/moduleLoader.js';
13
+ export class KaleidoswapSwap {
14
+ /**
15
+ * @param account a connected WDK account (e.g. the RLN account that settles RGB-LN legs).
16
+ * Passed straight through to the swap module; held as `any`.
17
+ */
18
+ constructor(account, config) {
19
+ this.account = account;
20
+ this.config = config;
21
+ this.proto = null;
22
+ }
23
+ async ensure() {
24
+ if (this.proto)
25
+ return this.proto;
26
+ // @ts-ignore — declared as a workspace/optional dep; resolved at runtime.
27
+ const mod = await loadWdkModule('@kaleidorg/wdk-protocol-swap-kaleidoswap', () => import('@kaleidorg/wdk-protocol-swap-kaleidoswap'));
28
+ const KaleidoswapProtocol = mod.default ?? mod;
29
+ this.proto = new KaleidoswapProtocol(this.account, { baseUrl: this.config.baseUrl });
30
+ return this.proto;
31
+ }
32
+ async getQuote(req) {
33
+ if (req.fromAmount == null) {
34
+ throw new ProtocolError('Swap quote requires fromAmount', 'RGB', 'NO_AMOUNT');
35
+ }
36
+ const proto = await this.ensure();
37
+ const q = await proto.quoteSwap({
38
+ fromAssetId: req.fromAsset,
39
+ toAssetId: req.toAsset,
40
+ fromLayer: req.fromLayer,
41
+ toLayer: req.toLayer,
42
+ fromAmount: req.fromAmount,
43
+ });
44
+ return {
45
+ id: q.rfqId,
46
+ fromAsset: req.fromAsset,
47
+ fromAmount: Number(q.tokenInAmount),
48
+ toAsset: req.toAsset,
49
+ toAmount: Number(q.tokenOutAmount),
50
+ price: Number(q.price),
51
+ fee: { amount: Number(q.fee), asset: req.fromAsset },
52
+ expiresAt: Number(q.expiresAt) * 1000,
53
+ provider: 'kaleidoswap',
54
+ };
55
+ }
56
+ async executeSwap(req) {
57
+ if (req.fromAmount == null) {
58
+ throw new ProtocolError('Swap requires fromAmount', 'RGB', 'NO_AMOUNT');
59
+ }
60
+ const proto = await this.ensure();
61
+ const r = await proto.swap({
62
+ fromAssetId: req.fromAsset,
63
+ toAssetId: req.toAsset,
64
+ fromLayer: req.fromLayer,
65
+ toLayer: req.toLayer,
66
+ fromAmount: req.fromAmount,
67
+ receiverAddress: req.receiverAddress,
68
+ receiverAddressFormat: req.receiverAddressFormat,
69
+ });
70
+ return {
71
+ swapId: r.orderId,
72
+ status: 'pending',
73
+ quote: {
74
+ id: r.orderId,
75
+ fromAsset: req.fromAsset,
76
+ fromAmount: Number(r.tokenInAmount),
77
+ toAsset: req.toAsset,
78
+ toAmount: Number(r.tokenOutAmount),
79
+ price: 0,
80
+ fee: { amount: Number(r.fee), asset: req.fromAsset },
81
+ expiresAt: 0,
82
+ provider: 'kaleidoswap',
83
+ },
84
+ timestamp: Date.now(),
85
+ depositAddress: r.depositAddress ?? null,
86
+ depositAddressFormat: r.depositAddressFormat ?? null,
87
+ };
88
+ }
89
+ async getSwapStatus(orderId) {
90
+ const proto = await this.ensure();
91
+ const o = await proto.getOrderStatus(orderId);
92
+ const status = mapOrderStatus(o?.status);
93
+ return {
94
+ swapId: o.id,
95
+ status,
96
+ quote: {
97
+ id: o.rfq_id,
98
+ fromAsset: o.from_asset?.asset_id,
99
+ fromAmount: Number(o.from_asset?.amount ?? 0),
100
+ toAsset: o.to_asset?.asset_id,
101
+ toAmount: Number(o.to_asset?.amount ?? 0),
102
+ price: Number(o.price ?? 0),
103
+ fee: { amount: 0, asset: o.from_asset?.asset_id },
104
+ expiresAt: 0,
105
+ provider: 'kaleidoswap',
106
+ },
107
+ timestamp: Date.now(),
108
+ };
109
+ }
110
+ }
111
+ function mapOrderStatus(s) {
112
+ switch (s) {
113
+ case 'FILLED':
114
+ return 'confirmed';
115
+ case 'FAILED':
116
+ case 'EXPIRED':
117
+ case 'CANCELLED':
118
+ return 'failed';
119
+ default:
120
+ return 'pending';
121
+ }
122
+ }
123
+ //# sourceMappingURL=KaleidoswapSwap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KaleidoswapSwap.js","sourceRoot":"","sources":["../../src/swap/KaleidoswapSwap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Kaleidoswap RFQ swap wrapper.
3
+ *
4
+ * Opt-in sub-path export: `@kaleidorg/wallet-engine/swap`. Uses the WDK
5
+ * module loader, so it is kept out of the adapter-free main barrel.
6
+ */
7
+ export { KaleidoswapSwap, type KaleidoswapSwapConfig, type SwapQuoteRequest, type SwapExecuteRequest, } from './KaleidoswapSwap.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Kaleidoswap RFQ swap wrapper.
3
+ *
4
+ * Opt-in sub-path export: `@kaleidorg/wallet-engine/swap`. Uses the WDK
5
+ * module loader, so it is kept out of the adapter-free main barrel.
6
+ */
7
+ export { KaleidoswapSwap, } from './KaleidoswapSwap.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,eAAe,GAIhB,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Arkade Protocol Types
3
+ * Ported from rate-extension/src/protocols/types/arkade.ts
4
+ */
5
+ import { BaseProtocolConfig } from '../adapters/IProtocolAdapter.js';
6
+ export interface ArkadeConfig extends Omit<BaseProtocolConfig, 'network'> {
7
+ protocol: 'ARKADE';
8
+ mnemonic: string;
9
+ arkServerUrl: string;
10
+ esploraUrl?: string;
11
+ network?: 'mainnet' | 'signet';
12
+ delegatorUrl?: string;
13
+ delegationEnabled?: boolean;
14
+ vtxoThresholdSeconds?: number;
15
+ }
16
+ export interface ArkadeVtxo {
17
+ txid: string;
18
+ vout: number;
19
+ amount: bigint;
20
+ expiresAt?: number;
21
+ status?: 'confirmed' | 'preconfirmed' | 'recoverable';
22
+ }
23
+ export interface ArkadeBalance {
24
+ total: bigint;
25
+ available: bigint;
26
+ preconfirmed: bigint;
27
+ settled: bigint;
28
+ recoverable: bigint;
29
+ boarding: {
30
+ total: bigint;
31
+ };
32
+ }
33
+ export interface ArkadeTransaction {
34
+ type: 'send' | 'receive' | 'boarding' | 'offboard';
35
+ amount: number;
36
+ txid?: string;
37
+ timestamp?: number;
38
+ status?: string;
39
+ }
40
+ //# sourceMappingURL=arkade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkade.d.ts","sourceRoot":"","sources":["../../src/types/arkade.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;IACvE,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,aAAa,CAAA;CACtD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Arkade Protocol Types
3
+ * Ported from rate-extension/src/protocols/types/arkade.ts
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=arkade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkade.js","sourceRoot":"","sources":["../../src/types/arkade.ts"],"names":[],"mappings":"AAAA;;;GAGG"}