@onekeyfe/hd-core 1.2.0-alpha.58 → 1.2.0-alpha.59

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 (91) hide show
  1. package/__tests__/DeviceCommands.test.ts +5 -15
  2. package/__tests__/device-pool-state.test.ts +22 -0
  3. package/__tests__/device-state-mapper.test.ts +12 -0
  4. package/__tests__/device-utils.test.ts +48 -1
  5. package/__tests__/deviceSettings.test.ts +10 -0
  6. package/__tests__/deviceUploadNft.test.ts +4 -28
  7. package/__tests__/kaspa-use-tweak-pro2.test.ts +2 -2
  8. package/__tests__/protocol-v2-resources.test.ts +28 -13
  9. package/__tests__/protocol-v2-unlock-policy.test.ts +34 -0
  10. package/__tests__/protocol-v2.test.ts +159 -137
  11. package/__tests__/tron-sign-message-init.test.ts +2 -2
  12. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  13. package/dist/api/FirmwareUpdateV4.d.ts +4 -3
  14. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  15. package/dist/api/OpenWalletSession.d.ts.map +1 -1
  16. package/dist/api/kaspa/KaspaGetAddress.d.ts +1 -1
  17. package/dist/api/kaspa/KaspaSignTransaction.d.ts +1 -1
  18. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -1
  19. package/dist/api/polkadot/networks.d.ts +1 -1
  20. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -1
  21. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  22. package/dist/api/solana/SolSignMessage.d.ts +1 -1
  23. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -1
  24. package/dist/api/solana/SolSignTransaction.d.ts +2 -2
  25. package/dist/api/sui/SuiGetAddress.d.ts +1 -1
  26. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -1
  27. package/dist/api/sui/SuiSignMessage.d.ts +1 -1
  28. package/dist/api/sui/SuiSignTransaction.d.ts +1 -1
  29. package/dist/api/ton/TonGetAddress.d.ts +1 -1
  30. package/dist/api/ton/TonSignMessage.d.ts +1 -1
  31. package/dist/api/ton/TonSignProof.d.ts +1 -1
  32. package/dist/api/tron/TronSignMessage.d.ts +2 -2
  33. package/dist/api/tron/TronSignTransaction.d.ts +1 -1
  34. package/dist/data-manager/DataManager.d.ts +7 -5
  35. package/dist/data-manager/DataManager.d.ts.map +1 -1
  36. package/dist/device/Device.d.ts.map +1 -1
  37. package/dist/device/DeviceCommands.d.ts.map +1 -1
  38. package/dist/device/DevicePool.d.ts.map +1 -1
  39. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -1
  40. package/dist/index.d.ts +44 -34
  41. package/dist/index.js +231 -168
  42. package/dist/protocols/protocol-v2/resources.d.ts +2 -2
  43. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -1
  44. package/dist/types/api/checkAllFirmwareRelease.d.ts +1 -1
  45. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  46. package/dist/types/api/firmwareUpdate.d.ts +3 -2
  47. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  48. package/dist/types/device.d.ts +2 -2
  49. package/dist/types/device.d.ts.map +1 -1
  50. package/dist/types/settings.d.ts +22 -14
  51. package/dist/types/settings.d.ts.map +1 -1
  52. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -1
  53. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  54. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  55. package/dist/utils/deviceSettings.d.ts.map +1 -1
  56. package/package.json +4 -4
  57. package/src/api/CheckAllFirmwareRelease.ts +7 -5
  58. package/src/api/FirmwareUpdateV4.ts +115 -102
  59. package/src/api/OpenWalletSession.ts +1 -0
  60. package/src/api/kaspa/KaspaGetAddress.ts +1 -1
  61. package/src/api/kaspa/KaspaSignTransaction.ts +1 -1
  62. package/src/api/polkadot/networks.ts +3 -3
  63. package/src/api/protocol-v2/DeviceUploadNft.ts +7 -12
  64. package/src/api/protocol-v2/helpers.ts +0 -1
  65. package/src/api/solana/SolSignMessage.ts +1 -1
  66. package/src/api/solana/SolSignOffchainMessage.ts +1 -1
  67. package/src/api/solana/SolSignTransaction.ts +2 -2
  68. package/src/api/sui/SuiGetAddress.ts +1 -1
  69. package/src/api/sui/SuiGetPublicKey.ts +1 -1
  70. package/src/api/sui/SuiSignMessage.ts +1 -1
  71. package/src/api/sui/SuiSignTransaction.ts +1 -1
  72. package/src/api/ton/TonGetAddress.ts +1 -1
  73. package/src/api/ton/TonSignMessage.ts +1 -1
  74. package/src/api/ton/TonSignProof.ts +1 -1
  75. package/src/api/tron/TronSignMessage.ts +2 -2
  76. package/src/api/tron/TronSignTransaction.ts +1 -1
  77. package/src/data-manager/DataManager.ts +28 -9
  78. package/src/device/Device.ts +15 -6
  79. package/src/device/DeviceCommands.ts +13 -10
  80. package/src/device/DevicePool.ts +17 -8
  81. package/src/deviceProfile/buildDeviceFeatures.ts +2 -2
  82. package/src/deviceProfile/protocolV2DeviceIdentity.ts +3 -0
  83. package/src/protocols/protocol-v2/resources.ts +44 -13
  84. package/src/types/api/checkAllFirmwareRelease.ts +1 -1
  85. package/src/types/api/firmwareUpdate.ts +5 -5
  86. package/src/types/device.ts +12 -3
  87. package/src/types/settings.ts +30 -21
  88. package/src/utils/deviceFeaturesCompat.ts +5 -0
  89. package/src/utils/deviceFeaturesUtils.ts +6 -3
  90. package/src/utils/deviceInfoUtils.ts +2 -0
  91. package/src/utils/deviceSettings.ts +3 -0
@@ -589,7 +589,7 @@ describe('Protocol V2 feature adapter', () => {
589
589
  } as any);
590
590
  const protocolV2 = buildProtocolV2FeaturesPayload({
591
591
  deviceInfo: {
592
- hw: { serial_no: 'P2-001' },
592
+ hw: { Device_type: DeviceType.PRO2, serial_no: 'P2-001' },
593
593
  coprocessor: { bt_adv_name: 'Pro 2 BLE' },
594
594
  },
595
595
  deviceStatus: {
@@ -2696,8 +2696,10 @@ describe('Protocol V2 feature adapter', () => {
2696
2696
  ).rejects.toThrow('DeviceInfo not supported');
2697
2697
  });
2698
2698
 
2699
- test('does not inherit Pro or Pro model fallback ranges for Protocol V2 devices', () => {
2700
- const features = normalizeProtocolV2Features({ ...descriptor, protocolType: 'V2' } as any);
2699
+ test('does not inherit Pro or model_touch ranges for Protocol V2 devices', () => {
2700
+ const features = normalizeProtocolV2Features({ ...descriptor, protocolType: 'V2' } as any, {
2701
+ hw: { Device_type: DeviceType.PRO2 },
2702
+ });
2701
2703
  const checkedTypes: string[] = [];
2702
2704
 
2703
2705
  const versionRange = getMethodVersionRange(features, type => {
@@ -2709,11 +2711,13 @@ describe('Protocol V2 feature adapter', () => {
2709
2711
  });
2710
2712
 
2711
2713
  expect(versionRange).toBeUndefined();
2712
- expect(checkedTypes).toEqual(['pro2']);
2714
+ expect(checkedTypes).toEqual(['pro2', 'model_pro2']);
2713
2715
  });
2714
2716
 
2715
2717
  test('uses firmware-v1 as the Pro2 remote firmware config field', () => {
2716
- const features = normalizeProtocolV2Features({ ...descriptor, protocolType: 'V2' } as any);
2718
+ const features = normalizeProtocolV2Features({ ...descriptor, protocolType: 'V2' } as any, {
2719
+ hw: { Device_type: DeviceType.PRO2 },
2720
+ });
2717
2721
 
2718
2722
  expect(
2719
2723
  getFirmwareUpdateField({
@@ -3623,71 +3627,77 @@ describe('API compatibility handling', () => {
3623
3627
  });
3624
3628
  });
3625
3629
 
3626
- test('allows Pro2 Solana signing methods through Protocol V2 version checks', () => {
3627
- const features = {
3628
- deviceType: 'pro2',
3629
- } as Features;
3630
+ test.each(['pro2', 'neo'] as const)(
3631
+ 'allows %s Solana signing methods through Protocol V2 version checks',
3632
+ deviceType => {
3633
+ const features = {
3634
+ deviceType,
3635
+ } as Features;
3630
3636
 
3631
- const solSignMessageMethod = new SolSignMessage({
3632
- id: 1,
3633
- payload: {
3634
- method: 'solSignMessage',
3635
- path: "m/44'/501'/0'/0'",
3636
- messageHex: '48656c6c6f',
3637
- },
3638
- });
3639
- const solSignOffchainMessageMethod = new SolSignOffchainMessage({
3640
- id: 2,
3641
- payload: {
3642
- method: 'solSignOffchainMessage',
3643
- path: "m/44'/501'/0'/0'",
3644
- messageHex: '48656c6c6f',
3645
- },
3646
- });
3647
- const solSignTransactionMethod = new SolSignTransaction({
3648
- id: 3,
3649
- payload: {
3650
- method: 'solSignTransaction',
3651
- path: "m/44'/501'/0'/0'",
3652
- rawTx: '00',
3653
- },
3654
- });
3655
- const solSignVersionedTransactionMethod = new SolSignTransaction({
3656
- id: 4,
3657
- payload: {
3658
- method: 'solSignTransaction',
3659
- path: "m/44'/501'/0'/0'",
3660
- rawTx: '80',
3661
- },
3662
- });
3637
+ const solSignMessageMethod = new SolSignMessage({
3638
+ id: 1,
3639
+ payload: {
3640
+ method: 'solSignMessage',
3641
+ path: "m/44'/501'/0'/0'",
3642
+ messageHex: '48656c6c6f',
3643
+ },
3644
+ });
3645
+ const solSignOffchainMessageMethod = new SolSignOffchainMessage({
3646
+ id: 2,
3647
+ payload: {
3648
+ method: 'solSignOffchainMessage',
3649
+ path: "m/44'/501'/0'/0'",
3650
+ messageHex: '48656c6c6f',
3651
+ },
3652
+ });
3653
+ const solSignTransactionMethod = new SolSignTransaction({
3654
+ id: 3,
3655
+ payload: {
3656
+ method: 'solSignTransaction',
3657
+ path: "m/44'/501'/0'/0'",
3658
+ rawTx: '00',
3659
+ },
3660
+ });
3661
+ const solSignVersionedTransactionMethod = new SolSignTransaction({
3662
+ id: 4,
3663
+ payload: {
3664
+ method: 'solSignTransaction',
3665
+ path: "m/44'/501'/0'/0'",
3666
+ rawTx: '80',
3667
+ },
3668
+ });
3663
3669
 
3664
- solSignTransactionMethod.init();
3665
- solSignVersionedTransactionMethod.init();
3670
+ solSignTransactionMethod.init();
3671
+ solSignVersionedTransactionMethod.init();
3666
3672
 
3667
- expect(
3668
- getMethodVersionRange(features, type => solSignMessageMethod.getVersionRange()[type])
3669
- ).toEqual({
3670
- min: '0.0.0',
3671
- });
3672
- expect(
3673
- getMethodVersionRange(features, type => solSignOffchainMessageMethod.getVersionRange()[type])
3674
- ).toEqual({
3675
- min: '0.0.0',
3676
- });
3677
- expect(
3678
- getMethodVersionRange(features, type => solSignTransactionMethod.getVersionRange()[type])
3679
- ).toEqual({
3680
- min: '0.0.0',
3681
- });
3682
- expect(
3683
- getMethodVersionRange(
3684
- features,
3685
- type => solSignVersionedTransactionMethod.getVersionRange()[type]
3686
- )
3687
- ).toEqual({
3688
- min: '0.0.0',
3689
- });
3690
- });
3673
+ expect(
3674
+ getMethodVersionRange(features, type => solSignMessageMethod.getVersionRange()[type])
3675
+ ).toEqual({
3676
+ min: '0.0.0',
3677
+ });
3678
+ expect(
3679
+ getMethodVersionRange(
3680
+ features,
3681
+ type => solSignOffchainMessageMethod.getVersionRange()[type]
3682
+ )
3683
+ ).toEqual({
3684
+ min: '0.0.0',
3685
+ });
3686
+ expect(
3687
+ getMethodVersionRange(features, type => solSignTransactionMethod.getVersionRange()[type])
3688
+ ).toEqual({
3689
+ min: '0.0.0',
3690
+ });
3691
+ expect(
3692
+ getMethodVersionRange(
3693
+ features,
3694
+ type => solSignVersionedTransactionMethod.getVersionRange()[type]
3695
+ )
3696
+ ).toEqual({
3697
+ min: '0.0.0',
3698
+ });
3699
+ }
3700
+ );
3691
3701
 
3692
3702
  test('uses chunk transfer for large Sui transactions on Protocol V2', async () => {
3693
3703
  const rawTx = '0x'.concat('ab'.repeat(5000));
@@ -3783,7 +3793,7 @@ describe('API compatibility handling', () => {
3783
3793
 
3784
3794
  describe('Protocol V2 firmware update targets', () => {
3785
3795
  const OKPP_HEADER_SIZE = 0x52a0;
3786
- let forceReloadDataSpy: jest.SpyInstance<Promise<void>, []>;
3796
+ let forceReloadDataSpy: jest.SpyInstance;
3787
3797
 
3788
3798
  beforeEach(() => {
3789
3799
  forceReloadDataSpy = jest.spyOn(DataManager, 'forceReloadData').mockResolvedValue(undefined);
@@ -4054,6 +4064,10 @@ describe('Protocol V2 firmware update targets', () => {
4054
4064
  originalDescriptor: { id: 'usb-id', path: 'usb-path', protocolType: 'V2' },
4055
4065
  features: { bootloader_mode: false, capabilities: [] },
4056
4066
  isBootloader: () => false,
4067
+ probeProtocolV2RuntimeState: jest.fn().mockResolvedValue({
4068
+ mode: 'bootloader',
4069
+ bootloaderMode: true,
4070
+ }),
4057
4071
  });
4058
4072
  (method as any).protocolV2Reboot = jest.fn().mockResolvedValue({
4059
4073
  message: 'Device rebooted successfully',
@@ -4081,6 +4095,7 @@ describe('Protocol V2 firmware update targets', () => {
4081
4095
  (method as any).reconnectProtocolV2Device = reconnectProtocolV2Device;
4082
4096
  (method as any).device.getCommands = () => ({ typedCall });
4083
4097
  (method as any).protocolV2ExpectedSerialNumber = 'PR9999999999';
4098
+ (method as any).protocolV2ExpectedPath = 'usb-path';
4084
4099
  method.postTipMessage = jest.fn();
4085
4100
 
4086
4101
  await (method as any).enterProtocolV2BootloaderMode();
@@ -4239,6 +4254,10 @@ describe('Protocol V2 firmware update targets', () => {
4239
4254
  originalDescriptor: { id: 'usb-id', path: 'app-path', protocolType: 'V2' },
4240
4255
  features: { bootloader_mode: false, capabilities: [] },
4241
4256
  isBootloader: () => false,
4257
+ probeProtocolV2RuntimeState: jest.fn().mockResolvedValue({
4258
+ mode: 'bootloader',
4259
+ bootloaderMode: true,
4260
+ }),
4242
4261
  });
4243
4262
  const typedCall = jest.fn().mockImplementation((requestType: string) => {
4244
4263
  if (requestType === 'DeviceInfoGet') {
@@ -4266,15 +4285,13 @@ describe('Protocol V2 firmware update targets', () => {
4266
4285
  (method as any).reconnectProtocolV2Device = reconnectProtocolV2Device;
4267
4286
  (method as any).device.getCommands = () => ({ typedCall });
4268
4287
  (method as any).protocolV2ExpectedSerialNumber = 'PR9999999999';
4288
+ (method as any).protocolV2ExpectedPath = 'app-path';
4269
4289
 
4270
4290
  await (method as any).waitForProtocolV2BootloaderMode(60 * 1000, 0);
4271
4291
 
4272
4292
  expect(reconnectProtocolV2Device).toHaveBeenCalledTimes(3);
4273
- expect(typedCall).toHaveBeenCalledTimes(2);
4274
- expect(typedCall.mock.calls.map(call => call[0])).toEqual([
4275
- 'DeviceInfoGet',
4276
- 'ProtocolInfoRequest',
4277
- ]);
4293
+ expect(typedCall).toHaveBeenCalledTimes(1);
4294
+ expect(typedCall.mock.calls.map(call => call[0])).toEqual(['DeviceInfoGet']);
4278
4295
  });
4279
4296
 
4280
4297
  test('does not run generic initialize during Protocol V2 USB firmware reconnect', async () => {
@@ -4311,6 +4328,7 @@ describe('Protocol V2 firmware update targets', () => {
4311
4328
  deviceList: [cachedDevice],
4312
4329
  } as any);
4313
4330
  (method as any).device = device;
4331
+ (method as any).protocolV2ExpectedPath = 'usb-path';
4314
4332
 
4315
4333
  try {
4316
4334
  await (method as any).reconnectProtocolV2Device();
@@ -4361,6 +4379,7 @@ describe('Protocol V2 firmware update targets', () => {
4361
4379
  deviceList: [otherDevice, expectedDevice],
4362
4380
  } as any);
4363
4381
  (method as any).device = device;
4382
+ (method as any).protocolV2ExpectedPath = 'usb-path';
4364
4383
  (method as any).protocolV2ExpectedSerialNumber = 'PRO2-PHYSICAL-B';
4365
4384
 
4366
4385
  try {
@@ -4417,7 +4436,7 @@ describe('Protocol V2 firmware update targets', () => {
4417
4436
  expect(updateFromCache).not.toHaveBeenCalled();
4418
4437
  });
4419
4438
 
4420
- test('allows a single Protocol V2 USB reconnect candidate when its physical serial is unavailable', async () => {
4439
+ test('allows a Protocol V2 USB reconnect candidate without a serial only when its path matches', async () => {
4421
4440
  const method = new FirmwareUpdateV4({
4422
4441
  id: 1,
4423
4442
  payload: {
@@ -4427,7 +4446,7 @@ describe('Protocol V2 firmware update targets', () => {
4427
4446
  const commands = { disposed: true, mainId: '' };
4428
4447
  const updateFromCache = jest.fn();
4429
4448
  const device = stubDevice({
4430
- originalDescriptor: { id: 'old-usb-id', path: 'old-usb-path', protocolType: 'V2' },
4449
+ originalDescriptor: { id: 'usb-a', path: 'usb-a', protocolType: 'V2' },
4431
4450
  deviceConnector: {
4432
4451
  enumerate: jest.fn().mockResolvedValue({
4433
4452
  descriptors: [{ id: 'usb-a', path: 'usb-a', protocolType: 'V2' }],
@@ -4450,6 +4469,7 @@ describe('Protocol V2 firmware update targets', () => {
4450
4469
  } as any);
4451
4470
  (method as any).device = device;
4452
4471
  (method as any).protocolV2ExpectedSerialNumber = 'PRO2-PHYSICAL-A';
4472
+ (method as any).protocolV2ExpectedPath = 'usb-a';
4453
4473
 
4454
4474
  try {
4455
4475
  await (method as any).reconnectProtocolV2Device();
@@ -4539,6 +4559,7 @@ describe('Protocol V2 firmware update targets', () => {
4539
4559
  deviceList: [{ getConnectId: () => 'usb-path' }],
4540
4560
  } as any);
4541
4561
  (method as any).device = device;
4562
+ (method as any).protocolV2ExpectedPath = 'usb-path';
4542
4563
 
4543
4564
  try {
4544
4565
  await (method as any).reconnectProtocolV2Device();
@@ -4569,6 +4590,7 @@ describe('Protocol V2 firmware update targets', () => {
4569
4590
  (method as any).protocolV2ExpectedSerialNumber = 'expected-serial';
4570
4591
  (method as any).reconnectProtocolV2Device = reconnectProtocolV2Device;
4571
4592
  (method as any).device = stubDevice({
4593
+ originalDescriptor: { id: 'usb-id', path: 'usb-path', protocolType: 'V2' },
4572
4594
  getCommands: () => ({ typedCall }),
4573
4595
  probeProtocolV2RuntimeState: jest.fn().mockResolvedValue({
4574
4596
  deviceId: 'changed-device',
@@ -5813,14 +5835,14 @@ describe('Protocol V2 firmware update targets', () => {
5813
5835
  });
5814
5836
  });
5815
5837
 
5816
- test('treats manual resource bundles as explicit payload without remote firmware auto-fill', async () => {
5838
+ test('treats manual resource files as explicit payload without remote firmware auto-fill', async () => {
5817
5839
  const resourceBundle = new Uint8Array([1, 2, 3]).buffer;
5818
5840
  const method = new FirmwareUpdateV4({
5819
5841
  id: 1,
5820
5842
  payload: {
5821
5843
  method: 'firmwareUpdateV4',
5822
5844
  platform: 'web',
5823
- resourceBundleFiles: [
5845
+ resourceFiles: [
5824
5846
  {
5825
5847
  binary: resourceBundle,
5826
5848
  devicePath: ' VOL0:/resource/images/images.okpkg ',
@@ -5868,7 +5890,7 @@ describe('Protocol V2 firmware update targets', () => {
5868
5890
  payload: {
5869
5891
  method: 'firmwareUpdateV4',
5870
5892
  platform: 'web',
5871
- resourceBundleFiles: [
5893
+ resourceFiles: [
5872
5894
  {
5873
5895
  binary: new Uint8Array([1, 2, 3]).buffer,
5874
5896
  devicePath: 'vol2:/resource/images/images.okpkg',
@@ -5887,7 +5909,7 @@ describe('Protocol V2 firmware update targets', () => {
5887
5909
  (method as any).enterProtocolV2BootloaderMode = jest.fn();
5888
5910
  method.postTipMessage = jest.fn();
5889
5911
 
5890
- await expect(method.run()).rejects.toThrow('resourceBundleFiles[0].devicePath');
5912
+ await expect(method.run()).rejects.toThrow('resourceFiles[0].devicePath');
5891
5913
  expect((method as any).prepareRemoteProtocolV2Binaries).not.toHaveBeenCalled();
5892
5914
  expect((method as any).enterProtocolV2BootloaderMode).not.toHaveBeenCalled();
5893
5915
  });
@@ -5946,6 +5968,7 @@ describe('Protocol V2 firmware update targets', () => {
5946
5968
 
5947
5969
  (method as any).device = stubDevice({
5948
5970
  getCommands: () => ({ typedCall }),
5971
+ getCurrentDeviceType: () => 'pro2',
5949
5972
  toMessageObject: () => ({ connectId: 'firmware-device' }),
5950
5973
  });
5951
5974
  method.postMessage = jest.fn();
@@ -6287,7 +6310,7 @@ describe('Protocol V2 firmware update method', () => {
6287
6310
  expect(typedCall).not.toHaveBeenCalled();
6288
6311
  });
6289
6312
 
6290
- test.each([0, 2])(
6313
+ test.each([0, 1, 2])(
6291
6314
  'rejects firmware target %s because the Pro2 bootloader cannot install it',
6292
6315
  async targetId => {
6293
6316
  const typedCall = jest.fn();
@@ -6320,8 +6343,8 @@ describe('Protocol V2 firmware update method', () => {
6320
6343
  targets: [
6321
6344
  {
6322
6345
  target_id: undefined,
6323
- targetId: 1,
6324
- path: 'vol0:resource.crate.okpkg',
6346
+ targetId: 3,
6347
+ path: 'vol0:bootloader.okpkg',
6325
6348
  },
6326
6349
  ],
6327
6350
  } as any,
@@ -6333,7 +6356,7 @@ describe('Protocol V2 firmware update method', () => {
6333
6356
 
6334
6357
  await method.run();
6335
6358
  expect(typedCall.mock.calls[0][2]).toEqual({
6336
- targets: [{ target_id: 1, path: 'vol0:resource.crate.okpkg' }],
6359
+ targets: [{ target_id: 3, path: 'vol0:bootloader.okpkg' }],
6337
6360
  });
6338
6361
  });
6339
6362
 
@@ -6465,10 +6488,16 @@ describe('Protocol V2 firmware reconnect identity', () => {
6465
6488
  ).not.toThrow();
6466
6489
  });
6467
6490
 
6468
- test('allows reconnect when either physical serial is unavailable', () => {
6469
- expect(() => assertProtocolV2ReconnectIdentity('expected-serial', undefined)).not.toThrow();
6470
- expect(() => assertProtocolV2ReconnectIdentity(undefined, 'actual-serial')).not.toThrow();
6471
- expect(() => assertProtocolV2ReconnectIdentity(undefined, undefined)).not.toThrow();
6491
+ test('requires the same descriptor path when either physical serial is unavailable', () => {
6492
+ expect(() =>
6493
+ assertProtocolV2ReconnectIdentity('expected-serial', undefined, 'usb-path', 'usb-path')
6494
+ ).not.toThrow();
6495
+ expect(() =>
6496
+ assertProtocolV2ReconnectIdentity(undefined, 'actual-serial', 'usb-path', 'other-path')
6497
+ ).toThrow('identity unavailable');
6498
+ expect(() => assertProtocolV2ReconnectIdentity(undefined, undefined)).toThrow(
6499
+ 'identity unavailable'
6500
+ );
6472
6501
  });
6473
6502
 
6474
6503
  test('captures physical identity from active DeviceInfo instead of wallet deviceId', async () => {
@@ -6486,6 +6515,7 @@ describe('Protocol V2 firmware reconnect identity', () => {
6486
6515
  },
6487
6516
  });
6488
6517
  (method as any).device = stubDevice({
6518
+ originalDescriptor: { id: 'usb-id', path: 'usb-path', protocolType: 'V2' },
6489
6519
  features: { deviceId: 'wallet-derived-id' },
6490
6520
  getCommands: () => ({ typedCall }),
6491
6521
  });
@@ -6511,11 +6541,13 @@ describe('Protocol V2 firmware reconnect identity', () => {
6511
6541
  message: { protocol_version: 1, hw: {} },
6512
6542
  });
6513
6543
  (method as any).device = stubDevice({
6544
+ originalDescriptor: { id: 'usb-id', path: 'usb-path', protocolType: 'V2' },
6514
6545
  getCommands: () => ({ typedCall }),
6515
6546
  });
6516
6547
 
6517
6548
  await expect((method as any).captureProtocolV2PhysicalIdentity()).resolves.toBeUndefined();
6518
6549
  expect((method as any).protocolV2ExpectedSerialNumber).toBeUndefined();
6550
+ expect((method as any).protocolV2ExpectedPath).toBeDefined();
6519
6551
  });
6520
6552
 
6521
6553
  test('uses filesystem reads instead of ResourceInventoryGet for resource comparison', async () => {
@@ -6540,6 +6572,7 @@ describe('Protocol V2 firmware reconnect identity', () => {
6540
6572
  const typedCall = createResourceFilesystemTypedCall(stable);
6541
6573
  (method as any).device = stubDevice({
6542
6574
  getCommands: () => ({ typedCall }),
6575
+ getCurrentDeviceType: () => 'pro2',
6543
6576
  });
6544
6577
  const resourcesSpy = jest
6545
6578
  .spyOn(DataManager, 'getProtocolV2Resources')
@@ -6569,7 +6602,10 @@ describe('Protocol V2 firmware reconnect identity', () => {
6569
6602
  })
6570
6603
  );
6571
6604
  const typedCall = createResourceFilesystemTypedCall(stable, ['images']);
6572
- (method as any).device = stubDevice({ getCommands: () => ({ typedCall }) });
6605
+ (method as any).device = stubDevice({
6606
+ getCommands: () => ({ typedCall }),
6607
+ getCurrentDeviceType: () => 'pro2',
6608
+ });
6573
6609
  const resourcesSpy = jest
6574
6610
  .spyOn(DataManager, 'getProtocolV2Resources')
6575
6611
  .mockReturnValue(stable as any);
@@ -6604,7 +6640,10 @@ describe('Protocol V2 firmware reconnect identity', () => {
6604
6640
  })
6605
6641
  );
6606
6642
  const typedCall = createResourceFilesystemTypedCall(stable, ['images']);
6607
- (method as any).device = stubDevice({ getCommands: () => ({ typedCall }) });
6643
+ (method as any).device = stubDevice({
6644
+ getCommands: () => ({ typedCall }),
6645
+ getCurrentDeviceType: () => 'pro2',
6646
+ });
6608
6647
  const resourcesSpy = jest
6609
6648
  .spyOn(DataManager, 'getProtocolV2Resources')
6610
6649
  .mockReturnValue(stable as any);
@@ -6625,34 +6664,6 @@ describe('Protocol V2 firmware reconnect identity', () => {
6625
6664
  resourcesSpy.mockRestore();
6626
6665
  });
6627
6666
 
6628
- const buildBootResourcesHeader = ({
6629
- type = 'CRAT',
6630
- payloadHash = 'ab'.repeat(64),
6631
- headerHash = 'cd'.repeat(64),
6632
- }: {
6633
- type?: string;
6634
- payloadHash?: string;
6635
- headerHash?: string;
6636
- } = {}) => {
6637
- const header = new Uint8Array(0x52a0);
6638
- const view = new DataView(header.buffer);
6639
- 'OKPP'.split('').forEach((char, index) => {
6640
- header[index] = char.charCodeAt(0);
6641
- });
6642
- type.split('').forEach((char, index) => {
6643
- header[0x08 + index] = char.charCodeAt(0);
6644
- });
6645
- view.setUint32(0x0c, header.byteLength, true);
6646
- const writeHex = (offset: number, hex: string) => {
6647
- for (let index = 0; index < hex.length / 2; index++) {
6648
- header[offset + index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);
6649
- }
6650
- };
6651
- writeHex(0x200, payloadHash);
6652
- writeHex(0x240, headerHash);
6653
- return header;
6654
- };
6655
-
6656
6667
  test('does not resolve boot resources unless the optional target is selected', async () => {
6657
6668
  const method = new FirmwareUpdateV4({
6658
6669
  id: 1,
@@ -6668,20 +6679,22 @@ describe('Protocol V2 firmware reconnect identity', () => {
6668
6679
  expect(downloadSpy).not.toHaveBeenCalled();
6669
6680
  });
6670
6681
 
6671
- test('downloads and maps the selected boot resources CRATE target', async () => {
6672
- const payloadHash = 'ab'.repeat(64);
6673
- const headerHash = 'cd'.repeat(64);
6674
- const bytes = buildBootResourcesHeader({ payloadHash, headerHash });
6682
+ test('downloads and maps selected boot resources as direct RES files', async () => {
6683
+ const bytes = new Uint8Array([1, 2, 3, 4]);
6675
6684
  const binary = bytes.buffer as ArrayBuffer;
6676
6685
  const fileHash = Array.from(sha256(bytes), byte => byte.toString(16).padStart(2, '0')).join('');
6677
6686
  const resource = {
6678
6687
  required: false as const,
6679
- target: 'CRATE' as const,
6680
- url: 'https://example.com/boot-resources.crate.okpkg',
6681
- size: bytes.byteLength,
6682
- fileHash,
6683
- payloadHash,
6684
- headerHash,
6688
+ target: 'RES' as const,
6689
+ files: [
6690
+ {
6691
+ name: 'bootloader_crest.bin',
6692
+ url: 'https://example.com/bootloader_crest.bin',
6693
+ devicePath: 'vol0:/assets/loaders/boot.staging/graphics/bootloader_crest.bin',
6694
+ size: bytes.byteLength,
6695
+ fileHash,
6696
+ },
6697
+ ],
6685
6698
  };
6686
6699
  const method = new FirmwareUpdateV4({
6687
6700
  id: 1,
@@ -6692,30 +6705,39 @@ describe('Protocol V2 firmware reconnect identity', () => {
6692
6705
  },
6693
6706
  });
6694
6707
  method.init();
6708
+ (method as any).device = stubDevice({ getCurrentDeviceType: () => 'pro2' });
6695
6709
  jest.spyOn(DataManager, 'getProtocolV2BootResources').mockReturnValue(resource);
6696
6710
  jest.spyOn(firmwareBinaryApi, 'getSysResourceBinary').mockResolvedValue({ binary });
6697
6711
 
6698
- await expect((method as any).prepareProtocolV2BootResources()).resolves.toEqual({
6699
- fileName: 'boot_resources.crate.okpkg',
6700
- binary,
6701
- targetId: 1,
6702
- kind: 'boot_resources',
6703
- });
6712
+ await expect((method as any).prepareProtocolV2BootResources()).resolves.toEqual([
6713
+ {
6714
+ name: 'bootloader_crest.bin',
6715
+ binary,
6716
+ devicePath: 'vol0:/assets/loaders/boot.staging/graphics/bootloader_crest.bin',
6717
+ },
6718
+ ]);
6704
6719
  });
6705
6720
 
6706
- test('rejects a non-CRATE manual boot resources package', async () => {
6721
+ test('rejects a manually supplied resource file when its manifest hash does not match', () => {
6707
6722
  const method = new FirmwareUpdateV4({
6708
6723
  id: 1,
6709
6724
  payload: {
6710
6725
  method: 'firmwareUpdateV4',
6711
6726
  platform: 'web',
6712
- bootResourcesBinary: buildBootResourcesHeader({ type: 'RESC' }).buffer,
6727
+ resourceFiles: [
6728
+ {
6729
+ binary: new Uint8Array([1, 2, 3]).buffer,
6730
+ devicePath: 'vol0:/assets/loaders/boot.staging/graphics/bootloader_crest.bin',
6731
+ size: 3,
6732
+ fileHash: '00'.repeat(32),
6733
+ },
6734
+ ],
6713
6735
  },
6714
6736
  });
6715
6737
  method.init();
6716
6738
 
6717
- await expect((method as any).prepareProtocolV2BootResources()).rejects.toThrow(
6718
- 'Invalid Pro2 boot resources CRATE header'
6739
+ expect(() => (method as any).prepareExplicitProtocolV2ResourceFiles()).toThrow(
6740
+ 'SHA-256 mismatch'
6719
6741
  );
6720
6742
  });
6721
6743
  });
@@ -44,7 +44,7 @@ describe('TronSignMessage legacy message validation', () => {
44
44
  }
45
45
  );
46
46
 
47
- test('allows Protocol V2 message signing on Pro2', async () => {
47
+ test('allows Protocol V2 message signing on the Pro2 product family', async () => {
48
48
  const method = new TronSignMessage({
49
49
  id: 1,
50
50
  payload: {
@@ -60,7 +60,7 @@ describe('TronSignMessage legacy message validation', () => {
60
60
  method.device = {
61
61
  commands: { typedCall },
62
62
  getCurrentFirmwareVersionString: jest.fn(() => '0.0.0'),
63
- getCurrentMethodVersionRange: jest.fn(selector => selector('pro2')),
63
+ getCurrentMethodVersionRange: jest.fn(selector => selector('model_pro2')),
64
64
  getCurrentFirmwareType: jest.fn(() => EFirmwareType.Universal),
65
65
  } as unknown as Device;
66
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"CheckAllFirmwareRelease.d.ts","sourceRoot":"","sources":["../../src/api/CheckAllFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAY/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,OAAO,KAAK,EACV,kBAAkB,EAElB,kCAAkC,EAClC,+BAA+B,EAChC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AA+HlB,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,+BAA+B,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,mBAAmB,CAAC;IACrC,UAAU,EAAE,kCAAkC,EAAE,CAAC;IACjD,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,EAC7C,eAAe,EACf,mBAAwB,EACxB,iBAAyB,EACzB,mBAAwB,EACxB,YAAY,EACZ,OAAO,GACR,EAAE;IACD,eAAe,EAAE,mBAAmB,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9D,YAAY,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C,GAAG,6BAA6B,CAqEhC;AAED,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,UAAU;IAC7D,qBAAqB;IAIrB,IAAI;IAME,GAAG;YAuDK,aAAa;CAyF5B"}
1
+ {"version":3,"file":"CheckAllFirmwareRelease.d.ts","sourceRoot":"","sources":["../../src/api/CheckAllFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAY5F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,OAAO,KAAK,EACV,kBAAkB,EAElB,kCAAkC,EAClC,+BAA+B,EAChC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AA+HlB,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,+BAA+B,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,mBAAmB,CAAC;IACrC,UAAU,EAAE,kCAAkC,EAAE,CAAC;IACjD,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,EAC7C,eAAe,EACf,mBAAwB,EACxB,iBAAyB,EACzB,mBAAwB,EACxB,YAAY,EACZ,OAAO,GACR,EAAE;IACD,eAAe,EAAE,mBAAmB,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9D,YAAY,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C,GAAG,6BAA6B,CAqEhC;AAED,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,UAAU;IAC7D,qBAAqB;IAIrB,IAAI;IAME,GAAG;YAuDK,aAAa;CA2F5B"}
@@ -1,9 +1,10 @@
1
1
  import { FirmwareUpdateBaseMethod } from './firmware/FirmwareUpdateBaseMethod';
2
2
  import type { FirmwareUpdateV4Params } from '../types/api/firmwareUpdate';
3
3
  export declare const isProtocolV2FirmwareFingerprintValid: (binary: ArrayBuffer | Uint8Array, fingerprint: string | undefined) => boolean;
4
- export declare const assertProtocolV2ReconnectIdentity: (expectedSerialNumber?: string, actualSerialNumber?: string) => void;
4
+ export declare const assertProtocolV2ReconnectIdentity: (expectedSerialNumber?: string, actualSerialNumber?: string, expectedPath?: string, actualPath?: string) => void;
5
5
  export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareUpdateV4Params> {
6
6
  private protocolV2ExpectedSerialNumber?;
7
+ private protocolV2ExpectedPath?;
7
8
  getSupportedProtocols(): readonly ["V2"];
8
9
  init(): void;
9
10
  private getProtocolV2FirmwareChunkSize;
@@ -27,9 +28,9 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
27
28
  private getRemoteComponentTarget;
28
29
  private downloadRemoteProtocolV2Component;
29
30
  private prepareRemoteProtocolV2Binaries;
30
- private validateProtocolV2BootResourcesBinary;
31
+ private getProtocolV2DeviceType;
31
32
  private prepareProtocolV2BootResources;
32
- private prepareExplicitProtocolV2ResourceBundles;
33
+ private prepareExplicitProtocolV2ResourceFiles;
33
34
  private prepareProtocolV2ResourceBundles;
34
35
  private downloadProtocolV2Resource;
35
36
  private syncProtocolV2ResourceBundles;
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAkB/E,OAAO,KAAK,EAAE,sBAAsB,EAA0B,MAAM,6BAA6B,CAAC;AAkUlG,eAAO,MAAM,oCAAoC,WACvC,WAAW,GAAG,UAAU,eACnB,MAAM,GAAG,SAAS,YAKhC,CAAC;AAEF,eAAO,MAAM,iCAAiC,0BACrB,MAAM,uBACR,MAAM,SAa5B,CAAC;AAUF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,qBAAqB;IAIrB,IAAI;IA6DJ,OAAO,CAAC,8BAA8B;IAiBhC,GAAG;;;;;YAKK,aAAa;YAwGb,2BAA2B;IAWzC,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,8BAA8B;YAMxB,iCAAiC;YAOjC,iCAAiC;YAOjC,iCAAiC;IAM/C,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,wBAAwB;YAkBlB,iCAAiC;YAmCjC,+BAA+B;IAqD7C,OAAO,CAAC,qCAAqC;YAuB/B,8BAA8B;IAyB5C,OAAO,CAAC,wCAAwC;YAgBlC,gCAAgC;YAqChC,0BAA0B;YAe1B,6BAA6B;IAkC3C,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,yBAAyB;IAU3B,6BAA6B;YA6BrB,+BAA+B;IAkD7C,OAAO,CAAC,6BAA6B;YAkCvB,uBAAuB;IA4GrC,OAAO,CAAC,mCAAmC;YAI7B,0BAA0B;IAaxC,OAAO,CAAC,4BAA4B;IAgEpC,OAAO,CAAC,6BAA6B;YAcvB,uCAAuC;YAoJvC,gCAAgC;YAchC,yBAAyB;YAQzB,8BAA8B;IAQ5C,OAAO,CAAC,0BAA0B;YAiBpB,qCAAqC;YAgDrC,yBAAyB;YA8DzB,8BAA8B;IAU5C,OAAO,CAAC,kCAAkC;YAI5B,6BAA6B;YAwB7B,wBAAwB;IAyDtC,OAAO,CAAC,sCAAsC;YAchC,6BAA6B;YAW7B,0BAA0B;YAS1B,6BAA6B;YAmB7B,gBAAgB;IAiB9B,OAAO,CAAC,qBAAqB;CAM9B"}
1
+ {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAkB/E,OAAO,KAAK,EAAE,sBAAsB,EAA0B,MAAM,6BAA6B,CAAC;AAiUlG,eAAO,MAAM,oCAAoC,WACvC,WAAW,GAAG,UAAU,eACnB,MAAM,GAAG,SAAS,YAKhC,CAAC;AAEF,eAAO,MAAM,iCAAiC,0BACrB,MAAM,uBACR,MAAM,iBACZ,MAAM,eACR,MAAM,SAsBpB,CAAC;AAUF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC,qBAAqB;IAIrB,IAAI;IA2DJ,OAAO,CAAC,8BAA8B;IAiBhC,GAAG;;;;;YAKK,aAAa;YAoGb,2BAA2B;IAWzC,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,8BAA8B;YAMxB,iCAAiC;YAOjC,iCAAiC;YASjC,iCAAiC;IAM/C,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,wBAAwB;YAkBlB,iCAAiC;YAmCjC,+BAA+B;IAqD7C,OAAO,CAAC,uBAAuB;YAMjB,8BAA8B;IAuB5C,OAAO,CAAC,sCAAsC;YAmChC,gCAAgC;YAqChC,0BAA0B;YAe1B,6BAA6B;IAkC3C,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,yBAAyB;IAc3B,6BAA6B;YA6BrB,+BAA+B;IAkD7C,OAAO,CAAC,6BAA6B;YAkCvB,uBAAuB;IA4GrC,OAAO,CAAC,mCAAmC;YAI7B,0BAA0B;IAaxC,OAAO,CAAC,4BAA4B;IAgEpC,OAAO,CAAC,6BAA6B;YAcvB,uCAAuC;YAoJvC,gCAAgC;YAchC,yBAAyB;YAQzB,8BAA8B;IAQ5C,OAAO,CAAC,0BAA0B;YAiBpB,qCAAqC;YAgDrC,yBAAyB;YA8DzB,8BAA8B;IAU5C,OAAO,CAAC,kCAAkC;YAI5B,6BAA6B;YAwB7B,wBAAwB;IAyDtC,OAAO,CAAC,sCAAsC;YAchC,6BAA6B;YAW7B,0BAA0B;YAS1B,6BAA6B;YAmB7B,gBAAgB;IAiB9B,OAAO,CAAC,qBAAqB;CAM9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenWalletSession.d.ts","sourceRoot":"","sources":["../../src/api/OpenWalletSession.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AAkExC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IAChF,qBAAqB;IAIrB,IAAI;IAOE,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;CA+K/C"}
1
+ {"version":3,"file":"OpenWalletSession.d.ts","sourceRoot":"","sources":["../../src/api/OpenWalletSession.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AAkExC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IAChF,qBAAqB;IAIrB,IAAI;IAQE,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;CA+K/C"}
@@ -20,7 +20,7 @@ export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[
20
20
  model_classic1s: {
21
21
  min: string;
22
22
  };
23
- pro2: {
23
+ model_pro2: {
24
24
  min: string;
25
25
  };
26
26
  };
@@ -23,7 +23,7 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
23
23
  model_classic1s: {
24
24
  min: string;
25
25
  };
26
- pro2: {
26
+ model_pro2: {
27
27
  min: string;
28
28
  };
29
29
  };
@@ -12,7 +12,7 @@ export default class PolkadotGetAddress extends BaseMethod<HardwarePolkadotGetAd
12
12
  model_touch: {
13
13
  min: string;
14
14
  };
15
- pro2: {
15
+ model_pro2: {
16
16
  min: string;
17
17
  };
18
18
  };
@@ -21,7 +21,7 @@ export declare function getPolkadotVersionRangeWithBundle(networks: string[]): D
21
21
  model_touch: {
22
22
  min: string;
23
23
  };
24
- pro2: {
24
+ model_pro2: {
25
25
  min: string;
26
26
  };
27
27
  };