@buildonspark/spark-sdk 0.2.3 → 0.2.4
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/CHANGELOG.md +8 -0
- package/dist/{chunk-PTRXJS7Q.js → chunk-TVUMSHWA.js} +1 -1
- package/dist/{chunk-PLLJIZC3.js → chunk-W4ZRBSWM.js} +2298 -778
- package/dist/{chunk-CDLETEDT.js → chunk-WAQKYSDI.js} +13 -1
- package/dist/{client-CGTRS23n.d.ts → client-BF4cn8F4.d.ts} +15 -3
- package/dist/{client-CcYzmpmj.d.cts → client-KhNkrXz4.d.cts} +15 -3
- package/dist/debug.cjs +2282 -762
- package/dist/debug.d.cts +17 -4
- package/dist/debug.d.ts +17 -4
- package/dist/debug.js +2 -2
- package/dist/graphql/objects/index.cjs +13 -1
- package/dist/graphql/objects/index.d.cts +2 -2
- package/dist/graphql/objects/index.d.ts +2 -2
- package/dist/graphql/objects/index.js +1 -1
- package/dist/index.cjs +2283 -752
- package/dist/index.d.cts +189 -8
- package/dist/index.d.ts +189 -8
- package/dist/index.js +29 -3
- package/dist/index.node.cjs +2387 -753
- package/dist/index.node.d.cts +9 -189
- package/dist/index.node.d.ts +9 -189
- package/dist/index.node.js +131 -3
- package/dist/native/index.cjs +2283 -752
- package/dist/native/index.d.cts +95 -30
- package/dist/native/index.d.ts +95 -30
- package/dist/native/index.js +2284 -767
- package/dist/{spark-wallet-CxcGPXRB.d.ts → spark-wallet-C1Tr_VKI.d.ts} +31 -25
- package/dist/{spark-wallet-DJJm19BP.d.cts → spark-wallet-DG3x2obf.d.cts} +31 -25
- package/dist/spark-wallet.node-CGxoeCpH.d.ts +13 -0
- package/dist/spark-wallet.node-CN9LoB_O.d.cts +13 -0
- package/dist/tests/test-utils.cjs +570 -73
- package/dist/tests/test-utils.d.cts +11 -11
- package/dist/tests/test-utils.d.ts +11 -11
- package/dist/tests/test-utils.js +53 -16
- package/dist/types/index.cjs +13 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/{xchain-address-Bh9w1SeC.d.ts → xchain-address-BHu6CpZC.d.ts} +54 -7
- package/dist/{xchain-address-SZ7dkVUE.d.cts → xchain-address-HBr6isnc.d.cts} +54 -7
- package/package.json +1 -1
- package/src/graphql/client.ts +8 -0
- package/src/graphql/mutations/CompleteLeavesSwap.ts +9 -1
- package/src/graphql/mutations/RequestSwapLeaves.ts +4 -0
- package/src/graphql/objects/CompleteLeavesSwapInput.ts +34 -34
- package/src/graphql/objects/LeavesSwapRequest.ts +4 -0
- package/src/graphql/objects/RequestLeavesSwapInput.ts +48 -47
- package/src/graphql/objects/SwapLeaf.ts +40 -32
- package/src/graphql/objects/UserLeafInput.ts +24 -0
- package/src/graphql/objects/UserRequest.ts +4 -0
- package/src/index.node.ts +1 -1
- package/src/native/index.ts +4 -5
- package/src/services/coop-exit.ts +171 -36
- package/src/services/deposit.ts +471 -74
- package/src/services/lightning.ts +18 -5
- package/src/services/signing.ts +162 -50
- package/src/services/transfer.ts +950 -384
- package/src/services/tree-creation.ts +342 -121
- package/src/spark-wallet/spark-wallet.node.ts +71 -66
- package/src/spark-wallet/spark-wallet.ts +405 -153
- package/src/tests/integration/coop-exit.test.ts +3 -8
- package/src/tests/integration/deposit.test.ts +3 -3
- package/src/tests/integration/lightning.test.ts +521 -466
- package/src/tests/integration/swap.test.ts +559 -307
- package/src/tests/integration/transfer.test.ts +625 -623
- package/src/tests/integration/wallet.test.ts +2 -2
- package/src/tests/integration/watchtower.test.ts +211 -0
- package/src/tests/test-utils.ts +63 -14
- package/src/tests/utils/test-faucet.ts +4 -2
- package/src/utils/adaptor-signature.ts +15 -5
- package/src/utils/fetch.ts +75 -0
- package/src/utils/mempool.ts +9 -4
- package/src/utils/transaction.ts +388 -26
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Tracer } from "@opentelemetry/api";
|
|
2
2
|
import { SparkWallet as BaseSparkWallet } from "./spark-wallet.js";
|
|
3
3
|
import type { InitWalletResponse } from "./types.js";
|
|
4
|
+
import { isObject } from "@lightsparkdev/core";
|
|
4
5
|
|
|
5
6
|
export class SparkWallet extends BaseSparkWallet {
|
|
6
7
|
private tracer: Tracer | null = null;
|
|
7
8
|
|
|
8
|
-
protected wrapWithOtelSpan<
|
|
9
|
+
protected wrapWithOtelSpan<A extends unknown[], R>(
|
|
9
10
|
name: string,
|
|
10
|
-
fn: (...args:
|
|
11
|
-
)
|
|
12
|
-
return async (...args:
|
|
11
|
+
fn: (...args: A) => Promise<R>,
|
|
12
|
+
) {
|
|
13
|
+
return async (...args: A) => {
|
|
13
14
|
if (!this.tracer) {
|
|
14
15
|
throw new Error("Tracer not initialized");
|
|
15
16
|
}
|
|
@@ -17,12 +18,13 @@ export class SparkWallet extends BaseSparkWallet {
|
|
|
17
18
|
return await this.tracer.startActiveSpan(name, async (span) => {
|
|
18
19
|
const traceId = span.spanContext().traceId;
|
|
19
20
|
try {
|
|
20
|
-
|
|
21
|
+
const result = await fn(...args);
|
|
22
|
+
return result;
|
|
21
23
|
} catch (error) {
|
|
22
24
|
if (error instanceof Error) {
|
|
23
25
|
error.message += ` [traceId: ${traceId}]`;
|
|
24
|
-
} else if (
|
|
25
|
-
|
|
26
|
+
} else if (isObject(error)) {
|
|
27
|
+
error["traceId"] = traceId;
|
|
26
28
|
}
|
|
27
29
|
throw error;
|
|
28
30
|
} finally {
|
|
@@ -49,66 +51,69 @@ export class SparkWallet extends BaseSparkWallet {
|
|
|
49
51
|
this.tracer = trace.getTracer(tracerName);
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
private getTraceName(methodName: string) {
|
|
55
|
+
return `SparkWallet.${methodName}`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private wrapPublicMethodsWithOtelSpan<M extends keyof SparkWallet>(
|
|
59
|
+
methodName: M,
|
|
60
|
+
) {
|
|
61
|
+
const original = this[methodName];
|
|
62
|
+
|
|
63
|
+
if (typeof original !== "function") {
|
|
64
|
+
throw new Error(`Method ${methodName} is not a function on SparkWallet.`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const wrapped = this.wrapWithOtelSpan(
|
|
68
|
+
this.getTraceName(methodName),
|
|
69
|
+
original.bind(this) as (...args: unknown[]) => Promise<unknown>,
|
|
70
|
+
) as SparkWallet[M];
|
|
71
|
+
|
|
72
|
+
(this as SparkWallet)[methodName] = wrapped;
|
|
73
|
+
}
|
|
74
|
+
|
|
52
75
|
private wrapSparkWalletWithTracing() {
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"SparkWallet.createLightningInvoice",
|
|
95
|
-
this.createLightningInvoice.bind(this),
|
|
96
|
-
);
|
|
97
|
-
this.payLightningInvoice = this.wrapWithOtelSpan(
|
|
98
|
-
"SparkWallet.payLightningInvoice",
|
|
99
|
-
this.payLightningInvoice.bind(this),
|
|
100
|
-
);
|
|
101
|
-
this.getLightningSendFeeEstimate = this.wrapWithOtelSpan(
|
|
102
|
-
"SparkWallet.getLightningSendFeeEstimate",
|
|
103
|
-
this.getLightningSendFeeEstimate.bind(this),
|
|
104
|
-
);
|
|
105
|
-
this.withdraw = this.wrapWithOtelSpan(
|
|
106
|
-
"SparkWallet.withdraw",
|
|
107
|
-
this.withdraw.bind(this),
|
|
108
|
-
);
|
|
109
|
-
this.getWithdrawalFeeQuote = this.wrapWithOtelSpan(
|
|
110
|
-
"SparkWallet.getWithdrawalFeeQuote",
|
|
111
|
-
this.getWithdrawalFeeQuote.bind(this),
|
|
76
|
+
const methods = [
|
|
77
|
+
"getLeaves",
|
|
78
|
+
"getIdentityPublicKey",
|
|
79
|
+
"getSparkAddress",
|
|
80
|
+
"createSparkPaymentIntent",
|
|
81
|
+
"getSwapFeeEstimate",
|
|
82
|
+
"getTransfers",
|
|
83
|
+
"getBalance",
|
|
84
|
+
"getSingleUseDepositAddress",
|
|
85
|
+
"getStaticDepositAddress",
|
|
86
|
+
"queryStaticDepositAddresses",
|
|
87
|
+
"getClaimStaticDepositQuote",
|
|
88
|
+
"claimStaticDeposit",
|
|
89
|
+
"refundStaticDeposit",
|
|
90
|
+
"getUnusedDepositAddresses",
|
|
91
|
+
"claimDeposit",
|
|
92
|
+
"advancedDeposit",
|
|
93
|
+
"transfer",
|
|
94
|
+
"createLightningInvoice",
|
|
95
|
+
"payLightningInvoice",
|
|
96
|
+
"getLightningSendFeeEstimate",
|
|
97
|
+
"withdraw",
|
|
98
|
+
"getWithdrawalFeeQuote",
|
|
99
|
+
"getTransferFromSsp",
|
|
100
|
+
"getTransfer",
|
|
101
|
+
"transferTokens",
|
|
102
|
+
"batchTransferTokens",
|
|
103
|
+
"queryTokenTransactions",
|
|
104
|
+
"getLightningReceiveRequest",
|
|
105
|
+
"getLightningSendRequest",
|
|
106
|
+
"getCoopExitRequest",
|
|
107
|
+
"checkTimelock",
|
|
108
|
+
"testOnly_expireTimelock",
|
|
109
|
+
] as const;
|
|
110
|
+
|
|
111
|
+
methods.forEach((m) => this.wrapPublicMethodsWithOtelSpan(m));
|
|
112
|
+
|
|
113
|
+
/* Private methods can't be indexed on `this` and need to be wrapped individually: */
|
|
114
|
+
this.initWallet = this.wrapWithOtelSpan(
|
|
115
|
+
this.getTraceName("initWallet"),
|
|
116
|
+
this.initWallet.bind(this),
|
|
112
117
|
);
|
|
113
118
|
}
|
|
114
119
|
|