@kaleidorg/wallet-engine 1.0.0-beta.33 → 1.0.0-beta.34

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 (37) hide show
  1. package/dist/adapters/SparkAdapter.d.ts +93 -16
  2. package/dist/adapters/SparkAdapter.d.ts.map +1 -1
  3. package/dist/adapters/SparkAdapter.js +831 -171
  4. package/dist/adapters/SparkAdapter.js.map +1 -1
  5. package/dist/adapters/spark.d.ts +11 -0
  6. package/dist/adapters/spark.d.ts.map +1 -0
  7. package/dist/adapters/spark.js +11 -0
  8. package/dist/adapters/spark.js.map +1 -0
  9. package/dist/lib/psbt-signer.d.ts +60 -0
  10. package/dist/lib/psbt-signer.d.ts.map +1 -0
  11. package/dist/lib/psbt-signer.js +161 -0
  12. package/dist/lib/psbt-signer.js.map +1 -0
  13. package/dist/lib/spark-activity.d.ts +5 -0
  14. package/dist/lib/spark-activity.d.ts.map +1 -0
  15. package/dist/lib/spark-activity.js +11 -0
  16. package/dist/lib/spark-activity.js.map +1 -0
  17. package/dist/lib/spark-balance-cache.d.ts +58 -0
  18. package/dist/lib/spark-balance-cache.d.ts.map +1 -0
  19. package/dist/lib/spark-balance-cache.js +86 -0
  20. package/dist/lib/spark-balance-cache.js.map +1 -0
  21. package/dist/lib/spark-client-manager.d.ts +54 -9
  22. package/dist/lib/spark-client-manager.d.ts.map +1 -1
  23. package/dist/lib/spark-client-manager.js +176 -35
  24. package/dist/lib/spark-client-manager.js.map +1 -1
  25. package/dist/lib/spark-converters.d.ts +64 -0
  26. package/dist/lib/spark-converters.d.ts.map +1 -0
  27. package/dist/lib/spark-converters.js +242 -0
  28. package/dist/lib/spark-converters.js.map +1 -0
  29. package/dist/lib/spark-helpers.d.ts +72 -0
  30. package/dist/lib/spark-helpers.d.ts.map +1 -0
  31. package/dist/lib/spark-helpers.js +151 -0
  32. package/dist/lib/spark-helpers.js.map +1 -0
  33. package/dist/lib/spark-sent-token-records.d.ts +43 -0
  34. package/dist/lib/spark-sent-token-records.d.ts.map +1 -0
  35. package/dist/lib/spark-sent-token-records.js +105 -0
  36. package/dist/lib/spark-sent-token-records.js.map +1 -0
  37. package/package.json +7 -2
@@ -1,48 +1,125 @@
1
1
  /**
2
2
  * Spark Protocol Adapter
3
- * Implements IProtocolAdapter using @buildonspark/spark-sdk.
4
- * Ported from rate-extension for React Native.
3
+ * Implements IProtocolAdapter using @buildonspark/spark-sdk (native Spark SDK).
4
+ *
5
+ * Native SDK API reference:
6
+ * - SparkWallet.initialize({ mnemonicOrSeed, options: { network } })
7
+ * - wallet.getBalance() → { balance: bigint }
8
+ * - wallet.getSparkAddress() → SparkAddressFormat (string)
9
+ * - wallet.getSingleUseDepositAddress() → string (BTC on-chain)
10
+ * - wallet.createLightningInvoice({ amountSats, memo? }) → { invoice: { encodedInvoice } }
11
+ * - wallet.payLightningInvoice({ invoice, maxFeeSats }) → LightningSendRequest | WalletTransfer
12
+ * - wallet.transfer({ receiverSparkAddress, amountSats }) → WalletTransfer
13
+ * - wallet.withdraw({ onchainAddress, amountSats, exitSpeed }) → withdrawal result
14
+ * - wallet.getTransfers(limit?, offset?, createdAfter?, createdBefore?) → { transfers: WalletTransfer[], offset: number }
15
+ * - wallet.getTransfer(id) → WalletTransfer | undefined
16
+ * - wallet.cleanupConnections() → void
17
+ *
18
+ * Amounts in the SDK are in SATS. Balance is returned as bigint.
19
+ */
20
+ import { IProtocolAdapter, type ProtocolConfig } from "./IProtocolAdapter.js";
21
+ import { SparkTransfer } from "../types/spark.js";
22
+ import { ProtocolType, Layer, NodeInfo, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, QuoteRequest, Quote, SwapResult } from "../types/base.js";
23
+ import { invalidateSparkBalanceCache } from "../lib/spark-balance-cache.js";
24
+ export { isEmptyBalance } from "../lib/spark-helpers.js";
25
+ export { invalidateSparkBalanceCache };
26
+ /**
27
+ * Spark Protocol Adapter Implementation
5
28
  */
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';
8
29
  export declare class SparkAdapter implements IProtocolAdapter {
9
30
  readonly protocolName: ProtocolType;
10
- readonly capabilities: readonly import("..").ProtocolCapability[];
11
31
  readonly supportedLayers: Layer[];
12
32
  readonly version = "1.0.0";
33
+ readonly capabilities: readonly import("..").ProtocolCapability[];
13
34
  private config;
14
- connect(config: BaseProtocolConfig): Promise<void>;
35
+ /** Maps Lightning invoice string → LightningReceiveRequest ID for status polling. */
36
+ private invoiceRequestIds;
37
+ connect(config: ProtocolConfig): Promise<void>;
15
38
  disconnect(): Promise<void>;
16
39
  isConnected(): boolean;
17
40
  getConnectionInfo(): Promise<ConnectionInfo>;
18
41
  listAssets(): Promise<UnifiedAsset[]>;
19
42
  getAsset(assetId: string): Promise<UnifiedAsset>;
20
- getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
43
+ getAssetBalance(assetId: string): Promise<UnifiedAsset["balance"]>;
21
44
  refreshBalances(): Promise<void>;
22
45
  listTransactions(filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
23
46
  getTransaction(txId: string): Promise<UnifiedTransaction>;
24
47
  createInvoice(request: InvoiceRequest): Promise<Invoice>;
25
- decodeInvoice(invoice: string): Promise<DecodedInvoice>;
48
+ createSparkInvoice(request: InvoiceRequest): Promise<Invoice>;
49
+ decodeInvoice(input: string): Promise<DecodedInvoice>;
26
50
  sendPayment(request: PaymentRequest): Promise<PaymentResult>;
27
- getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
51
+ getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
28
52
  getReceiveAddress(assetId?: string): Promise<Address>;
29
- getNodeInfo(): Promise<any>;
53
+ claimSparkL1Deposit(params: {
54
+ address: string;
55
+ }): Promise<{
56
+ status: "awaiting" | "claimed" | "error";
57
+ txids?: string[];
58
+ error?: string;
59
+ }>;
60
+ /**
61
+ * Sweep every previously-generated single-use deposit address that is still
62
+ * unclaimed and credit any confirmed UTXOs paid to them. Each call to
63
+ * `getSingleUseDepositAddress()` returns a *new* address, so a deposit sent
64
+ * to an address from a previous session would otherwise stay stranded:
65
+ * the deposit-screen poller only watches the address currently on screen.
66
+ * Run this on unlock (after SPARK connects) and when the user opens the
67
+ * deposit screen so stuck deposits surface as soon as possible.
68
+ */
69
+ sweepSparkL1Deposits(): Promise<{
70
+ addressesChecked: number;
71
+ claimedTxids: string[];
72
+ errors: string[];
73
+ }>;
74
+ getNodeInfo(): Promise<NodeInfo>;
30
75
  getBtcBalance(): Promise<{
31
76
  confirmed: number;
32
77
  unconfirmed: number;
33
78
  total: number;
34
79
  }>;
35
80
  listChannels(): Promise<[]>;
36
- listPayments(): Promise<any>;
81
+ listPayments(): Promise<{
82
+ transfers?: SparkTransfer[];
83
+ }>;
37
84
  listTransfers(_options?: {
38
85
  asset_id?: string;
39
- }): Promise<any>;
40
- supportsSwaps(): boolean;
86
+ }): Promise<{
87
+ transfers: [];
88
+ }>;
41
89
  sendBtcOnchain(params: {
42
90
  address: string;
43
91
  amount: number;
44
- }): Promise<any>;
45
- private convertTransfer;
46
- private formatAmount;
92
+ feeRate?: number;
93
+ }): Promise<Record<string, unknown>>;
94
+ signPsbt(psbtHex: string): Promise<{
95
+ psbt: string;
96
+ unchanged: boolean;
97
+ }>;
98
+ signMessage(message: string): Promise<string>;
99
+ verifyMessage(message: string, signature: string): Promise<string>;
100
+ createRgbInvoice(_params: unknown): Promise<never>;
101
+ decodeRgbInvoice(_params: unknown): Promise<never>;
102
+ getInvoiceStatus(params: {
103
+ invoice: string;
104
+ }): Promise<{
105
+ status: string;
106
+ }>;
107
+ sendAsset(params: {
108
+ assetId: string;
109
+ amount: number;
110
+ recipientId: string;
111
+ assignment?: {
112
+ type: string;
113
+ value: number;
114
+ } | null;
115
+ transportEndpoints?: string[];
116
+ feeRate?: number;
117
+ donation?: boolean;
118
+ witness_data?: unknown;
119
+ }): Promise<Record<string, unknown>>;
120
+ supportsSwaps(): boolean;
121
+ getSwapQuote(_request: QuoteRequest): Promise<Quote>;
122
+ executeSwap(_quote: Quote): Promise<SwapResult>;
123
+ getSwapStatus(_swapId: string): Promise<SwapResult>;
47
124
  }
48
125
  //# sourceMappingURL=SparkAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SparkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/SparkAdapter.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;AAKtB,qBAAa,YAAa,YAAW,gBAAgB;IACnD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAU;IAC7C,QAAQ,CAAC,YAAY,6CAA4B;IACjD,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,CAA4B;IAC7D,QAAQ,CAAC,OAAO,WAAU;IAE1B,OAAO,CAAC,MAAM,CAA2B;IAMnC,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,WAAW,IAAI,OAAO;IAIhB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAwB5C,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA4ErC,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;IAQhC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAe3E,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0BzD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBxD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASvD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAwC5D,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAW7D,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBrD,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAsB3B,aAAa,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAYnF,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAI3B,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAK5B,aAAa,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAQnE,aAAa,IAAI,OAAO;IAIlB,cAAc,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB/E,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"SparkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/SparkAdapter.ts"],"names":[],"mappings":"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"}