@kaleidorg/wallet-engine 1.0.0-beta.31 → 1.0.0-beta.32

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 (45) hide show
  1. package/dist/adapters/ArkadeAdapter.d.ts +78 -15
  2. package/dist/adapters/ArkadeAdapter.d.ts.map +1 -1
  3. package/dist/adapters/ArkadeAdapter.js +652 -162
  4. package/dist/adapters/ArkadeAdapter.js.map +1 -1
  5. package/dist/adapters/native.d.ts +1 -0
  6. package/dist/adapters/native.d.ts.map +1 -1
  7. package/dist/adapters/native.js +1 -0
  8. package/dist/adapters/native.js.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +5 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/arkade-client-manager.d.ts +64 -24
  14. package/dist/lib/arkade-client-manager.d.ts.map +1 -1
  15. package/dist/lib/arkade-client-manager.js +240 -65
  16. package/dist/lib/arkade-client-manager.js.map +1 -1
  17. package/dist/lib/arkade-converters.d.ts +39 -0
  18. package/dist/lib/arkade-converters.d.ts.map +1 -0
  19. package/dist/lib/arkade-converters.js +148 -0
  20. package/dist/lib/arkade-converters.js.map +1 -0
  21. package/dist/lib/arkade-helpers.d.ts +110 -0
  22. package/dist/lib/arkade-helpers.d.ts.map +1 -0
  23. package/dist/lib/arkade-helpers.js +227 -0
  24. package/dist/lib/arkade-helpers.js.map +1 -0
  25. package/dist/lib/arkade-swaps-client-manager.d.ts +55 -0
  26. package/dist/lib/arkade-swaps-client-manager.d.ts.map +1 -0
  27. package/dist/lib/arkade-swaps-client-manager.js +127 -0
  28. package/dist/lib/arkade-swaps-client-manager.js.map +1 -0
  29. package/dist/lib/arkade-vtxo-lifecycle.d.ts +116 -0
  30. package/dist/lib/arkade-vtxo-lifecycle.d.ts.map +1 -0
  31. package/dist/lib/arkade-vtxo-lifecycle.js +184 -0
  32. package/dist/lib/arkade-vtxo-lifecycle.js.map +1 -0
  33. package/dist/lib/ln-message-sign.d.ts +20 -0
  34. package/dist/lib/ln-message-sign.d.ts.map +1 -0
  35. package/dist/lib/ln-message-sign.js +90 -0
  36. package/dist/lib/ln-message-sign.js.map +1 -0
  37. package/dist/lib/log.d.ts +15 -0
  38. package/dist/lib/log.d.ts.map +1 -0
  39. package/dist/lib/log.js +16 -0
  40. package/dist/lib/log.js.map +1 -0
  41. package/dist/lib/zbase32.d.ts +3 -0
  42. package/dist/lib/zbase32.d.ts.map +1 -0
  43. package/dist/lib/zbase32.js +64 -0
  44. package/dist/lib/zbase32.js.map +1 -0
  45. package/package.json +8 -3
@@ -1,49 +1,112 @@
1
1
  /**
2
2
  * Arkade Protocol Adapter
3
- * Implements IProtocolAdapter using @arkade-os/sdk.
4
- * Ported from rate-extension, adapted for React Native with Expo providers.
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, BaseProtocolConfig } from './IProtocolAdapter.js';
7
- import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter } from '../types/base.js';
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
- readonly capabilities: readonly import("..").ProtocolCapability[];
11
19
  readonly supportedLayers: Layer[];
12
20
  readonly version = "1.0.0";
21
+ readonly capabilities: readonly import("..").ProtocolCapability[];
13
22
  private config;
14
- connect(config: BaseProtocolConfig): Promise<void>;
23
+ private assetDetailsCache;
24
+ connect(config: ProtocolConfig): Promise<void>;
15
25
  disconnect(): Promise<void>;
16
26
  isConnected(): boolean;
17
27
  getConnectionInfo(): Promise<ConnectionInfo>;
18
28
  listAssets(): Promise<UnifiedAsset[]>;
19
29
  getAsset(assetId: string): Promise<UnifiedAsset>;
20
- getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
30
+ getAssetBalance(assetId: string): Promise<UnifiedAsset["balance"]>;
21
31
  refreshBalances(): Promise<void>;
22
32
  listTransactions(filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
23
33
  getTransaction(txId: string): Promise<UnifiedTransaction>;
24
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>;
25
42
  decodeInvoice(invoice: string): Promise<DecodedInvoice>;
26
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
+ */
27
50
  getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
28
51
  getReceiveAddress(assetId?: string): Promise<Address>;
29
- getNodeInfo(): Promise<any>;
52
+ getNodeInfo(): Promise<NodeInfo>;
30
53
  getBtcBalance(): Promise<{
31
54
  confirmed: number;
32
55
  unconfirmed: number;
33
56
  total: number;
34
57
  }>;
35
58
  listChannels(): Promise<[]>;
36
- listPayments(): Promise<any>;
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
+ }>;
37
85
  listTransfers(_options?: {
38
86
  asset_id?: string;
39
- }): Promise<any>;
40
- supportsSwaps(): boolean;
87
+ }): Promise<{
88
+ transfers: [];
89
+ }>;
90
+ sendAsset(params: Record<string, unknown>): Promise<Record<string, unknown>>;
41
91
  sendBtcOnchain(params: {
42
92
  address: string;
43
93
  amount: number;
44
- }): Promise<any>;
45
- private convertArkTx;
46
- private toNumber;
47
- private formatSats;
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;
48
111
  }
49
112
  //# sourceMappingURL=ArkadeAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkadeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ArkadeAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EACL,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,iBAAiB,EAOlB,MAAM,eAAe,CAAA;AAGtB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAW;IAC9C,QAAQ,CAAC,YAAY,6CAA6B;IAClD,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,CAA4C;IAC7E,QAAQ,CAAC,OAAO,WAAU;IAE1B,OAAO,CAAC,MAAM,CAA4B;IAMpC,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,WAAW,IAAI,OAAO;IAIhB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAgB5C,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA8CrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAShD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAKlE,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwB3E,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAazD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAexD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B5D,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ7D,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrD,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAmB3B,aAAa,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAWnF,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAC3B,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAC5B,aAAa,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAMnE,aAAa,IAAI,OAAO;IAElB,cAAc,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAa/E,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"ArkadeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ArkadeAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiC3E,OAAO,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,UAAU,EAIX,MAAM,eAAe,CAAC;AAsBvB,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAY;IAC/C,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,CAA6C;IAC9E,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,YAAY,6CAA8B;IAEnD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,iBAAiB,CAAqD;IAMxE,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,WAAW,IAAI,OAAO;IAIhB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAgB5C,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAuGrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAShD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAUlE,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwC3E,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAazD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB9D;;;;;OAKG;IACG,4BAA4B,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAyCvE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASvD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAoFlE;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuC7D,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCrD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAwBhC,aAAa,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBnF,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAI3B,YAAY,IAAI,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAKvD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAwB9C,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAuB5D;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1C;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiCrE,aAAa,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,EAAE,CAAA;KAAE,CAAC;IAQ3E,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsC5E,cAAc,CAAC,MAAM,EAAE;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuBpC,aAAa,IAAI,OAAO;IAIlB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpD,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAI/C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQnD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7C,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxE;;;;;;OAMG;YACW,uBAAuB;YA+BvB,uBAAuB;YA2EvB,qBAAqB;CAoBpC"}