@lightsparkdev/lightspark-sdk 1.0.1 → 1.0.3

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 CHANGED
@@ -1,5 +1,25 @@
1
1
  # @lightsparkdev/lightspark-sdk
2
2
 
3
+ ## 1.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [0e8767b]
8
+ - Updated dependencies [0e8767b]
9
+ - @lightsparkdev/crypto-wasm@0.1.1
10
+ - @lightsparkdev/core@1.0.2
11
+
12
+ ## 1.0.2
13
+
14
+ ### Patch Changes
15
+
16
+ - e2b1515: - [uma] Add fetchPublicKeyForVasp
17
+ - [lightspark-cli] add payUmaInvoice
18
+ - [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
19
+ - [lightspark-cli] updates commands to get bitcoin network from the selected node in most scenarios
20
+ - [lightspark-sdk] use crypto-wasm for crypto operations
21
+ - [lightspark-sdk] dynamically import crypto-wasm for node environments only
22
+
3
23
  ## 1.0.1
4
24
 
5
25
  ### 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.1",
1941
+ version: "1.0.3",
1942
1942
  description: "Lightspark JS SDK",
1943
1943
  author: "Lightspark Inc.",
1944
1944
  keywords: [
@@ -2023,7 +2023,8 @@ var package_default = {
2023
2023
  },
2024
2024
  license: "Apache-2.0",
2025
2025
  dependencies: {
2026
- "@lightsparkdev/core": "1.0.1",
2026
+ "@lightsparkdev/core": "1.0.2",
2027
+ "@lightsparkdev/crypto-wasm": "0.1.1",
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
- const lightsparkSigner = import_lightspark_crypto.LightsparkSigner.from_bytes(
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
- getCryptoLibNetwork(this.network)
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.1",
132
+ version: "1.0.3",
133
133
  description: "Lightspark JS SDK",
134
134
  author: "Lightspark Inc.",
135
135
  keywords: [
@@ -214,7 +214,8 @@ var package_default = {
214
214
  },
215
215
  license: "Apache-2.0",
216
216
  dependencies: {
217
- "@lightsparkdev/core": "1.0.1",
217
+ "@lightsparkdev/core": "1.0.2",
218
+ "@lightsparkdev/crypto-wasm": "0.1.1",
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
- getCryptoLibNetwork(this.network)
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.1",
3
+ "version": "1.0.3",
4
4
  "description": "Lightspark JS SDK",
5
5
  "author": "Lightspark Inc.",
6
6
  "keywords": [
@@ -85,7 +85,8 @@
85
85
  },
86
86
  "license": "Apache-2.0",
87
87
  "dependencies": {
88
- "@lightsparkdev/core": "1.0.1",
88
+ "@lightsparkdev/core": "1.0.2",
89
+ "@lightsparkdev/crypto-wasm": "0.1.1",
89
90
  "auto-bind": "^5.0.1",
90
91
  "crypto": "^1.0.1",
91
92
  "crypto-browserify": "^3.12.0",
@@ -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
- getCryptoLibNetwork(this.network),
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
- }