@buildonspark/spark-sdk 0.0.11 → 0.0.13
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/dist/graphql/objects/LeavesSwapRequest.d.ts +8 -8
- package/dist/graphql/objects/LeavesSwapRequest.js +21 -12
- package/dist/graphql/objects/LeavesSwapRequest.js.map +1 -1
- package/dist/graphql/objects/SparkTransferToLeavesConnection.d.ts +5 -5
- package/dist/graphql/objects/SparkTransferToLeavesConnection.js +6 -5
- package/dist/graphql/objects/SparkTransferToLeavesConnection.js.map +1 -1
- package/dist/graphql/objects/Transfer.d.ts +1 -1
- package/dist/services/config.d.ts +2 -16
- package/dist/services/config.js +8 -8
- package/dist/services/config.js.map +1 -1
- package/dist/services/connection.js +25 -11
- package/dist/services/connection.js.map +1 -1
- package/dist/services/coop-exit.js +1 -2
- package/dist/services/coop-exit.js.map +1 -1
- package/dist/services/deposit.js +1 -1
- package/dist/services/deposit.js.map +1 -1
- package/dist/services/lightning.js +1 -0
- package/dist/services/lightning.js.map +1 -1
- package/dist/services/transfer.d.ts +4 -4
- package/dist/services/transfer.js +6 -6
- package/dist/services/transfer.js.map +1 -1
- package/dist/services/wallet-config.d.ts +22 -0
- package/dist/services/wallet-config.js +100 -0
- package/dist/services/wallet-config.js.map +1 -0
- package/dist/signer/signer.d.ts +8 -4
- package/dist/signer/signer.js +45 -36
- package/dist/signer/signer.js.map +1 -1
- package/dist/spark-sdk.d.ts +49 -47
- package/dist/spark-sdk.js +73 -145
- package/dist/spark-sdk.js.map +1 -1
- package/dist/tests/adaptor-signature.test.js +5 -2
- package/dist/tests/adaptor-signature.test.js.map +1 -1
- package/dist/tests/coop-exit.test.js +10 -9
- package/dist/tests/coop-exit.test.js.map +1 -1
- package/dist/tests/deposit.test.js +10 -4
- package/dist/tests/deposit.test.js.map +1 -1
- package/dist/tests/lightning.test.js +16 -12
- package/dist/tests/lightning.test.js.map +1 -1
- package/dist/tests/swap.test.js +16 -11
- package/dist/tests/swap.test.js.map +1 -1
- package/dist/tests/test-util.d.ts +1 -8
- package/dist/tests/test-util.js +5 -117
- package/dist/tests/test-util.js.map +1 -1
- package/dist/tests/transfer.test.js +41 -36
- package/dist/tests/transfer.test.js.map +1 -1
- package/dist/tests/utils/spark-testing-wallet.d.ts +5 -1
- package/dist/tests/utils/spark-testing-wallet.js +8 -0
- package/dist/tests/utils/spark-testing-wallet.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/mempool.d.ts +1 -0
- package/dist/utils/mempool.js +29 -0
- package/dist/utils/mempool.js.map +1 -0
- package/dist/utils/network.d.ts +14 -6
- package/dist/utils/network.js +29 -6
- package/dist/utils/network.js.map +1 -1
- package/dist/utils/signing.d.ts +1 -1
- package/dist/utils/wasm-wrapper.js +23 -13
- package/dist/utils/wasm-wrapper.js.map +1 -1
- package/package.json +21 -5
package/dist/tests/test-util.js
CHANGED
|
@@ -1,123 +1,11 @@
|
|
|
1
|
-
import { hexToBytes } from "@noble/curves/abstract/utils";
|
|
2
1
|
import { secp256k1 } from "@noble/curves/secp256k1";
|
|
3
2
|
import { Address, OutScript, Transaction } from "@scure/btc-signer";
|
|
4
|
-
import { WalletConfigService
|
|
3
|
+
import { WalletConfigService } from "../services/config.js";
|
|
5
4
|
import { ConnectionManager } from "../services/connection.js";
|
|
6
5
|
import { DepositService } from "../services/deposit.js";
|
|
6
|
+
import { LOCAL_WALLET_CONFIG, } from "../services/wallet-config.js";
|
|
7
7
|
import { getP2TRAddressFromPublicKey } from "../utils/bitcoin.js";
|
|
8
8
|
import { getNetwork, Network } from "../utils/network.js";
|
|
9
|
-
import { DefaultSparkSigner } from "./../signer/signer.js";
|
|
10
|
-
const DEFAULT_SPARK_SIGNER = new DefaultSparkSigner();
|
|
11
|
-
export const LOCAL_WALLET_CONFIG = {
|
|
12
|
-
signer: DEFAULT_SPARK_SIGNER,
|
|
13
|
-
coodinatorIdentifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
14
|
-
frostSignerAddress: "unix:///tmp/frost_0.sock",
|
|
15
|
-
threshold: 3,
|
|
16
|
-
signingOperators: getLocalSigningOperators(),
|
|
17
|
-
useTokenTransactionSchnorrSignatures: true,
|
|
18
|
-
};
|
|
19
|
-
export const LOCAL_WALLET_CONFIG_SCHNORR = {
|
|
20
|
-
signer: DEFAULT_SPARK_SIGNER,
|
|
21
|
-
coodinatorIdentifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
22
|
-
frostSignerAddress: "unix:///tmp/frost_0.sock",
|
|
23
|
-
threshold: 3,
|
|
24
|
-
signingOperators: getLocalSigningOperators(),
|
|
25
|
-
useTokenTransactionSchnorrSignatures: true,
|
|
26
|
-
};
|
|
27
|
-
export const LOCAL_WALLET_CONFIG_ECDSA = {
|
|
28
|
-
signer: DEFAULT_SPARK_SIGNER,
|
|
29
|
-
coodinatorIdentifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
30
|
-
frostSignerAddress: "unix:///tmp/frost_0.sock",
|
|
31
|
-
threshold: 3,
|
|
32
|
-
signingOperators: getLocalSigningOperators(),
|
|
33
|
-
useTokenTransactionSchnorrSignatures: false,
|
|
34
|
-
};
|
|
35
|
-
export const REGTEST_WALLET_CONFIG = {
|
|
36
|
-
signer: DEFAULT_SPARK_SIGNER,
|
|
37
|
-
coodinatorIdentifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
38
|
-
frostSignerAddress: "unix:///tmp/frost_0.sock",
|
|
39
|
-
threshold: 3,
|
|
40
|
-
signingOperators: getRegtestSigningOperators(),
|
|
41
|
-
useTokenTransactionSchnorrSignatures: true,
|
|
42
|
-
};
|
|
43
|
-
export const MAINNET_WALLET_CONFIG = {
|
|
44
|
-
signer: DEFAULT_SPARK_SIGNER,
|
|
45
|
-
coodinatorIdentifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
46
|
-
frostSignerAddress: "unix:///tmp/frost_0.sock",
|
|
47
|
-
threshold: 3,
|
|
48
|
-
signingOperators: getRegtestSigningOperators(),
|
|
49
|
-
useTokenTransactionSchnorrSignatures: true,
|
|
50
|
-
};
|
|
51
|
-
export function getRegtestSigningOperators() {
|
|
52
|
-
const pubkeys = [
|
|
53
|
-
"03acd9a5a88db102730ff83dee69d69088cc4c9d93bbee893e90fd5051b7da9651",
|
|
54
|
-
"02d2d103cacb1d6355efeab27637c74484e2a7459e49110c3fe885210369782e23",
|
|
55
|
-
"0350f07ffc21bfd59d31e0a7a600e2995273938444447cb9bc4c75b8a895dbb853",
|
|
56
|
-
];
|
|
57
|
-
const pubkeyBytesArray = pubkeys.map((pubkey) => hexToBytes(pubkey));
|
|
58
|
-
return {
|
|
59
|
-
"0000000000000000000000000000000000000000000000000000000000000001": {
|
|
60
|
-
id: 0,
|
|
61
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
62
|
-
address: "https://0.spark.dev.dev.sparkinfra.net",
|
|
63
|
-
identityPublicKey: pubkeyBytesArray[0],
|
|
64
|
-
},
|
|
65
|
-
"0000000000000000000000000000000000000000000000000000000000000002": {
|
|
66
|
-
id: 1,
|
|
67
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000002",
|
|
68
|
-
address: "https://1.spark.dev.dev.sparkinfra.net",
|
|
69
|
-
identityPublicKey: pubkeyBytesArray[1],
|
|
70
|
-
},
|
|
71
|
-
"0000000000000000000000000000000000000000000000000000000000000003": {
|
|
72
|
-
id: 2,
|
|
73
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000003",
|
|
74
|
-
address: "https://2.spark.dev.dev.sparkinfra.net",
|
|
75
|
-
identityPublicKey: pubkeyBytesArray[2],
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
export function getLocalSigningOperators() {
|
|
80
|
-
const pubkeys = [
|
|
81
|
-
"0322ca18fc489ae25418a0e768273c2c61cabb823edfb14feb891e9bec62016510",
|
|
82
|
-
"0341727a6c41b168f07eb50865ab8c397a53c7eef628ac1020956b705e43b6cb27",
|
|
83
|
-
"0305ab8d485cc752394de4981f8a5ae004f2becfea6f432c9a59d5022d8764f0a6",
|
|
84
|
-
"0352aef4d49439dedd798ac4aef1e7ebef95f569545b647a25338398c1247ffdea",
|
|
85
|
-
"02c05c88cc8fc181b1ba30006df6a4b0597de6490e24514fbdd0266d2b9cd3d0ba",
|
|
86
|
-
];
|
|
87
|
-
const pubkeyBytesArray = pubkeys.map((pubkey) => hexToBytes(pubkey));
|
|
88
|
-
return {
|
|
89
|
-
"0000000000000000000000000000000000000000000000000000000000000001": {
|
|
90
|
-
id: 0,
|
|
91
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000001",
|
|
92
|
-
address: "https://localhost:8535",
|
|
93
|
-
identityPublicKey: pubkeyBytesArray[0],
|
|
94
|
-
},
|
|
95
|
-
"0000000000000000000000000000000000000000000000000000000000000002": {
|
|
96
|
-
id: 1,
|
|
97
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000002",
|
|
98
|
-
address: "https://localhost:8536",
|
|
99
|
-
identityPublicKey: pubkeyBytesArray[1],
|
|
100
|
-
},
|
|
101
|
-
"0000000000000000000000000000000000000000000000000000000000000003": {
|
|
102
|
-
id: 2,
|
|
103
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000003",
|
|
104
|
-
address: "https://localhost:8537",
|
|
105
|
-
identityPublicKey: pubkeyBytesArray[2],
|
|
106
|
-
},
|
|
107
|
-
"0000000000000000000000000000000000000000000000000000000000000004": {
|
|
108
|
-
id: 3,
|
|
109
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000004",
|
|
110
|
-
address: "https://localhost:8538",
|
|
111
|
-
identityPublicKey: pubkeyBytesArray[3],
|
|
112
|
-
},
|
|
113
|
-
"0000000000000000000000000000000000000000000000000000000000000005": {
|
|
114
|
-
id: 4,
|
|
115
|
-
identifier: "0000000000000000000000000000000000000000000000000000000000000005",
|
|
116
|
-
address: "https://localhost:8539",
|
|
117
|
-
identityPublicKey: pubkeyBytesArray[4],
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
9
|
export function getTestWalletConfig() {
|
|
122
10
|
const identityPrivateKey = secp256k1.utils.randomPrivateKey();
|
|
123
11
|
return getTestWalletConfigWithIdentityKey(identityPrivateKey);
|
|
@@ -130,9 +18,9 @@ export function getTestWalletConfigWithIdentityKey(identityPrivateKey) {
|
|
|
130
18
|
}
|
|
131
19
|
export async function createNewTree(wallet, pubKey, faucet, amountSats = 100000n) {
|
|
132
20
|
const faucetCoin = await faucet.fund();
|
|
133
|
-
const configService = new WalletConfigService(
|
|
134
|
-
|
|
135
|
-
});
|
|
21
|
+
const configService = new WalletConfigService({
|
|
22
|
+
network: "LOCAL",
|
|
23
|
+
}, wallet.getSigner());
|
|
136
24
|
const connectionManager = new ConnectionManager(configService);
|
|
137
25
|
const depositService = new DepositService(configService, connectionManager);
|
|
138
26
|
const depositResp = await depositService.generateDepositAddress({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-util.js","sourceRoot":"","sources":["../../src/tests/test-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test-util.js","sourceRoot":"","sources":["../../src/tests/test-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ import { sha256 } from "@scure/btc-signer/utils";
|
|
|
6
6
|
import { WalletConfigService } from "../services/config.js";
|
|
7
7
|
import { ConnectionManager } from "../services/connection.js";
|
|
8
8
|
import { TransferService } from "../services/transfer.js";
|
|
9
|
-
import { Network } from "../utils/network.js";
|
|
10
9
|
import { createNewTree } from "./test-util.js";
|
|
11
10
|
import { SparkWalletTesting } from "./utils/spark-testing-wallet.js";
|
|
12
11
|
import { BitcoinFaucet } from "./utils/test-faucet.js";
|
|
@@ -15,22 +14,23 @@ describe("Transfer", () => {
|
|
|
15
14
|
const testFn = process.env.GITHUB_ACTIONS ? it.skip : it;
|
|
16
15
|
testFn("test transfer", async () => {
|
|
17
16
|
const faucet = new BitcoinFaucet("http://127.0.0.1:18443", "admin1", "123");
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const options = {
|
|
18
|
+
network: "LOCAL",
|
|
19
|
+
};
|
|
20
|
+
const { wallet: senderWallet } = await SparkWalletTesting.create({
|
|
21
|
+
options,
|
|
22
22
|
});
|
|
23
|
+
const senderConfigService = new WalletConfigService(options, senderWallet.getSigner());
|
|
23
24
|
const senderConnectionManager = new ConnectionManager(senderConfigService);
|
|
24
25
|
const senderTransferService = new TransferService(senderConfigService, senderConnectionManager);
|
|
25
26
|
const leafPubKey = await senderWallet.getSigner().generatePublicKey();
|
|
26
27
|
const rootNode = await createNewTree(senderWallet, leafPubKey, faucet, 1000n);
|
|
27
28
|
const newLeafPubKey = await senderWallet.getSigner().generatePublicKey();
|
|
28
|
-
const receiverWallet =
|
|
29
|
-
|
|
30
|
-
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
31
|
-
const receiverConfigService = new WalletConfigService(Network.LOCAL, {
|
|
32
|
-
signer: receiverWallet.getSigner(),
|
|
29
|
+
const { wallet: receiverWallet } = await SparkWalletTesting.create({
|
|
30
|
+
options,
|
|
33
31
|
});
|
|
32
|
+
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
33
|
+
const receiverConfigService = new WalletConfigService(options, receiverWallet.getSigner());
|
|
34
34
|
const receiverConnectionManager = new ConnectionManager(receiverConfigService);
|
|
35
35
|
const receiverTransferService = new TransferService(receiverConfigService, receiverConnectionManager);
|
|
36
36
|
const transferNode = {
|
|
@@ -38,7 +38,7 @@ describe("Transfer", () => {
|
|
|
38
38
|
signingPubKey: leafPubKey,
|
|
39
39
|
newSigningPubKey: newLeafPubKey,
|
|
40
40
|
};
|
|
41
|
-
const senderTransfer = await senderTransferService.sendTransfer([transferNode], hexToBytes(receiverPubkey)
|
|
41
|
+
const senderTransfer = await senderTransferService.sendTransfer([transferNode], hexToBytes(receiverPubkey));
|
|
42
42
|
const pendingTransfer = await receiverWallet.queryPendingTransfers();
|
|
43
43
|
expect(pendingTransfer.transfers.length).toBe(1);
|
|
44
44
|
const receiverTransfer = pendingTransfer.transfers[0];
|
|
@@ -59,10 +59,13 @@ describe("Transfer", () => {
|
|
|
59
59
|
await receiverTransferService.claimTransfer(receiverTransfer, [
|
|
60
60
|
claimingNode,
|
|
61
61
|
]);
|
|
62
|
-
const newReceiverWallet =
|
|
63
|
-
|
|
62
|
+
const { wallet: newReceiverWallet } = await SparkWalletTesting.create({
|
|
63
|
+
options: {
|
|
64
|
+
network: "LOCAL",
|
|
65
|
+
},
|
|
66
|
+
});
|
|
64
67
|
const newReceiverPubkey = await newReceiverWallet.getIdentityPublicKey();
|
|
65
|
-
await receiverWallet.
|
|
68
|
+
await receiverWallet.transfer({
|
|
66
69
|
amountSats: 1000,
|
|
67
70
|
receiverSparkAddress: newReceiverPubkey,
|
|
68
71
|
});
|
|
@@ -72,19 +75,20 @@ describe("Transfer", () => {
|
|
|
72
75
|
}, 30000);
|
|
73
76
|
testFn("test transfer with separate", async () => {
|
|
74
77
|
const faucet = new BitcoinFaucet("http://127.0.0.1:18443", "admin1", "123");
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
const options = {
|
|
79
|
+
network: "LOCAL",
|
|
80
|
+
};
|
|
81
|
+
const { wallet: senderWallet } = await SparkWalletTesting.create({
|
|
82
|
+
options,
|
|
79
83
|
});
|
|
84
|
+
const senderConfigService = new WalletConfigService(options, senderWallet.getSigner());
|
|
80
85
|
const senderConnectionManager = new ConnectionManager(senderConfigService);
|
|
81
86
|
const senderTransferService = new TransferService(senderConfigService, senderConnectionManager);
|
|
82
|
-
const receiverWallet =
|
|
83
|
-
|
|
84
|
-
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
85
|
-
const receiverConfigService = new WalletConfigService(Network.LOCAL, {
|
|
86
|
-
signer: receiverWallet.getSigner(),
|
|
87
|
+
const { wallet: receiverWallet } = await SparkWalletTesting.create({
|
|
88
|
+
options,
|
|
87
89
|
});
|
|
90
|
+
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
91
|
+
const receiverConfigService = new WalletConfigService(options, receiverWallet.getSigner());
|
|
88
92
|
const receiverConnectionManager = new ConnectionManager(receiverConfigService);
|
|
89
93
|
const receiverTransferService = new TransferService(receiverConfigService, receiverConnectionManager);
|
|
90
94
|
const leafPubKey = await senderWallet.getSigner().generatePublicKey();
|
|
@@ -96,7 +100,7 @@ describe("Transfer", () => {
|
|
|
96
100
|
newSigningPubKey: newLeafPubKey,
|
|
97
101
|
};
|
|
98
102
|
const leavesToTransfer = [transferNode];
|
|
99
|
-
const senderTransfer = await senderTransferService.sendTransfer(leavesToTransfer, hexToBytes(receiverPubkey)
|
|
103
|
+
const senderTransfer = await senderTransferService.sendTransfer(leavesToTransfer, hexToBytes(receiverPubkey));
|
|
100
104
|
// Receiver queries pending transfer
|
|
101
105
|
const pendingTransfer = await receiverWallet.queryPendingTransfers();
|
|
102
106
|
expect(pendingTransfer.transfers.length).toBe(1);
|
|
@@ -137,15 +141,18 @@ describe("Transfer", () => {
|
|
|
137
141
|
});
|
|
138
142
|
testFn("cancel transfer", async () => {
|
|
139
143
|
const faucet = new BitcoinFaucet("http://127.0.0.1:18443", "admin1", "123");
|
|
140
|
-
const
|
|
144
|
+
const options = {
|
|
145
|
+
network: "LOCAL",
|
|
146
|
+
};
|
|
147
|
+
const { wallet: senderWallet } = await SparkWalletTesting.create({
|
|
148
|
+
options,
|
|
149
|
+
});
|
|
141
150
|
const mnemonic = generateMnemonic(wordlist);
|
|
142
|
-
await
|
|
143
|
-
|
|
144
|
-
await receiverWallet.initWallet();
|
|
145
|
-
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
146
|
-
const receiverConfigService = new WalletConfigService(Network.LOCAL, {
|
|
147
|
-
signer: receiverWallet.getSigner(),
|
|
151
|
+
const { wallet: receiverWallet } = await SparkWalletTesting.create({
|
|
152
|
+
options,
|
|
148
153
|
});
|
|
154
|
+
const receiverPubkey = await receiverWallet.getIdentityPublicKey();
|
|
155
|
+
const receiverConfigService = new WalletConfigService(options, receiverWallet.getSigner());
|
|
149
156
|
const receiverConnectionManager = new ConnectionManager(receiverConfigService);
|
|
150
157
|
const receiverTransferService = new TransferService(receiverConfigService, receiverConnectionManager);
|
|
151
158
|
const leafPubKey = await senderWallet.getSigner().generatePublicKey();
|
|
@@ -156,14 +163,12 @@ describe("Transfer", () => {
|
|
|
156
163
|
signingPubKey: leafPubKey,
|
|
157
164
|
newSigningPubKey: newLeafPubKey,
|
|
158
165
|
};
|
|
159
|
-
const senderConfigService = new WalletConfigService(
|
|
160
|
-
signer: senderWallet.getSigner(),
|
|
161
|
-
});
|
|
166
|
+
const senderConfigService = new WalletConfigService(options, senderWallet.getSigner());
|
|
162
167
|
const senderConnectionManager = new ConnectionManager(senderConfigService);
|
|
163
168
|
const senderTransferService = new TransferService(senderConfigService, senderConnectionManager);
|
|
164
169
|
const senderTransfer = await senderTransferService.sendTransferSignRefund([transferNode], hexToBytes(receiverPubkey), new Date(Date.now() + 10 * 60 * 1000));
|
|
165
|
-
await senderTransferService.cancelSendTransfer(senderTransfer.transfer);
|
|
166
|
-
const newSenderTransfer = await senderTransferService.sendTransfer([transferNode], hexToBytes(receiverPubkey)
|
|
170
|
+
await senderTransferService.cancelSendTransfer(senderTransfer.transfer, senderConfigService.getCoordinatorAddress());
|
|
171
|
+
const newSenderTransfer = await senderTransferService.sendTransfer([transferNode], hexToBytes(receiverPubkey));
|
|
167
172
|
const pendingTransfer = await receiverWallet.queryPendingTransfers();
|
|
168
173
|
expect(pendingTransfer.transfers.length).toBe(1);
|
|
169
174
|
const receiverTransfer = pendingTransfer.transfers[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.test.js","sourceRoot":"","sources":["../../src/tests/transfer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAgB,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer.test.js","sourceRoot":"","sources":["../../src/tests/transfer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { QueryPendingTransfersResponse, Transfer } from "../../proto/spark.js";
|
|
2
2
|
import { SparkSigner } from "../../signer/signer.js";
|
|
3
|
-
import { SparkWallet } from "../../spark-sdk.js";
|
|
3
|
+
import { SparkWallet, SparkWalletProps } from "../../spark-sdk.js";
|
|
4
4
|
interface ISparkWalletTesting extends SparkWallet {
|
|
5
5
|
getSigner(): SparkSigner;
|
|
6
6
|
queryPendingTransfers(): Promise<QueryPendingTransfersResponse>;
|
|
7
7
|
verifyPendingTransfer(transfer: Transfer): Promise<Map<string, Uint8Array>>;
|
|
8
8
|
}
|
|
9
9
|
export declare class SparkWalletTesting extends SparkWallet implements ISparkWalletTesting {
|
|
10
|
+
static create(props: SparkWalletProps): Promise<{
|
|
11
|
+
wallet: SparkWalletTesting;
|
|
12
|
+
mnemonic: string | undefined;
|
|
13
|
+
}>;
|
|
10
14
|
getSigner(): SparkSigner;
|
|
11
15
|
queryPendingTransfers(): Promise<QueryPendingTransfersResponse>;
|
|
12
16
|
verifyPendingTransfer(transfer: Transfer): Promise<Map<string, Uint8Array>>;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { SparkWallet } from "../../spark-sdk.js";
|
|
2
2
|
export class SparkWalletTesting extends SparkWallet {
|
|
3
|
+
static async create(props) {
|
|
4
|
+
const wallet = new SparkWalletTesting(props.options, props.signer);
|
|
5
|
+
const initResponse = await wallet.initWallet(props.mnemonicOrSeed);
|
|
6
|
+
return {
|
|
7
|
+
wallet,
|
|
8
|
+
mnemonic: initResponse?.mnemonic,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
3
11
|
getSigner() {
|
|
4
12
|
return this.config.signer;
|
|
5
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spark-testing-wallet.js","sourceRoot":"","sources":["../../../src/tests/utils/spark-testing-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"spark-testing-wallet.js","sourceRoot":"","sources":["../../../src/tests/utils/spark-testing-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAoB,MAAM,oBAAoB,CAAC;AAQnE,MAAM,OAAO,kBACX,SAAQ,WAAW;IAGnB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAuB;QACzC,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,YAAY,EAAE,QAAQ;SACjC,CAAC;IACJ,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAChC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,QAAkB;QAElB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CACF"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from "./adaptor-signature.js";
|
|
2
2
|
export * from "./bitcoin.js";
|
|
3
3
|
export * from "./keys.js";
|
|
4
|
+
export * from "./mempool.js";
|
|
4
5
|
export * from "./network.js";
|
|
5
|
-
export * from "./response-validation.js";
|
|
6
6
|
export * from "./proof.js";
|
|
7
|
+
export * from "./response-validation.js";
|
|
7
8
|
export * from "./secret-sharing.js";
|
|
8
9
|
export * from "./signing.js";
|
|
9
10
|
export * from "./transaction.js";
|
package/dist/utils/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from "./adaptor-signature.js";
|
|
2
2
|
export * from "./bitcoin.js";
|
|
3
3
|
export * from "./keys.js";
|
|
4
|
+
export * from "./mempool.js";
|
|
4
5
|
export * from "./network.js";
|
|
5
|
-
export * from "./response-validation.js";
|
|
6
6
|
export * from "./proof.js";
|
|
7
|
+
export * from "./response-validation.js";
|
|
7
8
|
export * from "./secret-sharing.js";
|
|
8
9
|
export * from "./signing.js";
|
|
9
10
|
export * from "./transaction.js";
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getLatestDepositTxId(address: string): Promise<string | null>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BitcoinNetwork } from "../types/index.js";
|
|
2
|
+
import { getNetworkFromAddress } from "./network.js";
|
|
3
|
+
export async function getLatestDepositTxId(address) {
|
|
4
|
+
const network = getNetworkFromAddress(address);
|
|
5
|
+
const baseUrl = network === BitcoinNetwork.REGTEST
|
|
6
|
+
? "https://regtest-mempool.dev.dev.sparkinfra.net/api"
|
|
7
|
+
: "https://mempool.space/docs/api";
|
|
8
|
+
const auth = btoa("spark-sdk:mCMk1JqlBNtetUNy");
|
|
9
|
+
const headers = {
|
|
10
|
+
"Content-Type": "application/json",
|
|
11
|
+
};
|
|
12
|
+
if (network === BitcoinNetwork.REGTEST) {
|
|
13
|
+
headers["Authorization"] = `Basic ${auth}`;
|
|
14
|
+
}
|
|
15
|
+
const response = await fetch(`${baseUrl}/address/${address}/txs`, {
|
|
16
|
+
headers,
|
|
17
|
+
});
|
|
18
|
+
const addressTxs = await response.json();
|
|
19
|
+
if (addressTxs && addressTxs.length > 0) {
|
|
20
|
+
const latestTx = addressTxs[0];
|
|
21
|
+
const outputIndex = latestTx.vout.findIndex((output) => output.scriptpubkey_address === address);
|
|
22
|
+
if (outputIndex === -1) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return latestTx.txid;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mempool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../src/utils/mempool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe;IAEf,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GACX,OAAO,KAAK,cAAc,CAAC,OAAO;QAChC,CAAC,CAAC,oDAAoD;QACtD,CAAC,CAAC,gCAAgC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAEhD,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,OAAO,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,YAAY,OAAO,MAAM,EAAE;QAChE,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAW,QAAQ,CAAC,IAAI,CAAC,SAAS,CACjD,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,KAAK,OAAO,CACzD,CAAC;QAEF,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/utils/network.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { NetworkType as Lrc20NetworkType } from "@buildonspark/lrc20-sdk";
|
|
2
2
|
import * as btc from "@scure/btc-signer";
|
|
3
|
-
import
|
|
3
|
+
import * as bitcoin from "bitcoinjs-lib";
|
|
4
4
|
import { Network as NetworkProto } from "../proto/spark.js";
|
|
5
|
+
import { BitcoinNetwork } from "../types/index.js";
|
|
5
6
|
export declare enum Network {
|
|
6
7
|
MAINNET = 0,
|
|
7
8
|
TESTNET = 1,
|
|
@@ -13,11 +14,11 @@ export type NetworkType = keyof typeof Network;
|
|
|
13
14
|
export declare const NetworkToProto: Record<Network, NetworkProto>;
|
|
14
15
|
export declare const getNetwork: (network: Network) => typeof btc.NETWORK;
|
|
15
16
|
export declare const LRC_WALLET_NETWORK: Readonly<{
|
|
16
|
-
0: networks.Network;
|
|
17
|
-
1: networks.Network;
|
|
18
|
-
2: networks.Network;
|
|
19
|
-
3: networks.Network;
|
|
20
|
-
4: networks.Network;
|
|
17
|
+
0: bitcoin.networks.Network;
|
|
18
|
+
1: bitcoin.networks.Network;
|
|
19
|
+
2: bitcoin.networks.Network;
|
|
20
|
+
3: bitcoin.networks.Network;
|
|
21
|
+
4: bitcoin.networks.Network;
|
|
21
22
|
}>;
|
|
22
23
|
export declare const LRC_WALLET_NETWORK_TYPE: Readonly<{
|
|
23
24
|
0: Lrc20NetworkType.MAINNET;
|
|
@@ -26,3 +27,10 @@ export declare const LRC_WALLET_NETWORK_TYPE: Readonly<{
|
|
|
26
27
|
3: Lrc20NetworkType.REGTEST;
|
|
27
28
|
4: Lrc20NetworkType.REGTEST;
|
|
28
29
|
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Utility function to determine the network from a Bitcoin address.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} address - The Bitcoin address
|
|
34
|
+
* @returns {BitcoinNetwork | null} The detected network or null if not detected
|
|
35
|
+
*/
|
|
36
|
+
export declare function getNetworkFromAddress(address: string): BitcoinNetwork.MAINNET | BitcoinNetwork.REGTEST | null;
|
package/dist/utils/network.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { NetworkType as Lrc20NetworkType } from "@buildonspark/lrc20-sdk";
|
|
2
2
|
import * as btc from "@scure/btc-signer";
|
|
3
|
-
import
|
|
3
|
+
import * as bitcoin from "bitcoinjs-lib";
|
|
4
4
|
import { Network as NetworkProto } from "../proto/spark.js";
|
|
5
|
+
import { BitcoinNetwork } from "../types/index.js";
|
|
5
6
|
export var Network;
|
|
6
7
|
(function (Network) {
|
|
7
8
|
Network[Network["MAINNET"] = 0] = "MAINNET";
|
|
@@ -26,11 +27,11 @@ const NetworkConfig = {
|
|
|
26
27
|
};
|
|
27
28
|
export const getNetwork = (network) => NetworkConfig[network];
|
|
28
29
|
export const LRC_WALLET_NETWORK = Object.freeze({
|
|
29
|
-
[Network.MAINNET]: networks.bitcoin,
|
|
30
|
-
[Network.TESTNET]: networks.testnet,
|
|
31
|
-
[Network.SIGNET]: networks.testnet,
|
|
32
|
-
[Network.REGTEST]: networks.regtest,
|
|
33
|
-
[Network.LOCAL]: networks.regtest,
|
|
30
|
+
[Network.MAINNET]: bitcoin.networks.bitcoin,
|
|
31
|
+
[Network.TESTNET]: bitcoin.networks.testnet,
|
|
32
|
+
[Network.SIGNET]: bitcoin.networks.testnet,
|
|
33
|
+
[Network.REGTEST]: bitcoin.networks.regtest,
|
|
34
|
+
[Network.LOCAL]: bitcoin.networks.regtest,
|
|
34
35
|
});
|
|
35
36
|
export const LRC_WALLET_NETWORK_TYPE = Object.freeze({
|
|
36
37
|
[Network.MAINNET]: Lrc20NetworkType.MAINNET,
|
|
@@ -39,4 +40,26 @@ export const LRC_WALLET_NETWORK_TYPE = Object.freeze({
|
|
|
39
40
|
[Network.REGTEST]: Lrc20NetworkType.REGTEST,
|
|
40
41
|
[Network.LOCAL]: Lrc20NetworkType.REGTEST,
|
|
41
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* Utility function to determine the network from a Bitcoin address.
|
|
45
|
+
*
|
|
46
|
+
* @param {string} address - The Bitcoin address
|
|
47
|
+
* @returns {BitcoinNetwork | null} The detected network or null if not detected
|
|
48
|
+
*/
|
|
49
|
+
export function getNetworkFromAddress(address) {
|
|
50
|
+
try {
|
|
51
|
+
const decoded = bitcoin.address.fromBech32(address);
|
|
52
|
+
// HRP (human-readable part) determines the network
|
|
53
|
+
if (decoded.prefix === "bc") {
|
|
54
|
+
return BitcoinNetwork.MAINNET;
|
|
55
|
+
}
|
|
56
|
+
else if (decoded.prefix === "bcrt") {
|
|
57
|
+
return BitcoinNetwork.REGTEST;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
throw new Error("Invalid Bitcoin address");
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
42
65
|
//# sourceMappingURL=network.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/signing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SigningCommitment, SigningNonce } from "../signer/signer.js";
|
|
1
|
+
import type { SigningCommitment, SigningNonce } from "../signer/signer.js";
|
|
2
2
|
import { SigningCommitment as WasmSigningCommitment, SigningNonce as WasmSigningNonce } from "../wasm/spark_bindings.js";
|
|
3
3
|
export declare function getRandomSigningNonce(): SigningNonce;
|
|
4
4
|
export declare function createSigningNonce(binding: Uint8Array, hiding: Uint8Array): SigningNonce;
|
|
@@ -4,23 +4,33 @@ export async function initWasm() {
|
|
|
4
4
|
try {
|
|
5
5
|
if (typeof window === "undefined") {
|
|
6
6
|
// Node.js environment
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
try {
|
|
8
|
+
// Dynamic imports for Node.js modules to avoid browser compatibility issues
|
|
9
|
+
const fs = await import('fs/promises');
|
|
10
|
+
const path = await import('path');
|
|
11
|
+
const url = await import('url');
|
|
12
|
+
const __filename = url.fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = path.dirname(__filename);
|
|
14
|
+
const wasmPath = path.resolve(__dirname, "../wasm/spark_bindings_bg.wasm");
|
|
15
|
+
const wasmBuffer = await fs.readFile(wasmPath);
|
|
16
|
+
// Initialize with proper memory configuration for Node.js
|
|
17
|
+
wasmModule = await init({ module_or_path: wasmBuffer }).catch((e) => {
|
|
18
|
+
console.error("WASM initialization error:", e);
|
|
19
|
+
throw e;
|
|
20
|
+
});
|
|
21
|
+
return wasmModule;
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.error("Error with Node.js-specific WASM loading, falling back to standard initialization:", e);
|
|
25
|
+
// Fall back to standard initialization if dynamic imports fail
|
|
26
|
+
wasmModule = await init();
|
|
27
|
+
return wasmModule;
|
|
28
|
+
}
|
|
20
29
|
}
|
|
21
30
|
else {
|
|
22
31
|
// Browser environment
|
|
23
32
|
wasmModule = await init();
|
|
33
|
+
return wasmModule;
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
36
|
catch (e) {
|