@kaleidorg/wallet-engine 1.0.0-beta.4 → 1.0.0-beta.42
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.
- package/LICENSE +21 -0
- package/README.md +29 -10
- package/dist/adapters/ArkadeAdapter.d.ts +78 -14
- package/dist/adapters/ArkadeAdapter.d.ts.map +1 -1
- package/dist/adapters/ArkadeAdapter.js +653 -161
- package/dist/adapters/ArkadeAdapter.js.map +1 -1
- package/dist/adapters/IProtocolAdapter.d.ts +195 -18
- package/dist/adapters/IProtocolAdapter.d.ts.map +1 -1
- package/dist/adapters/IProtocolAdapter.js +6 -2
- package/dist/adapters/IProtocolAdapter.js.map +1 -1
- package/dist/adapters/RgbAdapter.d.ts +70 -27
- package/dist/adapters/RgbAdapter.d.ts.map +1 -1
- package/dist/adapters/RgbAdapter.js +464 -370
- package/dist/adapters/RgbAdapter.js.map +1 -1
- package/dist/adapters/SparkAdapter.d.ts +93 -15
- package/dist/adapters/SparkAdapter.d.ts.map +1 -1
- package/dist/adapters/SparkAdapter.js +833 -168
- package/dist/adapters/SparkAdapter.js.map +1 -1
- package/dist/adapters/arkade.d.ts +15 -0
- package/dist/adapters/arkade.d.ts.map +1 -0
- package/dist/adapters/arkade.js +15 -0
- package/dist/adapters/arkade.js.map +1 -0
- package/dist/adapters/flashnet.d.ts +15 -0
- package/dist/adapters/flashnet.d.ts.map +1 -0
- package/dist/adapters/flashnet.js +17 -0
- package/dist/adapters/flashnet.js.map +1 -0
- package/dist/adapters/native.d.ts +17 -0
- package/dist/adapters/native.d.ts.map +1 -0
- package/dist/adapters/native.js +17 -0
- package/dist/adapters/native.js.map +1 -0
- package/dist/adapters/rgb.d.ts +11 -0
- package/dist/adapters/rgb.d.ts.map +1 -0
- package/dist/adapters/rgb.js +11 -0
- package/dist/adapters/rgb.js.map +1 -0
- package/dist/adapters/spark.d.ts +12 -0
- package/dist/adapters/spark.d.ts.map +1 -0
- package/dist/adapters/spark.js +14 -0
- package/dist/adapters/spark.js.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +53 -19
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/ArkadeWdkAdapter.js +366 -90
- package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts +40 -0
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js +71 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +6 -13
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/LiquidWdkAdapter.js +14 -32
- package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/RgbCore.d.ts +64 -0
- package/dist/adapters/wdk/RgbCore.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbCore.js +111 -0
- package/dist/adapters/wdk/RgbCore.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts +277 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js +731 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts +104 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js +249 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts +27 -14
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/RlnWdkAdapter.js +124 -89
- package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts +74 -41
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.js +706 -249
- package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/index.d.ts +17 -0
- package/dist/adapters/wdk/index.d.ts.map +1 -0
- package/dist/adapters/wdk/index.js +17 -0
- package/dist/adapters/wdk/index.js.map +1 -0
- package/dist/adapters/wdk/wasm-rgb.d.ts +15 -0
- package/dist/adapters/wdk/wasm-rgb.d.ts.map +1 -0
- package/dist/adapters/wdk/wasm-rgb.js +15 -0
- package/dist/adapters/wdk/wasm-rgb.js.map +1 -0
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +17 -2
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/operations.d.ts +22 -0
- package/dist/capabilities/operations.d.ts.map +1 -0
- package/dist/capabilities/operations.js +62 -0
- package/dist/capabilities/operations.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/disclosure/index.d.ts +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/format.d.ts +11 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +10 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +21 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -32
- package/dist/index.js.map +1 -1
- package/dist/lib/arkade-client-manager.d.ts +64 -24
- package/dist/lib/arkade-client-manager.d.ts.map +1 -1
- package/dist/lib/arkade-client-manager.js +240 -65
- package/dist/lib/arkade-client-manager.js.map +1 -1
- package/dist/lib/arkade-converters.d.ts +39 -0
- package/dist/lib/arkade-converters.d.ts.map +1 -0
- package/dist/lib/arkade-converters.js +148 -0
- package/dist/lib/arkade-converters.js.map +1 -0
- package/dist/lib/arkade-helpers.d.ts +110 -0
- package/dist/lib/arkade-helpers.d.ts.map +1 -0
- package/dist/lib/arkade-helpers.js +227 -0
- package/dist/lib/arkade-helpers.js.map +1 -0
- package/dist/lib/arkade-swaps-client-manager.d.ts +55 -0
- package/dist/lib/arkade-swaps-client-manager.d.ts.map +1 -0
- package/dist/lib/arkade-swaps-client-manager.js +127 -0
- package/dist/lib/arkade-swaps-client-manager.js.map +1 -0
- package/dist/lib/arkade-vtxo-lifecycle.d.ts +116 -0
- package/dist/lib/arkade-vtxo-lifecycle.d.ts.map +1 -0
- package/dist/lib/arkade-vtxo-lifecycle.js +184 -0
- package/dist/lib/arkade-vtxo-lifecycle.js.map +1 -0
- package/dist/lib/flashnet-client-manager.d.ts +26 -9
- package/dist/lib/flashnet-client-manager.d.ts.map +1 -1
- package/dist/lib/flashnet-client-manager.js +97 -13
- package/dist/lib/flashnet-client-manager.js.map +1 -1
- package/dist/lib/kaleido-client-manager.d.ts +38 -3
- package/dist/lib/kaleido-client-manager.d.ts.map +1 -1
- package/dist/lib/kaleido-client-manager.js +79 -10
- package/dist/lib/kaleido-client-manager.js.map +1 -1
- package/dist/lib/ln-message-sign.d.ts +20 -0
- package/dist/lib/ln-message-sign.d.ts.map +1 -0
- package/dist/lib/ln-message-sign.js +90 -0
- package/dist/lib/ln-message-sign.js.map +1 -0
- package/dist/lib/log.d.ts +15 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +16 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/orchestra-client.d.ts +149 -0
- package/dist/lib/orchestra-client.d.ts.map +1 -0
- package/dist/lib/orchestra-client.js +178 -0
- package/dist/lib/orchestra-client.js.map +1 -0
- package/dist/lib/psbt-signer.d.ts +60 -0
- package/dist/lib/psbt-signer.d.ts.map +1 -0
- package/dist/lib/psbt-signer.js +161 -0
- package/dist/lib/psbt-signer.js.map +1 -0
- package/dist/lib/rgb-converters.d.ts +62 -0
- package/dist/lib/rgb-converters.d.ts.map +1 -0
- package/dist/lib/rgb-converters.js +179 -0
- package/dist/lib/rgb-converters.js.map +1 -0
- package/dist/lib/rgb-fee-policy.d.ts +41 -0
- package/dist/lib/rgb-fee-policy.d.ts.map +1 -0
- package/dist/lib/rgb-fee-policy.js +52 -0
- package/dist/lib/rgb-fee-policy.js.map +1 -0
- package/dist/lib/rgb-helpers.d.ts +54 -0
- package/dist/lib/rgb-helpers.d.ts.map +1 -0
- package/dist/lib/rgb-helpers.js +89 -0
- package/dist/lib/rgb-helpers.js.map +1 -0
- package/dist/lib/spark-activity.d.ts +5 -0
- package/dist/lib/spark-activity.d.ts.map +1 -0
- package/dist/lib/spark-activity.js +11 -0
- package/dist/lib/spark-activity.js.map +1 -0
- package/dist/lib/spark-balance-cache.d.ts +58 -0
- package/dist/lib/spark-balance-cache.d.ts.map +1 -0
- package/dist/lib/spark-balance-cache.js +86 -0
- package/dist/lib/spark-balance-cache.js.map +1 -0
- package/dist/lib/spark-client-manager.d.ts +64 -10
- package/dist/lib/spark-client-manager.d.ts.map +1 -1
- package/dist/lib/spark-client-manager.js +191 -35
- package/dist/lib/spark-client-manager.js.map +1 -1
- package/dist/lib/spark-converters.d.ts +64 -0
- package/dist/lib/spark-converters.d.ts.map +1 -0
- package/dist/lib/spark-converters.js +242 -0
- package/dist/lib/spark-converters.js.map +1 -0
- package/dist/lib/spark-helpers.d.ts +72 -0
- package/dist/lib/spark-helpers.d.ts.map +1 -0
- package/dist/lib/spark-helpers.js +151 -0
- package/dist/lib/spark-helpers.js.map +1 -0
- package/dist/lib/spark-sent-token-records.d.ts +43 -0
- package/dist/lib/spark-sent-token-records.d.ts.map +1 -0
- package/dist/lib/spark-sent-token-records.js +105 -0
- package/dist/lib/spark-sent-token-records.js.map +1 -0
- package/dist/lib/wallet-seed.d.ts +31 -0
- package/dist/lib/wallet-seed.d.ts.map +1 -0
- package/dist/lib/wallet-seed.js +58 -0
- package/dist/lib/wallet-seed.js.map +1 -0
- package/dist/lib/zbase32.d.ts +3 -0
- package/dist/lib/zbase32.d.ts.map +1 -0
- package/dist/lib/zbase32.js +64 -0
- package/dist/lib/zbase32.js.map +1 -0
- package/dist/manager/ProtocolManager.d.ts +54 -3
- package/dist/manager/ProtocolManager.d.ts.map +1 -1
- package/dist/manager/ProtocolManager.js +118 -41
- package/dist/manager/ProtocolManager.js.map +1 -1
- package/dist/ports/index.d.ts +20 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +23 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/receive/unifiedReceive.d.ts +12 -0
- package/dist/receive/unifiedReceive.d.ts.map +1 -1
- package/dist/receive/unifiedReceive.js +35 -4
- package/dist/receive/unifiedReceive.js.map +1 -1
- package/dist/registry/createWdkRegistry.d.ts +10 -2
- package/dist/registry/createWdkRegistry.d.ts.map +1 -1
- package/dist/registry/createWdkRegistry.js +14 -7
- package/dist/registry/createWdkRegistry.js.map +1 -1
- package/dist/router/destination.d.ts +2 -2
- package/dist/router/destination.d.ts.map +1 -1
- package/dist/router/destination.js +34 -11
- package/dist/router/destination.js.map +1 -1
- package/dist/router/index.d.ts +39 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +113 -4
- package/dist/router/index.js.map +1 -1
- package/dist/router/preference.d.ts +53 -0
- package/dist/router/preference.d.ts.map +1 -0
- package/dist/router/preference.js +81 -0
- package/dist/router/preference.js.map +1 -0
- package/dist/swap/KaleidoswapSwap.d.ts +1 -1
- package/dist/swap/KaleidoswapSwap.d.ts.map +1 -1
- package/dist/swap/KaleidoswapSwap.js +37 -20
- package/dist/swap/KaleidoswapSwap.js.map +1 -1
- package/dist/swap/index.d.ts +8 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/types/arkade.d.ts +1 -1
- package/dist/types/base.d.ts +35 -25
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/base.js +28 -2
- package/dist/types/base.js.map +1 -1
- package/dist/types/cross-l2.d.ts +1 -1
- package/dist/types/flashnet.d.ts +20 -0
- package/dist/types/flashnet.d.ts.map +1 -1
- package/dist/types/flashnet.js +34 -6
- package/dist/types/flashnet.js.map +1 -1
- package/dist/types/rgb.d.ts +18 -4
- package/dist/types/rgb.d.ts.map +1 -1
- package/dist/types/spark.d.ts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +68 -14
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 KaleidoSwap
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
# @kaleidorg/wallet-engine
|
|
2
2
|
|
|
3
3
|
> Multi-protocol Bitcoin L2 wallet engine — **native or WDK-backed** adapters for
|
|
4
|
-
> **Spark · RGB
|
|
4
|
+
> **Spark · RGB-LN · RGB-L1 · Liquid · Arkade** behind one `IProtocolAdapter` contract,
|
|
5
5
|
> with a cross-protocol router, BIP321 unified receive, and lite/advanced disclosure.
|
|
6
6
|
|
|
7
|
+
> [!WARNING]
|
|
8
|
+
> **Alpha — experimental, not production-ready.** This engine moves real funds across
|
|
9
|
+
> Bitcoin L2s. APIs may change without notice, adapters are incomplete, and it has not
|
|
10
|
+
> been independently audited. Do not use it with mainnet funds you cannot afford to lose.
|
|
11
|
+
> Use at your own risk.
|
|
12
|
+
|
|
7
13
|
`wallet-engine` is the headless core you build a multi-protocol Bitcoin wallet on.
|
|
8
14
|
It hides the differences between Bitcoin L2s behind one interface, keeps the app code
|
|
9
15
|
the same across React Native, browser extension, and Node hosts, and ships the hard
|
|
@@ -52,7 +58,8 @@ with `if (protocol === …)` smeared across every screen.
|
|
|
52
58
|
|---|---|---|:---:|---|---|
|
|
53
59
|
| **BTC** | on-chain | — | — | base on-chain only | (native) |
|
|
54
60
|
| **SPARK** | Spark, LN, on-chain | Spark tokens | — | zero-fee, static receive addr | `@tetherto/wdk-wallet-spark` |
|
|
55
|
-
| **RGB
|
|
61
|
+
| **RGB-LN** | RGB-L1, RGB-LN, BTC-L1, BTC-LN | RGB (USDT, XAUT) | ✅ | needs channel liquidity (LSPS1) | `@kaleidorg/wdk-wallet-rln` |
|
|
62
|
+
| **RGB-L1** | RGB-L1, BTC-L1 | RGB (USDT, XAUT) | — | on-chain only (no LN/channels), local rgb-lib | `@utexo/wdk-wallet-rgb` |
|
|
56
63
|
| **LIQUID** | Liquid, Liquid assets | USDt (lite "USD") | — | own L1, no LN | `@kaleidorg/wdk-wallet-liquid` |
|
|
57
64
|
| **ARKADE** | Arkade, LN | Arkade assets | — | boarding addr, static receive | `@arkade-os/wdk` |
|
|
58
65
|
|
|
@@ -64,10 +71,13 @@ The router and UI read that manifest — they never special-case a protocol by n
|
|
|
64
71
|
## Install
|
|
65
72
|
|
|
66
73
|
```bash
|
|
67
|
-
|
|
68
|
-
# or: pnpm add @kaleidorg/wallet-engine
|
|
74
|
+
pnpm add @kaleidorg/wallet-engine
|
|
69
75
|
```
|
|
70
76
|
|
|
77
|
+
> Published as [`@kaleidorg/wallet-engine`](https://www.npmjs.com/package/@kaleidorg/wallet-engine)
|
|
78
|
+
> (renamed from the earlier `@kaleidorg/wallet-protocols`; versions ≤ 1.0.0-beta.11 were
|
|
79
|
+
> published under the old name).
|
|
80
|
+
|
|
71
81
|
Heavy protocol SDKs are **optional dependencies** — install only the adapters you use:
|
|
72
82
|
|
|
73
83
|
```bash
|
|
@@ -92,14 +102,14 @@ import {
|
|
|
92
102
|
} from '@kaleidorg/wallet-engine'
|
|
93
103
|
|
|
94
104
|
// 1. Build a registry of WDK-backed adapters (pick the protocols you want).
|
|
95
|
-
const registry = createWdkRegistry({ enabled: ['
|
|
105
|
+
const registry = createWdkRegistry({ enabled: ['RGB_LN', 'LIQUID', 'SPARK'] })
|
|
96
106
|
|
|
97
107
|
// 2. Connect each protocol (config carries the mnemonic + endpoints).
|
|
98
|
-
await registry.get('
|
|
108
|
+
await registry.get('RGB_LN')!.connect({ protocol: 'RGB_LN', network: 'mainnet', /* … */ })
|
|
99
109
|
await registry.get('LIQUID')!.connect({ protocol: 'LIQUID', network: 'mainnet', /* … */ })
|
|
100
110
|
|
|
101
111
|
// 3. Drive everything through the manager — no protocol SDK in app code.
|
|
102
|
-
const manager = new ProtocolManager({ defaultProtocol: '
|
|
112
|
+
const manager = new ProtocolManager({ defaultProtocol: 'RGB_LN' })
|
|
103
113
|
for (const a of registry.getAll()) manager.registerAdapter(a)
|
|
104
114
|
|
|
105
115
|
const assets = await manager.listAllAssets() // unified across protocols
|
|
@@ -145,6 +155,13 @@ active adapter and provides cross-protocol aggregates (`listAllAssets`,
|
|
|
145
155
|
layer and returns the protocol(s) that can fulfil it, filtered to what's registered and
|
|
146
156
|
connected. `resolveSend().best` is the auto-route that makes **lite mode** possible.
|
|
147
157
|
|
|
158
|
+
For a unified payment URI that carries several rails at once (BIP21/BIP321 with a
|
|
159
|
+
BOLT12 offer + BOLT11 + Spark/Arkade/Liquid/RGB/on-chain), `resolveUnifiedSend(uri,
|
|
160
|
+
{ preference })` matches every rail to the protocols that can settle it and ranks them
|
|
161
|
+
by the user's `RoutePreference` (a per-asset layer ranking) — falling back to a
|
|
162
|
+
**Lightning-first** default. `.best` is the lite-mode pick; advanced mode shows the
|
|
163
|
+
full ranked list. (BIP353 `₿user@domain` is resolved to a URI by the host first.)
|
|
164
|
+
|
|
148
165
|
### Unified receive (BIP321)
|
|
149
166
|
[`src/receive/unifiedReceive.ts`](src/receive/unifiedReceive.ts) builds **one** `bitcoin:`
|
|
150
167
|
URI carrying on-chain + Lightning (BOLT11/BOLT12) + Spark + Arkade + Liquid + RGB. Other
|
|
@@ -228,9 +245,11 @@ consumers of `wallet-engine` never import `kaleido-sdk` directly.
|
|
|
228
245
|
|
|
229
246
|
## Status
|
|
230
247
|
|
|
231
|
-
|
|
232
|
-
|
|
248
|
+
**Alpha — experimental.** Published under a `1.0.0-beta` version tag, but treat the
|
|
249
|
+
project as alpha: interfaces are unstable, several adapters are partial, and nothing has
|
|
250
|
+
been audited. WDK adapters are `beta` maturity (native fallbacks remain available); see
|
|
251
|
+
the `maturity` field per protocol in the capability manifest.
|
|
233
252
|
|
|
234
253
|
## License
|
|
235
254
|
|
|
236
|
-
MIT
|
|
255
|
+
[MIT](LICENSE)
|
|
@@ -1,48 +1,112 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Arkade Protocol Adapter
|
|
3
|
-
* Implements IProtocolAdapter using @arkade-os/sdk.
|
|
4
|
-
*
|
|
3
|
+
* Implements IProtocolAdapter using @arkade-os/sdk v0.4.x.
|
|
4
|
+
*
|
|
5
|
+
* SDK API facts for v0.4.x:
|
|
6
|
+
* - `wallet.getBalance()` includes `assets: { assetId, amount }[]`
|
|
7
|
+
* - `wallet.assetManager.getAssetDetails(assetId)` resolves supply + metadata
|
|
8
|
+
* - `wallet.send({ address, assets: [...] })` sends Arkade-native assets
|
|
9
|
+
* - `wallet.sendBitcoin({ address, amount })` still sends BTC
|
|
10
|
+
* - `wallet.getTransactionHistory()` → ArkTransaction[]
|
|
11
|
+
* where ArkTransaction = { key, type: TxType, amount: number, settled: boolean, createdAt: number }
|
|
12
|
+
* - `TxType.TxSent = "SENT"`, `TxType.TxReceived = "RECEIVED"`
|
|
13
|
+
* - `WalletBalance.boarding.total` (number), `.settled`, `.preconfirmed`, `.available`, `.recoverable`, `.total`
|
|
5
14
|
*/
|
|
6
|
-
import { IProtocolAdapter,
|
|
7
|
-
import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter } from
|
|
15
|
+
import { IProtocolAdapter, type ProtocolConfig } from "./IProtocolAdapter.js";
|
|
16
|
+
import { ProtocolType, Layer, NodeInfo, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, QuoteRequest, Quote, SwapResult } from "../types/base.js";
|
|
8
17
|
export declare class ArkadeAdapter implements IProtocolAdapter {
|
|
9
18
|
readonly protocolName: ProtocolType;
|
|
10
19
|
readonly supportedLayers: Layer[];
|
|
11
20
|
readonly version = "1.0.0";
|
|
21
|
+
readonly capabilities: readonly import("..").ProtocolCapability[];
|
|
12
22
|
private config;
|
|
13
|
-
|
|
23
|
+
private assetDetailsCache;
|
|
24
|
+
connect(config: ProtocolConfig): Promise<void>;
|
|
14
25
|
disconnect(): Promise<void>;
|
|
15
26
|
isConnected(): boolean;
|
|
16
27
|
getConnectionInfo(): Promise<ConnectionInfo>;
|
|
17
28
|
listAssets(): Promise<UnifiedAsset[]>;
|
|
18
29
|
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
19
|
-
getAssetBalance(assetId: string): Promise<UnifiedAsset[
|
|
30
|
+
getAssetBalance(assetId: string): Promise<UnifiedAsset["balance"]>;
|
|
20
31
|
refreshBalances(): Promise<void>;
|
|
21
32
|
listTransactions(filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
22
33
|
getTransaction(txId: string): Promise<UnifiedTransaction>;
|
|
23
34
|
createInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
35
|
+
/**
|
|
36
|
+
* Generate a Boltz reverse-swap Lightning invoice that, when paid, lands
|
|
37
|
+
* the funds in this Arkade wallet as a VTXO. Requires amount > 0 — Boltz
|
|
38
|
+
* can't issue an amountless invoice. The embedded `SwapManager` claims
|
|
39
|
+
* the VHTLC automatically once the LN payment settles.
|
|
40
|
+
*/
|
|
41
|
+
createArkadeLightningInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
24
42
|
decodeInvoice(invoice: string): Promise<DecodedInvoice>;
|
|
25
43
|
sendPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Resolve a payment's terminal state from the SDK's transaction history.
|
|
46
|
+
* `paymentHash` is the txid returned by `sendBitcoin` / `sendLightningPayment`
|
|
47
|
+
* (Boltz returns a preimage as a fallback if there's no on-chain txid yet —
|
|
48
|
+
* in that case we don't have a history row and the payment stays pending).
|
|
49
|
+
*/
|
|
26
50
|
getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
|
|
27
51
|
getReceiveAddress(assetId?: string): Promise<Address>;
|
|
28
|
-
getNodeInfo(): Promise<
|
|
52
|
+
getNodeInfo(): Promise<NodeInfo>;
|
|
29
53
|
getBtcBalance(): Promise<{
|
|
30
54
|
confirmed: number;
|
|
31
55
|
unconfirmed: number;
|
|
32
56
|
total: number;
|
|
33
57
|
}>;
|
|
34
58
|
listChannels(): Promise<[]>;
|
|
35
|
-
listPayments(): Promise<
|
|
59
|
+
listPayments(): Promise<{
|
|
60
|
+
payments?: unknown[];
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* Get all VTXOs, sorted by batchExpiry ascending (expiry-first).
|
|
64
|
+
* This ensures UI consumers see soon-to-expire VTXOs first, and any
|
|
65
|
+
* manual coin selection naturally picks the shortest-lived coins.
|
|
66
|
+
*/
|
|
67
|
+
getVtxos(): Promise<Record<string, unknown>[]>;
|
|
68
|
+
getBoardingUtxos(): Promise<Record<string, unknown>[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Onboard — settle boarding UTXOs into VTXOs via a Commitment Transaction.
|
|
71
|
+
* Requires at least one confirmed boarding UTXO.
|
|
72
|
+
* Returns the commitment txid.
|
|
73
|
+
*/
|
|
74
|
+
onboard(): Promise<{
|
|
75
|
+
txid: string;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Offboard — collaborative exit: convert VTXOs back to an on-chain Bitcoin UTXO.
|
|
79
|
+
* @param address Bitcoin on-chain destination (bc1/tb1)
|
|
80
|
+
* @param amount Optional sats to offboard; undefined = exit all
|
|
81
|
+
*/
|
|
82
|
+
offboard(address: string, amount?: number): Promise<{
|
|
83
|
+
txid: string;
|
|
84
|
+
}>;
|
|
36
85
|
listTransfers(_options?: {
|
|
37
86
|
asset_id?: string;
|
|
38
|
-
}): Promise<
|
|
39
|
-
|
|
87
|
+
}): Promise<{
|
|
88
|
+
transfers: [];
|
|
89
|
+
}>;
|
|
90
|
+
sendAsset(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
40
91
|
sendBtcOnchain(params: {
|
|
41
92
|
address: string;
|
|
42
93
|
amount: number;
|
|
43
|
-
}): Promise<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
94
|
+
}): Promise<Record<string, unknown>>;
|
|
95
|
+
supportsSwaps(): boolean;
|
|
96
|
+
getSwapQuote(_request: QuoteRequest): Promise<Quote>;
|
|
97
|
+
executeSwap(_quote: Quote): Promise<SwapResult>;
|
|
98
|
+
getSwapStatus(_swapId: string): Promise<SwapResult>;
|
|
99
|
+
signMessage(message: string): Promise<string>;
|
|
100
|
+
verifyMessage(message: string, signature: string): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Pre-select spendable BTC VTXOs for a sendBitcoin call using the
|
|
103
|
+
* expiry-first policy. Returns `undefined` (not an empty array) when no
|
|
104
|
+
* override should be applied — that lets the SDK fall back to its own
|
|
105
|
+
* selection when the fetch fails, the spendable set can't cover the target,
|
|
106
|
+
* or the target is non-positive. Mixed-asset VTXOs are filtered out.
|
|
107
|
+
*/
|
|
108
|
+
private selectSpendableBtcVtxos;
|
|
109
|
+
private getWalletBalanceSummary;
|
|
110
|
+
private getCachedAssetDetails;
|
|
47
111
|
}
|
|
48
112
|
//# sourceMappingURL=ArkadeAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkadeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ArkadeAdapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ArkadeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ArkadeAdapter.ts"],"names":[],"mappings":"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"}
|