@buildonspark/spark-sdk 0.1.43 → 0.1.45
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 +16 -0
- package/dist/{RequestLightningSendInput-D7fZdT4A.d.ts → RequestLightningSendInput-DEPd_fPO.d.ts} +43 -4
- package/dist/{RequestLightningSendInput-Na1mHdWg.d.cts → RequestLightningSendInput-Du0z7Om7.d.cts} +43 -4
- package/dist/address/index.cjs +2 -2
- package/dist/address/index.d.cts +2 -2
- package/dist/address/index.d.ts +2 -2
- package/dist/address/index.js +2 -2
- package/dist/{chunk-IRW5TWMH.js → chunk-5FUB65LX.js} +7 -9
- package/dist/{chunk-BUTZWYBW.js → chunk-6264CGDM.js} +4 -4
- package/dist/{chunk-VFJQNBFX.js → chunk-7V6N75CC.js} +5 -2
- package/dist/{chunk-M6A4KFIG.js → chunk-BGGEVUJK.js} +1505 -445
- package/dist/{chunk-DQYKQJRZ.js → chunk-C2S227QR.js} +675 -52
- package/dist/{chunk-GYQR4B4P.js → chunk-GZ5IPPJ2.js} +2 -2
- package/dist/{chunk-6AFUC5M2.js → chunk-HWJWKEIU.js} +8 -2
- package/dist/{chunk-TOSP3INR.js → chunk-I54FARY2.js} +4 -2
- package/dist/{chunk-WWOTVNPP.js → chunk-J2IE4Z7Y.js} +544 -431
- package/dist/{chunk-O4RYNJNB.js → chunk-KMUMFYFX.js} +3 -3
- package/dist/chunk-LHRD2WT6.js +2374 -0
- package/dist/{chunk-ABZA6R5S.js → chunk-NTFKFRQ2.js} +1 -1
- package/dist/{chunk-MIVX3GHD.js → chunk-OBFKIEMP.js} +1 -1
- package/dist/{chunk-HRQRRDSS.js → chunk-PQN3C2MF.js} +15 -15
- package/dist/{chunk-DOA6QXYQ.js → chunk-R5PXJZQS.js} +3 -1
- package/dist/{chunk-TIUBYNN5.js → chunk-YUPMXTCJ.js} +4 -4
- package/dist/graphql/objects/index.d.cts +6 -43
- package/dist/graphql/objects/index.d.ts +6 -43
- package/dist/graphql/objects/index.js +1 -1
- package/dist/index-B2AwKW5J.d.cts +214 -0
- package/dist/index-CJDi1HWc.d.ts +214 -0
- package/dist/index.cjs +4150 -1026
- package/dist/index.d.cts +764 -19
- package/dist/index.d.ts +764 -19
- package/dist/index.js +17 -21
- package/dist/index.node.cjs +4153 -1033
- package/dist/index.node.d.cts +10 -8
- package/dist/index.node.d.ts +10 -8
- package/dist/index.node.js +20 -28
- package/dist/native/index.cjs +4166 -1042
- package/dist/native/index.d.cts +369 -108
- package/dist/native/index.d.ts +369 -108
- package/dist/native/index.js +4138 -1015
- package/dist/{network-xkBSpaTn.d.ts → network-BTJl-Sul.d.ts} +1 -1
- package/dist/{network-D5lKssVl.d.cts → network-CqgsdUF2.d.cts} +1 -1
- package/dist/proto/lrc20.cjs +222 -19
- package/dist/proto/lrc20.d.cts +1 -1
- package/dist/proto/lrc20.d.ts +1 -1
- package/dist/proto/lrc20.js +2 -2
- package/dist/proto/spark.cjs +1502 -442
- package/dist/proto/spark.d.cts +1 -1
- package/dist/proto/spark.d.ts +1 -1
- package/dist/proto/spark.js +5 -5
- package/dist/proto/spark_token.cjs +1515 -56
- package/dist/proto/spark_token.d.cts +153 -15
- package/dist/proto/spark_token.d.ts +153 -15
- package/dist/proto/spark_token.js +40 -4
- package/dist/{sdk-types-B-q9py_P.d.cts → sdk-types-B0SwjolI.d.cts} +1 -1
- package/dist/{sdk-types-BPoPgzda.d.ts → sdk-types-Cc4l4kb1.d.ts} +1 -1
- package/dist/services/config.cjs +7 -3
- package/dist/services/config.d.cts +5 -4
- package/dist/services/config.d.ts +5 -4
- package/dist/services/config.js +6 -6
- package/dist/services/connection.cjs +2938 -646
- package/dist/services/connection.d.cts +5 -4
- package/dist/services/connection.d.ts +5 -4
- package/dist/services/connection.js +4 -4
- package/dist/services/index.cjs +6381 -3461
- package/dist/services/index.d.cts +7 -6
- package/dist/services/index.d.ts +7 -6
- package/dist/services/index.js +15 -13
- package/dist/services/lrc-connection.cjs +227 -21
- package/dist/services/lrc-connection.d.cts +5 -4
- package/dist/services/lrc-connection.d.ts +5 -4
- package/dist/services/lrc-connection.js +4 -4
- package/dist/services/token-transactions.cjs +868 -244
- package/dist/services/token-transactions.d.cts +25 -7
- package/dist/services/token-transactions.d.ts +25 -7
- package/dist/services/token-transactions.js +5 -4
- package/dist/services/wallet-config.cjs +4 -1
- package/dist/services/wallet-config.d.cts +7 -5
- package/dist/services/wallet-config.d.ts +7 -5
- package/dist/services/wallet-config.js +3 -1
- package/dist/signer/signer.cjs +5 -2
- package/dist/signer/signer.d.cts +3 -2
- package/dist/signer/signer.d.ts +3 -2
- package/dist/signer/signer.js +2 -2
- package/dist/{signer-wqesWifN.d.ts → signer-BocS_J6B.d.ts} +2 -6
- package/dist/{signer-IO3oMRNj.d.cts → signer-DKS0AJkw.d.cts} +2 -6
- package/dist/{spark-CDm4gqS6.d.cts → spark-dM7EYXYQ.d.cts} +138 -42
- package/dist/{spark-CDm4gqS6.d.ts → spark-dM7EYXYQ.d.ts} +138 -42
- package/dist/spark_bindings/native/index.cjs +183 -0
- package/dist/spark_bindings/native/index.d.cts +14 -0
- package/dist/spark_bindings/native/index.d.ts +14 -0
- package/dist/spark_bindings/native/index.js +141 -0
- package/dist/spark_bindings/wasm/index.cjs +1093 -0
- package/dist/spark_bindings/wasm/index.d.cts +47 -0
- package/dist/spark_bindings/wasm/index.d.ts +47 -0
- package/dist/{chunk-K4C4W5FC.js → spark_bindings/wasm/index.js} +7 -6
- package/dist/types/index.cjs +1503 -443
- package/dist/types/index.d.cts +6 -5
- package/dist/types/index.d.ts +6 -5
- package/dist/types/index.js +3 -3
- package/dist/types-C-Rp0Oo7.d.cts +46 -0
- package/dist/types-C-Rp0Oo7.d.ts +46 -0
- package/dist/utils/index.cjs +358 -36
- package/dist/utils/index.d.cts +14 -134
- package/dist/utils/index.d.ts +14 -134
- package/dist/utils/index.js +8 -8
- package/package.json +21 -1
- package/src/constants.ts +5 -1
- package/src/graphql/client.ts +28 -0
- package/src/graphql/mutations/RequestCoopExit.ts +6 -0
- package/src/graphql/mutations/RequestSwapLeaves.ts +2 -0
- package/src/graphql/queries/GetCoopExitFeeQuote.ts +20 -0
- package/src/index.node.ts +0 -1
- package/src/index.ts +0 -1
- package/src/native/index.ts +1 -2
- package/src/proto/common.ts +5 -5
- package/src/proto/google/protobuf/descriptor.ts +34 -34
- package/src/proto/google/protobuf/duration.ts +2 -2
- package/src/proto/google/protobuf/empty.ts +2 -2
- package/src/proto/google/protobuf/timestamp.ts +2 -2
- package/src/proto/mock.ts +4 -4
- package/src/proto/spark.ts +1924 -525
- package/src/proto/spark_authn.ts +7 -7
- package/src/proto/spark_token.ts +1668 -105
- package/src/proto/validate/validate.ts +24 -24
- package/src/services/bolt11-spark.ts +62 -187
- package/src/services/coop-exit.ts +3 -0
- package/src/services/lrc20.ts +1 -1
- package/src/services/token-transactions.ts +209 -9
- package/src/services/transfer.ts +22 -3
- package/src/services/tree-creation.ts +13 -0
- package/src/services/wallet-config.ts +2 -1
- package/src/spark-wallet/spark-wallet.node.ts +3 -7
- package/src/spark-wallet/spark-wallet.ts +376 -232
- package/src/spark-wallet/types.ts +39 -3
- package/src/tests/bolt11-spark.test.ts +7 -15
- package/src/tests/integration/deposit.test.ts +16 -0
- package/src/tests/integration/ssp/coop-exit.test.ts +85 -21
- package/src/tests/integration/ssp/swap.test.ts +47 -0
- package/src/tests/integration/swap.test.ts +453 -433
- package/src/tests/integration/transfer.test.ts +261 -248
- package/src/tests/token-identifier.test.ts +54 -0
- package/src/tests/tokens.test.ts +218 -22
- package/src/utils/token-hashing.ts +346 -52
- package/src/utils/token-identifier.ts +88 -0
- package/src/utils/token-transaction-validation.ts +350 -5
- package/src/utils/token-transactions.ts +12 -8
- package/src/utils/transaction.ts +2 -8
- package/dist/chunk-VA7MV4MZ.js +0 -1073
- package/dist/index-7RYRH5wc.d.ts +0 -815
- package/dist/index-BJOc8Ur-.d.cts +0 -815
- package/dist/wasm-7OWFHDMS.js +0 -21
- package/src/logger.ts +0 -3
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/spark_bindings/native/index.ts
|
|
21
|
+
var native_exports = {};
|
|
22
|
+
__export(native_exports, {
|
|
23
|
+
NativeSparkFrost: () => NativeSparkFrost,
|
|
24
|
+
createDummyTx: () => createDummyTx,
|
|
25
|
+
decryptEcies: () => decryptEcies,
|
|
26
|
+
encryptEcies: () => encryptEcies
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(native_exports);
|
|
29
|
+
|
|
30
|
+
// buffer.js
|
|
31
|
+
var import_buffer = require("buffer");
|
|
32
|
+
if (typeof globalThis.Buffer === "undefined") {
|
|
33
|
+
globalThis.Buffer = import_buffer.Buffer;
|
|
34
|
+
}
|
|
35
|
+
if (typeof window !== "undefined") {
|
|
36
|
+
if (typeof window.global === "undefined") {
|
|
37
|
+
window.global = window;
|
|
38
|
+
}
|
|
39
|
+
if (typeof window.globalThis === "undefined") {
|
|
40
|
+
window.globalThis = window;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// src/spark_bindings/native/index.ts
|
|
45
|
+
var import_react_native = require("react-native");
|
|
46
|
+
var toNumberArray = (arr) => Array.from(arr);
|
|
47
|
+
var toUint8Array = (arr) => new Uint8Array(arr);
|
|
48
|
+
var { SparkFrostModule } = import_react_native.NativeModules;
|
|
49
|
+
var NativeSparkFrost = class {
|
|
50
|
+
static async signFrost(params) {
|
|
51
|
+
if (!SparkFrostModule) {
|
|
52
|
+
throw new Error("NativeSparkFrost is not available in this environment");
|
|
53
|
+
}
|
|
54
|
+
const nativeParams = {
|
|
55
|
+
msg: toNumberArray(params.message),
|
|
56
|
+
keyPackage: {
|
|
57
|
+
secretKey: toNumberArray(params.keyPackage.secretKey),
|
|
58
|
+
publicKey: toNumberArray(params.keyPackage.publicKey),
|
|
59
|
+
verifyingKey: toNumberArray(params.keyPackage.verifyingKey)
|
|
60
|
+
},
|
|
61
|
+
nonce: {
|
|
62
|
+
hiding: toNumberArray(params.nonce.hiding),
|
|
63
|
+
binding: toNumberArray(params.nonce.binding)
|
|
64
|
+
},
|
|
65
|
+
selfCommitment: {
|
|
66
|
+
hiding: toNumberArray(params.selfCommitment.hiding),
|
|
67
|
+
binding: toNumberArray(params.selfCommitment.binding)
|
|
68
|
+
},
|
|
69
|
+
statechainCommitments: Object.fromEntries(
|
|
70
|
+
Object.entries(params.statechainCommitments ?? {}).map(([k, v]) => [
|
|
71
|
+
k,
|
|
72
|
+
{
|
|
73
|
+
hiding: toNumberArray(v.hiding),
|
|
74
|
+
binding: toNumberArray(v.binding)
|
|
75
|
+
}
|
|
76
|
+
])
|
|
77
|
+
),
|
|
78
|
+
adaptorPubKey: params.adaptorPubKey ? toNumberArray(params.adaptorPubKey) : void 0
|
|
79
|
+
};
|
|
80
|
+
const result = await SparkFrostModule.signFrost(nativeParams);
|
|
81
|
+
return toUint8Array(result);
|
|
82
|
+
}
|
|
83
|
+
static async aggregateFrost(params) {
|
|
84
|
+
const nativeParams = {
|
|
85
|
+
msg: toNumberArray(params.message),
|
|
86
|
+
statechainCommitments: Object.fromEntries(
|
|
87
|
+
Object.entries(params.statechainCommitments ?? {}).map(([k, v]) => [
|
|
88
|
+
k,
|
|
89
|
+
{
|
|
90
|
+
hiding: toNumberArray(v.hiding),
|
|
91
|
+
binding: toNumberArray(v.binding)
|
|
92
|
+
}
|
|
93
|
+
])
|
|
94
|
+
),
|
|
95
|
+
selfCommitment: {
|
|
96
|
+
hiding: toNumberArray(params.selfCommitment.hiding),
|
|
97
|
+
binding: toNumberArray(params.selfCommitment.binding)
|
|
98
|
+
},
|
|
99
|
+
statechainSignatures: Object.fromEntries(
|
|
100
|
+
Object.entries(params.statechainSignatures ?? {}).map(([k, v]) => [
|
|
101
|
+
k,
|
|
102
|
+
toNumberArray(v)
|
|
103
|
+
])
|
|
104
|
+
),
|
|
105
|
+
selfSignature: toNumberArray(params.selfSignature),
|
|
106
|
+
statechainPublicKeys: Object.fromEntries(
|
|
107
|
+
Object.entries(params.statechainPublicKeys ?? {}).map(([k, v]) => [
|
|
108
|
+
k,
|
|
109
|
+
toNumberArray(v)
|
|
110
|
+
])
|
|
111
|
+
),
|
|
112
|
+
selfPublicKey: toNumberArray(params.selfPublicKey),
|
|
113
|
+
verifyingKey: toNumberArray(params.verifyingKey),
|
|
114
|
+
adaptorPubKey: params.adaptorPubKey ? toNumberArray(params.adaptorPubKey) : void 0
|
|
115
|
+
};
|
|
116
|
+
const result = await SparkFrostModule.aggregateFrost(nativeParams);
|
|
117
|
+
return toUint8Array(result);
|
|
118
|
+
}
|
|
119
|
+
static async createDummyTx(address, amountSats) {
|
|
120
|
+
if (!SparkFrostModule) {
|
|
121
|
+
console.error("NativeSparkFrost.ts: SparkFrostModule is not available.");
|
|
122
|
+
throw new Error("SparkFrostModule is not available");
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
const bridgeParams = {
|
|
126
|
+
address,
|
|
127
|
+
amountSats: amountSats.toString()
|
|
128
|
+
// JS sends string for bigint
|
|
129
|
+
};
|
|
130
|
+
const result = await SparkFrostModule.createDummyTx(bridgeParams);
|
|
131
|
+
if (result && Array.isArray(result.tx) && typeof result.txid === "string") {
|
|
132
|
+
return {
|
|
133
|
+
tx: toUint8Array(result.tx),
|
|
134
|
+
txid: result.txid
|
|
135
|
+
};
|
|
136
|
+
} else {
|
|
137
|
+
console.error(
|
|
138
|
+
"NativeSparkFrost.ts: Invalid result structure from native call. Result:",
|
|
139
|
+
result
|
|
140
|
+
);
|
|
141
|
+
throw new Error(
|
|
142
|
+
"Invalid result structure from createDummyTx native call"
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.error(
|
|
147
|
+
"NativeSparkFrost.ts: Error during SparkFrostModule.createDummyTx call:",
|
|
148
|
+
e
|
|
149
|
+
);
|
|
150
|
+
throw e;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
static async encryptEcies(msg, publicKey) {
|
|
154
|
+
const result = await SparkFrostModule.encryptEcies({
|
|
155
|
+
msg: toNumberArray(msg),
|
|
156
|
+
publicKey: toNumberArray(publicKey)
|
|
157
|
+
});
|
|
158
|
+
return toUint8Array(result);
|
|
159
|
+
}
|
|
160
|
+
static async decryptEcies(encryptedMsg, privateKey) {
|
|
161
|
+
const result = await SparkFrostModule.decryptEcies({
|
|
162
|
+
encryptedMsg: toNumberArray(encryptedMsg),
|
|
163
|
+
privateKey: toNumberArray(privateKey)
|
|
164
|
+
});
|
|
165
|
+
return toUint8Array(result);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
async function createDummyTx(address, amountSats) {
|
|
169
|
+
return NativeSparkFrost.createDummyTx(address, amountSats);
|
|
170
|
+
}
|
|
171
|
+
async function encryptEcies(msg, publicKey) {
|
|
172
|
+
return NativeSparkFrost.encryptEcies(msg, publicKey);
|
|
173
|
+
}
|
|
174
|
+
async function decryptEcies(encryptedMsg, privateKey) {
|
|
175
|
+
return NativeSparkFrost.decryptEcies(encryptedMsg, privateKey);
|
|
176
|
+
}
|
|
177
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
178
|
+
0 && (module.exports = {
|
|
179
|
+
NativeSparkFrost,
|
|
180
|
+
createDummyTx,
|
|
181
|
+
decryptEcies,
|
|
182
|
+
encryptEcies
|
|
183
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { S as SignFrostParams, A as AggregateFrostParams, D as DummyTx } from '../../types-C-Rp0Oo7.cjs';
|
|
2
|
+
|
|
3
|
+
declare class NativeSparkFrost {
|
|
4
|
+
static signFrost(params: SignFrostParams): Promise<Uint8Array>;
|
|
5
|
+
static aggregateFrost(params: AggregateFrostParams): Promise<Uint8Array>;
|
|
6
|
+
static createDummyTx(address: string, amountSats: bigint): Promise<DummyTx>;
|
|
7
|
+
static encryptEcies(msg: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array>;
|
|
8
|
+
static decryptEcies(encryptedMsg: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
9
|
+
}
|
|
10
|
+
declare function createDummyTx(address: string, amountSats: bigint): Promise<DummyTx>;
|
|
11
|
+
declare function encryptEcies(msg: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array>;
|
|
12
|
+
declare function decryptEcies(encryptedMsg: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
13
|
+
|
|
14
|
+
export { NativeSparkFrost, createDummyTx, decryptEcies, encryptEcies };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { S as SignFrostParams, A as AggregateFrostParams, D as DummyTx } from '../../types-C-Rp0Oo7.js';
|
|
2
|
+
|
|
3
|
+
declare class NativeSparkFrost {
|
|
4
|
+
static signFrost(params: SignFrostParams): Promise<Uint8Array>;
|
|
5
|
+
static aggregateFrost(params: AggregateFrostParams): Promise<Uint8Array>;
|
|
6
|
+
static createDummyTx(address: string, amountSats: bigint): Promise<DummyTx>;
|
|
7
|
+
static encryptEcies(msg: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array>;
|
|
8
|
+
static decryptEcies(encryptedMsg: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
9
|
+
}
|
|
10
|
+
declare function createDummyTx(address: string, amountSats: bigint): Promise<DummyTx>;
|
|
11
|
+
declare function encryptEcies(msg: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array>;
|
|
12
|
+
declare function decryptEcies(encryptedMsg: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
13
|
+
|
|
14
|
+
export { NativeSparkFrost, createDummyTx, decryptEcies, encryptEcies };
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import "../../chunk-MVRQ5US7.js";
|
|
2
|
+
|
|
3
|
+
// src/spark_bindings/native/index.ts
|
|
4
|
+
import { NativeModules } from "react-native";
|
|
5
|
+
var toNumberArray = (arr) => Array.from(arr);
|
|
6
|
+
var toUint8Array = (arr) => new Uint8Array(arr);
|
|
7
|
+
var { SparkFrostModule } = NativeModules;
|
|
8
|
+
var NativeSparkFrost = class {
|
|
9
|
+
static async signFrost(params) {
|
|
10
|
+
if (!SparkFrostModule) {
|
|
11
|
+
throw new Error("NativeSparkFrost is not available in this environment");
|
|
12
|
+
}
|
|
13
|
+
const nativeParams = {
|
|
14
|
+
msg: toNumberArray(params.message),
|
|
15
|
+
keyPackage: {
|
|
16
|
+
secretKey: toNumberArray(params.keyPackage.secretKey),
|
|
17
|
+
publicKey: toNumberArray(params.keyPackage.publicKey),
|
|
18
|
+
verifyingKey: toNumberArray(params.keyPackage.verifyingKey)
|
|
19
|
+
},
|
|
20
|
+
nonce: {
|
|
21
|
+
hiding: toNumberArray(params.nonce.hiding),
|
|
22
|
+
binding: toNumberArray(params.nonce.binding)
|
|
23
|
+
},
|
|
24
|
+
selfCommitment: {
|
|
25
|
+
hiding: toNumberArray(params.selfCommitment.hiding),
|
|
26
|
+
binding: toNumberArray(params.selfCommitment.binding)
|
|
27
|
+
},
|
|
28
|
+
statechainCommitments: Object.fromEntries(
|
|
29
|
+
Object.entries(params.statechainCommitments ?? {}).map(([k, v]) => [
|
|
30
|
+
k,
|
|
31
|
+
{
|
|
32
|
+
hiding: toNumberArray(v.hiding),
|
|
33
|
+
binding: toNumberArray(v.binding)
|
|
34
|
+
}
|
|
35
|
+
])
|
|
36
|
+
),
|
|
37
|
+
adaptorPubKey: params.adaptorPubKey ? toNumberArray(params.adaptorPubKey) : void 0
|
|
38
|
+
};
|
|
39
|
+
const result = await SparkFrostModule.signFrost(nativeParams);
|
|
40
|
+
return toUint8Array(result);
|
|
41
|
+
}
|
|
42
|
+
static async aggregateFrost(params) {
|
|
43
|
+
const nativeParams = {
|
|
44
|
+
msg: toNumberArray(params.message),
|
|
45
|
+
statechainCommitments: Object.fromEntries(
|
|
46
|
+
Object.entries(params.statechainCommitments ?? {}).map(([k, v]) => [
|
|
47
|
+
k,
|
|
48
|
+
{
|
|
49
|
+
hiding: toNumberArray(v.hiding),
|
|
50
|
+
binding: toNumberArray(v.binding)
|
|
51
|
+
}
|
|
52
|
+
])
|
|
53
|
+
),
|
|
54
|
+
selfCommitment: {
|
|
55
|
+
hiding: toNumberArray(params.selfCommitment.hiding),
|
|
56
|
+
binding: toNumberArray(params.selfCommitment.binding)
|
|
57
|
+
},
|
|
58
|
+
statechainSignatures: Object.fromEntries(
|
|
59
|
+
Object.entries(params.statechainSignatures ?? {}).map(([k, v]) => [
|
|
60
|
+
k,
|
|
61
|
+
toNumberArray(v)
|
|
62
|
+
])
|
|
63
|
+
),
|
|
64
|
+
selfSignature: toNumberArray(params.selfSignature),
|
|
65
|
+
statechainPublicKeys: Object.fromEntries(
|
|
66
|
+
Object.entries(params.statechainPublicKeys ?? {}).map(([k, v]) => [
|
|
67
|
+
k,
|
|
68
|
+
toNumberArray(v)
|
|
69
|
+
])
|
|
70
|
+
),
|
|
71
|
+
selfPublicKey: toNumberArray(params.selfPublicKey),
|
|
72
|
+
verifyingKey: toNumberArray(params.verifyingKey),
|
|
73
|
+
adaptorPubKey: params.adaptorPubKey ? toNumberArray(params.adaptorPubKey) : void 0
|
|
74
|
+
};
|
|
75
|
+
const result = await SparkFrostModule.aggregateFrost(nativeParams);
|
|
76
|
+
return toUint8Array(result);
|
|
77
|
+
}
|
|
78
|
+
static async createDummyTx(address, amountSats) {
|
|
79
|
+
if (!SparkFrostModule) {
|
|
80
|
+
console.error("NativeSparkFrost.ts: SparkFrostModule is not available.");
|
|
81
|
+
throw new Error("SparkFrostModule is not available");
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const bridgeParams = {
|
|
85
|
+
address,
|
|
86
|
+
amountSats: amountSats.toString()
|
|
87
|
+
// JS sends string for bigint
|
|
88
|
+
};
|
|
89
|
+
const result = await SparkFrostModule.createDummyTx(bridgeParams);
|
|
90
|
+
if (result && Array.isArray(result.tx) && typeof result.txid === "string") {
|
|
91
|
+
return {
|
|
92
|
+
tx: toUint8Array(result.tx),
|
|
93
|
+
txid: result.txid
|
|
94
|
+
};
|
|
95
|
+
} else {
|
|
96
|
+
console.error(
|
|
97
|
+
"NativeSparkFrost.ts: Invalid result structure from native call. Result:",
|
|
98
|
+
result
|
|
99
|
+
);
|
|
100
|
+
throw new Error(
|
|
101
|
+
"Invalid result structure from createDummyTx native call"
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
} catch (e) {
|
|
105
|
+
console.error(
|
|
106
|
+
"NativeSparkFrost.ts: Error during SparkFrostModule.createDummyTx call:",
|
|
107
|
+
e
|
|
108
|
+
);
|
|
109
|
+
throw e;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
static async encryptEcies(msg, publicKey) {
|
|
113
|
+
const result = await SparkFrostModule.encryptEcies({
|
|
114
|
+
msg: toNumberArray(msg),
|
|
115
|
+
publicKey: toNumberArray(publicKey)
|
|
116
|
+
});
|
|
117
|
+
return toUint8Array(result);
|
|
118
|
+
}
|
|
119
|
+
static async decryptEcies(encryptedMsg, privateKey) {
|
|
120
|
+
const result = await SparkFrostModule.decryptEcies({
|
|
121
|
+
encryptedMsg: toNumberArray(encryptedMsg),
|
|
122
|
+
privateKey: toNumberArray(privateKey)
|
|
123
|
+
});
|
|
124
|
+
return toUint8Array(result);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
async function createDummyTx(address, amountSats) {
|
|
128
|
+
return NativeSparkFrost.createDummyTx(address, amountSats);
|
|
129
|
+
}
|
|
130
|
+
async function encryptEcies(msg, publicKey) {
|
|
131
|
+
return NativeSparkFrost.encryptEcies(msg, publicKey);
|
|
132
|
+
}
|
|
133
|
+
async function decryptEcies(encryptedMsg, privateKey) {
|
|
134
|
+
return NativeSparkFrost.decryptEcies(encryptedMsg, privateKey);
|
|
135
|
+
}
|
|
136
|
+
export {
|
|
137
|
+
NativeSparkFrost,
|
|
138
|
+
createDummyTx,
|
|
139
|
+
decryptEcies,
|
|
140
|
+
encryptEcies
|
|
141
|
+
};
|