@xyo-network/xl1-protocol 5.6.2 → 5.7.0

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 (23) hide show
  1. package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts +17 -0
  2. package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts.map +1 -1
  3. package/dist/neutral/modules/protocol-model/index.d.ts +1 -0
  4. package/dist/neutral/modules/protocol-model/index.d.ts.map +1 -1
  5. package/dist/neutral/modules/protocol-model/signature/canonicalSignature.d.ts +39 -0
  6. package/dist/neutral/modules/protocol-model/signature/canonicalSignature.d.ts.map +1 -0
  7. package/dist/neutral/modules/protocol-model/signature/index.d.ts +2 -0
  8. package/dist/neutral/modules/protocol-model/signature/index.d.ts.map +1 -0
  9. package/dist/neutral/modules/validation/block/validators/BlockTransactionUniquenessValidator.d.ts +23 -0
  10. package/dist/neutral/modules/validation/block/validators/BlockTransactionUniquenessValidator.d.ts.map +1 -0
  11. package/dist/neutral/modules/validation/block/validators/index.d.ts +1 -0
  12. package/dist/neutral/modules/validation/block/validators/index.d.ts.map +1 -1
  13. package/dist/neutral/modules/validation/transaction/validateTransaction.d.ts.map +1 -1
  14. package/dist/neutral/modules/validation/transaction/validators/TransactionSignatureCanonicalityValidator.d.ts +22 -0
  15. package/dist/neutral/modules/validation/transaction/validators/TransactionSignatureCanonicalityValidator.d.ts.map +1 -0
  16. package/dist/neutral/modules/validation/transaction/validators/index.d.ts +1 -0
  17. package/dist/neutral/modules/validation/transaction/validators/index.d.ts.map +1 -1
  18. package/dist/neutral/protocol-lib.mjs.map +2 -2
  19. package/dist/neutral/protocol-model.mjs +32 -0
  20. package/dist/neutral/protocol-model.mjs.map +3 -3
  21. package/dist/neutral/validation.mjs +109 -38
  22. package/dist/neutral/validation.mjs.map +4 -4
  23. package/package.json +1 -1
@@ -2204,6 +2204,33 @@ var TransactionRejectionZod = z73.extend(
2204
2204
  var isTransactionRejection = zodIsFactory48(TransactionRejectionZod);
2205
2205
  var asTransactionRejection = zodAsFactory50(TransactionRejectionZod, "asTransactionRejection");
2206
2206
  var toTransactionRejection = zodToFactory49(TransactionRejectionZod, "toTransactionRejection");
2207
+
2208
+ // src/modules/protocol-model/signature/canonicalSignature.ts
2209
+ var SECP256K1_N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141n;
2210
+ var SECP256K1_HALF_N = SECP256K1_N / 2n;
2211
+ var COMPACT_SIGNATURE_HEX_LENGTH = 128;
2212
+ var S_HEX_OFFSET = 64;
2213
+ function stripPrefix(signature) {
2214
+ return signature.startsWith("0x") || signature.startsWith("0X") ? signature.slice(2) : signature;
2215
+ }
2216
+ function signatureS(signature) {
2217
+ const hex = stripPrefix(signature);
2218
+ if (hex.length !== COMPACT_SIGNATURE_HEX_LENGTH || !/^[0-9a-f]+$/i.test(hex)) return void 0;
2219
+ return BigInt(`0x${hex.slice(S_HEX_OFFSET)}`);
2220
+ }
2221
+ function isCanonicalSignature(signature) {
2222
+ if (typeof signature !== "string") return false;
2223
+ const s = signatureS(signature);
2224
+ return s !== void 0 && s > 0n && s <= SECP256K1_HALF_N;
2225
+ }
2226
+ function normalizeSignature(signature) {
2227
+ const s = signatureS(signature);
2228
+ if (s === void 0 || s <= SECP256K1_HALF_N) return signature;
2229
+ const hex = stripPrefix(signature);
2230
+ const prefix = hex === signature ? "" : signature.slice(0, 2);
2231
+ const flipped = (SECP256K1_N - s).toString(16).padStart(64, "0");
2232
+ return `${prefix}${hex.slice(0, S_HEX_OFFSET)}${flipped}`;
2233
+ }
2207
2234
  export {
2208
2235
  AccountBalanceConfigZod,
2209
2236
  AccountBalanceHistoryItemZod,
@@ -2354,6 +2381,8 @@ export {
2354
2381
  RequestedPermissionZod,
2355
2382
  RewardsRangeOptionsZod,
2356
2383
  RuleIds,
2384
+ SECP256K1_HALF_N,
2385
+ SECP256K1_N,
2357
2386
  SequenceFromStringZod,
2358
2387
  SequenceToStringZod,
2359
2388
  SignedBlockBoundWitnessWithHashMetaZod,
@@ -2607,6 +2636,7 @@ export {
2607
2636
  isBridgeSourceObservation,
2608
2637
  isCandidatePair,
2609
2638
  isCandidateSeen,
2639
+ isCanonicalSignature,
2610
2640
  isChainId,
2611
2641
  isChainQualification,
2612
2642
  isChainQualifiedConfig,
@@ -2692,8 +2722,10 @@ export {
2692
2722
  isXL1,
2693
2723
  isXl1PayloadVersionSupported,
2694
2724
  minTransactionFees,
2725
+ normalizeSignature,
2695
2726
  reportableRuleId,
2696
2727
  ruleActivationStateAt,
2728
+ signatureS,
2697
2729
  stepSize,
2698
2730
  toAttoXL1,
2699
2731
  toBlockBoundWitness,