@bsv/sdk 1.1.13 → 1.1.15

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.
Files changed (158) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/compat/BIP39.js +272 -0
  3. package/dist/cjs/src/compat/BIP39.js.map +1 -0
  4. package/dist/cjs/src/index.js +5 -0
  5. package/dist/cjs/src/index.js.map +1 -0
  6. package/dist/cjs/src/primitives/Polynomial.js +81 -0
  7. package/dist/cjs/src/primitives/Polynomial.js.map +1 -0
  8. package/dist/cjs/src/primitives/PrivateKey.js +165 -0
  9. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  10. package/dist/cjs/src/primitives/index.js +5 -1
  11. package/dist/cjs/src/primitives/index.js.map +1 -1
  12. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  13. package/dist/cjs/src/script/templates/P2PKHT.js +99 -0
  14. package/dist/cjs/src/script/templates/P2PKHT.js.map +1 -0
  15. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  16. package/dist/cjs/src/totp/converters.js +14 -0
  17. package/dist/cjs/src/totp/converters.js.map +1 -0
  18. package/dist/cjs/src/totp/pike-totp.js +75 -0
  19. package/dist/cjs/src/totp/pike-totp.js.map +1 -0
  20. package/dist/cjs/src/totp/types.js +3 -0
  21. package/dist/cjs/src/totp/types.js.map +1 -0
  22. package/dist/cjs/src/transaction/broadcasters/ARC.js +4 -4
  23. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  24. package/dist/cjs/src/transaction/broadcasters/BRC22.js +25 -0
  25. package/dist/cjs/src/transaction/broadcasters/BRC22.js.map +1 -0
  26. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  27. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +3 -3
  28. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  29. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  30. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +2 -2
  31. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  32. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  33. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +2 -2
  34. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  35. package/dist/cjs/src/transaction/http/FetchHttpClient.js +2 -2
  36. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  37. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +2 -2
  38. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  39. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  40. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  41. package/dist/esm/src/compat/BIP39.js +272 -0
  42. package/dist/esm/src/compat/BIP39.js.map +1 -0
  43. package/dist/esm/src/primitives/Polynomial.js +77 -0
  44. package/dist/esm/src/primitives/Polynomial.js.map +1 -0
  45. package/dist/esm/src/primitives/PrivateKey.js +143 -0
  46. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  47. package/dist/esm/src/primitives/index.js +2 -1
  48. package/dist/esm/src/primitives/index.js.map +1 -1
  49. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  50. package/dist/esm/src/script/templates/P2PKHT.js +96 -0
  51. package/dist/esm/src/script/templates/P2PKHT.js.map +1 -0
  52. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  53. package/dist/esm/src/totp/converters.js +9 -0
  54. package/dist/esm/src/totp/converters.js.map +1 -0
  55. package/dist/esm/src/totp/pike-totp.js +67 -0
  56. package/dist/esm/src/totp/pike-totp.js.map +1 -0
  57. package/dist/esm/src/totp/types.js +2 -0
  58. package/dist/esm/src/totp/types.js.map +1 -0
  59. package/dist/esm/src/transaction/broadcasters/ARC.js +7 -7
  60. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  61. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +1 -1
  62. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  63. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +4 -4
  64. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  65. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +1 -1
  66. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  67. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  68. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  69. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  70. package/dist/esm/src/transaction/http/DefaultHttpClient.js +2 -2
  71. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  72. package/dist/esm/src/transaction/http/FetchHttpClient.js +2 -2
  73. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  74. package/dist/esm/src/transaction/http/NodejsHttpClient.js +2 -2
  75. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  76. package/dist/esm/src/transaction/http/index.js.map +1 -1
  77. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  78. package/dist/types/src/compat/BIP39.d.ts +132 -0
  79. package/dist/types/src/compat/BIP39.d.ts.map +1 -0
  80. package/dist/types/src/primitives/Polynomial.d.ts +32 -0
  81. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -0
  82. package/dist/types/src/primitives/PrivateKey.d.ts +72 -0
  83. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  84. package/dist/types/src/primitives/index.d.ts +2 -1
  85. package/dist/types/src/primitives/index.d.ts.map +1 -1
  86. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  87. package/dist/types/src/script/templates/P2PKHT.d.ts +37 -0
  88. package/dist/types/src/script/templates/P2PKHT.d.ts.map +1 -0
  89. package/dist/types/src/totp/converters.d.ts +3 -0
  90. package/dist/types/src/totp/converters.d.ts.map +1 -0
  91. package/dist/types/src/totp/pike-totp.d.ts +25 -0
  92. package/dist/types/src/totp/pike-totp.d.ts.map +1 -0
  93. package/dist/types/src/totp/types.d.ts +11 -0
  94. package/dist/types/src/totp/types.d.ts.map +1 -0
  95. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  96. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  97. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +1 -1
  98. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  99. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +1 -1
  100. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  101. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
  102. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  103. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +2 -2
  104. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  105. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  106. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  107. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +7 -9
  108. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  109. package/dist/types/src/transaction/http/HttpClient.d.ts +5 -5
  110. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  111. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +5 -6
  112. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  113. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  114. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  115. package/docs/primitives.md +231 -16
  116. package/docs/transaction.md +38 -37
  117. package/package.json +1 -1
  118. package/src/compat/__tests/BSM.test.ts +37 -37
  119. package/src/compat/__tests/ECIES.test.ts +71 -71
  120. package/src/compat/__tests/HD.test.ts +362 -362
  121. package/src/compat/__tests/Mnemonic.test.ts +147 -148
  122. package/src/compat/__tests/Mnemonic.vectors.ts +170 -170
  123. package/src/messages/__tests/EncryptedMessage.test.ts +16 -16
  124. package/src/primitives/Point.ts +29 -10
  125. package/src/primitives/Polynomial.ts +89 -0
  126. package/src/primitives/PrivateKey.ts +147 -1
  127. package/src/primitives/PublicKey.ts +17 -2
  128. package/src/primitives/__tests/AESGCM.test.ts +20 -20
  129. package/src/primitives/__tests/Hash.test.ts +2 -2
  130. package/src/primitives/__tests/PBKDF2.vectors.ts +93 -93
  131. package/src/primitives/__tests/PrivateKey.split.test.ts +70 -0
  132. package/src/primitives/__tests/PublicKey.test.ts +14 -1
  133. package/src/primitives/__tests/bug-31.test.ts +24 -26
  134. package/src/primitives/__tests/utils.test.ts +13 -13
  135. package/src/primitives/index.ts +2 -1
  136. package/src/script/__tests/Script.test.ts +1 -1
  137. package/src/script/__tests/SpendComplex.test.ts +6 -6
  138. package/src/script/__tests/script.invalid.vectors.ts +1464 -1464
  139. package/src/script/__tests/script.valid.vectors.ts +1962 -1962
  140. package/src/script/__tests/spend.valid.vectors.ts +1369 -1369
  141. package/src/script/templates/P2PKH.ts +6 -6
  142. package/src/script/templates/RPuzzle.ts +1 -1
  143. package/src/transaction/__tests/Transaction.test.ts +5 -5
  144. package/src/transaction/__tests/bump.invalid.vectors.ts +1 -1
  145. package/src/transaction/__tests/bump.valid.vectors.ts +3 -3
  146. package/src/transaction/broadcasters/ARC.ts +20 -21
  147. package/src/transaction/broadcasters/DefaultBroadcaster.ts +3 -3
  148. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +10 -10
  149. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +7 -10
  150. package/src/transaction/chaintrackers/DefaultChainTracker.ts +3 -3
  151. package/src/transaction/chaintrackers/WhatsOnChain.ts +10 -12
  152. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +13 -17
  153. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +2 -2
  154. package/src/transaction/http/DefaultHttpClient.ts +13 -13
  155. package/src/transaction/http/FetchHttpClient.ts +14 -16
  156. package/src/transaction/http/HttpClient.ts +22 -23
  157. package/src/transaction/http/NodejsHttpClient.ts +23 -25
  158. package/src/transaction/http/index.ts +6 -6
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bip_39_wordlist_en_js_1 = require("./bip-39-wordlist-en.js");
4
+ const utils_js_1 = require("../primitives/utils.js");
5
+ const Hash = require("../primitives/Hash.js");
6
+ const Random_js_1 = require("../primitives/Random.js");
7
+ /**
8
+ * @class BIP39
9
+ *
10
+ * @description
11
+ * Class representing BIP39 functionality.
12
+ * This class provides methods for generating, converting, and validating mnemonic phrases
13
+ * according to the BIP39 standard. It supports creating mnemonics from random entropy,
14
+ * converting mnemonics to seeds, and validating mnemonic phrases.
15
+ */
16
+ class BIP39 {
17
+ /**
18
+ * Constructs a BIP39 object.
19
+ * @param {string} [mnemonic] - An optional mnemonic phrase.
20
+ * @param {number[]} [seed] - An optional seed derived from the mnemonic.
21
+ * @param {object} [wordlist=wordList] - An object containing a list of words and space character used in the mnemonic.
22
+ */
23
+ constructor(mnemonic, seed, wordlist = bip_39_wordlist_en_js_1.wordList) {
24
+ this.mnemonic = mnemonic;
25
+ this.seed = seed;
26
+ this.Wordlist = wordlist;
27
+ }
28
+ /**
29
+ * Converts the mnemonic and seed into a binary representation.
30
+ * @returns {number[]} The binary representation of the mnemonic and seed.
31
+ */
32
+ toBinary() {
33
+ const bw = new utils_js_1.Writer();
34
+ if (this.mnemonic) {
35
+ const buf = (0, utils_js_1.toArray)(this.mnemonic, 'utf8');
36
+ bw.writeVarIntNum(buf.length);
37
+ bw.write(buf);
38
+ }
39
+ else {
40
+ bw.writeVarIntNum(0);
41
+ }
42
+ if (this.seed) {
43
+ bw.writeVarIntNum(this.seed.length);
44
+ bw.write(this.seed);
45
+ }
46
+ else {
47
+ bw.writeVarIntNum(0);
48
+ }
49
+ return bw.toArray();
50
+ }
51
+ /**
52
+ * Loads a mnemonic and seed from a binary representation.
53
+ * @param {number[]} bin - The binary representation of a mnemonic and seed.
54
+ * @returns {this} The BIP39 instance with loaded mnemonic and seed.
55
+ */
56
+ fromBinary(bin) {
57
+ const br = new utils_js_1.Reader(bin);
58
+ const mnemoniclen = br.readVarIntNum();
59
+ if (mnemoniclen > 0) {
60
+ this.mnemonic = (0, utils_js_1.encode)(br.read(mnemoniclen), 'utf8');
61
+ }
62
+ const seedlen = br.readVarIntNum();
63
+ if (seedlen > 0) {
64
+ this.seed = br.read(seedlen);
65
+ }
66
+ return this;
67
+ }
68
+ /**
69
+ * Generates a random mnemonic from a given bit length.
70
+ * @param {number} [bits=128] - The bit length for the random mnemonic (must be a multiple of 32 and at least 128).
71
+ * @returns {this} The BIP39 instance with the new random mnemonic.
72
+ * @throws {Error} If the bit length is not a multiple of 32 or is less than 128.
73
+ */
74
+ fromRandom(bits) {
75
+ if (!bits) {
76
+ bits = 128;
77
+ }
78
+ if (bits % 32 !== 0) {
79
+ throw new Error('bits must be multiple of 32');
80
+ }
81
+ if (bits < 128) {
82
+ throw new Error('bits must be at least 128');
83
+ }
84
+ const buf = (0, Random_js_1.default)(bits / 8);
85
+ this.entropy2Mnemonic(buf);
86
+ this.mnemonic2Seed();
87
+ return this;
88
+ }
89
+ /**
90
+ * Static method to generate a BIP39 instance with a random mnemonic.
91
+ * @param {number} [bits=128] - The bit length for the random mnemonic.
92
+ * @returns {BIP39} A new BIP39 instance.
93
+ */
94
+ static fromRandom(bits) {
95
+ return new this().fromRandom(bits);
96
+ }
97
+ /**
98
+ * Converts given entropy into a mnemonic phrase.
99
+ * This method is used to generate a mnemonic from a specific entropy source.
100
+ * @param {number[]} buf - The entropy buffer, must be at least 128 bits.
101
+ * @returns {this} The BIP39 instance with the mnemonic set from the given entropy.
102
+ * @throws {Error} If the entropy is less than 128 bits.
103
+ */
104
+ fromEntropy(buf) {
105
+ this.entropy2Mnemonic(buf);
106
+ return this;
107
+ }
108
+ /**
109
+ * Static method to create a BIP39 instance from a given entropy.
110
+ * @param {number[]} buf - The entropy buffer.
111
+ * @returns {BIP39} A new BIP39 instance.
112
+ */
113
+ static fromEntropy(buf) {
114
+ return new this().fromEntropy(buf);
115
+ }
116
+ /**
117
+ * Sets the mnemonic for the instance from a string.
118
+ * @param {string} mnemonic - The mnemonic phrase as a string.
119
+ * @returns {this} The BIP39 instance with the set mnemonic.
120
+ */
121
+ fromString(mnemonic) {
122
+ this.mnemonic = mnemonic;
123
+ return this;
124
+ }
125
+ /**
126
+ * Static method to create a BIP39 instance from a mnemonic string.
127
+ * @param {string} str - The mnemonic phrase.
128
+ * @returns {BIP39} A new BIP39 instance.
129
+ */
130
+ static fromString(str) {
131
+ return new this().fromString(str);
132
+ }
133
+ /**
134
+ * Converts the instance's mnemonic to a string representation.
135
+ * @returns {string} The mnemonic phrase as a string.
136
+ */
137
+ toString() {
138
+ return this.mnemonic;
139
+ }
140
+ /**
141
+ * Converts the mnemonic to a seed.
142
+ * The mnemonic must pass the validity check before conversion.
143
+ * @param {string} [passphrase=''] - An optional passphrase for additional security.
144
+ * @returns {number[]} The generated seed.
145
+ * @throws {Error} If the mnemonic is invalid.
146
+ */
147
+ toSeed(passphrase) {
148
+ this.mnemonic2Seed(passphrase);
149
+ return this.seed;
150
+ }
151
+ /**
152
+ * Converts entropy to a mnemonic phrase.
153
+ * This method takes a buffer of entropy and converts it into a corresponding
154
+ * mnemonic phrase based on the BIP39 wordlist. The entropy should be at least 128 bits.
155
+ * The method applies a checksum and maps the entropy to words in the wordlist.
156
+ * @param {number[]} buf - The entropy buffer to convert. Must be at least 128 bits.
157
+ * @returns {this} The BIP39 instance with the mnemonic set from the entropy.
158
+ * @throws {Error} If the entropy is less than 128 bits or if it's not an even multiple of 11 bits.
159
+ */
160
+ entropy2Mnemonic(buf) {
161
+ if (buf.length < 128 / 8) {
162
+ throw new Error('Entropy is less than 128 bits. It must be 128 bits or more.');
163
+ }
164
+ const hash = Hash.sha256(buf);
165
+ let bin = '';
166
+ const bits = buf.length * 8;
167
+ for (let i = 0; i < buf.length; i++) {
168
+ bin = bin + ('00000000' + buf[i].toString(2)).slice(-8);
169
+ }
170
+ let hashbits = hash[0].toString(2);
171
+ hashbits = ('00000000' + hashbits).slice(-8).slice(0, bits / 32);
172
+ bin = bin + hashbits;
173
+ if (bin.length % 11 !== 0) {
174
+ throw new Error('internal error - entropy not an even multiple of 11 bits - ' + bin.length);
175
+ }
176
+ let mnemonic = '';
177
+ for (let i = 0; i < bin.length / 11; i++) {
178
+ if (mnemonic !== '') {
179
+ mnemonic = mnemonic + this.Wordlist.space;
180
+ }
181
+ const wi = parseInt(bin.slice(i * 11, (i + 1) * 11), 2);
182
+ mnemonic = mnemonic + this.Wordlist.value[wi];
183
+ }
184
+ this.mnemonic = mnemonic;
185
+ return this;
186
+ }
187
+ /**
188
+ * Validates the mnemonic phrase.
189
+ * Checks for correct length, absence of invalid words, and proper checksum.
190
+ * @returns {boolean} True if the mnemonic is valid, false otherwise.
191
+ * @throws {Error} If the mnemonic is not an even multiple of 11 bits.
192
+ */
193
+ check() {
194
+ const mnemonic = this.mnemonic;
195
+ // confirm no invalid words
196
+ const words = mnemonic.split(this.Wordlist.space);
197
+ let bin = '';
198
+ for (let i = 0; i < words.length; i++) {
199
+ const ind = this.Wordlist.value.indexOf(words[i]);
200
+ if (ind < 0) {
201
+ return false;
202
+ }
203
+ bin = bin + ('00000000000' + ind.toString(2)).slice(-11);
204
+ }
205
+ if (bin.length % 11 !== 0) {
206
+ throw new Error('internal error - entropy not an even multiple of 11 bits - ' + bin.length);
207
+ }
208
+ // confirm checksum
209
+ const cs = bin.length / 33;
210
+ const hashBits = bin.slice(-cs);
211
+ const nonhashBits = bin.slice(0, bin.length - cs);
212
+ const buf = [];
213
+ for (let i = 0; i < nonhashBits.length / 8; i++) {
214
+ buf.push(parseInt(bin.slice(i * 8, (i + 1) * 8), 2));
215
+ }
216
+ const hash = Hash.sha256(buf.slice(0, nonhashBits.length / 8));
217
+ let expectedHashBits = hash[0].toString(2);
218
+ expectedHashBits = ('00000000' + expectedHashBits).slice(-8).slice(0, cs);
219
+ return expectedHashBits === hashBits;
220
+ }
221
+ /**
222
+ * Converts a mnemonic to a seed.
223
+ * This method takes the instance's mnemonic phrase, combines it with a passphrase (if provided),
224
+ * and uses PBKDF2 to generate a seed. It also validates the mnemonic before conversion.
225
+ * This seed can then be used for generating deterministic keys.
226
+ * @param {string} [passphrase=''] - An optional passphrase for added security.
227
+ * @returns {this} The BIP39 instance with the seed generated from the mnemonic.
228
+ * @throws {Error} If the mnemonic does not pass validation or if the passphrase is not a string.
229
+ */
230
+ mnemonic2Seed(passphrase = '') {
231
+ let mnemonic = this.mnemonic;
232
+ if (!this.check()) {
233
+ throw new Error('Mnemonic does not pass the check - was the mnemonic typed incorrectly? Are there extra spaces?');
234
+ }
235
+ if (typeof passphrase !== 'string') {
236
+ throw new Error('passphrase must be a string or undefined');
237
+ }
238
+ mnemonic = mnemonic.normalize('NFKD');
239
+ passphrase = passphrase.normalize('NFKD');
240
+ const mbuf = (0, utils_js_1.toArray)(mnemonic, 'utf8');
241
+ const pbuf = [...(0, utils_js_1.toArray)('mnemonic', 'utf8'), ...(0, utils_js_1.toArray)(passphrase, 'utf8')];
242
+ this.seed = Hash.pbkdf2(mbuf, pbuf, 2048, 64, 'sha512');
243
+ return this;
244
+ }
245
+ /**
246
+ * Determines the validity of a given passphrase with the mnemonic.
247
+ * This method is useful for checking if a passphrase matches with the mnemonic.
248
+ * @param {string} [passphrase=''] - The passphrase to validate.
249
+ * @returns {boolean} True if the mnemonic and passphrase combination is valid, false otherwise.
250
+ */
251
+ isValid(passphrase = '') {
252
+ let isValid;
253
+ try {
254
+ isValid = !!this.mnemonic2Seed(passphrase);
255
+ }
256
+ catch (err) {
257
+ isValid = false;
258
+ }
259
+ return isValid;
260
+ }
261
+ /**
262
+ * Static method to check the validity of a given mnemonic and passphrase combination.
263
+ * @param {string} mnemonic - The mnemonic phrase.
264
+ * @param {string} [passphrase=''] - The passphrase to validate.
265
+ * @returns {boolean} True if the combination is valid, false otherwise.
266
+ */
267
+ static isValid(mnemonic, passphrase = '') {
268
+ return new BIP39(mnemonic).isValid(passphrase);
269
+ }
270
+ }
271
+ exports.default = BIP39;
272
+ //# sourceMappingURL=BIP39.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BIP39.js","sourceRoot":"","sources":["../../../../src/compat/BIP39.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.primitives = void 0;
4
+ exports.primitives = require("./primitives/index.js");
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAAmD"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PointInFiniteField = void 0;
7
+ const BigNumber_js_1 = __importDefault(require("./BigNumber.js"));
8
+ const Curve_js_1 = __importDefault(require("./Curve.js"));
9
+ const Random_js_1 = __importDefault(require("./Random.js"));
10
+ const utils_js_1 = require("./utils.js");
11
+ class PointInFiniteField {
12
+ constructor(x, y) {
13
+ const P = new Curve_js_1.default().p; // arithmetic is mod P
14
+ this.x = x.umod(P);
15
+ this.y = y.umod(P);
16
+ }
17
+ toString() {
18
+ return (0, utils_js_1.toBase58)(this.x.toArray()) + '.' + (0, utils_js_1.toBase58)(this.y.toArray());
19
+ }
20
+ static fromString(str) {
21
+ const [x, y] = str.split('.');
22
+ return new PointInFiniteField(new BigNumber_js_1.default((0, utils_js_1.fromBase58)(x)), new BigNumber_js_1.default((0, utils_js_1.fromBase58)(y)));
23
+ }
24
+ }
25
+ exports.PointInFiniteField = PointInFiniteField;
26
+ /**
27
+ * Polynomial class
28
+ *
29
+ * This class is used to create a polynomial with a given threshold and a private key.
30
+ * The polynomial is used to create shares of the private key.
31
+ *
32
+ * @param key - The private key to split
33
+ * @param threshold - The number of shares required to recombine the private key
34
+ *
35
+ * @example
36
+ * const key = new PrivateKey()
37
+ * const threshold = 2
38
+ * const polynomial = new Polynomial(key, threshold)
39
+ *
40
+ */
41
+ class Polynomial {
42
+ constructor(points, threshold) {
43
+ this.points = points;
44
+ this.threshold = threshold || points.length;
45
+ }
46
+ static fromPrivateKey(key, threshold) {
47
+ const P = new Curve_js_1.default().p; // arithmetic is mod P
48
+ // The key is the y-intercept of the polynomial where x=0.
49
+ const points = [new PointInFiniteField(new BigNumber_js_1.default(0), new BigNumber_js_1.default(key.toArray()))];
50
+ // The other values are random
51
+ for (let i = 1; i < threshold; i++) {
52
+ const randomX = new BigNumber_js_1.default((0, Random_js_1.default)(32)).umod(P);
53
+ const randomY = new BigNumber_js_1.default((0, Random_js_1.default)(32)).umod(P);
54
+ points.push(new PointInFiniteField(randomX, randomY));
55
+ }
56
+ return new Polynomial(points);
57
+ }
58
+ // Evaluate the polynomial at x by using Lagrange interpolation
59
+ valueAt(x) {
60
+ const P = new Curve_js_1.default().p; // arithmetic is mod P
61
+ let y = new BigNumber_js_1.default(0);
62
+ for (let i = 0; i < this.threshold; i++) {
63
+ let term = this.points[i].y;
64
+ for (let j = 0; j < this.threshold; j++) {
65
+ if (i !== j) {
66
+ const xj = this.points[j].x;
67
+ const xi = this.points[i].x;
68
+ const numerator = x.sub(xj).umod(P);
69
+ const denominator = xi.sub(xj).umod(P);
70
+ const denominatorInverse = denominator.invm(P);
71
+ const fraction = numerator.mul(denominatorInverse).umod(P);
72
+ term = term.mul(fraction).umod(P);
73
+ }
74
+ }
75
+ y = y.add(term).umod(P);
76
+ }
77
+ return y;
78
+ }
79
+ }
80
+ exports.default = Polynomial;
81
+ //# sourceMappingURL=Polynomial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Polynomial.js","sourceRoot":"","sources":["../../../../src/primitives/Polynomial.ts"],"names":[],"mappings":";;;;;;AACA,kEAAsC;AACtC,0DAA8B;AAC9B,4DAAgC;AAChC,yCAAiD;AAEjD,MAAa,kBAAkB;IAI7B,YAAa,CAAY,EAAE,CAAY;QACrC,MAAM,CAAC,GAAG,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,UAAU,CAAE,GAAW;QAC5B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO,IAAI,kBAAkB,CAAC,IAAI,sBAAS,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,sBAAS,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3F,CAAC;CACF;AAlBD,gDAkBC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAqB,UAAU;IAI7B,YAAa,MAA4B,EAAE,SAAkB;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,cAAc,CAAE,GAAe,EAAE,SAAiB;QACvD,MAAM,CAAC,GAAG,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAC9C,0DAA0D;QAC1D,MAAM,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,EAAE,IAAI,sBAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QAEvF,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAA,mBAAM,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjD,MAAM,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAA,mBAAM,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjD,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;SACtD;QAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAE,CAAY;QACnB,MAAM,CAAC,GAAG,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAC9C,IAAI,CAAC,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAE3B,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACnC,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACtC,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAE9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAC1D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAClC;aACF;YACD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACxB;QACD,OAAO,CAAC,CAAA;IACV,CAAC;CACF;AA/CD,6BA+CC"}
@@ -1,8 +1,32 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.KeyShares = void 0;
6
30
  const BigNumber_js_1 = __importDefault(require("./BigNumber.js"));
7
31
  const PublicKey_js_1 = __importDefault(require("./PublicKey.js"));
8
32
  const Curve_js_1 = __importDefault(require("./Curve.js"));
@@ -10,6 +34,55 @@ const ECDSA_js_1 = require("./ECDSA.js");
10
34
  const Hash_js_1 = require("./Hash.js");
11
35
  const Random_js_1 = __importDefault(require("./Random.js"));
12
36
  const utils_js_1 = require("./utils.js");
37
+ const Polynomial_js_1 = __importStar(require("./Polynomial.js"));
38
+ /**
39
+ * @class KeyShares
40
+ *
41
+ * This class is used to store the shares of a private key.
42
+ *
43
+ * @param shares - An array of shares
44
+ * @param threshold - The number of shares required to recombine the private key
45
+ *
46
+ * @returns KeyShares
47
+ *
48
+ * @example
49
+ * const key = PrivateKey.fromShares(shares)
50
+ *
51
+ */
52
+ class KeyShares {
53
+ constructor(points, threshold, integrity) {
54
+ this.points = points;
55
+ this.threshold = threshold;
56
+ this.integrity = integrity;
57
+ }
58
+ static fromBackupFormat(shares) {
59
+ let threshold = 0;
60
+ let integrity = '';
61
+ const points = shares.map((share, idx) => {
62
+ const shareParts = share.split('.');
63
+ if (shareParts.length !== 4)
64
+ throw Error('Invalid share format in share ' + idx + '. Expected format: "x.y.t.i" - received ' + share);
65
+ const [x, y, t, i] = shareParts;
66
+ if (!t)
67
+ throw Error('Threshold not found in share ' + idx);
68
+ if (!i)
69
+ throw Error('Integrity not found in share ' + idx);
70
+ const tInt = parseInt(t);
71
+ if (idx !== 0 && threshold !== tInt)
72
+ throw Error('Threshold mismatch in share ' + idx);
73
+ if (idx !== 0 && integrity !== i)
74
+ throw Error('Integrity mismatch in share ' + idx);
75
+ threshold = tInt;
76
+ integrity = i;
77
+ return Polynomial_js_1.PointInFiniteField.fromString([x, y].join('.'));
78
+ });
79
+ return new KeyShares(points, threshold, integrity);
80
+ }
81
+ toBackupFormat() {
82
+ return this.points.map(share => share.toString() + '.' + this.threshold + '.' + this.integrity);
83
+ }
84
+ }
85
+ exports.KeyShares = KeyShares;
13
86
  /**
14
87
  * Represents a Private Key, which is a secret that can be used to generate signatures in a cryptographic system.
15
88
  *
@@ -243,6 +316,98 @@ class PrivateKey extends BigNumber_js_1.default {
243
316
  const curve = new Curve_js_1.default();
244
317
  return new PrivateKey(this.add(new BigNumber_js_1.default(hmac)).mod(curve.n).toArray());
245
318
  }
319
+ /**
320
+ * Splits the private key into shares using Shamir's Secret Sharing Scheme.
321
+ *
322
+ * @param threshold The minimum number of shares required to reconstruct the private key.
323
+ * @param totalShares The total number of shares to generate.
324
+ * @param prime The prime number to be used in Shamir's Secret Sharing Scheme.
325
+ * @returns An array of shares.
326
+ *
327
+ * @example
328
+ * const key = PrivateKey.fromRandom()
329
+ * const shares = key.toKeyShares(2, 5)
330
+ */
331
+ toKeyShares(threshold, totalShares) {
332
+ if (typeof threshold !== 'number' || typeof totalShares !== 'number')
333
+ throw new Error('threshold and totalShares must be numbers');
334
+ if (threshold < 2)
335
+ throw new Error('threshold must be at least 2');
336
+ if (totalShares < 2)
337
+ throw new Error('totalShares must be at least 2');
338
+ if (threshold > totalShares)
339
+ throw new Error('threshold should be less than or equal to totalShares');
340
+ const poly = Polynomial_js_1.default.fromPrivateKey(this, threshold);
341
+ const points = [];
342
+ for (let i = 0; i < totalShares; i++) {
343
+ const x = new BigNumber_js_1.default(PrivateKey.fromRandom().toArray());
344
+ const y = poly.valueAt(x);
345
+ points.push(new Polynomial_js_1.PointInFiniteField(x, y));
346
+ }
347
+ const integrity = this.toPublicKey().toHash('hex').slice(0, 8);
348
+ return new KeyShares(points, threshold, integrity);
349
+ }
350
+ /**
351
+ * @method toBackupShares
352
+ *
353
+ * Creates a backup of the private key by splitting it into shares.
354
+ *
355
+ *
356
+ * @param threshold The number of shares which will be required to reconstruct the private key.
357
+ * @param totalShares The number of shares to generate for distribution.
358
+ * @returns
359
+ */
360
+ toBackupShares(threshold, totalShares) {
361
+ return this.toKeyShares(threshold, totalShares).toBackupFormat();
362
+ }
363
+ /**
364
+ *
365
+ * @method fromBackupShares
366
+ *
367
+ * Creates a private key from backup shares.
368
+ *
369
+ * @param shares
370
+ * @returns PrivateKey
371
+ */
372
+ static fromBackupShares(shares) {
373
+ return PrivateKey.fromKeyShares(KeyShares.fromBackupFormat(shares));
374
+ }
375
+ /**
376
+ * Combines shares to reconstruct the private key.
377
+ *
378
+ * @param shares An array of points (shares) to be used to reconstruct the private key.
379
+ * @param threshold The minimum number of shares required to reconstruct the private key.
380
+ *
381
+ * @returns The reconstructed private key.
382
+ *
383
+ * @example
384
+ * const share1 = '2NWeap6SDBTL5jVnvk9yUxyfLqNrDs2Bw85KNDfLJwRT.4yLtSm327NApsbuP7QXVW3CWDuBRgmS6rRiFkAkTukic'
385
+ * const share2 = '7NbgGA8iAsxg2s6mBLkLFtGKQrnc4aCbooHJJV31cWs4.GUgXtudthawE3Eevc1waT3Atr1Ft7j1XxdUguVo3B7x3'
386
+ * const reconstructedKey = PrivateKey.fromKeyShares({ shares: [share1, share2], threshold: 2, integrity: '23409547' })
387
+ *
388
+ **/
389
+ static fromKeyShares(keyShares) {
390
+ const { points, threshold, integrity } = keyShares;
391
+ if (threshold < 2 || threshold > 99)
392
+ throw new Error('threshold should be between 2 and 99');
393
+ if (points.length < threshold)
394
+ throw new Error(`At least ${threshold} shares are required to reconstruct the private key`);
395
+ // check to see if two points have the same x value
396
+ for (let i = 0; i < threshold; i++) {
397
+ for (let j = i + 1; j < threshold; j++) {
398
+ if (points[i].x.eq(points[j].x)) {
399
+ throw new Error('Duplicate share detected, each must be unique.');
400
+ }
401
+ }
402
+ }
403
+ const poly = new Polynomial_js_1.default(points, threshold);
404
+ const privateKey = new PrivateKey(poly.valueAt(new BigNumber_js_1.default(0)).toArray());
405
+ const integrityHash = privateKey.toPublicKey().toHash('hex').slice(0, 8);
406
+ if (integrityHash !== integrity) {
407
+ throw new Error('Integrity hash mismatch');
408
+ }
409
+ return privateKey;
410
+ }
246
411
  }
247
412
  exports.default = PrivateKey;
248
413
  //# sourceMappingURL=PrivateKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.TransactionSignature = exports.Random = exports.Hash = exports.Utils = exports.ECDSA = exports.SymmetricKey = exports.PrivateKey = exports.Signature = exports.PublicKey = exports.Point = exports.Curve = exports.BigNumber = void 0;
29
+ exports.PointInFiniteField = exports.Polynomial = exports.TransactionSignature = exports.Random = exports.Hash = exports.Utils = exports.ECDSA = exports.SymmetricKey = exports.KeyShares = exports.PrivateKey = exports.Signature = exports.PublicKey = exports.Point = exports.Curve = exports.BigNumber = void 0;
30
30
  var BigNumber_js_1 = require("./BigNumber.js");
31
31
  Object.defineProperty(exports, "BigNumber", { enumerable: true, get: function () { return __importDefault(BigNumber_js_1).default; } });
32
32
  var Curve_js_1 = require("./Curve.js");
@@ -39,6 +39,7 @@ var Signature_js_1 = require("./Signature.js");
39
39
  Object.defineProperty(exports, "Signature", { enumerable: true, get: function () { return __importDefault(Signature_js_1).default; } });
40
40
  var PrivateKey_js_1 = require("./PrivateKey.js");
41
41
  Object.defineProperty(exports, "PrivateKey", { enumerable: true, get: function () { return __importDefault(PrivateKey_js_1).default; } });
42
+ Object.defineProperty(exports, "KeyShares", { enumerable: true, get: function () { return PrivateKey_js_1.KeyShares; } });
42
43
  var SymmetricKey_js_1 = require("./SymmetricKey.js");
43
44
  Object.defineProperty(exports, "SymmetricKey", { enumerable: true, get: function () { return __importDefault(SymmetricKey_js_1).default; } });
44
45
  exports.ECDSA = __importStar(require("./ECDSA.js"));
@@ -48,4 +49,7 @@ var Random_js_1 = require("./Random.js");
48
49
  Object.defineProperty(exports, "Random", { enumerable: true, get: function () { return __importDefault(Random_js_1).default; } });
49
50
  var TransactionSignature_js_1 = require("./TransactionSignature.js");
50
51
  Object.defineProperty(exports, "TransactionSignature", { enumerable: true, get: function () { return __importDefault(TransactionSignature_js_1).default; } });
52
+ var Polynomial_js_1 = require("./Polynomial.js");
53
+ Object.defineProperty(exports, "Polynomial", { enumerable: true, get: function () { return __importDefault(Polynomial_js_1).default; } });
54
+ Object.defineProperty(exports, "PointInFiniteField", { enumerable: true, get: function () { return Polynomial_js_1.PointInFiniteField; } });
51
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/primitives/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,uCAA6C;AAApC,kHAAA,OAAO,OAAS;AACzB,uCAA6C;AAApC,kHAAA,OAAO,OAAS;AACzB,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,iDAAuD;AAA9C,4HAAA,OAAO,OAAc;AAC9B,qDAA2D;AAAlD,gIAAA,OAAO,OAAgB;AAChC,oDAAmC;AACnC,oDAAmC;AACnC,kDAAiC;AACjC,yCAA+C;AAAtC,oHAAA,OAAO,OAAU;AAC1B,qEAA2E;AAAlE,gJAAA,OAAO,OAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/primitives/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,uCAA6C;AAApC,kHAAA,OAAO,OAAS;AACzB,uCAA6C;AAApC,kHAAA,OAAO,OAAS;AACzB,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,iDAAkE;AAAzD,4HAAA,OAAO,OAAc;AAAE,0GAAA,SAAS,OAAA;AACzC,qDAA2D;AAAlD,gIAAA,OAAO,OAAgB;AAChC,oDAAmC;AACnC,oDAAmC;AACnC,kDAAiC;AACjC,yCAA+C;AAAtC,oHAAA,OAAO,OAAU;AAC1B,qEAA2E;AAAlE,gJAAA,OAAO,OAAwB;AACxC,iDAA2E;AAAlE,4HAAA,OAAO,OAAc;AAAE,mHAAA,kBAAkB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}