dxs-stas-sdk 2.0.2 → 2.0.4

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 (110) hide show
  1. package/README.md +34 -1
  2. package/dist/bitcoin/out-point.d.ts.map +1 -1
  3. package/dist/bitcoin/out-point.js +11 -0
  4. package/dist/bitcoin/out-point.js.map +1 -1
  5. package/dist/bitcoin/token-scheme.d.ts +4 -2
  6. package/dist/bitcoin/token-scheme.d.ts.map +1 -1
  7. package/dist/bitcoin/token-scheme.js +4 -2
  8. package/dist/bitcoin/token-scheme.js.map +1 -1
  9. package/dist/bitcoin/transaction-input.d.ts.map +1 -1
  10. package/dist/bitcoin/transaction-input.js +4 -0
  11. package/dist/bitcoin/transaction-input.js.map +1 -1
  12. package/dist/bytes.d.ts.map +1 -1
  13. package/dist/bytes.js +6 -4
  14. package/dist/bytes.js.map +1 -1
  15. package/dist/dstas-bundle-factory.d.ts +2 -1
  16. package/dist/dstas-bundle-factory.d.ts.map +1 -1
  17. package/dist/dstas-bundle-factory.js +2 -0
  18. package/dist/dstas-bundle-factory.js.map +1 -1
  19. package/dist/dstas-factory.d.ts +5 -1
  20. package/dist/dstas-factory.d.ts.map +1 -1
  21. package/dist/dstas-factory.js +89 -35
  22. package/dist/dstas-factory.js.map +1 -1
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/script/build/stas3-freeze-multisig-builder.d.ts +1 -0
  28. package/dist/script/build/stas3-freeze-multisig-builder.d.ts.map +1 -1
  29. package/dist/script/build/stas3-freeze-multisig-builder.js +14 -4
  30. package/dist/script/build/stas3-freeze-multisig-builder.js.map +1 -1
  31. package/dist/script/eval/script-evaluator.d.ts +6 -0
  32. package/dist/script/eval/script-evaluator.d.ts.map +1 -1
  33. package/dist/script/eval/script-evaluator.js +46 -7
  34. package/dist/script/eval/script-evaluator.js.map +1 -1
  35. package/dist/script/read/locking-script-reader.d.ts +1 -0
  36. package/dist/script/read/locking-script-reader.d.ts.map +1 -1
  37. package/dist/script/read/locking-script-reader.js +13 -6
  38. package/dist/script/read/locking-script-reader.js.map +1 -1
  39. package/dist/script/read/script-reader.d.ts.map +1 -1
  40. package/dist/script/read/script-reader.js +11 -2
  41. package/dist/script/read/script-reader.js.map +1 -1
  42. package/dist/script/read/stas3-locking-script-decomposer.d.ts +4 -0
  43. package/dist/script/read/stas3-locking-script-decomposer.d.ts.map +1 -1
  44. package/dist/script/read/stas3-locking-script-decomposer.js +19 -4
  45. package/dist/script/read/stas3-locking-script-decomposer.js.map +1 -1
  46. package/dist/script/script-samples.js +1 -1
  47. package/dist/script/stas3-second-field.d.ts.map +1 -1
  48. package/dist/script/stas3-second-field.js +57 -38
  49. package/dist/script/stas3-second-field.js.map +1 -1
  50. package/dist/script/templates/stas3-freeze-multisig-base.d.ts.map +1 -1
  51. package/dist/script/templates/stas3-freeze-multisig-base.js +35 -2476
  52. package/dist/script/templates/stas3-freeze-multisig-base.js.map +1 -1
  53. package/dist/script/templates/stas3-freeze-multisig.d.ts +1 -1
  54. package/dist/script/templates/stas3-freeze-multisig.d.ts.map +1 -1
  55. package/dist/script/templates/stas3-freeze-multisig.js +1 -1
  56. package/dist/security/strict-mode.d.ts +21 -0
  57. package/dist/security/strict-mode.d.ts.map +1 -0
  58. package/dist/security/strict-mode.js +34 -0
  59. package/dist/security/strict-mode.js.map +1 -0
  60. package/dist/transaction/build/input-builder.d.ts +1 -0
  61. package/dist/transaction/build/input-builder.d.ts.map +1 -1
  62. package/dist/transaction/build/input-builder.js +8 -1
  63. package/dist/transaction/build/input-builder.js.map +1 -1
  64. package/dist/transaction/build/transaction-builder.d.ts +1 -0
  65. package/dist/transaction/build/transaction-builder.d.ts.map +1 -1
  66. package/dist/transaction/build/transaction-builder.js +31 -4
  67. package/dist/transaction/build/transaction-builder.js.map +1 -1
  68. package/dist/transaction/read/transaction-reader.d.ts.map +1 -1
  69. package/dist/transaction/read/transaction-reader.js +5 -0
  70. package/dist/transaction/read/transaction-reader.js.map +1 -1
  71. package/docs/AGENT_HANDBOOK.md +7 -4
  72. package/docs/DSTAS_0_0_8_SDK_SPEC.md +103 -0
  73. package/docs/DSTAS_CONFORMANCE_MATRIX.md +65 -0
  74. package/docs/DSTAS_SCRIPT_INVARIANTS.md +25 -3
  75. package/docs/STAS3_FREEZE_MULTISIG.md +48 -56
  76. package/package.json +1 -1
  77. package/src/bitcoin/out-point.ts +18 -0
  78. package/src/bitcoin/token-scheme.ts +8 -4
  79. package/src/bitcoin/transaction-input.ts +4 -2
  80. package/src/bytes.ts +7 -4
  81. package/src/dstas-bundle-factory.ts +8 -0
  82. package/src/dstas-factory.ts +142 -48
  83. package/src/index.ts +1 -0
  84. package/src/script/build/stas3-freeze-multisig-builder.ts +22 -7
  85. package/src/script/eval/script-evaluator.ts +85 -4
  86. package/src/script/read/locking-script-reader.ts +22 -7
  87. package/src/script/read/script-reader.ts +13 -2
  88. package/src/script/read/stas3-locking-script-decomposer.ts +24 -4
  89. package/src/script/script-samples.ts +1 -1
  90. package/src/script/stas3-second-field.ts +63 -39
  91. package/src/script/templates/stas3-freeze-multisig-base.ts +45 -2476
  92. package/src/script/templates/stas3-freeze-multisig.ts +1 -1
  93. package/src/security/strict-mode.ts +68 -0
  94. package/src/transaction/build/input-builder.ts +13 -1
  95. package/src/transaction/build/transaction-builder.ts +49 -5
  96. package/src/transaction/read/transaction-reader.ts +12 -0
  97. package/tests/bytes-utils.test.ts +1 -0
  98. package/tests/debug/dstas-with-change-probe.test.ts +2 -13
  99. package/tests/dstas-bundle-factory.test.ts +13 -4
  100. package/tests/dstas-conformance-vectors.test.ts +841 -0
  101. package/tests/dstas-factory-guards.test.ts +121 -1
  102. package/tests/dstas-flow.test.ts +967 -159
  103. package/tests/dstas-multisig-authority-flow.test.ts +2 -2
  104. package/tests/fixtures/dstas-conformance-vectors.json +260 -0
  105. package/tests/helpers/dstas-flow-helpers.ts +5 -1
  106. package/tests/locking-script-reader.test.ts +54 -0
  107. package/tests/script-build.test.ts +28 -1
  108. package/tests/stas3-second-field.test.ts +52 -0
  109. package/tests/strict-mode.test.ts +168 -0
  110. package/tests/token-scheme.test.ts +34 -5
package/README.md CHANGED
@@ -43,7 +43,13 @@ const scheme = new TokenScheme(
43
43
  toHex(bob.Address.Hash160), // issuer token id
44
44
  "DSTAS",
45
45
  1,
46
- { isDivisible: true },
46
+ {
47
+ isDivisible: true,
48
+ freeze: true,
49
+ confiscation: true,
50
+ freezeAuthority: { m: 1, publicKeys: [toHex(bob.PublicKey)] },
51
+ confiscationAuthority: { m: 1, publicKeys: [toHex(bob.PublicKey)] },
52
+ },
47
53
  );
48
54
 
49
55
  // Parse a funding transaction that belongs to issuer address (bob).
@@ -115,6 +121,7 @@ const getTransactions = async (
115
121
 
116
122
  const mapSpendTypeToCode = (spendType: DstasSpendType): number => {
117
123
  if (spendType === "swap") return 4;
124
+ if (spendType === "confiscation") return 3;
118
125
  if (spendType === "freeze" || spendType === "unfreeze") return 2;
119
126
  return 1;
120
127
  };
@@ -185,6 +192,7 @@ Notes:
185
192
 
186
193
  - `DstasBundleFactory` plans merge/split/transfer service transactions automatically.
187
194
  - `note` is attached only to final transfer transaction(s), not to intermediate service transactions.
195
+ - `spendType` supports `transfer`, `freeze`, `unfreeze`, `confiscation`, and `swap`.
188
196
  - For recipient multisig (`m > 1`), replace the simple `owner` derivation with your protocol-specific owner preimage/hash strategy.
189
197
 
190
198
  ## Example: build a simple P2PKH transaction
@@ -334,6 +342,31 @@ const txHex = TransactionBuilder.init()
334
342
  | Transaction building | Assemble raw txs | `TransactionBuilder`, `TransactionReader` |
335
343
  | Token factories | DSTAS/STAS workflows | `DstasBundleFactory`, `BuildDstasIssueTxs`, `BuildDstasTransferTx`, `BuildTransferTx`, `BuildSplitTx` |
336
344
 
345
+ ## Strict mode (optional hardening)
346
+
347
+ Strict mode is opt-in and keeps legacy runtime behavior unchanged until enabled.
348
+
349
+ ```ts
350
+ import { configureStrictMode } from "dxs-stas-sdk";
351
+
352
+ configureStrictMode({
353
+ strictTxParse: true,
354
+ strictOutPointValidation: true,
355
+ strictFeeRateValidation: true,
356
+ strictPresetUnlockingScript: true,
357
+ strictMultisigKeys: true,
358
+ strictScriptReader: true,
359
+ strictScriptEvaluation: true,
360
+ maxFeeRateSatsPerByte: 5,
361
+ scriptEvaluationLimits: {
362
+ maxScriptSizeBytes: 100000,
363
+ maxOps: 50000,
364
+ maxStackDepth: 1000,
365
+ maxElementSizeBytes: 1024 * 1024,
366
+ },
367
+ });
368
+ ```
369
+
337
370
  ## Author
338
371
 
339
372
  - Author: [Oleg Panagushin](https://github.com/panagushin)
@@ -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;AAEjC,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;IAUxB,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,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"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OutPointFull = exports.OutPoint = void 0;
4
4
  const transaction_1 = require("../transaction");
5
5
  const script_type_1 = require("./script-type");
6
+ const strict_mode_1 = require("../security/strict-mode");
7
+ const locking_script_reader_1 = require("../script/read/locking-script-reader");
6
8
  class OutPoint {
7
9
  constructor(txId, vout, lockignScript, satoshis, address, scriptType) {
8
10
  this.toString = () => `${this.TxId}:${this.Vout}`;
@@ -12,6 +14,15 @@ class OutPoint {
12
14
  this.Satoshis = satoshis;
13
15
  this.Address = address;
14
16
  this.ScriptType = scriptType;
17
+ if ((0, strict_mode_1.getStrictModeConfig)().strictOutPointValidation) {
18
+ const reader = locking_script_reader_1.LockingScriptReader.read(lockignScript);
19
+ if (reader.ScriptType !== scriptType) {
20
+ throw new Error(`OutPoint scriptType mismatch: expected ${scriptType}, got ${reader.ScriptType}`);
21
+ }
22
+ if (reader.Address && reader.Address.Value !== address.Value) {
23
+ throw new Error(`OutPoint address mismatch: expected ${address.Value}, got ${reader.Address.Value}`);
24
+ }
25
+ }
15
26
  }
16
27
  }
17
28
  exports.OutPoint = OutPoint;
@@ -1 +1 @@
1
- {"version":3,"file":"out-point.js","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAEnD,+CAA2C;AAI3C,MAAa,QAAQ;IASnB,YACE,IAAY,EACZ,IAAY,EACZ,aAAoB,EACpB,QAAgB,EAChB,OAAgB,EAChB,UAAsB;QAgBxB,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAd3C,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;IAC/B,CAAC;;AAvBH,4BAgCC;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,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"}
@@ -6,7 +6,8 @@ export type TokenSchemeOptions = {
6
6
  freeze?: boolean;
7
7
  confiscation?: boolean;
8
8
  isDivisible?: boolean;
9
- authority?: TokenAuthority;
9
+ freezeAuthority?: TokenAuthority;
10
+ confiscationAuthority?: TokenAuthority;
10
11
  };
11
12
  export declare class TokenScheme {
12
13
  Name: string;
@@ -16,7 +17,8 @@ export declare class TokenScheme {
16
17
  Freeze: boolean;
17
18
  Confiscation: boolean;
18
19
  IsDivisible: boolean;
19
- Authority?: TokenAuthority;
20
+ FreezeAuthority?: TokenAuthority;
21
+ ConfiscationAuthority?: TokenAuthority;
20
22
  constructor(name: string, tokenId: string, symbol: string, satoshisPerToken: number, options?: TokenSchemeOptions);
21
23
  toJson: () => string;
22
24
  toBytes: () => Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"token-scheme.d.ts","sourceRoot":"","sources":["../../src/bitcoin/token-scheme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF,qBAAa,WAAW;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;gBAGzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE,kBAAuB;IAYlC,MAAM,eAUD;IAEL,OAAO,mBAAiD;CACzD"}
1
+ {"version":3,"file":"token-scheme.d.ts","sourceRoot":"","sources":["../../src/bitcoin/token-scheme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,qBAAqB,CAAC,EAAE,cAAc,CAAC;CACxC,CAAC;AAEF,qBAAa,WAAW;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,qBAAqB,CAAC,EAAE,cAAc,CAAC;gBAGrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE,kBAAuB;IAalC,MAAM,eAWD;IAEL,OAAO,mBAAiD;CACzD"}
@@ -11,7 +11,8 @@ class TokenScheme {
11
11
  freeze: this.Freeze,
12
12
  confiscation: this.Confiscation,
13
13
  isDivisible: this.IsDivisible,
14
- authority: this.Authority,
14
+ freezeAuthority: this.FreezeAuthority,
15
+ confiscationAuthority: this.ConfiscationAuthority,
15
16
  });
16
17
  this.toBytes = () => new TextEncoder().encode(this.toJson());
17
18
  this.Name = name;
@@ -21,7 +22,8 @@ class TokenScheme {
21
22
  this.Freeze = options.freeze === true;
22
23
  this.Confiscation = options.confiscation === true;
23
24
  this.IsDivisible = options.isDivisible === true;
24
- this.Authority = options.authority;
25
+ this.FreezeAuthority = options.freezeAuthority;
26
+ this.ConfiscationAuthority = options.confiscationAuthority;
25
27
  }
26
28
  }
27
29
  exports.TokenScheme = TokenScheme;
@@ -1 +1 @@
1
- {"version":3,"file":"token-scheme.js","sourceRoot":"","sources":["../../src/bitcoin/token-scheme.ts"],"names":[],"mappings":";;;AAYA,MAAa,WAAW;IAUtB,YACE,IAAY,EACZ,OAAe,EACf,MAAc,EACd,gBAAwB,EACxB,UAA8B,EAAE;QAYlC,WAAM,GAAG,GAAG,EAAE,CACZ,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEL,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAtBtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;CAeF;AAxCD,kCAwCC"}
1
+ {"version":3,"file":"token-scheme.js","sourceRoot":"","sources":["../../src/bitcoin/token-scheme.ts"],"names":[],"mappings":";;;AAaA,MAAa,WAAW;IAWtB,YACE,IAAY,EACZ,OAAe,EACf,MAAc,EACd,gBAAwB,EACxB,UAA8B,EAAE;QAalC,WAAM,GAAG,GAAG,EAAE,CACZ,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC,CAAC;QAEL,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAxBtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC7D,CAAC;CAgBF;AA3CD,kCA2CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-input.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-input.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;gBAGf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,KAAK,EACtB,QAAQ,EAAE,MAAM;IAQlB,aAAa,4BAUX;CACH"}
1
+ {"version":3,"file":"transaction-input.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-input.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;gBAGf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,KAAK,EACtB,QAAQ,EAAE,MAAM;IAQlB,aAAa,4BAYX;CACH"}
@@ -7,7 +7,11 @@ class TransactionInput {
7
7
  constructor(txId, vout, unlockingScript, sequence) {
8
8
  this.tryGetAddress = () => {
9
9
  const scriptTokens = script_reader_1.ScriptReader.read(this.UnlockingScript);
10
+ if (scriptTokens.length === 0)
11
+ return undefined;
10
12
  const lastToken = scriptTokens[scriptTokens.length - 1];
13
+ if (!(lastToken === null || lastToken === void 0 ? void 0 : lastToken.Data))
14
+ return undefined;
11
15
  if (lastToken.DataLength === 33 &&
12
16
  (lastToken.Data[0] === 2 || lastToken.Data[0] === 3)) {
13
17
  return address_1.Address.fromPublicKey(lastToken.Data);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-input.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-input.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAC5D,uCAAoC;AAGpC,MAAa,gBAAgB;IAM3B,YACE,IAAY,EACZ,IAAY,EACZ,eAAsB,EACtB,QAAgB;QAQlB,kBAAa,GAAG,GAAG,EAAE;YACnB,MAAM,YAAY,GAAG,4BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAExD,IACE,SAAS,CAAC,UAAU,KAAK,EAAE;gBAC3B,CAAC,SAAS,CAAC,IAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EACtD;gBACA,OAAO,iBAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAK,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC;QAhBA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CAaF;AA7BD,4CA6BC"}
1
+ {"version":3,"file":"transaction-input.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-input.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAC5D,uCAAoC;AAGpC,MAAa,gBAAgB;IAM3B,YACE,IAAY,EACZ,IAAY,EACZ,eAAsB,EACtB,QAAgB;QAQlB,kBAAa,GAAG,GAAG,EAAE;YACnB,MAAM,YAAY,GAAG,4BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAChD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAA;gBAAE,OAAO,SAAS,CAAC;YAEvC,IACE,SAAS,CAAC,UAAU,KAAK,EAAE;gBAC3B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EACpD;gBACA,OAAO,iBAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC;QAlBA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CAeF;AA/BD,4CA+BC"}
@@ -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,KAcvC,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,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"}
package/dist/bytes.js CHANGED
@@ -29,14 +29,16 @@ exports.utf8ToBytes = utf8ToBytes;
29
29
  const bytesToUtf8 = (value) => decoder.decode(value);
30
30
  exports.bytesToUtf8 = bytesToUtf8;
31
31
  const fromHex = (value) => {
32
+ if (!/^[0-9a-fA-F]*$/.test(value)) {
33
+ throw new Error("Invalid hex string");
34
+ }
32
35
  const normalized = value.length % 2 === 0 ? value : `0${value}`;
33
36
  const length = normalized.length / 2;
34
37
  const out = new Uint8Array(length);
35
38
  for (let i = 0; i < length; i++) {
36
- const byte = Number.parseInt(normalized.slice(i * 2, i * 2 + 2), 16);
37
- if (Number.isNaN(byte)) {
38
- throw new Error("Invalid hex string");
39
- }
39
+ const hi = Number.parseInt(normalized[i * 2], 16);
40
+ const lo = Number.parseInt(normalized[i * 2 + 1], 16);
41
+ const byte = (hi << 4) | lo;
40
42
  out[i] = byte;
41
43
  }
42
44
  return out;
package/dist/bytes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAE3B,MAAM,MAAM,GAAG,CAAC,MAAe,EAAS,EAAE;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;KACxB;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAXW,QAAA,MAAM,UAWjB;AAEK,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAW,EAAE;IACnD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;KACjC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAA9D,QAAA,WAAW,eAAmD;AACpE,MAAM,WAAW,GAAG,CAAC,KAAY,EAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAA9D,QAAA,WAAW,eAAmD;AAEpE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAS,EAAE;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACf;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAdW,QAAA,OAAO,WAclB;AAEK,MAAM,KAAK,GAAG,CAAC,KAAY,EAAU,EAAE;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC9C;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB"}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export type TDstasPayoutBundle = {
17
17
  message?: string;
18
18
  devMessage?: string;
19
19
  };
20
- export type DstasSpendType = "transfer" | "split" | "merge" | "freeze" | "unfreeze" | "swap";
20
+ export type DstasSpendType = "transfer" | "split" | "merge" | "freeze" | "unfreeze" | "confiscation" | "swap";
21
21
  export type TDstasRecipient = {
22
22
  m: number;
23
23
  addresses: Address[];
@@ -69,6 +69,7 @@ export declare class DstasBundleFactory {
69
69
  createFreezeBundle: (amountSatoshis: number, recipient: TDstasRecipient, note?: Bytes[]) => Promise<TDstasPayoutBundle>;
70
70
  createUnfreezeBundle: (amountSatoshis: number, recipient: TDstasRecipient, note?: Bytes[]) => Promise<TDstasPayoutBundle>;
71
71
  createSwapBundle: (amountSatoshis: number, recipient: TDstasRecipient, note?: Bytes[]) => Promise<TDstasPayoutBundle>;
72
+ createConfiscationBundle: (amountSatoshis: number, recipient: TDstasRecipient, note?: Bytes[]) => Promise<TDstasPayoutBundle>;
72
73
  createBundle: (amountSatoshis: number, recipient: TDstasRecipient, spendType: DstasSpendType, note?: Bytes[]) => Promise<TDstasPayoutBundle>;
73
74
  private buildBundleWithResolvedFunding;
74
75
  private estimateTransactionsCount;
@@ -1 +1 @@
1
- {"version":3,"file":"dstas-bundle-factory.d.ts","sourceRoot":"","sources":["../src/dstas-bundle-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dstas-bundle-factory.d.ts","sourceRoot":"","sources":["../src/dstas-bundle-factory.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,7 @@ class DstasBundleFactory {
70
70
  });
71
71
  });
72
72
  this.createSwapBundle = (amountSatoshis, recipient, note) => __awaiter(this, void 0, void 0, function* () { return this.createBundle(amountSatoshis, recipient, "swap", note); });
73
+ this.createConfiscationBundle = (amountSatoshis, recipient, note) => __awaiter(this, void 0, void 0, function* () { return this.createBundle(amountSatoshis, recipient, "confiscation", note); });
73
74
  this.createBundle = (amountSatoshis, recipient, spendType, note) => __awaiter(this, void 0, void 0, function* () {
74
75
  const stasUtxoSet = (yield this.getStasUtxoSet(amountSatoshis)).sort((a, b) => a.Satoshis - b.Satoshis);
75
76
  const availableSatoshis = stasUtxoSet.reduce((a, x) => a + x.Satoshis, 0);
@@ -369,6 +370,7 @@ class DstasBundleFactory {
369
370
  txBuilder.addChangeOutputWithFee(feePayment.OutPoint.Address, feePayment.OutPoint.Satoshis, feeRate !== null && feeRate !== void 0 ? feeRate : transaction_factory_1.FeeRate, feeOutputIdx);
370
371
  for (const idx of stasInputIdxs) {
371
372
  const input = txBuilder.Inputs[idx];
373
+ input.AllowPresetUnlockingScript = true;
372
374
  input.UnlockingScript = this.buildUnlockingScript({
373
375
  txBuilder,
374
376
  inputIndex: idx,
@@ -1 +1 @@
1
- {"version":3,"file":"dstas-bundle-factory.js","sourceRoot":"","sources":["../src/dstas-bundle-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dstas-bundle-factory.js","sourceRoot":"","sources":["../src/dstas-bundle-factory.ts"],"names":[],"mappings":"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"}
@@ -49,12 +49,16 @@ export type TBuildDstasUnfreezeTxRequest = TBuildDstasBaseTxRequest;
49
49
  export declare const BuildDstasUnfreezeTx: (request: TBuildDstasUnfreezeTxRequest) => string;
50
50
  export type TBuildDstasSwapTxRequest = TBuildDstasBaseTxRequest;
51
51
  export declare const BuildDstasSwapTx: (request: TBuildDstasSwapTxRequest) => string;
52
+ export type TBuildDstasConfiscateTxRequest = TBuildDstasBaseTxRequest;
53
+ export declare const BuildDstasConfiscateTx: (request: TBuildDstasConfiscateTxRequest) => string;
52
54
  export type TDstasSwapDestination = {
53
55
  Satoshis: number;
54
56
  Owner: Bytes;
55
57
  TokenIdHex: string;
56
58
  Freezable: boolean;
57
- AuthorityServiceField: Bytes;
59
+ Confiscatable?: boolean;
60
+ FreezeAuthorityServiceField?: Bytes;
61
+ ConfiscationAuthorityServiceField?: Bytes;
58
62
  ActionData?: ActionDataInput;
59
63
  OptionalData?: Bytes[];
60
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dstas-factory.d.ts","sourceRoot":"","sources":["../src/dstas-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dstas-factory.d.ts","sourceRoot":"","sources":["../src/dstas-factory.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.BuildDstasMergeTx = exports.BuildDstasSplitTx = exports.BuildDstasTransferTx = exports.BuildDstasMultisigTx = exports.BuildDstasSwapFlowTx = exports.BuildDstasSwapSwapTx = exports.BuildDstasTransferSwapTx = exports.ResolveDstasSwapMode = exports.BuildDstasSwapTx = exports.BuildDstasUnfreezeTx = exports.BuildDstasFreezeTx = exports.BuildDstasIssueTxs = exports.BuildDstasBaseTx = void 0;
14
+ exports.BuildDstasMergeTx = exports.BuildDstasSplitTx = exports.BuildDstasTransferTx = exports.BuildDstasMultisigTx = exports.BuildDstasSwapFlowTx = exports.BuildDstasSwapSwapTx = exports.BuildDstasTransferSwapTx = exports.ResolveDstasSwapMode = exports.BuildDstasConfiscateTx = exports.BuildDstasSwapTx = exports.BuildDstasUnfreezeTx = exports.BuildDstasFreezeTx = exports.BuildDstasIssueTxs = exports.BuildDstasBaseTx = void 0;
15
15
  const bitcoin_1 = require("./bitcoin");
16
16
  const script_type_1 = require("./bitcoin/script-type");
17
17
  const bytes_1 = require("./bytes");
@@ -28,38 +28,73 @@ const buildStas3LockingScriptBuilder = (params) => {
28
28
  const tokens = (0, stas3_freeze_multisig_builder_1.buildStas3FreezeMultisigTokens)(params);
29
29
  return script_builder_1.ScriptBuilder.fromTokens(tokens, script_type_1.ScriptType.dstas);
30
30
  };
31
- const deriveFlagsFromScheme = (scheme) => (0, stas3_freeze_multisig_builder_1.buildStas3Flags)({ freezable: scheme.Freeze });
32
- const deriveServiceFieldsFromScheme = (scheme) => {
31
+ const deriveFlagsFromScheme = (scheme) => (0, stas3_freeze_multisig_builder_1.buildStas3Flags)({
32
+ freezable: scheme.Freeze,
33
+ confiscatable: scheme.Confiscation,
34
+ });
35
+ const isCompressedPubKey = (key) => key.length === 33 && (key[0] === 0x02 || key[0] === 0x03);
36
+ const validateMultisigPolicy = (m, n, role) => {
37
+ if (n <= 0) {
38
+ throw new Error(`${role} must define at least one public key`);
39
+ }
40
+ if (n > 5) {
41
+ throw new Error(`${role} supports at most 5 public keys, got ${n}`);
42
+ }
43
+ if (m <= 0 || m > n) {
44
+ throw new Error(`${role} has invalid threshold m=${m}, n=${n}`);
45
+ }
46
+ };
47
+ const validateMultisigPublicKeys = (keys, role) => {
48
+ const seen = new Set();
49
+ for (const keyHex of keys) {
50
+ const normalized = keyHex.toLowerCase();
51
+ const key = (0, bytes_1.fromHex)(keyHex);
52
+ if (!isCompressedPubKey(key)) {
53
+ throw new Error(`${role} public key must be a compressed SEC key`);
54
+ }
55
+ if (seen.has(normalized)) {
56
+ throw new Error(`${role} contains duplicate public keys`);
57
+ }
58
+ seen.add(normalized);
59
+ }
60
+ };
61
+ const buildAuthorityServiceField = (authority, role) => {
33
62
  var _a, _b;
34
- if (!scheme.Freeze)
35
- return [];
36
- const authority = scheme.Authority;
37
63
  const keys = (_a = authority === null || authority === void 0 ? void 0 : authority.publicKeys) !== null && _a !== void 0 ? _a : [];
38
64
  if (keys.length === 0) {
39
- throw new Error("Freeze-enabled scheme must define authority public keys for service field derivation");
65
+ throw new Error(`${role} authority must define at least one public key for service field derivation`);
40
66
  }
41
- if (((_b = authority === null || authority === void 0 ? void 0 : authority.m) !== null && _b !== void 0 ? _b : 1) !== 1) {
42
- const m = authority.m;
43
- const n = keys.length;
44
- if (m <= 0 || m > n) {
45
- throw new Error(`Freeze-enabled scheme has invalid authority threshold m=${m}, n=${n}`);
46
- }
47
- const preimage = new Uint8Array(1 + n * (1 + 33) + 1);
48
- let offset = 0;
49
- preimage[offset++] = m & 0xff;
50
- for (const keyHex of keys) {
51
- const key = (0, bytes_1.fromHex)(keyHex);
52
- if (key.length !== 33) {
53
- throw new Error(`Authority public key must be 33 bytes, got ${key.length}`);
54
- }
55
- preimage[offset++] = 0x21;
56
- preimage.set(key, offset);
57
- offset += key.length;
67
+ const m = (_b = authority === null || authority === void 0 ? void 0 : authority.m) !== null && _b !== void 0 ? _b : 1;
68
+ const n = keys.length;
69
+ validateMultisigPolicy(m, n, `${role} authority`);
70
+ validateMultisigPublicKeys(keys, `${role} authority`);
71
+ if (m === 1 && n === 1) {
72
+ return (0, hashes_1.hash160)((0, bytes_1.fromHex)(keys[0]));
73
+ }
74
+ const preimage = new Uint8Array(1 + n * (1 + 33) + 1);
75
+ let offset = 0;
76
+ preimage[offset++] = m & 0xff;
77
+ for (const keyHex of keys) {
78
+ const key = (0, bytes_1.fromHex)(keyHex);
79
+ if (key.length !== 33) {
80
+ throw new Error(`${role} authority public key must be 33 bytes`);
58
81
  }
59
- preimage[offset] = n & 0xff;
60
- return [(0, hashes_1.hash160)(preimage)];
82
+ preimage[offset++] = 0x21;
83
+ preimage.set(key, offset);
84
+ offset += key.length;
61
85
  }
62
- return [(0, hashes_1.hash160)((0, bytes_1.fromHex)(keys[0]))];
86
+ preimage[offset] = n & 0xff;
87
+ return (0, hashes_1.hash160)(preimage);
88
+ };
89
+ const deriveServiceFieldsFromScheme = (scheme) => {
90
+ const serviceFields = [];
91
+ if (scheme.Freeze) {
92
+ serviceFields.push(buildAuthorityServiceField(scheme.FreezeAuthority, "freeze"));
93
+ }
94
+ if (scheme.Confiscation) {
95
+ serviceFields.push(buildAuthorityServiceField(scheme.ConfiscationAuthority, "confiscation"));
96
+ }
97
+ return serviceFields;
63
98
  };
64
99
  const resolveLockingParams = (dest, schemeFromRequest) => {
65
100
  var _a, _b, _c, _d;
@@ -76,9 +111,8 @@ const resolveLockingParams = (dest, schemeFromRequest) => {
76
111
  if (publicKeys.length === 0) {
77
112
  throw new Error("ToOwnerMultisig.publicKeys must not be empty");
78
113
  }
79
- if (m <= 0 || m > publicKeys.length) {
80
- throw new Error(`ToOwnerMultisig has invalid threshold m=${m}, n=${publicKeys.length}`);
81
- }
114
+ validateMultisigPolicy(m, publicKeys.length, "ToOwnerMultisig");
115
+ validateMultisigPublicKeys(publicKeys, "ToOwnerMultisig");
82
116
  const preimage = new Uint8Array(1 + publicKeys.length * (1 + 33) + 1);
83
117
  let off = 0;
84
118
  preimage[off++] = m & 0xff;
@@ -154,8 +188,10 @@ const BuildDstasBaseTx = ({ stasPayments, feePayment, destinations, Scheme, spen
154
188
  const payment = stasPayments[i];
155
189
  txBuilder.Inputs[idx].DstasSpendingType = spendingType !== null && spendingType !== void 0 ? spendingType : 1;
156
190
  const unlocking = resolveUnlockingScript(payment);
157
- if (unlocking)
191
+ if (unlocking) {
192
+ txBuilder.Inputs[idx].AllowPresetUnlockingScript = true;
158
193
  txBuilder.Inputs[idx].UnlockingScript = unlocking;
194
+ }
159
195
  });
160
196
  return txBuilder.sign().toHex();
161
197
  };
@@ -203,6 +239,8 @@ const BuildDstasUnfreezeTx = (request) => (0, exports.BuildDstasBaseTx)(Object.a
203
239
  exports.BuildDstasUnfreezeTx = BuildDstasUnfreezeTx;
204
240
  const BuildDstasSwapTx = (request) => (0, exports.BuildDstasBaseTx)(Object.assign(Object.assign({}, request), { spendingType: 4 }));
205
241
  exports.BuildDstasSwapTx = BuildDstasSwapTx;
242
+ const BuildDstasConfiscateTx = (request) => (0, exports.BuildDstasBaseTx)(Object.assign(Object.assign({}, request), { spendingType: 3 }));
243
+ exports.BuildDstasConfiscateTx = BuildDstasConfiscateTx;
206
244
  const hasSwapActionData = (payment) => {
207
245
  var _a, _b;
208
246
  const reader = locking_script_reader_1.LockingScriptReader.read(payment.OutPoint.LockignScript);
@@ -219,17 +257,33 @@ const ResolveDstasSwapMode = (stasPayments) => {
219
257
  exports.ResolveDstasSwapMode = ResolveDstasSwapMode;
220
258
  const toSwapFlowDestination = (value) => {
221
259
  var _a;
222
- return ({
260
+ if (value.Freezable && !value.FreezeAuthorityServiceField) {
261
+ throw new Error("FreezeAuthorityServiceField is required when Freezable=true");
262
+ }
263
+ if (value.Confiscatable && !value.ConfiscationAuthorityServiceField) {
264
+ throw new Error("ConfiscationAuthorityServiceField is required when Confiscatable=true");
265
+ }
266
+ return {
223
267
  Satoshis: value.Satoshis,
224
268
  LockingParams: {
225
269
  owner: value.Owner,
226
270
  actionData: value.ActionData !== undefined ? value.ActionData : null,
227
271
  redemptionPkh: (0, bytes_1.fromHex)(value.TokenIdHex),
228
- flags: (0, stas3_freeze_multisig_builder_1.buildStas3Flags)({ freezable: value.Freezable }),
229
- serviceFields: [value.AuthorityServiceField],
272
+ flags: (0, stas3_freeze_multisig_builder_1.buildStas3Flags)({
273
+ freezable: value.Freezable,
274
+ confiscatable: value.Confiscatable === true,
275
+ }),
276
+ serviceFields: [
277
+ ...(value.Freezable
278
+ ? [value.FreezeAuthorityServiceField]
279
+ : []),
280
+ ...(value.Confiscatable
281
+ ? [value.ConfiscationAuthorityServiceField]
282
+ : []),
283
+ ],
230
284
  optionalData: (_a = value.OptionalData) !== null && _a !== void 0 ? _a : [],
231
285
  },
232
- });
286
+ };
233
287
  };
234
288
  const BuildDstasTransferSwapTx = ({ stasPayments, feePayment, destinations, note, feeRate, omitChangeOutput, }) => (0, exports.BuildDstasBaseTx)({
235
289
  stasPayments,