@xyo-network/xl1-protocol 5.6.1 → 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.
- package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts +17 -0
- package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/index.d.ts +1 -0
- package/dist/neutral/modules/protocol-model/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/signature/canonicalSignature.d.ts +39 -0
- package/dist/neutral/modules/protocol-model/signature/canonicalSignature.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/signature/index.d.ts +2 -0
- package/dist/neutral/modules/protocol-model/signature/index.d.ts.map +1 -0
- package/dist/neutral/modules/validation/block/validators/BlockTransactionUniquenessValidator.d.ts +23 -0
- package/dist/neutral/modules/validation/block/validators/BlockTransactionUniquenessValidator.d.ts.map +1 -0
- package/dist/neutral/modules/validation/block/validators/index.d.ts +1 -0
- package/dist/neutral/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/neutral/modules/validation/transaction/validateTransaction.d.ts.map +1 -1
- package/dist/neutral/modules/validation/transaction/validators/TransactionSignatureCanonicalityValidator.d.ts +22 -0
- package/dist/neutral/modules/validation/transaction/validators/TransactionSignatureCanonicalityValidator.d.ts.map +1 -0
- package/dist/neutral/modules/validation/transaction/validators/index.d.ts +1 -0
- package/dist/neutral/modules/validation/transaction/validators/index.d.ts.map +1 -1
- package/dist/neutral/protocol-lib.mjs.map +2 -2
- package/dist/neutral/protocol-model.mjs +32 -0
- package/dist/neutral/protocol-model.mjs.map +3 -3
- package/dist/neutral/validation.mjs +109 -38
- package/dist/neutral/validation.mjs.map +4 -4
- 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,
|