@btc-vision/transaction 1.7.7 → 1.7.10
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/browser/_version.d.ts +1 -0
- package/browser/chain/ChainData.d.ts +4 -0
- package/browser/{src/epoch → epoch}/interfaces/IChallengeSolution.d.ts +4 -4
- package/browser/{src/generators → generators}/Features.d.ts +6 -1
- package/browser/{src/generators → generators}/Generator.d.ts +1 -0
- package/browser/generators/MLDSAData.d.ts +15 -0
- package/browser/index.js +1 -1
- package/browser/{src/keypair → keypair}/Address.d.ts +9 -3
- package/browser/{src/keypair → keypair}/MessageSigner.d.ts +9 -0
- package/browser/{src/opnet.d.ts → opnet.d.ts} +1 -0
- package/browser/{src/transaction → transaction}/browser/Web3Provider.d.ts +15 -4
- package/browser/transaction/browser/types/OPWallet.d.ts +6 -0
- package/browser/{src/transaction → transaction}/builders/CustomScriptTransaction.d.ts +1 -0
- package/browser/{src/transaction → transaction}/builders/DeploymentTransaction.d.ts +1 -0
- package/browser/{src/transaction → transaction}/builders/TransactionBuilder.d.ts +4 -0
- package/browser/{src/transaction → transaction}/interfaces/ITransactionParameters.d.ts +3 -0
- package/browser/{src/transaction → transaction}/shared/TweakedTransaction.d.ts +6 -0
- package/browser/{src/utxo → utxo}/OPNetLimitedProvider.d.ts +1 -0
- package/build/_version.d.ts +1 -1
- package/build/_version.js +1 -1
- package/build/chain/ChainData.d.ts +4 -0
- package/build/chain/ChainData.js +20 -0
- package/build/epoch/ChallengeSolution.js +4 -4
- package/build/epoch/interfaces/IChallengeSolution.d.ts +4 -4
- package/build/generators/Features.d.ts +6 -1
- package/build/generators/Features.js +1 -0
- package/build/generators/Generator.d.ts +1 -0
- package/build/generators/Generator.js +24 -2
- package/build/generators/MLDSAData.d.ts +15 -0
- package/build/generators/MLDSAData.js +19 -0
- package/build/generators/builders/CalldataGenerator.js +1 -1
- package/build/generators/builders/DeploymentGenerator.js +1 -1
- package/build/generators/builders/P2WDAGenerator.js +1 -1
- package/build/keypair/Address.d.ts +9 -3
- package/build/keypair/Address.js +63 -38
- package/build/keypair/MessageSigner.d.ts +9 -0
- package/build/keypair/MessageSigner.js +101 -3
- package/build/opnet.d.ts +1 -0
- package/build/opnet.js +1 -0
- package/build/transaction/TransactionFactory.js +3 -0
- package/build/transaction/browser/Web3Provider.d.ts +15 -4
- package/build/transaction/browser/types/OPWallet.d.ts +2 -10
- package/build/transaction/browser/types/OPWallet.js +4 -2
- package/build/transaction/builders/CustomScriptTransaction.d.ts +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +3 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +26 -1
- package/build/transaction/builders/InteractionTransaction.js +14 -1
- package/build/transaction/builders/InteractionTransactionP2WDA.js +14 -1
- package/build/transaction/builders/TransactionBuilder.d.ts +4 -0
- package/build/transaction/builders/TransactionBuilder.js +77 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +3 -0
- package/build/transaction/shared/P2TR_MS.js +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +6 -0
- package/build/transaction/shared/TweakedTransaction.js +19 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +1 -0
- package/build/utxo/OPNetLimitedProvider.js +11 -1
- package/eslint.config.js +2 -1
- package/package.json +1 -1
- package/src/_version.ts +1 -1
- package/src/chain/ChainData.ts +32 -0
- package/src/epoch/ChallengeSolution.ts +4 -4
- package/src/epoch/interfaces/IChallengeSolution.ts +4 -4
- package/src/generators/Features.ts +8 -2
- package/src/generators/Generator.ts +35 -2
- package/src/generators/MLDSAData.ts +30 -0
- package/src/generators/builders/CalldataGenerator.ts +1 -1
- package/src/generators/builders/DeploymentGenerator.ts +2 -1
- package/src/generators/builders/LegacyCalldataGenerator.ts +1 -0
- package/src/generators/builders/P2WDAGenerator.ts +5 -1
- package/src/keypair/Address.ts +78 -38
- package/src/keypair/MessageSigner.ts +214 -15
- package/src/opnet.ts +2 -0
- package/src/transaction/TransactionFactory.ts +3 -0
- package/src/transaction/browser/Web3Provider.ts +64 -4
- package/src/transaction/browser/types/OPWallet.ts +6 -53
- package/src/transaction/builders/CustomScriptTransaction.ts +4 -0
- package/src/transaction/builders/DeploymentTransaction.ts +36 -8
- package/src/transaction/builders/InteractionTransaction.ts +17 -7
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +17 -7
- package/src/transaction/builders/TransactionBuilder.ts +107 -0
- package/src/transaction/interfaces/ITransactionParameters.ts +12 -0
- package/src/transaction/shared/P2TR_MS.ts +1 -0
- package/src/transaction/shared/TweakedTransaction.ts +35 -0
- package/src/utxo/OPNetLimitedProvider.ts +19 -2
- package/test/address.test.ts +18 -20
- package/test/addressmap.test.ts +783 -0
- package/test/addressverificator-mldsa.test.ts +40 -16
- package/test/messagesigner-mldsa.test.ts +50 -50
- package/test/messagesigner-schnorr.test.ts +40 -40
- package/tsconfig.webpack.json +2 -6
- package/webpack.config.js +1 -1
- package/browser/src/_version.d.ts +0 -1
- package/browser/src/transaction/browser/types/OPWallet.d.ts +0 -14
- package/browser/test/address.test.d.ts +0 -1
- package/browser/test/addressverificator-mldsa.test.d.ts +0 -1
- package/browser/test/derivePath.test.d.ts +0 -1
- package/browser/test/fastmap-setall.test.d.ts +0 -1
- package/browser/test/fastmap.test.d.ts +0 -1
- package/browser/test/messagesigner-mldsa.test.d.ts +0 -1
- package/browser/test/messagesigner-schnorr.test.d.ts +0 -1
- package/browser/test/network-awareness.test.d.ts +0 -1
- package/browser/test/old/FastBigIntMap.d.ts +0 -18
- package/browser/test/oldfastmap.test.d.ts +0 -1
- /package/browser/{src/abi → abi}/ABICoder.d.ts +0 -0
- /package/browser/{src/buffer → buffer}/BinaryReader.d.ts +0 -0
- /package/browser/{src/buffer → buffer}/BinaryWriter.d.ts +0 -0
- /package/browser/{src/bytecode → bytecode}/Compressor.d.ts +0 -0
- /package/browser/{src/consensus → consensus}/Consensus.d.ts +0 -0
- /package/browser/{src/consensus → consensus}/ConsensusConfig.d.ts +0 -0
- /package/browser/{src/consensus → consensus}/metadata/RoswellConsensus.d.ts +0 -0
- /package/browser/{src/crypto → crypto}/crypto-browser.d.ts +0 -0
- /package/browser/{src/crypto → crypto}/crypto.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/AddressMap.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/AddressSet.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/CustomMap.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/DeterministicMap.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/DeterministicSet.d.ts +0 -0
- /package/browser/{src/deterministic → deterministic}/FastMap.d.ts +0 -0
- /package/browser/{src/epoch → epoch}/ChallengeSolution.d.ts +0 -0
- /package/browser/{src/epoch → epoch}/validator/EpochValidator.d.ts +0 -0
- /package/browser/{src/event → event}/NetEvent.d.ts +0 -0
- /package/browser/{src/generators → generators}/AddressGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/CalldataGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/CustomGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/DeploymentGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/LegacyCalldataGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/MultiSignGenerator.d.ts +0 -0
- /package/browser/{src/generators → generators}/builders/P2WDAGenerator.d.ts +0 -0
- /package/browser/{src/index.d.ts → index.d.ts} +0 -0
- /package/browser/{src/keypair → keypair}/AddressVerificator.d.ts +0 -0
- /package/browser/{src/keypair → keypair}/EcKeyPair.d.ts +0 -0
- /package/browser/{src/keypair → keypair}/Secp256k1PointDeriver.d.ts +0 -0
- /package/browser/{src/keypair → keypair}/Wallet.d.ts +0 -0
- /package/browser/{src/keypair → keypair}/interfaces/IWallet.d.ts +0 -0
- /package/browser/{src/metadata → metadata}/ContractBaseMetadata.d.ts +0 -0
- /package/browser/{src/metadata → metadata}/tokens.d.ts +0 -0
- /package/browser/{src/mnemonic → mnemonic}/BIPStandard.d.ts +0 -0
- /package/browser/{src/mnemonic → mnemonic}/Mnemonic.d.ts +0 -0
- /package/browser/{src/mnemonic → mnemonic}/MnemonicStrength.d.ts +0 -0
- /package/browser/{src/network → network}/ChainId.d.ts +0 -0
- /package/browser/{src/p2wda → p2wda}/P2WDADetector.d.ts +0 -0
- /package/browser/{src/signer → signer}/SignerUtils.d.ts +0 -0
- /package/browser/{src/signer → signer}/TweakedSigner.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/ContractAddress.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/TransactionFactory.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/browser/BrowserSignerBase.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/browser/extensions/UnisatSigner.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/browser/extensions/XverseSigner.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/browser/types/Unisat.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/browser/types/Xverse.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/CancelTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/ChallengeSolutionTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/FundingTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/InteractionTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/InteractionTransactionP2WDA.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/MultiSignTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/builders/SharedInteractionTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/enums/TransactionType.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/interfaces/Tap.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/mineable/IP2WSHAddress.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/mineable/TimelockGenerator.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/processor/PsbtTransaction.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/psbt/PSBTTypes.d.ts +0 -0
- /package/browser/{src/transaction → transaction}/shared/P2TR_MS.d.ts +0 -0
- /package/browser/{src/utils → utils}/BitcoinUtils.d.ts +0 -0
- /package/browser/{src/utils → utils}/BufferHelper.d.ts +0 -0
- /package/browser/{src/utils → utils}/StringToBuffer.d.ts +0 -0
- /package/browser/{src/utils → utils}/lengths.d.ts +0 -0
- /package/browser/{src/utils → utils}/types.d.ts +0 -0
- /package/browser/{src/utxo → utxo}/interfaces/BroadcastResponse.d.ts +0 -0
- /package/browser/{src/utxo → utxo}/interfaces/IUTXO.d.ts +0 -0
- /package/browser/{src/verification → verification}/TapscriptVerificator.d.ts +0 -0
|
@@ -204,9 +204,12 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
204
204
|
const wallet = mnemonic.derive(0);
|
|
205
205
|
const p2opAddress = wallet.address.p2op(networks.bitcoin);
|
|
206
206
|
|
|
207
|
-
const
|
|
207
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
208
|
+
p2opAddress,
|
|
209
|
+
networks.bitcoin,
|
|
210
|
+
);
|
|
208
211
|
|
|
209
|
-
expect(
|
|
212
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
210
213
|
});
|
|
211
214
|
|
|
212
215
|
it('should validate testnet P2OP address', () => {
|
|
@@ -219,9 +222,12 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
219
222
|
const wallet = mnemonic.derive(0);
|
|
220
223
|
const p2opAddress = wallet.address.p2op(networks.testnet);
|
|
221
224
|
|
|
222
|
-
const
|
|
225
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
226
|
+
p2opAddress,
|
|
227
|
+
networks.testnet,
|
|
228
|
+
);
|
|
223
229
|
|
|
224
|
-
expect(
|
|
230
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
225
231
|
});
|
|
226
232
|
|
|
227
233
|
it('should validate regtest P2OP address', () => {
|
|
@@ -234,9 +240,12 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
234
240
|
const wallet = mnemonic.derive(0);
|
|
235
241
|
const p2opAddress = wallet.address.p2op(networks.regtest);
|
|
236
242
|
|
|
237
|
-
const
|
|
243
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
244
|
+
p2opAddress,
|
|
245
|
+
networks.regtest,
|
|
246
|
+
);
|
|
238
247
|
|
|
239
|
-
expect(
|
|
248
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
240
249
|
});
|
|
241
250
|
|
|
242
251
|
it('should reject P2TR address as P2OP', () => {
|
|
@@ -249,9 +258,12 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
249
258
|
const wallet = mnemonic.derive(0);
|
|
250
259
|
const p2trAddress = wallet.p2tr;
|
|
251
260
|
|
|
252
|
-
const
|
|
261
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
262
|
+
p2trAddress,
|
|
263
|
+
networks.bitcoin,
|
|
264
|
+
);
|
|
253
265
|
|
|
254
|
-
expect(
|
|
266
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
255
267
|
});
|
|
256
268
|
|
|
257
269
|
it('should reject P2WPKH address as P2OP', () => {
|
|
@@ -264,22 +276,31 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
264
276
|
const wallet = mnemonic.derive(0);
|
|
265
277
|
const p2wpkhAddress = wallet.p2wpkh;
|
|
266
278
|
|
|
267
|
-
const
|
|
279
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
280
|
+
p2wpkhAddress,
|
|
281
|
+
networks.bitcoin,
|
|
282
|
+
);
|
|
268
283
|
|
|
269
|
-
expect(
|
|
284
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
270
285
|
});
|
|
271
286
|
|
|
272
287
|
it('should reject invalid address string', () => {
|
|
273
288
|
const invalidAddress = 'not a valid address';
|
|
274
|
-
const
|
|
289
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
290
|
+
invalidAddress,
|
|
291
|
+
networks.bitcoin,
|
|
292
|
+
);
|
|
275
293
|
|
|
276
|
-
expect(
|
|
294
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
277
295
|
});
|
|
278
296
|
|
|
279
297
|
it('should reject empty string', () => {
|
|
280
|
-
const
|
|
298
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
299
|
+
'',
|
|
300
|
+
networks.bitcoin,
|
|
301
|
+
);
|
|
281
302
|
|
|
282
|
-
expect(
|
|
303
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
283
304
|
});
|
|
284
305
|
|
|
285
306
|
it('should reject address on wrong network', () => {
|
|
@@ -293,9 +314,12 @@ describe('AddressVerificator ML-DSA Support', () => {
|
|
|
293
314
|
const p2opAddress = wallet.address.p2op(networks.bitcoin);
|
|
294
315
|
|
|
295
316
|
// Try to validate mainnet address on testnet
|
|
296
|
-
const
|
|
317
|
+
const isValidLegacyPublicKey = AddressVerificator.isValidP2OPAddress(
|
|
318
|
+
p2opAddress,
|
|
319
|
+
networks.testnet,
|
|
320
|
+
);
|
|
297
321
|
|
|
298
|
-
expect(
|
|
322
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
299
323
|
});
|
|
300
324
|
});
|
|
301
325
|
|
|
@@ -410,13 +410,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
410
410
|
const message = 'Hello, OPNet!';
|
|
411
411
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
412
412
|
|
|
413
|
-
const
|
|
413
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
414
414
|
wallet.mldsaKeypair,
|
|
415
415
|
message,
|
|
416
416
|
signed.signature,
|
|
417
417
|
);
|
|
418
418
|
|
|
419
|
-
expect(
|
|
419
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
420
420
|
});
|
|
421
421
|
|
|
422
422
|
it('should verify signature with empty string', () => {
|
|
@@ -431,13 +431,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
431
431
|
const message = '';
|
|
432
432
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
433
433
|
|
|
434
|
-
const
|
|
434
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
435
435
|
wallet.mldsaKeypair,
|
|
436
436
|
message,
|
|
437
437
|
signed.signature,
|
|
438
438
|
);
|
|
439
439
|
|
|
440
|
-
expect(
|
|
440
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
441
441
|
});
|
|
442
442
|
|
|
443
443
|
it('should verify signature with Unicode string', () => {
|
|
@@ -452,13 +452,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
452
452
|
const message = '你好世界 🌍';
|
|
453
453
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
454
454
|
|
|
455
|
-
const
|
|
455
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
456
456
|
wallet.mldsaKeypair,
|
|
457
457
|
message,
|
|
458
458
|
signed.signature,
|
|
459
459
|
);
|
|
460
460
|
|
|
461
|
-
expect(
|
|
461
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
462
462
|
});
|
|
463
463
|
|
|
464
464
|
it('should verify signature with emoji string', () => {
|
|
@@ -473,13 +473,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
473
473
|
const message = '🚀🌙⭐';
|
|
474
474
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
475
475
|
|
|
476
|
-
const
|
|
476
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
477
477
|
wallet.mldsaKeypair,
|
|
478
478
|
message,
|
|
479
479
|
signed.signature,
|
|
480
480
|
);
|
|
481
481
|
|
|
482
|
-
expect(
|
|
482
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
483
483
|
});
|
|
484
484
|
});
|
|
485
485
|
|
|
@@ -496,13 +496,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
496
496
|
const message = Buffer.from('Hello, Buffer!', 'utf-8');
|
|
497
497
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
498
498
|
|
|
499
|
-
const
|
|
499
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
500
500
|
wallet.mldsaKeypair,
|
|
501
501
|
message,
|
|
502
502
|
signed.signature,
|
|
503
503
|
);
|
|
504
504
|
|
|
505
|
-
expect(
|
|
505
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
506
506
|
});
|
|
507
507
|
|
|
508
508
|
it('should verify signature with Buffer from hex', () => {
|
|
@@ -517,13 +517,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
517
517
|
const message = Buffer.from('deadbeef', 'hex');
|
|
518
518
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
519
519
|
|
|
520
|
-
const
|
|
520
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
521
521
|
wallet.mldsaKeypair,
|
|
522
522
|
message,
|
|
523
523
|
signed.signature,
|
|
524
524
|
);
|
|
525
525
|
|
|
526
|
-
expect(
|
|
526
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
527
527
|
});
|
|
528
528
|
|
|
529
529
|
it('should verify signature with binary Buffer', () => {
|
|
@@ -538,13 +538,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
538
538
|
const message = Buffer.from([0x00, 0x01, 0x02, 0xff]);
|
|
539
539
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
540
540
|
|
|
541
|
-
const
|
|
541
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
542
542
|
wallet.mldsaKeypair,
|
|
543
543
|
message,
|
|
544
544
|
signed.signature,
|
|
545
545
|
);
|
|
546
546
|
|
|
547
|
-
expect(
|
|
547
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
548
548
|
});
|
|
549
549
|
|
|
550
550
|
it('should verify signature with empty Buffer', () => {
|
|
@@ -559,13 +559,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
559
559
|
const message = Buffer.alloc(0);
|
|
560
560
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
561
561
|
|
|
562
|
-
const
|
|
562
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
563
563
|
wallet.mldsaKeypair,
|
|
564
564
|
message,
|
|
565
565
|
signed.signature,
|
|
566
566
|
);
|
|
567
567
|
|
|
568
|
-
expect(
|
|
568
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
569
569
|
});
|
|
570
570
|
|
|
571
571
|
it('should verify signature with Buffer containing null bytes', () => {
|
|
@@ -580,13 +580,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
580
580
|
const message = Buffer.from([0x00, 0x01, 0x00, 0x02, 0x00]);
|
|
581
581
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
582
582
|
|
|
583
|
-
const
|
|
583
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
584
584
|
wallet.mldsaKeypair,
|
|
585
585
|
message,
|
|
586
586
|
signed.signature,
|
|
587
587
|
);
|
|
588
588
|
|
|
589
|
-
expect(
|
|
589
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
590
590
|
});
|
|
591
591
|
});
|
|
592
592
|
|
|
@@ -603,13 +603,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
603
603
|
const message = new Uint8Array([1, 2, 3, 4, 5]);
|
|
604
604
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
605
605
|
|
|
606
|
-
const
|
|
606
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
607
607
|
wallet.mldsaKeypair,
|
|
608
608
|
message,
|
|
609
609
|
signed.signature,
|
|
610
610
|
);
|
|
611
611
|
|
|
612
|
-
expect(
|
|
612
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
613
613
|
});
|
|
614
614
|
|
|
615
615
|
it('should verify signature with Uint8Array from TextEncoder', () => {
|
|
@@ -625,13 +625,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
625
625
|
const message = encoder.encode('Hello, TextEncoder!');
|
|
626
626
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
627
627
|
|
|
628
|
-
const
|
|
628
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
629
629
|
wallet.mldsaKeypair,
|
|
630
630
|
message,
|
|
631
631
|
signed.signature,
|
|
632
632
|
);
|
|
633
633
|
|
|
634
|
-
expect(
|
|
634
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
635
635
|
});
|
|
636
636
|
|
|
637
637
|
it('should verify signature with empty Uint8Array', () => {
|
|
@@ -646,13 +646,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
646
646
|
const message = new Uint8Array(0);
|
|
647
647
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
648
648
|
|
|
649
|
-
const
|
|
649
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
650
650
|
wallet.mldsaKeypair,
|
|
651
651
|
message,
|
|
652
652
|
signed.signature,
|
|
653
653
|
);
|
|
654
654
|
|
|
655
|
-
expect(
|
|
655
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
656
656
|
});
|
|
657
657
|
|
|
658
658
|
it('should verify signature with Uint8Array containing all byte values', () => {
|
|
@@ -670,13 +670,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
670
670
|
}
|
|
671
671
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
672
672
|
|
|
673
|
-
const
|
|
673
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
674
674
|
wallet.mldsaKeypair,
|
|
675
675
|
message,
|
|
676
676
|
signed.signature,
|
|
677
677
|
);
|
|
678
678
|
|
|
679
|
-
expect(
|
|
679
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
680
680
|
});
|
|
681
681
|
});
|
|
682
682
|
|
|
@@ -694,13 +694,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
694
694
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, messageString);
|
|
695
695
|
|
|
696
696
|
const messageBuffer = Buffer.from(messageString, 'utf-8');
|
|
697
|
-
const
|
|
697
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
698
698
|
wallet.mldsaKeypair,
|
|
699
699
|
messageBuffer,
|
|
700
700
|
signed.signature,
|
|
701
701
|
);
|
|
702
702
|
|
|
703
|
-
expect(
|
|
703
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
704
704
|
});
|
|
705
705
|
|
|
706
706
|
it('should verify signature signed with Buffer using string', () => {
|
|
@@ -716,13 +716,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
716
716
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, messageBuffer);
|
|
717
717
|
|
|
718
718
|
const messageString = 'Hello, World!';
|
|
719
|
-
const
|
|
719
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
720
720
|
wallet.mldsaKeypair,
|
|
721
721
|
messageString,
|
|
722
722
|
signed.signature,
|
|
723
723
|
);
|
|
724
724
|
|
|
725
|
-
expect(
|
|
725
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
726
726
|
});
|
|
727
727
|
|
|
728
728
|
it('should verify signature signed with Uint8Array using Buffer', () => {
|
|
@@ -738,13 +738,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
738
738
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, messageUint8);
|
|
739
739
|
|
|
740
740
|
const messageBuffer = Buffer.from(messageUint8);
|
|
741
|
-
const
|
|
741
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
742
742
|
wallet.mldsaKeypair,
|
|
743
743
|
messageBuffer,
|
|
744
744
|
signed.signature,
|
|
745
745
|
);
|
|
746
746
|
|
|
747
|
-
expect(
|
|
747
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
748
748
|
});
|
|
749
749
|
});
|
|
750
750
|
|
|
@@ -762,13 +762,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
762
762
|
const wrongMessage = 'Wrong message';
|
|
763
763
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
764
764
|
|
|
765
|
-
const
|
|
765
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
766
766
|
wallet.mldsaKeypair,
|
|
767
767
|
wrongMessage,
|
|
768
768
|
signed.signature,
|
|
769
769
|
);
|
|
770
770
|
|
|
771
|
-
expect(
|
|
771
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
772
772
|
});
|
|
773
773
|
|
|
774
774
|
it('should fail verification with wrong keypair', () => {
|
|
@@ -784,13 +784,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
784
784
|
const message = 'Hello, OPNet!';
|
|
785
785
|
const signed = MessageSigner.signMLDSAMessage(wallet1.mldsaKeypair, message);
|
|
786
786
|
|
|
787
|
-
const
|
|
787
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
788
788
|
wallet2.mldsaKeypair,
|
|
789
789
|
message,
|
|
790
790
|
signed.signature,
|
|
791
791
|
);
|
|
792
792
|
|
|
793
|
-
expect(
|
|
793
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
794
794
|
});
|
|
795
795
|
|
|
796
796
|
it('should fail verification with corrupted signature', () => {
|
|
@@ -809,13 +809,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
809
809
|
const corruptedSignature = Buffer.from(signed.signature);
|
|
810
810
|
corruptedSignature[0] ^= 0xff;
|
|
811
811
|
|
|
812
|
-
const
|
|
812
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
813
813
|
wallet.mldsaKeypair,
|
|
814
814
|
message,
|
|
815
815
|
corruptedSignature,
|
|
816
816
|
);
|
|
817
817
|
|
|
818
|
-
expect(
|
|
818
|
+
expect(isValidLegacyPublicKey).toBe(false);
|
|
819
819
|
});
|
|
820
820
|
|
|
821
821
|
it('should verify signatures across different security levels', () => {
|
|
@@ -832,13 +832,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
832
832
|
const message = `Test message for security level ${level}`;
|
|
833
833
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
834
834
|
|
|
835
|
-
const
|
|
835
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
836
836
|
wallet.mldsaKeypair,
|
|
837
837
|
message,
|
|
838
838
|
signed.signature,
|
|
839
839
|
);
|
|
840
840
|
|
|
841
|
-
expect(
|
|
841
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
842
842
|
}
|
|
843
843
|
});
|
|
844
844
|
});
|
|
@@ -862,13 +862,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
862
862
|
);
|
|
863
863
|
|
|
864
864
|
// Verify the signature
|
|
865
|
-
const
|
|
865
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
866
866
|
wallet.mldsaKeypair,
|
|
867
867
|
message,
|
|
868
868
|
signed.signature,
|
|
869
869
|
);
|
|
870
870
|
|
|
871
|
-
expect(
|
|
871
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
872
872
|
});
|
|
873
873
|
});
|
|
874
874
|
|
|
@@ -985,13 +985,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
985
985
|
const message = '';
|
|
986
986
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
987
987
|
|
|
988
|
-
const
|
|
988
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
989
989
|
wallet.mldsaKeypair,
|
|
990
990
|
message,
|
|
991
991
|
signed.signature,
|
|
992
992
|
);
|
|
993
993
|
|
|
994
|
-
expect(
|
|
994
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
995
995
|
});
|
|
996
996
|
|
|
997
997
|
it('should sign and verify very long message', () => {
|
|
@@ -1006,13 +1006,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
1006
1006
|
const message = 'A'.repeat(10000);
|
|
1007
1007
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
1008
1008
|
|
|
1009
|
-
const
|
|
1009
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
1010
1010
|
wallet.mldsaKeypair,
|
|
1011
1011
|
message,
|
|
1012
1012
|
signed.signature,
|
|
1013
1013
|
);
|
|
1014
1014
|
|
|
1015
|
-
expect(
|
|
1015
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
1016
1016
|
});
|
|
1017
1017
|
|
|
1018
1018
|
it('should sign and verify message with special characters', () => {
|
|
@@ -1027,13 +1027,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
1027
1027
|
const message = '!@#$%^&*()_+-=[]{}|;:",.<>?/~`\n\t\r';
|
|
1028
1028
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
1029
1029
|
|
|
1030
|
-
const
|
|
1030
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
1031
1031
|
wallet.mldsaKeypair,
|
|
1032
1032
|
message,
|
|
1033
1033
|
signed.signature,
|
|
1034
1034
|
);
|
|
1035
1035
|
|
|
1036
|
-
expect(
|
|
1036
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
1037
1037
|
});
|
|
1038
1038
|
|
|
1039
1039
|
it('should sign and verify Unicode message', () => {
|
|
@@ -1048,13 +1048,13 @@ describe('MessageSigner ML-DSA', () => {
|
|
|
1048
1048
|
const message = '你好世界 🌍 مرحبا العالم';
|
|
1049
1049
|
const signed = MessageSigner.signMLDSAMessage(wallet.mldsaKeypair, message);
|
|
1050
1050
|
|
|
1051
|
-
const
|
|
1051
|
+
const isValidLegacyPublicKey = MessageSigner.verifyMLDSASignature(
|
|
1052
1052
|
wallet.mldsaKeypair,
|
|
1053
1053
|
message,
|
|
1054
1054
|
signed.signature,
|
|
1055
1055
|
);
|
|
1056
1056
|
|
|
1057
|
-
expect(
|
|
1057
|
+
expect(isValidLegacyPublicKey).toBe(true);
|
|
1058
1058
|
});
|
|
1059
1059
|
});
|
|
1060
1060
|
});
|