@ledgerhq/hw-app-exchange 0.13.2 → 0.13.3-nightly.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ledgerhq/hw-app-exchange
2
2
 
3
+ ## 0.13.3-nightly.0
4
+
5
+ ### Patch Changes
6
+
7
+ - [#11779](https://github.com/LedgerHQ/ledger-live/pull/11779) [`d93c0aa`](https://github.com/LedgerHQ/ledger-live/commit/d93c0aab902bfba5b36ebdf707e88b5d3453dacb) Thanks [@ofreyssinet-ledger](https://github.com/ofreyssinet-ledger)! - Update Device Management Kit to 0.9.0 (and associated libs)
8
+
3
9
  ## 0.13.2
4
10
 
5
11
  ### Patch Changes
@@ -7,7 +7,7 @@ const bip32_path_1 = __importDefault(require("bip32-path"));
7
7
  const hw_transport_node_speculos_http_1 = __importDefault(require("@ledgerhq/hw-transport-node-speculos-http"));
8
8
  const Exchange_1 = __importDefault(require("./Exchange"));
9
9
  const crypto_1 = require("crypto");
10
- const secp256k1_1 = __importDefault(require("secp256k1"));
10
+ const secp256k1_1 = require("@noble/curves/secp256k1");
11
11
  const protobufjs_1 = __importDefault(require("protobufjs"));
12
12
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
13
13
  describe("Check Exchange until payload signature", () => {
@@ -240,7 +240,7 @@ describe("Test internal sign and verification functionality", () => {
240
240
  // Then
241
241
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", Buffer.from(msg));
242
242
  const hash = new Uint8Array(hashBuffer);
243
- expect(secp256k1_1.default.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
243
+ expect(secp256k1_1.secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
244
244
  });
245
245
  test("APDU signature generated by this test suite", async () => {
246
246
  // Given
@@ -250,7 +250,7 @@ describe("Test internal sign and verification functionality", () => {
250
250
  // Then
251
251
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", Buffer.from(msg, "hex"));
252
252
  const hash = new Uint8Array(hashBuffer);
253
- expect(secp256k1_1.default.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
253
+ expect(secp256k1_1.secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
254
254
  });
255
255
  test("APDU signature generated by external tool", async () => {
256
256
  // Given
@@ -274,7 +274,7 @@ describe("Test internal sign and verification functionality", () => {
274
274
  // Then
275
275
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", Buffer.from(msg, "hex"));
276
276
  const hash = new Uint8Array(hashBuffer);
277
- expect(secp256k1_1.default.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
277
+ expect(secp256k1_1.secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
278
278
  });
279
279
  test("APDU signature already validated", async () => {
280
280
  // Given
@@ -292,7 +292,7 @@ describe("Test internal sign and verification functionality", () => {
292
292
  // Then
293
293
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", msg);
294
294
  const hash = new Uint8Array(hashBuffer);
295
- expect(secp256k1_1.default.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
295
+ expect(secp256k1_1.secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
296
296
  });
297
297
  });
298
298
  describe("With SELL keys", () => {
@@ -307,7 +307,7 @@ describe("Test internal sign and verification functionality", () => {
307
307
  // Then
308
308
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", Buffer.from(msg));
309
309
  const hash = new Uint8Array(hashBuffer);
310
- expect(secp256k1_1.default.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
310
+ expect(secp256k1_1.secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
311
311
  });
312
312
  test("SELL verify payload signature", async () => {
313
313
  // Given
@@ -318,7 +318,7 @@ describe("Test internal sign and verification functionality", () => {
318
318
  // Then
319
319
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", Buffer.from(msg, "hex"));
320
320
  const hash = new Uint8Array(hashBuffer);
321
- expect(secp256k1_1.default.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
321
+ expect(secp256k1_1.secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
322
322
  });
323
323
  });
324
324
  });
@@ -349,14 +349,14 @@ async function appExchangeDatasetTest(signFormat) {
349
349
  let privKey;
350
350
  do {
351
351
  privKey = (0, crypto_1.randomBytes)(32);
352
- } while (!secp256k1_1.default.privateKeyVerify(privKey));
352
+ } while (!secp256k1_1.secp256k1.utils.isValidPrivateKey(privKey));
353
353
  // The expected public should not be compressed and be a full 64 length (with R and S)
354
354
  const isCompressed = false;
355
- const pubKey = secp256k1_1.default.publicKeyCreate(privKey, isCompressed);
355
+ const pubKey = secp256k1_1.secp256k1.getPublicKey(privKey, isCompressed);
356
356
  const partnerInfo = {
357
357
  name: "SWAP_TEST",
358
358
  curve: "secp256k1",
359
- publicKey: pubKey,
359
+ publicKey: Buffer.from(pubKey),
360
360
  };
361
361
  const msg = signFormat(partnerInfo);
362
362
  const sig = await signMessage(msg, LEDGER_FAKE_PRIVATE_KEY, "der");
@@ -369,11 +369,12 @@ async function appExchangeDatasetTest(signFormat) {
369
369
  }
370
370
  async function appExchangeDataset(signFormat) {
371
371
  const pubKey = Buffer.from("0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3", "hex");
372
- secp256k1_1.default.publicKeyVerify(pubKey);
372
+ // Verify public key by trying to create Point from it
373
+ secp256k1_1.secp256k1.ProjectivePoint.fromHex(pubKey);
373
374
  const partnerInfo = {
374
375
  name: "SWAP_TEST",
375
376
  curve: "secp256k1",
376
- publicKey: pubKey,
377
+ publicKey: Buffer.from(pubKey),
377
378
  };
378
379
  const msg = signFormat(partnerInfo);
379
380
  const sig = await signMessage(msg, LEDGER_FAKE_PRIVATE_KEY, "der");
@@ -386,7 +387,8 @@ async function appExchangeDataset(signFormat) {
386
387
  async function appExchangeSellDataset(signFormat) {
387
388
  const privKey = Buffer.from("308f6a5369aea611d89abf937d0ffaf0b43b457d42cbf0cf754786b3088f17ae", "hex");
388
389
  const pubKey = Buffer.from("0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3", "hex");
389
- secp256k1_1.default.publicKeyVerify(pubKey);
390
+ // Verify public key by trying to create Point from it
391
+ secp256k1_1.secp256k1.ProjectivePoint.fromHex(pubKey);
390
392
  const partnerInfo = {
391
393
  name: "SELL_TEST",
392
394
  curve: "secp256k1",
@@ -427,21 +429,22 @@ async function generateSellPayloadProtobuf(payload) {
427
429
  async function signMessage(message, privKey, sigFormat) {
428
430
  const hashBuffer = await crypto_1.subtle.digest("SHA-256", message);
429
431
  const hash = new Uint8Array(hashBuffer);
430
- const sig = secp256k1_1.default.ecdsaSign(hash, privKey).signature;
432
+ const signature = secp256k1_1.secp256k1.sign(hash, privKey, { prehash: false });
433
+ const sig = signature.toCompactRawBytes();
431
434
  if (sigFormat === "der") {
432
435
  return convertSignatureToDER(sig);
433
436
  }
434
- return sig;
437
+ return Buffer.from(sig);
435
438
  }
436
439
  function convertSignatureToDER(sig) {
437
- return secp256k1_1.default.signatureExport(sig);
440
+ return Buffer.from(secp256k1_1.secp256k1.Signature.fromCompact(sig).toDERRawBytes());
438
441
  }
439
442
  // Convert raw buffer to a JWS compatible one: '.'+base64Url(raw)
440
443
  function convertToJWSPayload(raw) {
441
444
  return Buffer.from("." + raw.toString("base64url"));
442
445
  }
443
446
  function convertSignatureFromDER(sig) {
444
- return secp256k1_1.default.signatureImport(sig);
447
+ return Buffer.from(secp256k1_1.secp256k1.Signature.fromDER(sig).toCompactRawBytes());
445
448
  }
446
449
  function bip32asBuffer(path) {
447
450
  const pathElements = !path ? [] : bip32_path_1.default.fromString(path).toPathArray();
@@ -1 +1 @@
1
- {"version":3,"file":"Exchange.integ.test.js","sourceRoot":"","sources":["../src/Exchange.integ.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAAiC;AACjC,gHAA8E;AAC9E,0DAAqE;AAErE,mCAA6C;AAC7C,0DAAkC;AAClC,4DAAkC;AAClC,gEAAqC;AAErC,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,IAAI,SAAoB,CAAC;IAEzB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,SAAS,GAAG,MAAM,yCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YAC3B,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,6BAAqB,CAAC;YAE7D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAClD,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,cAAc,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACvD,YAAY,EAAE,4CAA4C;gBAC1D,aAAa,EAAE,4CAA4C;gBAC3D,aAAa,EAAE,4CAA4C;gBAC3D,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACzD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBAC/D,mBAAmB,EAAE,aAAa;aACnC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YAEjE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAClF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACvB,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,+BAAuB,CAAC;YAE/D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAClD,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,sBAAS,CAAC,eAAe,CAAC,CAAC;YACtD,IAAI,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACrD,YAAY,EAAE,4CAA4C;gBAC1D,aAAa,EAAE,4CAA4C;gBAC3D,aAAa,EAAE,4CAA4C;gBAC3D,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACzD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBAC/D,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;aAC3E,CAAC,CAAC;YACH,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAExE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACjF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,+BAAuB,CAAC;YAE/D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAClD,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,sBAAS,CAAC,eAAe,CAAC,CAAC;YACtD,4FAA4F;YAC5F,IAAI,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACrD,YAAY,EAAE,4CAA4C;gBAC1D,YAAY,EAAE,qBAAqB;gBACnC,aAAa,EAAE,4CAA4C;gBAC3D,aAAa,EAAE,qBAAqB;gBACpC,aAAa,EAAE,4CAA4C;gBAC3D,aAAa,EAAE,qBAAqB;gBACpC,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACzD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBAC/D,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;aAC3E,CAAC,CAAC;YACH,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAErF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CACT,yCAAyC,EACzC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAC;YACF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,+BAAuB,CAAC;YAE/D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACpF,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAExF,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAChC,+PAA+P,CAChQ,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAErF,oFAAoF;YACpF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAClC,0FAA0F,EAC1F,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CACT,yCAAyC,EACzC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAC;YACF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAChC,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,+BAAuB,CAAC;YAE/D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,GACxD,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAExF,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,cAAc,GAAG,IAAI,sBAAS,CAAC,KAAK,CAAC,CAAC;YAC5C,4FAA4F;YAC5F,IAAI,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACrD,YAAY,EAAE,kDAAkD;gBAChE,aAAa,EAAE,kDAAkD;gBACjE,aAAa,EAAE,4CAA4C;gBAC3D,oEAAoE;gBACpE,qEAAqE;gBACrE,+DAA+D;gBAC/D,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACzD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBAC/D,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;aAC3E,CAAC,CAAC;YACH,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAErF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CACT,yCAAyC,EACzC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAC;YACF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;YAE3D,MAAM,SAAS,GAAG;gBAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC;gBACpE,SAAS,EAAE,MAAM,CAAC,IAAI,CACpB,8IAA8I,EAC9I,KAAK,CACN;aACF,CAAC;YACF,IAAI,iBAAiB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACxD,MAAM,QAAQ,CAAC,qBAAqB,CAClC,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,SAAS,EACnB,iBAAiB,CAClB,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,YAAoB,EAAE,EAAE;gBACrC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC3B,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjB,MAAM,SAAS,GAAG;gBAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC;gBAChD,SAAS,EAAE,MAAM,CAAC,IAAI,CACpB,gJAAgJ,EAChJ,KAAK,CACN;aACF,CAAC;YACF,iBAAiB,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACvB,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,SAAS,+BAAuB,CAAC;YAE/D,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAE3D,OAAO;YACP,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,GACxD,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAExF,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACrD,WAAW,EAAE,gBAAgB;gBAC7B,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACjD,SAAS,EAAE,4CAA4C;gBACvD,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE;oBACT,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;oBACpC,QAAQ,EAAE,CAAC;iBACZ;gBACD,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;aACzE,CAAC,CAAC;YACH,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAErF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CACT,yCAAyC,EACzC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAC;YACF,MAAM,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,kEAAkE,EAClE,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,oIAAoI,EACpI,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAClC,QAAQ;YACR,MAAM,GAAG,GAAG,+BAA+B,CAAC;YAE5C,OAAO;YACP,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,QAAQ;YACR,MAAM,GAAG,GACP,0JAA0J,CAAC;YAE7J,OAAO;YACP,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,8IAA8I,EAC9I,KAAK,CACN,CAAC;YAEF,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACzF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC3D,QAAQ;YACR,sbAAsb;YACtb,MAAM,GAAG,GACP,kKAAkK,CAAC;YACrK,MAAM,IAAI,GAAG,YAAY,CAAC;gBACxB,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,MAAM,CAAC,IAAI,CACpB,oIAAoI,EACpI,KAAK,CACN;gBACD,4DAA4D;aAC7D,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;YAE1D,OAAO;YACP,2BAA2B;YAC3B,sJAAsJ;YACtJ,WAAW;YACX,KAAK;YACL,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACzF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAClD,QAAQ;YACR,MAAM,GAAG,GAAG,gBAAgB,CAAC;gBAC3B,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,MAAM,CAAC,IAAI,CACpB,oIAAoI,EACpI,KAAK,CACN;gBACD,4DAA4D;aAC7D,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAExE,OAAO;YACP,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,gJAAgJ,EAChJ,KAAK,CACN,CAAC;YACF,0FAA0F;YAC1F,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,kEAAkE,EAClE,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,oIAAoI,EACpI,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACrD,QAAQ;YACR,MAAM,GAAG,GAAG,+BAA+B,CAAC;YAE5C,OAAO;YACP,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC/C,QAAQ;YACR,MAAM,GAAG,GACP,oTAAoT,CAAC;YAEvT,OAAO;YACP,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,kIAAkI,EAClI,KAAK,CACN,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1F,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,mBAAS,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,oGAAoG;AACpG,+DAA+D;AAC/D,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CACzC,kEAAkE,EAClE,KAAK,CACN,CAAC;AAGF,MAAM,gBAAgB,GAAsB,CAAC,IAAoB,EAAE,EAAE;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC;AACF,MAAM,YAAY,GAAsB,CAAC,IAAoB,EAAE,EAAE;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AACF,KAAK,UAAU,sBAAsB,CAAC,UAA6B;IACjE,+BAA+B;IAC/B,IAAI,OAAO,CAAC;IACZ,GAAG,CAAC;QACF,OAAO,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,QAAQ,CAAC,mBAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAC/C,sFAAsF;IACtF,MAAM,YAAY,GAAG,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,mBAAS,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,MAAM;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW;QACX,IAAI,EAAE,GAAG;QACT,aAAa,EAAE,GAAG;QAClB,cAAc,EAAE,OAAO;KACxB,CAAC;AACJ,CAAC;AACD,KAAK,UAAU,kBAAkB,CAAC,UAA6B;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,oIAAoI,EACpI,KAAK,CACN,CAAC;IACF,mBAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,MAAM;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW;QACX,IAAI,EAAE,GAAG;QACT,aAAa,EAAE,GAAG;KACnB,CAAC;AACJ,CAAC;AACD,KAAK,UAAU,sBAAsB,CAAC,UAA6B;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,kEAAkE,EAClE,KAAK,CACN,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,oIAAoI,EACpI,KAAK,CACN,CAAC;IACF,mBAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,MAAM;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW;QACX,IAAI,EAAE,GAAG;QACT,aAAa,EAAE,GAAG;QAClB,cAAc,EAAE,OAAO;KACxB,CAAC;AACJ,CAAC;AAoBD,KAAK,UAAU,2BAA2B,CAAC,OAAoB;IAC7D,MAAM,IAAI,GAAG,MAAM,oBAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAClF,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAEpE,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAeD,KAAK,UAAU,2BAA2B,CAAC,OAAoB;IAC7D,MAAM,IAAI,GAAG,MAAM,oBAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAE7D,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAGD,sFAAsF;AACtF,KAAK,UAAU,WAAW,CACxB,OAAe,EACf,OAAe,EACf,SAAoB;IAEpB,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,GAAG,GAAG,mBAAS,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAe;IAC5C,OAAO,mBAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,iEAAiE;AACjE,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAe;IAC9C,OAAO,mBAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAEzE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"Exchange.integ.test.js","sourceRoot":"","sources":["../src/Exchange.integ.test.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import bippath from "bip32-path";
2
2
  import SpeculosTransportHttp from "@ledgerhq/hw-transport-node-speculos-http";
3
3
  import Exchange from "./Exchange";
4
4
  import { randomBytes, subtle } from "crypto";
5
- import secp256k1 from "secp256k1";
5
+ import { secp256k1 } from "@noble/curves/secp256k1";
6
6
  import protobuf from "protobufjs";
7
7
  import BigNumber from "bignumber.js";
8
8
  describe("Check Exchange until payload signature", () => {
@@ -235,7 +235,7 @@ describe("Test internal sign and verification functionality", () => {
235
235
  // Then
236
236
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg));
237
237
  const hash = new Uint8Array(hashBuffer);
238
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
238
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
239
239
  });
240
240
  test("APDU signature generated by this test suite", async () => {
241
241
  // Given
@@ -245,7 +245,7 @@ describe("Test internal sign and verification functionality", () => {
245
245
  // Then
246
246
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
247
247
  const hash = new Uint8Array(hashBuffer);
248
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
248
+ expect(secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
249
249
  });
250
250
  test("APDU signature generated by external tool", async () => {
251
251
  // Given
@@ -269,7 +269,7 @@ describe("Test internal sign and verification functionality", () => {
269
269
  // Then
270
270
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
271
271
  const hash = new Uint8Array(hashBuffer);
272
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
272
+ expect(secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
273
273
  });
274
274
  test("APDU signature already validated", async () => {
275
275
  // Given
@@ -287,7 +287,7 @@ describe("Test internal sign and verification functionality", () => {
287
287
  // Then
288
288
  const hashBuffer = await subtle.digest("SHA-256", msg);
289
289
  const hash = new Uint8Array(hashBuffer);
290
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
290
+ expect(secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false })).toBeTruthy();
291
291
  });
292
292
  });
293
293
  describe("With SELL keys", () => {
@@ -302,7 +302,7 @@ describe("Test internal sign and verification functionality", () => {
302
302
  // Then
303
303
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg));
304
304
  const hash = new Uint8Array(hashBuffer);
305
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
305
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
306
306
  });
307
307
  test("SELL verify payload signature", async () => {
308
308
  // Given
@@ -313,7 +313,7 @@ describe("Test internal sign and verification functionality", () => {
313
313
  // Then
314
314
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
315
315
  const hash = new Uint8Array(hashBuffer);
316
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
316
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
317
317
  });
318
318
  });
319
319
  });
@@ -344,14 +344,14 @@ async function appExchangeDatasetTest(signFormat) {
344
344
  let privKey;
345
345
  do {
346
346
  privKey = randomBytes(32);
347
- } while (!secp256k1.privateKeyVerify(privKey));
347
+ } while (!secp256k1.utils.isValidPrivateKey(privKey));
348
348
  // The expected public should not be compressed and be a full 64 length (with R and S)
349
349
  const isCompressed = false;
350
- const pubKey = secp256k1.publicKeyCreate(privKey, isCompressed);
350
+ const pubKey = secp256k1.getPublicKey(privKey, isCompressed);
351
351
  const partnerInfo = {
352
352
  name: "SWAP_TEST",
353
353
  curve: "secp256k1",
354
- publicKey: pubKey,
354
+ publicKey: Buffer.from(pubKey),
355
355
  };
356
356
  const msg = signFormat(partnerInfo);
357
357
  const sig = await signMessage(msg, LEDGER_FAKE_PRIVATE_KEY, "der");
@@ -364,11 +364,12 @@ async function appExchangeDatasetTest(signFormat) {
364
364
  }
365
365
  async function appExchangeDataset(signFormat) {
366
366
  const pubKey = Buffer.from("0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3", "hex");
367
- secp256k1.publicKeyVerify(pubKey);
367
+ // Verify public key by trying to create Point from it
368
+ secp256k1.ProjectivePoint.fromHex(pubKey);
368
369
  const partnerInfo = {
369
370
  name: "SWAP_TEST",
370
371
  curve: "secp256k1",
371
- publicKey: pubKey,
372
+ publicKey: Buffer.from(pubKey),
372
373
  };
373
374
  const msg = signFormat(partnerInfo);
374
375
  const sig = await signMessage(msg, LEDGER_FAKE_PRIVATE_KEY, "der");
@@ -381,7 +382,8 @@ async function appExchangeDataset(signFormat) {
381
382
  async function appExchangeSellDataset(signFormat) {
382
383
  const privKey = Buffer.from("308f6a5369aea611d89abf937d0ffaf0b43b457d42cbf0cf754786b3088f17ae", "hex");
383
384
  const pubKey = Buffer.from("0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3", "hex");
384
- secp256k1.publicKeyVerify(pubKey);
385
+ // Verify public key by trying to create Point from it
386
+ secp256k1.ProjectivePoint.fromHex(pubKey);
385
387
  const partnerInfo = {
386
388
  name: "SELL_TEST",
387
389
  curve: "secp256k1",
@@ -422,21 +424,22 @@ async function generateSellPayloadProtobuf(payload) {
422
424
  async function signMessage(message, privKey, sigFormat) {
423
425
  const hashBuffer = await subtle.digest("SHA-256", message);
424
426
  const hash = new Uint8Array(hashBuffer);
425
- const sig = secp256k1.ecdsaSign(hash, privKey).signature;
427
+ const signature = secp256k1.sign(hash, privKey, { prehash: false });
428
+ const sig = signature.toCompactRawBytes();
426
429
  if (sigFormat === "der") {
427
430
  return convertSignatureToDER(sig);
428
431
  }
429
- return sig;
432
+ return Buffer.from(sig);
430
433
  }
431
434
  function convertSignatureToDER(sig) {
432
- return secp256k1.signatureExport(sig);
435
+ return Buffer.from(secp256k1.Signature.fromCompact(sig).toDERRawBytes());
433
436
  }
434
437
  // Convert raw buffer to a JWS compatible one: '.'+base64Url(raw)
435
438
  function convertToJWSPayload(raw) {
436
439
  return Buffer.from("." + raw.toString("base64url"));
437
440
  }
438
441
  function convertSignatureFromDER(sig) {
439
- return secp256k1.signatureImport(sig);
442
+ return Buffer.from(secp256k1.Signature.fromDER(sig).toCompactRawBytes());
440
443
  }
441
444
  function bip32asBuffer(path) {
442
445
  const pathElements = !path ? [] : bippath.fromString(path).toPathArray();
@@ -1 +1 @@
1
- {"version":3,"file":"Exchange.integ.test.js","sourceRoot":"","sources":["../src/Exchange.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Exchange.integ.test.js","sourceRoot":"","sources":["../src/Exchange.integ.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-app-exchange",
3
- "version": "0.13.2",
3
+ "version": "0.13.3-nightly.0",
4
4
  "description": "Ledger Hardware Wallet Cosmos Application API",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -25,13 +25,13 @@
25
25
  "types": "lib/index.d.ts",
26
26
  "license": "Apache-2.0",
27
27
  "dependencies": {
28
- "@ledgerhq/device-management-kit": "0.0.0-fix-lns-20250901094837",
28
+ "@ledgerhq/device-management-kit": "0.9.0",
29
29
  "bignumber.js": "^9.1.2",
30
30
  "invariant": "^2.2.2",
31
31
  "protobufjs": "7.2.5",
32
32
  "protobufjs-cli": "1.1.2",
33
- "@ledgerhq/errors": "^6.25.0",
34
- "@ledgerhq/hw-transport": "^6.31.10"
33
+ "@ledgerhq/hw-transport": "^6.31.10",
34
+ "@ledgerhq/errors": "^6.25.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/jest": "^29.5.10",
@@ -39,7 +39,7 @@
39
39
  "bip32-path": "^0.4.2",
40
40
  "documentation": "14.0.2",
41
41
  "jest": "^29.7.0",
42
- "secp256k1": "5.0.0",
42
+ "@noble/curves": "1.9.7",
43
43
  "ts-jest": "^29.1.1",
44
44
  "ts-node": "^10.4.0",
45
45
  "@ledgerhq/hw-transport-mocker": "^6.29.10",
@@ -3,7 +3,7 @@ import SpeculosTransportHttp from "@ledgerhq/hw-transport-node-speculos-http";
3
3
  import Exchange, { ExchangeTypes, PartnerKeyInfo } from "./Exchange";
4
4
  import Transport from "@ledgerhq/hw-transport";
5
5
  import { randomBytes, subtle } from "crypto";
6
- import secp256k1 from "secp256k1";
6
+ import { secp256k1 } from "@noble/curves/secp256k1";
7
7
  import protobuf from "protobufjs";
8
8
  import BigNumber from "bignumber.js";
9
9
 
@@ -332,7 +332,7 @@ describe("Test internal sign and verification functionality", () => {
332
332
  // Then
333
333
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg));
334
334
  const hash = new Uint8Array(hashBuffer);
335
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
335
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
336
336
  });
337
337
  test("APDU signature generated by this test suite", async () => {
338
338
  // Given
@@ -348,7 +348,9 @@ describe("Test internal sign and verification functionality", () => {
348
348
  // Then
349
349
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
350
350
  const hash = new Uint8Array(hashBuffer);
351
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
351
+ expect(
352
+ secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false }),
353
+ ).toBeTruthy();
352
354
  });
353
355
  test("APDU signature generated by external tool", async () => {
354
356
  // Given
@@ -378,7 +380,9 @@ describe("Test internal sign and verification functionality", () => {
378
380
  // Then
379
381
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
380
382
  const hash = new Uint8Array(hashBuffer);
381
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
383
+ expect(
384
+ secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false }),
385
+ ).toBeTruthy();
382
386
  });
383
387
  test("APDU signature already validated", async () => {
384
388
  // Given
@@ -404,7 +408,9 @@ describe("Test internal sign and verification functionality", () => {
404
408
  // Then
405
409
  const hashBuffer = await subtle.digest("SHA-256", msg);
406
410
  const hash = new Uint8Array(hashBuffer);
407
- expect(secp256k1.ecdsaVerify(convertSignatureFromDER(sig), hash, pubKey)).toBeTruthy();
411
+ expect(
412
+ secp256k1.verify(convertSignatureFromDER(sig), hash, pubKey, { prehash: false }),
413
+ ).toBeTruthy();
408
414
  });
409
415
  });
410
416
 
@@ -429,7 +435,7 @@ describe("Test internal sign and verification functionality", () => {
429
435
  // Then
430
436
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg));
431
437
  const hash = new Uint8Array(hashBuffer);
432
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
438
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
433
439
  });
434
440
 
435
441
  test("SELL verify payload signature", async () => {
@@ -447,7 +453,7 @@ describe("Test internal sign and verification functionality", () => {
447
453
  // Then
448
454
  const hashBuffer = await subtle.digest("SHA-256", Buffer.from(msg, "hex"));
449
455
  const hash = new Uint8Array(hashBuffer);
450
- expect(secp256k1.ecdsaVerify(sig, hash, pubKey)).toBeTruthy();
456
+ expect(secp256k1.verify(sig, hash, pubKey)).toBeTruthy();
451
457
  });
452
458
  });
453
459
  });
@@ -484,15 +490,15 @@ async function appExchangeDatasetTest(signFormat: PartnerSignFormat) {
484
490
  let privKey;
485
491
  do {
486
492
  privKey = randomBytes(32);
487
- } while (!secp256k1.privateKeyVerify(privKey));
493
+ } while (!secp256k1.utils.isValidPrivateKey(privKey));
488
494
  // The expected public should not be compressed and be a full 64 length (with R and S)
489
495
  const isCompressed = false;
490
- const pubKey = secp256k1.publicKeyCreate(privKey, isCompressed);
496
+ const pubKey = secp256k1.getPublicKey(privKey, isCompressed);
491
497
 
492
498
  const partnerInfo = {
493
499
  name: "SWAP_TEST",
494
500
  curve: "secp256k1",
495
- publicKey: pubKey,
501
+ publicKey: Buffer.from(pubKey),
496
502
  };
497
503
  const msg = signFormat(partnerInfo);
498
504
 
@@ -510,12 +516,13 @@ async function appExchangeDataset(signFormat: PartnerSignFormat) {
510
516
  "0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3",
511
517
  "hex",
512
518
  );
513
- secp256k1.publicKeyVerify(pubKey);
519
+ // Verify public key by trying to create Point from it
520
+ secp256k1.ProjectivePoint.fromHex(pubKey);
514
521
 
515
522
  const partnerInfo = {
516
523
  name: "SWAP_TEST",
517
524
  curve: "secp256k1",
518
- publicKey: pubKey,
525
+ publicKey: Buffer.from(pubKey),
519
526
  };
520
527
  const msg = signFormat(partnerInfo);
521
528
 
@@ -536,7 +543,8 @@ async function appExchangeSellDataset(signFormat: PartnerSignFormat) {
536
543
  "0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3",
537
544
  "hex",
538
545
  );
539
- secp256k1.publicKeyVerify(pubKey);
546
+ // Verify public key by trying to create Point from it
547
+ secp256k1.ProjectivePoint.fromHex(pubKey);
540
548
 
541
549
  const partnerInfo = {
542
550
  name: "SELL_TEST",
@@ -622,15 +630,16 @@ async function signMessage(
622
630
  const hashBuffer = await subtle.digest("SHA-256", message);
623
631
  const hash = new Uint8Array(hashBuffer);
624
632
 
625
- const sig = secp256k1.ecdsaSign(hash, privKey).signature;
633
+ const signature = secp256k1.sign(hash, privKey, { prehash: false });
634
+ const sig = signature.toCompactRawBytes();
626
635
  if (sigFormat === "der") {
627
636
  return convertSignatureToDER(sig);
628
637
  }
629
- return sig;
638
+ return Buffer.from(sig);
630
639
  }
631
640
 
632
641
  function convertSignatureToDER(sig: Uint8Array): Buffer {
633
- return secp256k1.signatureExport(sig);
642
+ return Buffer.from(secp256k1.Signature.fromCompact(sig).toDERRawBytes());
634
643
  }
635
644
 
636
645
  // Convert raw buffer to a JWS compatible one: '.'+base64Url(raw)
@@ -639,7 +648,7 @@ function convertToJWSPayload(raw: Buffer): Buffer {
639
648
  }
640
649
 
641
650
  function convertSignatureFromDER(sig: Uint8Array): Buffer {
642
- return secp256k1.signatureImport(sig);
651
+ return Buffer.from(secp256k1.Signature.fromDER(sig).toCompactRawBytes());
643
652
  }
644
653
 
645
654
  function bip32asBuffer(path: string): Buffer {