@lightsparkdev/lightspark-sdk 1.0.1 → 1.0.2
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 +11 -0
- package/dist/index.cjs +26 -18
- package/dist/index.js +26 -20
- package/package.json +2 -1
- package/src/SigningKeyLoader.ts +28 -20
- package/src/lightspark_crypto/lightspark_crypto.d.ts +0 -157
- package/src/lightspark_crypto/lightspark_crypto.js +0 -1010
- package/src/lightspark_crypto/lightspark_crypto_bg.wasm +0 -0
- package/src/lightspark_crypto/lightspark_crypto_bg.wasm.d.ts +0 -120
- package/src/lightspark_crypto/package.json +0 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @lightsparkdev/lightspark-sdk
|
|
2
2
|
|
|
3
|
+
## 1.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e2b1515: - [uma] Add fetchPublicKeyForVasp
|
|
8
|
+
- [lightspark-cli] add payUmaInvoice
|
|
9
|
+
- [lightspark-cli] allow generate-node-keys to be used without running init-env and always asks user to choose the bitcoin network to generate the node keys
|
|
10
|
+
- [lightspark-cli] updates commands to get bitcoin network from the selected node in most scenarios
|
|
11
|
+
- [lightspark-sdk] use crypto-wasm for crypto operations
|
|
12
|
+
- [lightspark-sdk] dynamically import crypto-wasm for node environments only
|
|
13
|
+
|
|
3
14
|
## 1.0.1
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -1938,7 +1938,7 @@ var import_crypto = require("crypto");
|
|
|
1938
1938
|
// package.json
|
|
1939
1939
|
var package_default = {
|
|
1940
1940
|
name: "@lightsparkdev/lightspark-sdk",
|
|
1941
|
-
version: "1.0.
|
|
1941
|
+
version: "1.0.2",
|
|
1942
1942
|
description: "Lightspark JS SDK",
|
|
1943
1943
|
author: "Lightspark Inc.",
|
|
1944
1944
|
keywords: [
|
|
@@ -2024,6 +2024,7 @@ var package_default = {
|
|
|
2024
2024
|
license: "Apache-2.0",
|
|
2025
2025
|
dependencies: {
|
|
2026
2026
|
"@lightsparkdev/core": "1.0.1",
|
|
2027
|
+
"@lightsparkdev/crypto-wasm": "0.1.0",
|
|
2027
2028
|
"auto-bind": "^5.0.1",
|
|
2028
2029
|
crypto: "^1.0.1",
|
|
2029
2030
|
"crypto-browserify": "^3.12.0",
|
|
@@ -6884,22 +6885,7 @@ var RecoverNodeSigningKey = `
|
|
|
6884
6885
|
`;
|
|
6885
6886
|
|
|
6886
6887
|
// src/SigningKeyLoader.ts
|
|
6887
|
-
var import_lightspark_crypto = require("../src/lightspark_crypto/lightspark_crypto.js");
|
|
6888
6888
|
var SIGNING_KEY_PATH = "m/5";
|
|
6889
|
-
var getCryptoLibNetwork = (bitcoinNetwork) => {
|
|
6890
|
-
switch (bitcoinNetwork) {
|
|
6891
|
-
case BitcoinNetwork_default.MAINNET:
|
|
6892
|
-
return import_lightspark_crypto.Network.Bitcoin;
|
|
6893
|
-
case BitcoinNetwork_default.TESTNET:
|
|
6894
|
-
return import_lightspark_crypto.Network.Testnet;
|
|
6895
|
-
case BitcoinNetwork_default.REGTEST:
|
|
6896
|
-
return import_lightspark_crypto.Network.Regtest;
|
|
6897
|
-
default:
|
|
6898
|
-
throw new Error(
|
|
6899
|
-
`Unsupported lightspark_crypto network ${bitcoinNetwork}.`
|
|
6900
|
-
);
|
|
6901
|
-
}
|
|
6902
|
-
};
|
|
6903
6889
|
function isNodeIdAndPasswordSigningKeyLoaderArgs(args) {
|
|
6904
6890
|
return args.password !== void 0;
|
|
6905
6891
|
}
|
|
@@ -6962,9 +6948,31 @@ var MasterSeedSigningKeyLoader = class {
|
|
|
6962
6948
|
this.network = args.network;
|
|
6963
6949
|
}
|
|
6964
6950
|
async loadSigningKey() {
|
|
6965
|
-
|
|
6951
|
+
if (import_core5.isBrowser) {
|
|
6952
|
+
throw new import_core5.LightsparkSigningException(
|
|
6953
|
+
"Browser environments not supported for master seed signing key loader."
|
|
6954
|
+
);
|
|
6955
|
+
}
|
|
6956
|
+
const { LightsparkSigner, Network } = await import("@lightsparkdev/crypto-wasm");
|
|
6957
|
+
let cryptoLibNetwork;
|
|
6958
|
+
switch (this.network) {
|
|
6959
|
+
case BitcoinNetwork_default.MAINNET:
|
|
6960
|
+
cryptoLibNetwork = Network.Bitcoin;
|
|
6961
|
+
break;
|
|
6962
|
+
case BitcoinNetwork_default.TESTNET:
|
|
6963
|
+
cryptoLibNetwork = Network.Testnet;
|
|
6964
|
+
break;
|
|
6965
|
+
case BitcoinNetwork_default.REGTEST:
|
|
6966
|
+
cryptoLibNetwork = Network.Regtest;
|
|
6967
|
+
break;
|
|
6968
|
+
default:
|
|
6969
|
+
throw new Error(
|
|
6970
|
+
`Unsupported lightspark_crypto network ${this.network}.`
|
|
6971
|
+
);
|
|
6972
|
+
}
|
|
6973
|
+
const lightsparkSigner = LightsparkSigner.from_bytes(
|
|
6966
6974
|
this.masterSeed,
|
|
6967
|
-
|
|
6975
|
+
cryptoLibNetwork
|
|
6968
6976
|
);
|
|
6969
6977
|
const privateKey = lightsparkSigner.derive_private_key(SIGNING_KEY_PATH);
|
|
6970
6978
|
return { key: privateKey, type: import_core5.SigningKeyType.Secp256k1SigningKey };
|
package/dist/index.js
CHANGED
|
@@ -129,7 +129,7 @@ import { createHash } from "crypto";
|
|
|
129
129
|
// package.json
|
|
130
130
|
var package_default = {
|
|
131
131
|
name: "@lightsparkdev/lightspark-sdk",
|
|
132
|
-
version: "1.0.
|
|
132
|
+
version: "1.0.2",
|
|
133
133
|
description: "Lightspark JS SDK",
|
|
134
134
|
author: "Lightspark Inc.",
|
|
135
135
|
keywords: [
|
|
@@ -215,6 +215,7 @@ var package_default = {
|
|
|
215
215
|
license: "Apache-2.0",
|
|
216
216
|
dependencies: {
|
|
217
217
|
"@lightsparkdev/core": "1.0.1",
|
|
218
|
+
"@lightsparkdev/crypto-wasm": "0.1.0",
|
|
218
219
|
"auto-bind": "^5.0.1",
|
|
219
220
|
crypto: "^1.0.1",
|
|
220
221
|
"crypto-browserify": "^3.12.0",
|
|
@@ -826,6 +827,7 @@ import {
|
|
|
826
827
|
// src/SigningKeyLoader.ts
|
|
827
828
|
import {
|
|
828
829
|
b64encode as b64encode2,
|
|
830
|
+
isBrowser,
|
|
829
831
|
LightsparkSigningException,
|
|
830
832
|
SigningKeyType
|
|
831
833
|
} from "@lightsparkdev/core";
|
|
@@ -846,25 +848,7 @@ var RecoverNodeSigningKey = `
|
|
|
846
848
|
`;
|
|
847
849
|
|
|
848
850
|
// src/SigningKeyLoader.ts
|
|
849
|
-
import {
|
|
850
|
-
LightsparkSigner,
|
|
851
|
-
Network
|
|
852
|
-
} from "../src/lightspark_crypto/lightspark_crypto.js";
|
|
853
851
|
var SIGNING_KEY_PATH = "m/5";
|
|
854
|
-
var getCryptoLibNetwork = (bitcoinNetwork) => {
|
|
855
|
-
switch (bitcoinNetwork) {
|
|
856
|
-
case BitcoinNetwork_default.MAINNET:
|
|
857
|
-
return Network.Bitcoin;
|
|
858
|
-
case BitcoinNetwork_default.TESTNET:
|
|
859
|
-
return Network.Testnet;
|
|
860
|
-
case BitcoinNetwork_default.REGTEST:
|
|
861
|
-
return Network.Regtest;
|
|
862
|
-
default:
|
|
863
|
-
throw new Error(
|
|
864
|
-
`Unsupported lightspark_crypto network ${bitcoinNetwork}.`
|
|
865
|
-
);
|
|
866
|
-
}
|
|
867
|
-
};
|
|
868
852
|
function isNodeIdAndPasswordSigningKeyLoaderArgs(args) {
|
|
869
853
|
return args.password !== void 0;
|
|
870
854
|
}
|
|
@@ -927,9 +911,31 @@ var MasterSeedSigningKeyLoader = class {
|
|
|
927
911
|
this.network = args.network;
|
|
928
912
|
}
|
|
929
913
|
async loadSigningKey() {
|
|
914
|
+
if (isBrowser) {
|
|
915
|
+
throw new LightsparkSigningException(
|
|
916
|
+
"Browser environments not supported for master seed signing key loader."
|
|
917
|
+
);
|
|
918
|
+
}
|
|
919
|
+
const { LightsparkSigner, Network } = await import("@lightsparkdev/crypto-wasm");
|
|
920
|
+
let cryptoLibNetwork;
|
|
921
|
+
switch (this.network) {
|
|
922
|
+
case BitcoinNetwork_default.MAINNET:
|
|
923
|
+
cryptoLibNetwork = Network.Bitcoin;
|
|
924
|
+
break;
|
|
925
|
+
case BitcoinNetwork_default.TESTNET:
|
|
926
|
+
cryptoLibNetwork = Network.Testnet;
|
|
927
|
+
break;
|
|
928
|
+
case BitcoinNetwork_default.REGTEST:
|
|
929
|
+
cryptoLibNetwork = Network.Regtest;
|
|
930
|
+
break;
|
|
931
|
+
default:
|
|
932
|
+
throw new Error(
|
|
933
|
+
`Unsupported lightspark_crypto network ${this.network}.`
|
|
934
|
+
);
|
|
935
|
+
}
|
|
930
936
|
const lightsparkSigner = LightsparkSigner.from_bytes(
|
|
931
937
|
this.masterSeed,
|
|
932
|
-
|
|
938
|
+
cryptoLibNetwork
|
|
933
939
|
);
|
|
934
940
|
const privateKey = lightsparkSigner.derive_private_key(SIGNING_KEY_PATH);
|
|
935
941
|
return { key: privateKey, type: SigningKeyType.Secp256k1SigningKey };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightsparkdev/lightspark-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Lightspark JS SDK",
|
|
5
5
|
"author": "Lightspark Inc.",
|
|
6
6
|
"keywords": [
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"license": "Apache-2.0",
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"@lightsparkdev/core": "1.0.1",
|
|
89
|
+
"@lightsparkdev/crypto-wasm": "0.1.0",
|
|
89
90
|
"auto-bind": "^5.0.1",
|
|
90
91
|
"crypto": "^1.0.1",
|
|
91
92
|
"crypto-browserify": "^3.12.0",
|
package/src/SigningKeyLoader.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
b64encode,
|
|
3
|
+
isBrowser,
|
|
3
4
|
LightsparkSigningException,
|
|
4
5
|
SigningKeyType,
|
|
5
6
|
type CryptoInterface,
|
|
@@ -8,28 +9,9 @@ import {
|
|
|
8
9
|
} from "@lightsparkdev/core";
|
|
9
10
|
import { RecoverNodeSigningKey } from "./graphql/RecoverNodeSigningKey.js";
|
|
10
11
|
import { BitcoinNetwork } from "./index.js";
|
|
11
|
-
import {
|
|
12
|
-
LightsparkSigner,
|
|
13
|
-
Network,
|
|
14
|
-
} from "./lightspark_crypto/lightspark_crypto.js";
|
|
15
12
|
|
|
16
13
|
const SIGNING_KEY_PATH = "m/5";
|
|
17
14
|
|
|
18
|
-
const getCryptoLibNetwork = (bitcoinNetwork: BitcoinNetwork): Network => {
|
|
19
|
-
switch (bitcoinNetwork) {
|
|
20
|
-
case BitcoinNetwork.MAINNET:
|
|
21
|
-
return Network.Bitcoin;
|
|
22
|
-
case BitcoinNetwork.TESTNET:
|
|
23
|
-
return Network.Testnet;
|
|
24
|
-
case BitcoinNetwork.REGTEST:
|
|
25
|
-
return Network.Regtest;
|
|
26
|
-
default:
|
|
27
|
-
throw new Error(
|
|
28
|
-
`Unsupported lightspark_crypto network ${bitcoinNetwork}.`,
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
15
|
/**
|
|
34
16
|
* Args for creating a new SigningKeyLoader. Must be one of the sub types.
|
|
35
17
|
*/
|
|
@@ -167,9 +149,35 @@ export class MasterSeedSigningKeyLoader implements SigningKeyLoader {
|
|
|
167
149
|
}
|
|
168
150
|
|
|
169
151
|
async loadSigningKey() {
|
|
152
|
+
if (isBrowser) {
|
|
153
|
+
throw new LightsparkSigningException(
|
|
154
|
+
"Browser environments not supported for master seed signing key loader.",
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const { LightsparkSigner, Network } = await import(
|
|
159
|
+
"@lightsparkdev/crypto-wasm"
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
let cryptoLibNetwork;
|
|
163
|
+
switch (this.network) {
|
|
164
|
+
case BitcoinNetwork.MAINNET:
|
|
165
|
+
cryptoLibNetwork = Network.Bitcoin;
|
|
166
|
+
break;
|
|
167
|
+
case BitcoinNetwork.TESTNET:
|
|
168
|
+
cryptoLibNetwork = Network.Testnet;
|
|
169
|
+
break;
|
|
170
|
+
case BitcoinNetwork.REGTEST:
|
|
171
|
+
cryptoLibNetwork = Network.Regtest;
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
throw new Error(
|
|
175
|
+
`Unsupported lightspark_crypto network ${this.network}.`,
|
|
176
|
+
);
|
|
177
|
+
}
|
|
170
178
|
const lightsparkSigner = LightsparkSigner.from_bytes(
|
|
171
179
|
this.masterSeed,
|
|
172
|
-
|
|
180
|
+
cryptoLibNetwork,
|
|
173
181
|
);
|
|
174
182
|
const privateKey = lightsparkSigner.derive_private_key(SIGNING_KEY_PATH);
|
|
175
183
|
return { key: privateKey, type: SigningKeyType.Secp256k1SigningKey };
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
*/
|
|
5
|
-
export enum Network {
|
|
6
|
-
Bitcoin = 0,
|
|
7
|
-
Testnet = 1,
|
|
8
|
-
Regtest = 2,
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
*/
|
|
12
|
-
export class InvoiceSignature {
|
|
13
|
-
free(): void;
|
|
14
|
-
/**
|
|
15
|
-
* @returns {Uint8Array}
|
|
16
|
-
*/
|
|
17
|
-
get_signature(): Uint8Array;
|
|
18
|
-
/**
|
|
19
|
-
* @returns {number}
|
|
20
|
-
*/
|
|
21
|
-
get_recovery_id(): number;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
*/
|
|
25
|
-
export class LightsparkSigner {
|
|
26
|
-
free(): void;
|
|
27
|
-
/**
|
|
28
|
-
* @param {Seed} seed
|
|
29
|
-
* @param {number} network
|
|
30
|
-
* @returns {LightsparkSigner}
|
|
31
|
-
*/
|
|
32
|
-
static new(seed: Seed, network: number): LightsparkSigner;
|
|
33
|
-
/**
|
|
34
|
-
* @param {Uint8Array} seed
|
|
35
|
-
* @param {number} network
|
|
36
|
-
* @returns {LightsparkSigner}
|
|
37
|
-
*/
|
|
38
|
-
static from_bytes(seed: Uint8Array, network: number): LightsparkSigner;
|
|
39
|
-
/**
|
|
40
|
-
* @returns {string}
|
|
41
|
-
*/
|
|
42
|
-
get_master_public_key(): string;
|
|
43
|
-
/**
|
|
44
|
-
* @param {string} derivation_path
|
|
45
|
-
* @returns {string}
|
|
46
|
-
*/
|
|
47
|
-
derive_public_key(derivation_path: string): string;
|
|
48
|
-
/**
|
|
49
|
-
* @param {Uint8Array} message
|
|
50
|
-
* @param {string} derivation_path
|
|
51
|
-
* @param {boolean} is_raw
|
|
52
|
-
* @param {Uint8Array | undefined} add_tweak
|
|
53
|
-
* @param {Uint8Array | undefined} mul_tweak
|
|
54
|
-
* @returns {Uint8Array}
|
|
55
|
-
*/
|
|
56
|
-
derive_key_and_sign(
|
|
57
|
-
message: Uint8Array,
|
|
58
|
-
derivation_path: string,
|
|
59
|
-
is_raw: boolean,
|
|
60
|
-
add_tweak?: Uint8Array,
|
|
61
|
-
mul_tweak?: Uint8Array,
|
|
62
|
-
): Uint8Array;
|
|
63
|
-
/**
|
|
64
|
-
* @param {Uint8Array} public_key
|
|
65
|
-
* @returns {Uint8Array}
|
|
66
|
-
*/
|
|
67
|
-
ecdh(public_key: Uint8Array): Uint8Array;
|
|
68
|
-
/**
|
|
69
|
-
* @param {string} derivation_path
|
|
70
|
-
* @param {bigint} per_commitment_point_idx
|
|
71
|
-
* @returns {Uint8Array}
|
|
72
|
-
*/
|
|
73
|
-
get_per_commitment_point(
|
|
74
|
-
derivation_path: string,
|
|
75
|
-
per_commitment_point_idx: bigint,
|
|
76
|
-
): Uint8Array;
|
|
77
|
-
/**
|
|
78
|
-
* @param {string} derivation_path
|
|
79
|
-
* @param {bigint} per_commitment_point_idx
|
|
80
|
-
* @returns {Uint8Array}
|
|
81
|
-
*/
|
|
82
|
-
release_per_commitment_secret(
|
|
83
|
-
derivation_path: string,
|
|
84
|
-
per_commitment_point_idx: bigint,
|
|
85
|
-
): Uint8Array;
|
|
86
|
-
/**
|
|
87
|
-
* @returns {Uint8Array}
|
|
88
|
-
*/
|
|
89
|
-
generate_preimage_nonce(): Uint8Array;
|
|
90
|
-
/**
|
|
91
|
-
* @param {Uint8Array} nonce
|
|
92
|
-
* @returns {Uint8Array}
|
|
93
|
-
*/
|
|
94
|
-
generate_preimage(nonce: Uint8Array): Uint8Array;
|
|
95
|
-
/**
|
|
96
|
-
* @param {Uint8Array} nonce
|
|
97
|
-
* @returns {Uint8Array}
|
|
98
|
-
*/
|
|
99
|
-
generate_preimage_hash(nonce: Uint8Array): Uint8Array;
|
|
100
|
-
/**
|
|
101
|
-
* @param {string} derivation_path
|
|
102
|
-
* @returns {string}
|
|
103
|
-
*/
|
|
104
|
-
derive_private_key(derivation_path: string): string;
|
|
105
|
-
/**
|
|
106
|
-
* @param {string} unsigned_invoice
|
|
107
|
-
* @returns {InvoiceSignature}
|
|
108
|
-
*/
|
|
109
|
-
sign_invoice_wasm(unsigned_invoice: string): InvoiceSignature;
|
|
110
|
-
/**
|
|
111
|
-
* @param {Uint8Array} invoice_hash
|
|
112
|
-
* @returns {InvoiceSignature}
|
|
113
|
-
*/
|
|
114
|
-
sign_invoice_hash_wasm(invoice_hash: Uint8Array): InvoiceSignature;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
*/
|
|
118
|
-
export class Mnemonic {
|
|
119
|
-
free(): void;
|
|
120
|
-
/**
|
|
121
|
-
* @returns {Mnemonic}
|
|
122
|
-
*/
|
|
123
|
-
static random(): Mnemonic;
|
|
124
|
-
/**
|
|
125
|
-
* @param {Uint8Array} entropy
|
|
126
|
-
* @returns {Mnemonic}
|
|
127
|
-
*/
|
|
128
|
-
static from_entropy(entropy: Uint8Array): Mnemonic;
|
|
129
|
-
/**
|
|
130
|
-
* @param {string} phrase
|
|
131
|
-
* @returns {Mnemonic}
|
|
132
|
-
*/
|
|
133
|
-
static from_phrase(phrase: string): Mnemonic;
|
|
134
|
-
/**
|
|
135
|
-
* @returns {string}
|
|
136
|
-
*/
|
|
137
|
-
as_string(): string;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
*/
|
|
141
|
-
export class Seed {
|
|
142
|
-
free(): void;
|
|
143
|
-
/**
|
|
144
|
-
* @param {Mnemonic} mnemonic
|
|
145
|
-
* @returns {Seed}
|
|
146
|
-
*/
|
|
147
|
-
static from_mnemonic(mnemonic: Mnemonic): Seed;
|
|
148
|
-
/**
|
|
149
|
-
* @param {Uint8Array} seed
|
|
150
|
-
* @returns {Seed}
|
|
151
|
-
*/
|
|
152
|
-
static new(seed: Uint8Array): Seed;
|
|
153
|
-
/**
|
|
154
|
-
* @returns {Uint8Array}
|
|
155
|
-
*/
|
|
156
|
-
as_bytes(): Uint8Array;
|
|
157
|
-
}
|