dxs-stas-sdk 2.0.4 → 2.0.6

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 (77) hide show
  1. package/AGENTS.md +52 -0
  2. package/README.md +25 -1
  3. package/dist/bitcoin/mnemonic.d.ts +1 -0
  4. package/dist/bitcoin/mnemonic.d.ts.map +1 -1
  5. package/dist/bitcoin/mnemonic.js +22 -11
  6. package/dist/bitcoin/mnemonic.js.map +1 -1
  7. package/dist/bitcoin/out-point.d.ts +6 -2
  8. package/dist/bitcoin/out-point.d.ts.map +1 -1
  9. package/dist/bitcoin/out-point.js +16 -4
  10. package/dist/bitcoin/out-point.js.map +1 -1
  11. package/dist/bitcoin/private-key.d.ts +3 -0
  12. package/dist/bitcoin/private-key.d.ts.map +1 -1
  13. package/dist/bitcoin/private-key.js +19 -2
  14. package/dist/bitcoin/private-key.js.map +1 -1
  15. package/dist/bitcoin/transaction-output.d.ts +6 -2
  16. package/dist/bitcoin/transaction-output.d.ts.map +1 -1
  17. package/dist/bitcoin/transaction-output.js +15 -3
  18. package/dist/bitcoin/transaction-output.js.map +1 -1
  19. package/dist/bitcoin/wallet.d.ts.map +1 -1
  20. package/dist/bitcoin/wallet.js +7 -1
  21. package/dist/bitcoin/wallet.js.map +1 -1
  22. package/dist/buffer/buffer-utils.d.ts.map +1 -1
  23. package/dist/buffer/buffer-utils.js +26 -18
  24. package/dist/buffer/buffer-utils.js.map +1 -1
  25. package/dist/bytes.d.ts.map +1 -1
  26. package/dist/bytes.js +3 -3
  27. package/dist/bytes.js.map +1 -1
  28. package/dist/dstas-bundle-factory.js +3 -3
  29. package/dist/dstas-factory.d.ts.map +1 -1
  30. package/dist/dstas-factory.js +10 -3
  31. package/dist/dstas-factory.js.map +1 -1
  32. package/dist/script/eval/script-evaluator.js +3 -3
  33. package/dist/security/strict-mode.d.ts.map +1 -1
  34. package/dist/security/strict-mode.js +2 -2
  35. package/dist/security/strict-mode.js.map +1 -1
  36. package/dist/stas-bundle-factory.d.ts +1 -0
  37. package/dist/stas-bundle-factory.d.ts.map +1 -1
  38. package/dist/stas-bundle-factory.js +8 -1
  39. package/dist/stas-bundle-factory.js.map +1 -1
  40. package/dist/transaction/build/input-builder.js +3 -3
  41. package/dist/transaction/build/transaction-builder.d.ts +2 -2
  42. package/dist/transaction/build/transaction-builder.d.ts.map +1 -1
  43. package/dist/transaction/build/transaction-builder.js +8 -4
  44. package/dist/transaction/build/transaction-builder.js.map +1 -1
  45. package/docs/AGENT_RUNBOOK.md +88 -0
  46. package/docs/DSTAS_0_0_8_SDK_SPEC.md +5 -0
  47. package/llms.txt +28 -0
  48. package/package.json +1 -1
  49. package/src/bitcoin/mnemonic.ts +24 -11
  50. package/src/bitcoin/out-point.ts +22 -5
  51. package/src/bitcoin/private-key.ts +24 -4
  52. package/src/bitcoin/transaction-output.ts +21 -4
  53. package/src/bitcoin/wallet.ts +6 -1
  54. package/src/buffer/buffer-utils.ts +32 -19
  55. package/src/bytes.ts +3 -2
  56. package/src/dstas-bundle-factory.ts +3 -3
  57. package/src/dstas-factory.ts +12 -3
  58. package/src/script/eval/script-evaluator.ts +3 -3
  59. package/src/security/strict-mode.ts +4 -2
  60. package/src/stas-bundle-factory.ts +22 -9
  61. package/src/transaction/build/input-builder.ts +3 -3
  62. package/src/transaction/build/transaction-builder.ts +20 -4
  63. package/tests/buffer-utils.test.ts +24 -0
  64. package/tests/debug/dstas-transfer-debug.ts +1 -1
  65. package/tests/debug/dstas-with-change-probe.test.ts +3 -3
  66. package/tests/dstas-bundle-factory.test.ts +2 -2
  67. package/tests/dstas-conformance-vectors.test.ts +17 -17
  68. package/tests/dstas-factory-guards.test.ts +35 -0
  69. package/tests/dstas-flow.test.ts +61 -61
  70. package/tests/dstas-multisig-authority-flow.test.ts +11 -11
  71. package/tests/helpers/dstas-flow-helpers.ts +2 -2
  72. package/tests/locking-script-alias.test.ts +41 -0
  73. package/tests/mnemonic.test.ts +60 -0
  74. package/tests/private-key.test.ts +55 -0
  75. package/tests/script-eval.test.ts +1 -1
  76. package/tests/strict-mode.test.ts +29 -0
  77. package/tests/transaction-build.test.ts +22 -0
package/AGENTS.md ADDED
@@ -0,0 +1,52 @@
1
+ # AGENTS
2
+
3
+ This file is a fast onboarding entrypoint for AI coding agents working on this repository.
4
+
5
+ ## Read order
6
+
7
+ 1. `/Users/imighty/Code/dxs-stas-sdk/README.md` (public API and examples)
8
+ 2. `/Users/imighty/Code/dxs-stas-sdk/docs/AGENT_RUNBOOK.md` (task-oriented execution flow)
9
+ 3. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_0_0_8_SDK_SPEC.md` (normative protocol rules)
10
+ 4. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_SCRIPT_INVARIANTS.md` (script-level invariants)
11
+ 5. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_CONFORMANCE_MATRIX.md` (test mapping)
12
+
13
+ ## Preferred implementation path
14
+
15
+ - Prefer high-level DSTAS APIs first:
16
+ - `DstasBundleFactory` for multi-step payout/split/merge planning.
17
+ - `BuildDstas*` helpers for single-flow transactions.
18
+ - Use legacy `stas*` APIs only for compatibility maintenance.
19
+
20
+ ## Mandatory validation rule
21
+
22
+ For every protocol change or new flow, validate built tx hex with script evaluation:
23
+
24
+ - Use `evaluateTransactionHex(...)` from `/Users/imighty/Code/dxs-stas-sdk/src/script/eval/script-evaluator.ts`.
25
+ - Provide an explicit prevout resolver from known `OutPoint`/transaction fixtures.
26
+ - Never mark a DSTAS flow complete without script-level evaluation coverage.
27
+
28
+ ## Testing expectations
29
+
30
+ - Put deterministic fixtures under `/Users/imighty/Code/dxs-stas-sdk/tests/fixtures/`.
31
+ - Keep debug/probe helpers under `/Users/imighty/Code/dxs-stas-sdk/tests/debug/`.
32
+ - Do not depend on local `.temp` files in CI-facing tests.
33
+ - Update conformance vectors when behavior intentionally changes:
34
+ - `/Users/imighty/Code/dxs-stas-sdk/tests/fixtures/dstas-conformance-vectors.json`
35
+
36
+ ## Safety and constraints
37
+
38
+ - Keep strict parsing enabled by default (`strictTxParse=true`).
39
+ - Preserve flags/service-field ordering and optional-data continuity invariants.
40
+ - Keep multisig bounds enforced (`m <= n`, `n <= 5`) unless protocol spec changes.
41
+ - Avoid silent behavior changes in unlock/signing semantics; cover with negative tests.
42
+
43
+ ## Standard local commands
44
+
45
+ ```bash
46
+ npm install
47
+ npm run build
48
+ npm run lint
49
+ npm test
50
+ ```
51
+
52
+ For targeted runs, prefer file-scoped Jest execution over full-suite reruns while iterating.
package/README.md CHANGED
@@ -6,12 +6,28 @@ TypeScript SDK for building and reading Bitcoin SV transactions, with first-clas
6
6
 
7
7
  All binary inputs/outputs are `Uint8Array` (no Node.js `Buffer` in the public API).
8
8
 
9
+ ## Security defaults
10
+
11
+ - ECDSA signing is deterministic (RFC 6979 behavior from `@noble/secp256k1`) with `lowS: true`.
12
+ - Strict transaction parsing is enabled by default.
13
+ - Strict fee-rate validation is enabled by default.
14
+ - Strict script evaluation defaults include a 100KB max element size limit (when strict eval is enabled).
15
+ - DSTAS multisig key validation enforces compressed secp256k1 points and `n <= 5`.
16
+
9
17
  ## Install
10
18
 
11
19
  ```bash
12
20
  npm install dxs-stas-sdk
13
21
  ```
14
22
 
23
+ ## AI Agent onboarding
24
+
25
+ If you are integrating this SDK through an AI coding agent, start with:
26
+
27
+ - `AGENTS.md` (fast onboarding and guardrails)
28
+ - `docs/AGENT_RUNBOOK.md` (task execution workflow)
29
+ - `docs/DSTAS_0_0_8_SDK_SPEC.md` (normative protocol behavior)
30
+
15
31
  ## Concepts
16
32
 
17
33
  An `OutPoint` represents a spendable UTXO: txid, vout, locking script, satoshis, and owner address.
@@ -133,7 +149,7 @@ const factory = new DstasBundleFactory(
133
149
  getStasUtxoSet,
134
150
  getTransactions,
135
151
  ({ fromOutPoint, recipient, spendType, isFreezeLike, isChange }) => {
136
- const parsed = LockingScriptReader.read(fromOutPoint.LockignScript).Dstas;
152
+ const parsed = LockingScriptReader.read(fromOutPoint.LockingScript).Dstas;
137
153
  if (!parsed) throw new Error("Expected DSTAS input locking script");
138
154
  if (recipient.m !== 1 || recipient.addresses.length !== 1) {
139
155
  throw new Error("README example supports only m=1 recipient");
@@ -231,6 +247,14 @@ const txHex = TransactionBuilder.init()
231
247
  .addChangeOutputWithFee(pk.Address, utxo.Satoshis - 1_000, 0.1)
232
248
  .sign()
233
249
  .toHex();
250
+
251
+ // Optional: pass a custom input sequence (default is 0xffffffff).
252
+ const txWithSequence = TransactionBuilder.init()
253
+ .addInput(utxo, pk, 0xfffffffe)
254
+ .addP2PkhOutput(1_000, to)
255
+ .addChangeOutputWithFee(pk.Address, utxo.Satoshis - 1_000, 0.1)
256
+ .sign()
257
+ .toHex();
234
258
  ```
235
259
 
236
260
  ## Example: build a STAS transfer transaction
@@ -7,6 +7,7 @@ export declare class Mnemonic {
7
7
  words: TWords;
8
8
  constructor(phrase: string, words: TWords);
9
9
  static generate: () => Mnemonic;
10
+ private static sanitize;
10
11
  static fromWords: (words: TWords) => Mnemonic;
11
12
  static fromPhrase: (phrase: string) => Mnemonic;
12
13
  static fromRandomText: (text: string) => Mnemonic | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEhD,qBAAa,QAAQ;IAEV,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;gBADb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;IAGtB,OAAc,QAAQ,QAAO,QAAQ,CACkB;IAEvD,OAAc,SAAS,UAAW,MAAM,KAAG,QAAQ,CAIjD;IAEF,OAAc,UAAU,WAAY,MAAM,KAAG,QAAQ,CAQnD;IAEF,OAAc,cAAc,SAAU,MAAM,KAAG,QAAQ,GAAG,SAAS,CASjE;CACH"}
1
+ {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEhD,qBAAa,QAAQ;IAEV,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;gBADb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;IAGtB,OAAc,QAAQ,QAAO,QAAQ,CACkB;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAIX;IAEZ,OAAc,SAAS,UAAW,MAAM,KAAG,QAAQ,CAOjD;IAEF,OAAc,UAAU,WAAY,MAAM,KAAG,QAAQ,CAUnD;IAEF,OAAc,cAAc,SAAU,MAAM,KAAG,QAAQ,GAAG,SAAS,CAWjE;CACH"}
@@ -13,24 +13,35 @@ class Mnemonic {
13
13
  }
14
14
  exports.Mnemonic = Mnemonic;
15
15
  Mnemonic.generate = () => Mnemonic.fromPhrase((0, bip39_1.generateMnemonic)(english_js_1.wordlist, 128));
16
+ Mnemonic.sanitize = (value) => value
17
+ .replace(/\r?\n|\r/g, " ")
18
+ .replace(/\s{2,}/g, " ")
19
+ .trim();
16
20
  Mnemonic.fromWords = (words) => {
17
- const phrase = Object.values(words).join(" ");
18
- return new Mnemonic(phrase, words);
21
+ const orderedWords = Object.entries(words)
22
+ .sort((a, b) => Number(a[0]) - Number(b[0]))
23
+ .map(([, word]) => word);
24
+ const phrase = Mnemonic.sanitize(orderedWords.join(" "));
25
+ return Mnemonic.fromPhrase(phrase);
19
26
  };
20
27
  Mnemonic.fromPhrase = (phrase) => {
21
- const words = phrase.split(" ").reduce((a, v, i) => {
28
+ const sanitized = Mnemonic.sanitize(phrase);
29
+ const words = sanitized.split(" ").reduce((a, v, i) => {
22
30
  a[`${i}`] = v;
23
31
  return a;
24
32
  }, {});
25
- return new Mnemonic(phrase, words);
33
+ return new Mnemonic(sanitized, words);
26
34
  };
27
35
  Mnemonic.fromRandomText = (text) => {
28
- const sanitized = text
29
- .replace(/\r?\n|\r/g, " ")
30
- .replace(/\s{2,}/g, " ")
31
- .replace(/^\s+/, "")
32
- .replace(/\s+$/, "");
33
- if ((0, bip39_1.validateMnemonic)(sanitized, english_js_1.wordlist))
34
- return Mnemonic.fromPhrase(sanitized);
36
+ const sanitized = Mnemonic.sanitize(text);
37
+ if (!sanitized)
38
+ return undefined;
39
+ try {
40
+ if ((0, bip39_1.validateMnemonic)(sanitized, english_js_1.wordlist))
41
+ return Mnemonic.fromPhrase(sanitized);
42
+ }
43
+ catch (_a) {
44
+ return undefined;
45
+ }
35
46
  };
36
47
  //# sourceMappingURL=mnemonic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":";;;AAAA,wCAAkE;AAClE,kEAA6D;AAE7D,gEAA6D;AAApD,sGAAA,QAAQ,OAAA;AAIjB,MAAa,QAAQ;IACnB,YACS,MAAc,EACd,KAAa;QADb,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;IACnB,CAAC;;AAJN,4BAmCC;AA7Be,iBAAQ,GAAG,GAAa,EAAE,CACtC,QAAQ,CAAC,UAAU,CAAC,IAAA,wBAAgB,EAAC,qBAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzC,kBAAS,GAAG,CAAC,KAAa,EAAY,EAAE;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEY,mBAAU,GAAG,CAAC,MAAc,EAAY,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACzD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEd,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEY,uBAAc,GAAG,CAAC,IAAY,EAAwB,EAAE;IACpE,MAAM,SAAS,GAAG,IAAI;SACnB,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvB,IAAI,IAAA,wBAAgB,EAAC,SAAS,EAAE,qBAAQ,CAAC;QACvC,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":";;;AAAA,wCAAkE;AAClE,kEAA6D;AAE7D,gEAA6D;AAApD,sGAAA,QAAQ,OAAA;AAIjB,MAAa,QAAQ;IACnB,YACS,MAAc,EACd,KAAa;QADb,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;IACnB,CAAC;;AAJN,4BAgDC;AA1Ce,iBAAQ,GAAG,GAAa,EAAE,CACtC,QAAQ,CAAC,UAAU,CAAC,IAAA,wBAAgB,EAAC,qBAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAExC,iBAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,KAAK;KACF,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;KACzB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;KACvB,IAAI,EAAE,CAAC;AAEE,kBAAS,GAAG,CAAC,KAAa,EAAY,EAAE;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEY,mBAAU,GAAG,CAAC,MAAc,EAAY,EAAE;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5D,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEd,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEY,uBAAc,GAAG,CAAC,IAAY,EAAwB,EAAE;IACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI;QACF,IAAI,IAAA,wBAAgB,EAAC,SAAS,EAAE,qBAAQ,CAAC;YACvC,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KACzC;IAAC,WAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC"}
@@ -5,15 +5,19 @@ import { Bytes } from "../bytes";
5
5
  export declare class OutPoint {
6
6
  TxId: string;
7
7
  Vout: number;
8
- LockignScript: Bytes;
8
+ private _lockingScript;
9
9
  Satoshis: number;
10
10
  Address: Address;
11
11
  ScriptType: ScriptType;
12
12
  Transaction?: Transaction;
13
- constructor(txId: string, vout: number, lockignScript: Bytes, satoshis: number, address: Address, scriptType: ScriptType);
13
+ constructor(txId: string, vout: number, lockingScript: Bytes, satoshis: number, address: Address, scriptType: ScriptType);
14
14
  static fromTransaction: (transaction: Transaction, vout: number) => OutPointFull;
15
15
  static fromHex: (hex: string, vout: number) => OutPointFull;
16
16
  toString: () => string;
17
+ get LockingScript(): Bytes;
18
+ set LockingScript(value: Bytes);
19
+ get LockignScript(): Bytes;
20
+ set LockignScript(value: Bytes);
17
21
  }
18
22
  export declare class OutPointFull extends OutPoint {
19
23
  constructor(transaction: Transaction, vout: number);
@@ -1 +1 @@
1
- {"version":3,"file":"out-point.d.ts","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,KAAK,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;gBAGxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU;IA0BxB,MAAM,CAAC,eAAe,gBAAiB,WAAW,QAAQ,MAAM,kBAC1B;IAEtC,MAAM,CAAC,OAAO,QAAS,MAAM,QAAQ,MAAM,kBACc;IAEzD,QAAQ,eAAqC;CAC9C;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CA4BnD"}
1
+ {"version":3,"file":"out-point.d.ts","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,cAAc,CAAQ;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;gBAGxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU;IA0BxB,MAAM,CAAC,eAAe,gBAAiB,WAAW,QAAQ,MAAM,kBAC1B;IAEtC,MAAM,CAAC,OAAO,QAAS,MAAM,QAAQ,MAAM,kBACc;IAEzD,QAAQ,eAAqC;IAE7C,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;IAGD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CA4BnD"}
@@ -6,16 +6,16 @@ const script_type_1 = require("./script-type");
6
6
  const strict_mode_1 = require("../security/strict-mode");
7
7
  const locking_script_reader_1 = require("../script/read/locking-script-reader");
8
8
  class OutPoint {
9
- constructor(txId, vout, lockignScript, satoshis, address, scriptType) {
9
+ constructor(txId, vout, lockingScript, satoshis, address, scriptType) {
10
10
  this.toString = () => `${this.TxId}:${this.Vout}`;
11
11
  this.TxId = txId;
12
12
  this.Vout = vout;
13
- this.LockignScript = lockignScript;
13
+ this._lockingScript = lockingScript;
14
14
  this.Satoshis = satoshis;
15
15
  this.Address = address;
16
16
  this.ScriptType = scriptType;
17
17
  if ((0, strict_mode_1.getStrictModeConfig)().strictOutPointValidation) {
18
- const reader = locking_script_reader_1.LockingScriptReader.read(lockignScript);
18
+ const reader = locking_script_reader_1.LockingScriptReader.read(lockingScript);
19
19
  if (reader.ScriptType !== scriptType) {
20
20
  throw new Error(`OutPoint scriptType mismatch: expected ${scriptType}, got ${reader.ScriptType}`);
21
21
  }
@@ -24,6 +24,18 @@ class OutPoint {
24
24
  }
25
25
  }
26
26
  }
27
+ get LockingScript() {
28
+ return this._lockingScript;
29
+ }
30
+ set LockingScript(value) {
31
+ this._lockingScript = value;
32
+ }
33
+ get LockignScript() {
34
+ return this._lockingScript;
35
+ }
36
+ set LockignScript(value) {
37
+ this._lockingScript = value;
38
+ }
27
39
  }
28
40
  exports.OutPoint = OutPoint;
29
41
  OutPoint.fromTransaction = (transaction, vout) => new OutPointFull(transaction, vout);
@@ -39,7 +51,7 @@ class OutPointFull extends OutPoint {
39
51
  if (!output.Address) {
40
52
  throw new Error("Output does not expose address (for example, DSTAS multisig owner). Build OutPoint manually.");
41
53
  }
42
- super(transaction.Id, vout, output.LockignScript, output.Satoshis, output.Address, output.ScriptType);
54
+ super(transaction.Id, vout, output.LockingScript, output.Satoshis, output.Address, output.ScriptType);
43
55
  this.Transaction = transaction;
44
56
  }
45
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"out-point.js","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAEnD,+CAA2C;AAG3C,yDAA8D;AAC9D,gFAA2E;AAE3E,MAAa,QAAQ;IASnB,YACE,IAAY,EACZ,IAAY,EACZ,aAAoB,EACpB,QAAgB,EAChB,OAAgB,EAChB,UAAsB;QAgCxB,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QA9B3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAA,iCAAmB,GAAE,CAAC,wBAAwB,EAAE;YAClD,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,0CAA0C,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,CACjF,CAAC;aACH;YAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;gBAC5D,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CACpF,CAAC;aACH;SACF;IACH,CAAC;;AAvCH,4BAgDC;AAPQ,wBAAe,GAAG,CAAC,WAAwB,EAAE,IAAY,EAAE,EAAE,CAClE,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,AADf,CACgB;AAE/B,gBAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAC7C,IAAI,YAAY,CAAC,+BAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,AAD1C,CAC2C;AAK3D,MAAa,YAAa,SAAQ,QAAQ;IACxC,YAAY,WAAwB,EAAE,IAAY;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzC,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YAEtC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;SACH;QAED,KAAK,CACH,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,CAClB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AA7BD,oCA6BC"}
1
+ {"version":3,"file":"out-point.js","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAEnD,+CAA2C;AAG3C,yDAA8D;AAC9D,gFAA2E;AAE3E,MAAa,QAAQ;IASnB,YACE,IAAY,EACZ,IAAY,EACZ,aAAoB,EACpB,QAAgB,EAChB,OAAgB,EAChB,UAAsB;QAgCxB,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QA9B3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAA,iCAAmB,GAAE,CAAC,wBAAwB,EAAE;YAClD,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,0CAA0C,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,CACjF,CAAC;aACH;YAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;gBAC5D,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CACpF,CAAC;aACH;SACF;IACH,CAAC;IAUD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;;AAhEH,4BAiEC;AAxBQ,wBAAe,GAAG,CAAC,WAAwB,EAAE,IAAY,EAAE,EAAE,CAClE,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,AADf,CACgB;AAE/B,gBAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAC7C,IAAI,YAAY,CAAC,+BAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,AAD1C,CAC2C;AAsB3D,MAAa,YAAa,SAAQ,QAAQ;IACxC,YAAY,WAAwB,EAAE,IAAY;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzC,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YAEtC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;SACH;QAED,KAAK,CACH,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,CAClB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AA7BD,oCA6BC"}
@@ -3,11 +3,14 @@ import { Bytes } from "../bytes";
3
3
  export { verify } from "@noble/secp256k1";
4
4
  export declare class PrivateKey {
5
5
  private _pk;
6
+ private _disposed;
6
7
  Address: Address;
7
8
  PublicKey: Bytes;
8
9
  constructor(pk: Bytes);
10
+ private assertAlive;
9
11
  sign: (message: Bytes) => Uint8Array;
10
12
  verify: (signature: Bytes, message: Bytes) => boolean;
13
+ dispose: () => void;
11
14
  }
12
15
  export declare const verifyBitcoinSignedMessage: (message: Bytes, publicKey: Bytes, signature: Bytes) => boolean;
13
16
  //# sourceMappingURL=private-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAuC,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0D1C,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAQ;IAEnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;gBAEL,EAAE,EAAE,KAAK;IAMrB,IAAI,YAAa,KAAK,gBAGlB;IAEJ,MAAM,cAAe,KAAK,WAAW,KAAK,aAUxC;CACH;AAED,eAAO,MAAM,0BAA0B,YAC5B,KAAK,aACH,KAAK,aACL,KAAK,YAcjB,CAAC"}
1
+ {"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAuC,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0D1C,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;gBAEL,EAAE,EAAE,KAAK;IAMrB,OAAO,CAAC,WAAW,CAIjB;IAEF,IAAI,YAAa,KAAK,gBAWpB;IAEF,MAAM,cAAe,KAAK,WAAW,KAAK,aAUxC;IAEF,OAAO,aAGL;CACH;AAED,eAAO,MAAM,0BAA0B,YAC5B,KAAK,aACH,KAAK,aACL,KAAK,YAcjB,CAAC"}
@@ -61,7 +61,20 @@ const derDecodeSignature = (der) => {
61
61
  };
62
62
  class PrivateKey {
63
63
  constructor(pk) {
64
- this.sign = (message) => derEncodeSignature(secp256k1_1.Signature.fromBytes((0, secp256k1_1.sign)(message, this._pk, { prehash: false })));
64
+ this._disposed = false;
65
+ this.assertAlive = () => {
66
+ if (this._disposed) {
67
+ throw new Error("PrivateKey has been disposed");
68
+ }
69
+ };
70
+ this.sign = (message) => {
71
+ this.assertAlive();
72
+ return derEncodeSignature(secp256k1_1.Signature.fromBytes((0, secp256k1_1.sign)(message, this._pk, {
73
+ prehash: false,
74
+ lowS: true,
75
+ extraEntropy: false,
76
+ })));
77
+ };
65
78
  this.verify = (signature, message) => {
66
79
  const sig = signature.length > 0 && signature[0] === 0x30
67
80
  ? derDecodeSignature(signature).toBytes()
@@ -71,7 +84,11 @@ class PrivateKey {
71
84
  format: "compact",
72
85
  });
73
86
  };
74
- this._pk = pk;
87
+ this.dispose = () => {
88
+ this._pk.fill(0);
89
+ this._disposed = true;
90
+ };
91
+ this._pk = new Uint8Array(pk);
75
92
  this.PublicKey = (0, secp256k1_1.getPublicKey)(this._pk, true);
76
93
  this.Address = address_1.Address.fromPublicKey(this.PublicKey);
77
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,16 @@ import { Address } from "./address";
3
3
  import { ScriptType } from "./script-type";
4
4
  export declare class TransactionOutput {
5
5
  Satoshis: number;
6
- LockignScript: Bytes;
6
+ private _lockingScript;
7
7
  ScriptType: ScriptType;
8
8
  Address?: Address;
9
9
  TokenId?: string;
10
10
  Symbol?: string;
11
11
  data: Bytes[];
12
- constructor(satoshis: number, lockignScript: Bytes);
12
+ constructor(satoshis: number, lockingScript: Bytes);
13
+ get LockingScript(): Bytes;
14
+ set LockingScript(value: Bytes);
15
+ get LockignScript(): Bytes;
16
+ set LockignScript(value: Bytes);
13
17
  }
14
18
  //# sourceMappingURL=transaction-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-output.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAS,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,KAAK,CAAC;IACrB,UAAU,EAAE,UAAU,CAAsB;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,EAAE,CAAM;gBAEP,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;CAyCnD"}
1
+ {"version":3,"file":"transaction-output.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAS,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,cAAc,CAAQ;IAC9B,UAAU,EAAE,UAAU,CAAsB;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,EAAE,CAAM;gBAEP,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;IA0ClD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;IAGD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;CACF"}
@@ -5,13 +5,13 @@ const locking_script_reader_1 = require("../script/read/locking-script-reader");
5
5
  const bytes_1 = require("../bytes");
6
6
  const script_type_1 = require("./script-type");
7
7
  class TransactionOutput {
8
- constructor(satoshis, lockignScript) {
8
+ constructor(satoshis, lockingScript) {
9
9
  var _a, _b, _c, _d;
10
10
  this.ScriptType = script_type_1.ScriptType.unknown;
11
11
  this.data = [];
12
12
  this.Satoshis = satoshis;
13
- this.LockignScript = lockignScript;
14
- const reader = locking_script_reader_1.LockingScriptReader.read(this.LockignScript);
13
+ this._lockingScript = lockingScript;
14
+ const reader = locking_script_reader_1.LockingScriptReader.read(this._lockingScript);
15
15
  this.ScriptType = reader.ScriptType;
16
16
  this.Address = reader.Address;
17
17
  if (reader.ScriptType === script_type_1.ScriptType.nullData) {
@@ -40,6 +40,18 @@ class TransactionOutput {
40
40
  this.data.push(...reader.Dstas.OptionalData);
41
41
  }
42
42
  }
43
+ get LockingScript() {
44
+ return this._lockingScript;
45
+ }
46
+ set LockingScript(value) {
47
+ this._lockingScript = value;
48
+ }
49
+ get LockignScript() {
50
+ return this._lockingScript;
51
+ }
52
+ set LockignScript(value) {
53
+ this._lockingScript = value;
54
+ }
43
55
  }
44
56
  exports.TransactionOutput = TransactionOutput;
45
57
  //# sourceMappingURL=transaction-output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-output.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":";;;AAAA,gFAA2E;AAC3E,oCAAwC;AAExC,+CAA2C;AAE3C,MAAa,iBAAiB;IAS5B,YAAY,QAAgB,EAAE,aAAoB;;QANlD,eAAU,GAAe,wBAAU,CAAC,OAAO,CAAC;QAI5C,SAAI,GAAY,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EACvC;YACA,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,UAAU,EAAE,mCAAI,SAAS,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,SAAS,EAAE,mCAAI,SAAS,CAAC;YAE9C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC;aACF;YACD,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAA,aAAK,EAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9C;IACH,CAAC;CACF;AAlDD,8CAkDC"}
1
+ {"version":3,"file":"transaction-output.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":";;;AAAA,gFAA2E;AAC3E,oCAAwC;AAExC,+CAA2C;AAE3C,MAAa,iBAAiB;IAS5B,YAAY,QAAgB,EAAE,aAAoB;;QANlD,eAAU,GAAe,wBAAU,CAAC,OAAO,CAAC;QAI5C,SAAI,GAAY,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EACvC;YACA,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,UAAU,EAAE,mCAAI,SAAS,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,SAAS,EAAE,mCAAI,SAAS,CAAC;YAE9C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC;aACF;YACD,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAA,aAAK,EAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;CACF;AAnED,8CAmEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,MAAO,SAAQ,KAAK;IAC/B,MAAM,CAAC,YAAY,aAAc,MAAM,YAGrC;IAEF,MAAM,CAAC,SAAS,0EAOb,KAAK,YAQH;IAEL,OAAO,CAAC,GAAG,CAAa;gBAEZ,GAAG,EAAE,SAAS;IAM1B,IAAI,OAAO,gCAEV;IAED,IAAI,SAAS,eAEZ;IAED,YAAY,SAAU,MAAM,KAAG,MAAM,CAEnC;IAEF,IAAI,YAAa,UAAU,gBAA4B;IACvD,WAAW,YAAa,UAAU,gBAA4B;CAC/D"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,MAAO,SAAQ,KAAK;IAC/B,MAAM,CAAC,YAAY,aAAc,MAAM,YAQrC;IAEF,MAAM,CAAC,SAAS,0EAOb,KAAK,YAQH;IAEL,OAAO,CAAC,GAAG,CAAa;gBAEZ,GAAG,EAAE,SAAS;IAM1B,IAAI,OAAO,gCAEV;IAED,IAAI,SAAS,eAEZ;IAED,YAAY,SAAU,MAAM,KAAG,MAAM,CAEnC;IAEF,IAAI,YAAa,UAAU,gBAA4B;IACvD,WAAW,YAAa,UAAU,gBAA4B;CAC/D"}
@@ -23,7 +23,13 @@ class Wallet extends bip32_1.HDKey {
23
23
  }
24
24
  exports.Wallet = Wallet;
25
25
  Wallet.fromMnemonic = (mnemonic) => {
26
- const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic);
26
+ let seed;
27
+ try {
28
+ seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic.trim());
29
+ }
30
+ catch (_a) {
31
+ throw new Error("Invalid mnemonic phrase");
32
+ }
27
33
  return Wallet.fromHdKey(Wallet.fromMasterSeed(seed));
28
34
  };
29
35
  Wallet.fromHdKey = ({ versions, depth, index, parentFingerprint, chainCode, privateKey, }) => new Wallet({
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":";;;AAAA,wCAAkD;AAClD,wCAA+C;AAC/C,+CAA2C;AAW3C,MAAa,MAAO,SAAQ,aAAK;IAyB/B,YAAY,GAAc;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC;QAab,iBAAY,GAAG,CAAC,IAAY,EAAU,EAAE;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,gBAAW,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAhB5D,IAAI,CAAC,GAAG,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,CAAC;;AArCH,wBA6CC;AA5CQ,mBAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC,AAHkB,CAGjB;AAEK,gBAAS,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,GACJ,EAAE,EAAE,CACV,IAAI,MAAM,CAAC;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,iBAAiB;IACjB,SAAS,EAAE,SAAU;IACrB,UAAU,EAAE,UAAW;CACxB,CAAC,AAfY,CAeX"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":";;;AAAA,wCAAkD;AAClD,wCAA+C;AAC/C,+CAA2C;AAW3C,MAAa,MAAO,SAAQ,aAAK;IA8B/B,YAAY,GAAc;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC;QAab,iBAAY,GAAG,CAAC,IAAY,EAAU,EAAE;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,gBAAW,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAhB5D,IAAI,CAAC,GAAG,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,CAAC;;AA1CH,wBAkDC;AAjDQ,mBAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IACzC,IAAI,IAAgB,CAAC;IACrB,IAAI;QACF,IAAI,GAAG,IAAA,0BAAkB,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5C;IAAC,WAAM;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC,AARkB,CAQjB;AAEK,gBAAS,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,GACJ,EAAE,EAAE,CACV,IAAI,MAAM,CAAC;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,iBAAiB;IACjB,SAAS,EAAE,SAAU;IACrB,UAAU,EAAE,UAAW;CACxB,CAAC,AAfY,CAeX"}
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-utils.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,WAAW,WAAY,KAAK,uBAKxC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,OAAO,MAAM,SAQpD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,KAAK,UAAU,MAAM,UAAU,MAAM,eACrC,CAAC;AAE/B,eAAO,MAAM,YAAY,WAAY,KAAK,eAYzC,CAAC;AAEF,eAAO,MAAM,UAAU,WACb,KAAK,gBACA,MAAM,gBACL,MAAM,GAAG,SAAS,cACpB,MAAM,GAAG,SAAS,eAS/B,CAAC;AAiBF,eAAO,MAAM,UAAU,WAAY,KAAK,WAAW,KAAK,KAAG,KAAK,EAe/D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,MACsB,CAAC;AAEvE,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAIX,CAAC;AAEnC,eAAO,MAAM,sBAAsB,UAAW,MAAM,KAAG,MAepC,CAAC;AAEpB,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,KAgB9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,MAAM,WACV,CAAC;AAE3C,eAAO,MAAM,YAAY,WAAY,KAAK,WAAqC,CAAC"}
1
+ {"version":3,"file":"buffer-utils.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,WAAW,WAAY,KAAK,uBAKxC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,OAAO,MAAM,SAQpD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,KAAK,UAAU,MAAM,UAAU,MAAM,eACrC,CAAC;AAE/B,eAAO,MAAM,YAAY,WAAY,KAAK,eAYzC,CAAC;AAEF,eAAO,MAAM,UAAU,WACb,KAAK,gBACA,MAAM,gBACL,MAAM,GAAG,SAAS,cACpB,MAAM,GAAG,SAAS,eAS/B,CAAC;AAiBF,eAAO,MAAM,UAAU,WAAY,KAAK,WAAW,KAAK,KAAG,KAAK,EAe/D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,MACsB,CAAC;AAEvE,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAIX,CAAC;AAcnC,eAAO,MAAM,sBAAsB,UAAW,MAAM,KAAG,MAetD,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,KAiB9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,MAAM,WACV,CAAC;AAE3C,eAAO,MAAM,YAAY,WAAY,KAAK,WAAqC,CAAC"}
@@ -83,28 +83,36 @@ const getNumberSize = (data) => data > 0 && data <= 16
83
83
  : (0, exports.getVarIntLength)((0, exports.getMinimumRequiredByte)(data)) +
84
84
  (0, exports.getMinimumRequiredByte)(data);
85
85
  exports.getNumberSize = getNumberSize;
86
- const getMinimumRequiredByte = (value) => value >= -128 && value <= 127
87
- ? 1
88
- : value >= -32768 && value <= 32767
89
- ? 2
90
- : value >= -8388608 && value <= 8388607
91
- ? 3
92
- : value >= -2147483648 && value <= 2147483647
93
- ? 4
94
- : value >= -549755813888 && value <= 549755813887
95
- ? 5
96
- : value >= -140737488355328 && value <= 140737488355327
97
- ? 6
98
- : value >= -36028797018963968 && value <= 36028797018963967
99
- ? 7
100
- : 8;
86
+ const asSafeInteger = (value) => {
87
+ if (!Number.isInteger(value)) {
88
+ throw new Error(`value has a fractional component: ${value}`);
89
+ }
90
+ if (!Number.isSafeInteger(value)) {
91
+ throw new Error(`value exceeds Number.MAX_SAFE_INTEGER bounds: ${value}`);
92
+ }
93
+ return value;
94
+ };
95
+ const getMinimumRequiredByte = (value) => {
96
+ const safeValue = asSafeInteger(value);
97
+ const big = BigInt(safeValue);
98
+ for (let bytes = 1; bytes <= 8; bytes++) {
99
+ const bits = BigInt(bytes * 8 - 1);
100
+ const min = -(BigInt(1) << bits);
101
+ const max = (BigInt(1) << bits) - BigInt(1);
102
+ if (big >= min && big <= max) {
103
+ return bytes;
104
+ }
105
+ }
106
+ return 8;
107
+ };
101
108
  exports.getMinimumRequiredByte = getMinimumRequiredByte;
102
109
  const getNumberBytes = (value) => {
103
- const size = (0, exports.getMinimumRequiredByte)(value);
110
+ const safeValue = asSafeInteger(value);
111
+ const size = (0, exports.getMinimumRequiredByte)(safeValue);
104
112
  const buffer = new Uint8Array(size);
105
113
  const sizeBits = BigInt(size * 8);
106
- let big = BigInt(value);
107
- if (value < 0) {
114
+ let big = BigInt(safeValue);
115
+ if (safeValue < 0) {
108
116
  big = (BigInt(1) << sizeBits) + big;
109
117
  }
110
118
  for (let i = 0; i < size; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-utils.js","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer-utils.js","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAK/B,eAAO,MAAM,MAAM,WAAY,KAAK,EAAE,KAAG,KAWxC,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,KAAK,KAAK,KAAK,KAAG,OAM1C,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,KAA8B,CAAC;AAC3E,eAAO,MAAM,WAAW,UAAW,KAAK,KAAG,MAA+B,CAAC;AAE3E,eAAO,MAAM,OAAO,UAAW,MAAM,KAAG,KAiBvC,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,MAMpC,CAAC"}
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAK/B,eAAO,MAAM,MAAM,WAAY,KAAK,EAAE,KAAG,KAWxC,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,KAAK,KAAK,KAAK,KAAG,OAO1C,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,KAA8B,CAAC;AAC3E,eAAO,MAAM,WAAW,UAAW,KAAK,KAAG,MAA+B,CAAC;AAE3E,eAAO,MAAM,OAAO,UAAW,MAAM,KAAG,KAiBvC,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,MAMpC,CAAC"}
package/dist/bytes.js CHANGED
@@ -17,11 +17,11 @@ exports.concat = concat;
17
17
  const equal = (a, b) => {
18
18
  if (a.length !== b.length)
19
19
  return false;
20
+ let result = 0;
20
21
  for (let i = 0; i < a.length; i++) {
21
- if (a[i] !== b[i])
22
- return false;
22
+ result |= a[i] ^ b[i];
23
23
  }
24
- return true;
24
+ return result === 0;
25
25
  };
26
26
  exports.equal = equal;
27
27
  const utf8ToBytes = (value) => encoder.encode(value);
package/dist/bytes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
@@ -200,7 +200,7 @@ class DstasBundleFactory {
200
200
  if (!changeOutput) {
201
201
  throw new Error("Transfer planner failed to locate STAS change output");
202
202
  }
203
- currentStas = new bitcoin_1.OutPoint(tx.Id, changeOutputIndex, changeOutput.LockignScript, changeOutput.Satoshis, this.stasWallet.Address, changeOutput.ScriptType);
203
+ currentStas = new bitcoin_1.OutPoint(tx.Id, changeOutputIndex, changeOutput.LockingScript, changeOutput.Satoshis, this.stasWallet.Address, changeOutput.ScriptType);
204
204
  queue.splice(0, transferOutputs.length);
205
205
  }
206
206
  return {
@@ -412,7 +412,7 @@ class DstasBundleFactory {
412
412
  var _a;
413
413
  const output = tx.Outputs[vout];
414
414
  const owner = (_a = output.Address) !== null && _a !== void 0 ? _a : fallbackAddress;
415
- return new bitcoin_1.OutPoint(tx.Id, vout, output.LockignScript, output.Satoshis, owner, output.ScriptType);
415
+ return new bitcoin_1.OutPoint(tx.Id, vout, output.LockingScript, output.Satoshis, owner, output.ScriptType);
416
416
  };
417
417
  this.getStasOutPoint = (tx, fallbackAddress) => {
418
418
  const index = tx.Outputs.findIndex((output) => output.ScriptType !== bitcoin_1.ScriptType.p2pkh &&
@@ -427,7 +427,7 @@ class DstasBundleFactory {
427
427
  const output = tx.Outputs[i];
428
428
  if (output.ScriptType === bitcoin_1.ScriptType.p2pkh ||
429
429
  output.ScriptType === bitcoin_1.ScriptType.p2mpkh) {
430
- return new bitcoin_1.OutPoint(tx.Id, i, output.LockignScript, output.Satoshis, output.Address, output.ScriptType);
430
+ return new bitcoin_1.OutPoint(tx.Id, i, output.LockingScript, output.Satoshis, output.Address, output.ScriptType);
431
431
  }
432
432
  }
433
433
  throw new Error("Fee output not found");