@onekeyfe/hd-core 1.2.2-alpha.9 → 1.2.3-alpha.1

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 (37) hide show
  1. package/__tests__/DeviceCommands.test.ts +254 -1
  2. package/__tests__/device-lifecycle-events.test.ts +46 -14
  3. package/__tests__/logBlockEvent.test.ts +45 -122
  4. package/__tests__/open-wallet-session.test.ts +53 -0
  5. package/__tests__/protocol-v2.test.ts +79 -0
  6. package/__tests__/sol-sign-offchain-message.test.ts +72 -0
  7. package/dist/api/FirmwareUpdateV4.d.ts +1 -0
  8. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  9. package/dist/api/UploadPortfolio.d.ts +1 -0
  10. package/dist/api/UploadPortfolio.d.ts.map +1 -1
  11. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  12. package/dist/core/index.d.ts +2 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/uiPromiseRegistry.d.ts +1 -1
  15. package/dist/device/DeviceCommands.d.ts +5 -4
  16. package/dist/device/DeviceCommands.d.ts.map +1 -1
  17. package/dist/events/logBlockEvent.d.ts.map +1 -1
  18. package/dist/index.d.ts +19 -12
  19. package/dist/index.js +138 -130
  20. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -1
  21. package/dist/types/api/protocolV2.d.ts +3 -4
  22. package/dist/types/api/protocolV2.d.ts.map +1 -1
  23. package/dist/types/api/solSignOffchainMessage.d.ts +1 -0
  24. package/dist/types/api/solSignOffchainMessage.d.ts.map +1 -1
  25. package/dist/utils/patch.d.ts +1 -1
  26. package/package.json +4 -4
  27. package/src/api/FirmwareUpdateV4.ts +9 -4
  28. package/src/api/UploadPortfolio.ts +5 -4
  29. package/src/api/solana/SolSignOffchainMessage.ts +44 -4
  30. package/src/core/index.ts +24 -9
  31. package/src/data/messages/messages-protocol-v2.json +28 -33
  32. package/src/data/messages/messages.json +8 -5
  33. package/src/device/DeviceCommands.ts +29 -2
  34. package/src/events/logBlockEvent.ts +6 -75
  35. package/src/protocols/protocol-v2/walletSession.ts +7 -2
  36. package/src/types/api/protocolV2.ts +3 -4
  37. package/src/types/api/solSignOffchainMessage.ts +2 -0
package/dist/index.js CHANGED
@@ -13203,7 +13203,8 @@ var nested$2 = {
13203
13203
  },
13204
13204
  SolanaOffChainMessageVersion: {
13205
13205
  values: {
13206
- MESSAGE_VERSION_0: 0
13206
+ MESSAGE_VERSION_0: 0,
13207
+ MESSAGE_VERSION_1: 1
13207
13208
  }
13208
13209
  },
13209
13210
  SolanaOffChainMessageFormat: {
@@ -13236,14 +13237,16 @@ var nested$2 = {
13236
13237
  },
13237
13238
  message_format: {
13238
13239
  type: "SolanaOffChainMessageFormat",
13239
- id: 4,
13240
- options: {
13241
- "default": "V0_RESTRICTED_ASCII"
13242
- }
13240
+ id: 4
13243
13241
  },
13244
13242
  application_domain: {
13245
13243
  type: "bytes",
13246
13244
  id: 5
13245
+ },
13246
+ required_signers: {
13247
+ rule: "repeated",
13248
+ type: "bytes",
13249
+ id: 7
13247
13250
  }
13248
13251
  }
13249
13252
  },
@@ -31499,10 +31502,6 @@ var nested = {
31499
31502
  request_id: {
31500
31503
  type: "bytes",
31501
31504
  id: 5
31502
- },
31503
- source_fingerprint: {
31504
- type: "uint32",
31505
- id: 6
31506
31505
  }
31507
31506
  }
31508
31507
  },
@@ -31758,10 +31757,6 @@ var nested = {
31758
31757
  expected_address: {
31759
31758
  type: "bytes",
31760
31759
  id: 12
31761
- },
31762
- source_fingerprint: {
31763
- type: "uint32",
31764
- id: 13
31765
31760
  }
31766
31761
  }
31767
31762
  },
@@ -31846,10 +31841,6 @@ var nested = {
31846
31841
  expected_address: {
31847
31842
  type: "bytes",
31848
31843
  id: 12
31849
- },
31850
- source_fingerprint: {
31851
- type: "uint32",
31852
- id: 13
31853
31844
  }
31854
31845
  }
31855
31846
  },
@@ -31997,7 +31988,29 @@ var nested = {
31997
31988
  type: "EthereumAuthorizationSignature",
31998
31989
  id: 10
31999
31990
  }
32000
- }
31991
+ },
31992
+ reserved: [
31993
+ [
31994
+ 5,
31995
+ 5
31996
+ ],
31997
+ [
31998
+ 6,
31999
+ 6
32000
+ ],
32001
+ [
32002
+ 7,
32003
+ 7
32004
+ ],
32005
+ [
32006
+ 8,
32007
+ 8
32008
+ ],
32009
+ [
32010
+ 9,
32011
+ 9
32012
+ ]
32013
+ ]
32001
32014
  },
32002
32015
  EthereumTxAckOneKey: {
32003
32016
  fields: {
@@ -32026,10 +32039,6 @@ var nested = {
32026
32039
  chain_id: {
32027
32040
  type: "uint64",
32028
32041
  id: 3
32029
- },
32030
- source_fingerprint: {
32031
- type: "uint32",
32032
- id: 4
32033
32042
  }
32034
32043
  }
32035
32044
  },
@@ -36027,7 +36036,8 @@ var nested = {
36027
36036
  },
36028
36037
  SolanaOffChainMessageVersion: {
36029
36038
  values: {
36030
- MESSAGE_VERSION_0: 0
36039
+ MESSAGE_VERSION_0: 0,
36040
+ MESSAGE_VERSION_1: 1
36031
36041
  }
36032
36042
  },
36033
36043
  SolanaOffChainMessageFormat: {
@@ -36075,10 +36085,6 @@ var nested = {
36075
36085
  rule: "required",
36076
36086
  type: "bytes",
36077
36087
  id: 2
36078
- },
36079
- source_fingerprint: {
36080
- type: "uint32",
36081
- id: 3
36082
36088
  }
36083
36089
  }
36084
36090
  },
@@ -36115,17 +36121,15 @@ var nested = {
36115
36121
  },
36116
36122
  message_format: {
36117
36123
  type: "SolanaOffChainMessageFormat",
36118
- id: 4,
36119
- options: {
36120
- "default": "V0_RESTRICTED_ASCII"
36121
- }
36124
+ id: 4
36122
36125
  },
36123
36126
  application_domain: {
36124
36127
  type: "bytes",
36125
36128
  id: 5
36126
36129
  },
36127
- source_fingerprint: {
36128
- type: "uint32",
36130
+ required_signers: {
36131
+ rule: "repeated",
36132
+ type: "bytes",
36129
36133
  id: 6
36130
36134
  }
36131
36135
  }
@@ -36144,10 +36148,6 @@ var nested = {
36144
36148
  rule: "required",
36145
36149
  type: "bytes",
36146
36150
  id: 2
36147
- },
36148
- source_fingerprint: {
36149
- type: "uint32",
36150
- id: 3
36151
36151
  }
36152
36152
  }
36153
36153
  },
@@ -38963,6 +38963,10 @@ var nested = {
38963
38963
  manufacture_time: {
38964
38964
  type: "DeviceFactoryInfoManufactureTime",
38965
38965
  id: 5
38966
+ },
38967
+ data: {
38968
+ type: "bytes",
38969
+ id: 100
38966
38970
  }
38967
38971
  }
38968
38972
  },
@@ -38972,11 +38976,19 @@ var nested = {
38972
38976
  rule: "required",
38973
38977
  type: "DeviceFactoryInfo",
38974
38978
  id: 1
38979
+ },
38980
+ full_data: {
38981
+ type: "bool",
38982
+ id: 2
38975
38983
  }
38976
38984
  }
38977
38985
  },
38978
38986
  DeviceFactoryInfoGet: {
38979
38987
  fields: {
38988
+ full_data: {
38989
+ type: "bool",
38990
+ id: 1
38991
+ }
38980
38992
  }
38981
38993
  },
38982
38994
  DeviceFactoryPermanentLock: {
@@ -41663,61 +41675,13 @@ const LogBlockEvent = new Set([
41663
41675
  UI_RESPONSE.RECEIVE_PIN,
41664
41676
  UI_RESPONSE.RECEIVE_PASSPHRASE,
41665
41677
  ]);
41666
- const LogLabelMethod = new Set([
41667
- 'openWalletSession',
41678
+ const LogPayloadBlockMethod = new Set([
41668
41679
  'deviceUploadNft',
41669
41680
  'deviceUploadWallpaper',
41670
41681
  'uploadPortfolio',
41671
41682
  'fileWrite',
41672
41683
  'fileRead',
41673
41684
  ]);
41674
- const LogPayloadBlockMethod = new Set([
41675
- 'deviceUploadNft',
41676
- 'deviceUploadWallpaper',
41677
- 'uploadPortfolio',
41678
- ]);
41679
- const SensitiveLogKeys = new Set([
41680
- 'devicestate',
41681
- 'entropy',
41682
- 'expectedpassphrasestate',
41683
- 'mnemonic',
41684
- 'passphrase',
41685
- 'passphrasestate',
41686
- 'password',
41687
- 'pin',
41688
- 'privatekey',
41689
- 'seed',
41690
- 'session',
41691
- 'sessionid',
41692
- 'walletsessionid',
41693
- 'xprv',
41694
- ]);
41695
- const normalizeLogKey = (key) => key.replace(/[_-]/g, '').toLowerCase();
41696
- const isSigningMethod = (methodName) => /sign/i.test(methodName);
41697
- const redactLogValue = (value, seen) => {
41698
- if (ArrayBuffer.isView(value)) {
41699
- return `[BINARY:${value.byteLength}]`;
41700
- }
41701
- if (value instanceof ArrayBuffer) {
41702
- return `[BINARY:${value.byteLength}]`;
41703
- }
41704
- if (Array.isArray(value)) {
41705
- return value.map(item => redactLogValue(item, seen));
41706
- }
41707
- if (!value || typeof value !== 'object')
41708
- return value;
41709
- if (seen.has(value))
41710
- return '[CIRCULAR]';
41711
- seen.add(value);
41712
- const redacted = Object.fromEntries(Object.entries(value).map(([key, item]) => [
41713
- key,
41714
- SensitiveLogKeys.has(normalizeLogKey(key)) && item !== null && item !== undefined
41715
- ? '[REDACTED]'
41716
- : redactLogValue(item, seen),
41717
- ]));
41718
- seen.delete(value);
41719
- return redacted;
41720
- };
41721
41685
  function getLogBlockLabel(message) {
41722
41686
  if (!message || typeof message !== 'object')
41723
41687
  return undefined;
@@ -41726,26 +41690,16 @@ function getLogBlockLabel(message) {
41726
41690
  return type;
41727
41691
  }
41728
41692
  const methodName = method !== null && method !== void 0 ? method : payload === null || payload === void 0 ? void 0 : payload.method;
41729
- if (methodName && (LogLabelMethod.has(methodName) || isSigningMethod(methodName))) {
41693
+ if (methodName && LogPayloadBlockMethod.has(methodName)) {
41730
41694
  return methodName;
41731
41695
  }
41732
41696
  return undefined;
41733
41697
  }
41734
41698
  function getSafeLogPayload(value, blockLabel) {
41735
- if (blockLabel &&
41736
- (LogBlockEvent.has(blockLabel) ||
41737
- LogPayloadBlockMethod.has(blockLabel) ||
41738
- isSigningMethod(blockLabel))) {
41699
+ if (blockLabel) {
41739
41700
  return { method: blockLabel, payload: '[REDACTED]' };
41740
41701
  }
41741
- const redactedValue = redactLogValue(value, new WeakSet());
41742
- if (blockLabel &&
41743
- redactedValue &&
41744
- typeof redactedValue === 'object' &&
41745
- !Array.isArray(redactedValue)) {
41746
- return Object.assign(Object.assign({}, redactedValue), { method: blockLabel });
41747
- }
41748
- return redactedValue;
41702
+ return value;
41749
41703
  }
41750
41704
  function formatLogMethodLabel(label, methodName) {
41751
41705
  return methodName ? `${label} [${methodName}]` : label;
@@ -41869,7 +41823,7 @@ const selectDeviceSession = (device, expectedPassphraseState, deriveCardano, onS
41869
41823
  return getDeviceSession(device, buildDeviceSessionGetRequest());
41870
41824
  });
41871
41825
  function getProtocolV2WalletSession(device, options) {
41872
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
41826
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
41873
41827
  return __awaiter(this, void 0, void 0, function* () {
41874
41828
  const forceWalletSelection = (options === null || options === void 0 ? void 0 : options.forceWalletSelection) === true || (options === null || options === void 0 ? void 0 : options.initSession) === true;
41875
41829
  const readCurrentAttachPinSession = (options === null || options === void 0 ? void 0 : options.readCurrentAttachPinSession) === true;
@@ -41940,7 +41894,7 @@ function getProtocolV2WalletSession(device, options) {
41940
41894
  return keepAttachPin ? Object.assign(session, { viaAttachPin: true }) : session;
41941
41895
  });
41942
41896
  const rejectMismatchedAttachPinWallet = () => __awaiter(this, void 0, void 0, function* () {
41943
- var _m;
41897
+ var _o;
41944
41898
  const features = yield refreshProtocolV2DeviceStatus(device);
41945
41899
  markWalletStatusRefreshed();
41946
41900
  if (features.unlockedAttachPin !== true) {
@@ -41949,10 +41903,10 @@ function getProtocolV2WalletSession(device, options) {
41949
41903
  try {
41950
41904
  yield device.lockDevice();
41951
41905
  }
41952
- catch (_o) {
41906
+ catch (_p) {
41953
41907
  }
41954
41908
  if (options === null || options === void 0 ? void 0 : options.rejectAttachPinForMainWallet) {
41955
- (_m = device.clearStandardInternalState) === null || _m === void 0 ? void 0 : _m.call(device);
41909
+ (_o = device.clearStandardInternalState) === null || _o === void 0 ? void 0 : _o.call(device);
41956
41910
  device.clearInternalState();
41957
41911
  }
41958
41912
  else {
@@ -41961,11 +41915,11 @@ function getProtocolV2WalletSession(device, options) {
41961
41915
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckUnlockTypeError);
41962
41916
  });
41963
41917
  const lockAttachPinBeforePassphraseSelection = () => __awaiter(this, void 0, void 0, function* () {
41964
- var _p;
41918
+ var _q;
41965
41919
  if (readCurrentAttachPinSession || (options === null || options === void 0 ? void 0 : options.onlyMainPin)) {
41966
41920
  return;
41967
41921
  }
41968
- if (((_p = device.features) === null || _p === void 0 ? void 0 : _p.unlockedAttachPin) !== true) {
41922
+ if (((_q = device.features) === null || _q === void 0 ? void 0 : _q.unlockedAttachPin) !== true) {
41969
41923
  return;
41970
41924
  }
41971
41925
  yield rejectMismatchedAttachPinWallet();
@@ -41986,8 +41940,8 @@ function getProtocolV2WalletSession(device, options) {
41986
41940
  }
41987
41941
  });
41988
41942
  const selectStandardWallet = (forceMainPin = false) => __awaiter(this, void 0, void 0, function* () {
41989
- var _q;
41990
- if (((_q = device.features) === null || _q === void 0 ? void 0 : _q.passphraseProtection) === true) {
41943
+ var _r;
41944
+ if (((_r = device.features) === null || _r === void 0 ? void 0 : _r.passphraseProtection) === true) {
41991
41945
  yield selectMainPin();
41992
41946
  yield askDevicePassphrase(device, {
41993
41947
  passphrase: '',
@@ -42052,6 +42006,9 @@ function getProtocolV2WalletSession(device, options) {
42052
42006
  throw error;
42053
42007
  }
42054
42008
  resumed = false;
42009
+ if (((_g = device.features) === null || _g === void 0 ? void 0 : _g.unlockedAttachPin) === true) {
42010
+ response = yield getDeviceSession(device, sessionGetRequest());
42011
+ }
42055
42012
  }
42056
42013
  }
42057
42014
  else if (expectedPassphraseState) {
@@ -42080,7 +42037,7 @@ function getProtocolV2WalletSession(device, options) {
42080
42037
  }
42081
42038
  catch (error) {
42082
42039
  if (options === null || options === void 0 ? void 0 : options.onlyMainPin) {
42083
- (_g = device.clearStandardInternalState) === null || _g === void 0 ? void 0 : _g.call(device);
42040
+ (_h = device.clearStandardInternalState) === null || _h === void 0 ? void 0 : _h.call(device);
42084
42041
  }
42085
42042
  else {
42086
42043
  device.clearInternalState();
@@ -42095,7 +42052,7 @@ function getProtocolV2WalletSession(device, options) {
42095
42052
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.WalletSessionInvalid);
42096
42053
  }
42097
42054
  if (options === null || options === void 0 ? void 0 : options.onlyMainPin) {
42098
- (_h = device.clearStandardInternalState) === null || _h === void 0 ? void 0 : _h.call(device);
42055
+ (_j = device.clearStandardInternalState) === null || _j === void 0 ? void 0 : _j.call(device);
42099
42056
  yield selectStandardWallet(true);
42100
42057
  response = yield getDeviceSession(device, sessionGetRequest());
42101
42058
  }
@@ -42110,7 +42067,7 @@ function getProtocolV2WalletSession(device, options) {
42110
42067
  }
42111
42068
  catch (error) {
42112
42069
  if (options === null || options === void 0 ? void 0 : options.onlyMainPin) {
42113
- (_j = device.clearStandardInternalState) === null || _j === void 0 ? void 0 : _j.call(device);
42070
+ (_k = device.clearStandardInternalState) === null || _k === void 0 ? void 0 : _k.call(device);
42114
42071
  }
42115
42072
  else {
42116
42073
  device.clearInternalState();
@@ -42133,7 +42090,7 @@ function getProtocolV2WalletSession(device, options) {
42133
42090
  if (sessionIsAttachPinWallet(response)) {
42134
42091
  response = yield askEmptyPassphraseAndGet({ deriveCardano: true, keepAttachPin: true });
42135
42092
  }
42136
- else if (((_k = device.features) === null || _k === void 0 ? void 0 : _k.passphraseProtection) === false) {
42093
+ else if (((_l = device.features) === null || _l === void 0 ? void 0 : _l.passphraseProtection) === false) {
42137
42094
  response = yield getDeviceSession(device, buildDeviceSessionGetRequest());
42138
42095
  }
42139
42096
  else if (options === null || options === void 0 ? void 0 : options.onlyMainPin) {
@@ -42150,7 +42107,7 @@ function getProtocolV2WalletSession(device, options) {
42150
42107
  }
42151
42108
  catch (error) {
42152
42109
  if (options === null || options === void 0 ? void 0 : options.onlyMainPin) {
42153
- (_l = device.clearStandardInternalState) === null || _l === void 0 ? void 0 : _l.call(device);
42110
+ (_m = device.clearStandardInternalState) === null || _m === void 0 ? void 0 : _m.call(device);
42154
42111
  }
42155
42112
  else {
42156
42113
  device.clearInternalState();
@@ -43955,6 +43912,7 @@ class DeviceCommands {
43955
43912
  var _a, _b;
43956
43913
  return __awaiter(this, void 0, void 0, function* () {
43957
43914
  this.disposed = true;
43915
+ this.disposalToken = {};
43958
43916
  yield ((_b = (_a = this.transport).cancel) === null || _b === void 0 ? void 0 : _b.call(_a));
43959
43917
  });
43960
43918
  }
@@ -44128,7 +44086,24 @@ class DeviceCommands {
44128
44086
  }
44129
44087
  _commonCall(type, msg, options) {
44130
44088
  return __awaiter(this, void 0, void 0, function* () {
44131
- const resp = yield this.call(type, msg, options);
44089
+ const { disposalToken } = this;
44090
+ let resp = yield this.call(type, msg, options);
44091
+ for (let retry = 0; retry < 3 &&
44092
+ this.device.isProtocolV2() &&
44093
+ DEVICE_SESSION_CALLS.has(type) &&
44094
+ resp.type === 'Failure' &&
44095
+ resp.message.code === 'Failure_ProcessError' &&
44096
+ resp.message.subcode === hdTransport.DeviceSessionErrorCode.DeviceSessionError_Busy; retry += 1) {
44097
+ yield wait(100);
44098
+ if (this.device.wasInterruptedByUser()) {
44099
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceInterruptedFromUser);
44100
+ }
44101
+ this.checkDisposed();
44102
+ if (this.disposalToken !== disposalToken) {
44103
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'DeviceCommands lifecycle changed');
44104
+ }
44105
+ resp = yield this.call(type, msg, options);
44106
+ }
44132
44107
  return this._filterCommonTypes(resp, type, options);
44133
44108
  });
44134
44109
  }
@@ -52650,6 +52625,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52650
52625
  this.protocolV2InstallDisconnectObserved = false;
52651
52626
  this.protocolV2InstallTerminalSuccessObserved = false;
52652
52627
  this.protocolV2LastTransferProgressAt = 0;
52628
+ this.protocolV2LastTransferredBytes = 0;
52653
52629
  }
52654
52630
  getSupportedProtocols() {
52655
52631
  return ['V2'];
@@ -53812,6 +53788,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53812
53788
  this.postTipMessage(exports.FirmwareUpdateTipMessage.StartTransferData);
53813
53789
  this.protocolV2LastTransferProgress = undefined;
53814
53790
  this.protocolV2LastTransferProgressAt = 0;
53791
+ this.protocolV2LastTransferredBytes = 0;
53815
53792
  const transferStartedAt = Date.now();
53816
53793
  let processedSize = 0;
53817
53794
  for (const resource of resourcesToSync) {
@@ -53894,13 +53871,15 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
53894
53871
  const now = Date.now();
53895
53872
  const elapsedMs = Math.max(now - transferStartedAt, 0);
53896
53873
  const progress = Math.min(Math.ceil((transferredBytes / totalSize) * 100), 99);
53897
- const shouldPostProgress = progress !== this.protocolV2LastTransferProgress ||
53898
- now - this.protocolV2LastTransferProgressAt >=
53899
- PROTOCOL_V2_TRANSFER_PROGRESS_HEARTBEAT_MS ||
53900
- chunkEnd === source.size;
53874
+ const shouldPostProgress = transferredBytes >= this.protocolV2LastTransferredBytes &&
53875
+ (progress !== this.protocolV2LastTransferProgress ||
53876
+ now - this.protocolV2LastTransferProgressAt >=
53877
+ PROTOCOL_V2_TRANSFER_PROGRESS_HEARTBEAT_MS ||
53878
+ chunkEnd === source.size);
53901
53879
  if (shouldPostProgress) {
53902
53880
  this.protocolV2LastTransferProgress = progress;
53903
53881
  this.protocolV2LastTransferProgressAt = now;
53882
+ this.protocolV2LastTransferredBytes = transferredBytes;
53904
53883
  this.postProgressMessage(progress, 'transferData', {
53905
53884
  transferredBytes,
53906
53885
  totalBytes: totalSize,
@@ -55459,16 +55438,16 @@ const FILESYSTEM_FILE_WRITE_MESSAGE_TYPE = 60805;
55459
55438
  const PORTFOLIO_UPDATE_MESSAGE_TYPE = 61400;
55460
55439
  class UploadPortfolio extends FileWrite {
55461
55440
  init() {
55462
- const { packageBase64, timeoutMs } = this.payload;
55441
+ const { packageBase64, timeoutMs, uiMode = 'silent' } = this.payload;
55463
55442
  const packageBytes = decodeCanonicalBase64({
55464
55443
  value: packageBase64,
55465
55444
  parameterName: 'packageBase64',
55466
55445
  maxBytes: PORTFOLIO_PACKAGE_MAX_BYTES,
55467
55446
  });
55468
- this.payload = Object.assign(Object.assign({}, this.payload), { path: PORTFOLIO_PENDING_PATH, offset: 0, data: packageBytes, chunkSize: PORTFOLIO_CHUNK_SIZE, overwrite: true, append: false, emitProgress: false, timeoutMs });
55447
+ this.payload = Object.assign(Object.assign({}, this.payload), { path: PORTFOLIO_PENDING_PATH, offset: 0, data: packageBytes, chunkSize: PORTFOLIO_CHUNK_SIZE, overwrite: true, append: false, emitProgress: uiMode === 'progress', timeoutMs });
55469
55448
  super.init();
55470
55449
  this.unlockPolicy = 'none';
55471
- this.protocolV2UiMode = 'none';
55450
+ this.protocolV2UiMode = uiMode === 'progress' ? 'auto' : 'none';
55472
55451
  }
55473
55452
  run() {
55474
55453
  const _super = Object.create(null, {
@@ -59514,6 +59493,23 @@ class SolSignTransaction extends BaseMethod {
59514
59493
  }
59515
59494
  }
59516
59495
 
59496
+ const SOLANA_PUBLIC_KEY_LENGTH = 32;
59497
+ const SOLANA_APPLICATION_DOMAIN_LENGTH = 32;
59498
+ const normalizeRequiredSigners = (requiredSigners = []) => {
59499
+ const normalized = requiredSigners.map((signer, index) => {
59500
+ if (typeof signer !== 'string' ||
59501
+ !isHexString(addHexPrefix(signer), SOLANA_PUBLIC_KEY_LENGTH)) {
59502
+ throw invalidParameter(`Parameter [requiredSigners][${index}] must be a ${SOLANA_PUBLIC_KEY_LENGTH}-byte hex public key.`);
59503
+ }
59504
+ return stripHexPrefix(signer).toLowerCase();
59505
+ });
59506
+ for (let index = 1; index < normalized.length; index += 1) {
59507
+ if (normalized[index - 1] >= normalized[index]) {
59508
+ throw invalidParameter('Parameter [requiredSigners] must be strictly sorted and unique.');
59509
+ }
59510
+ }
59511
+ return normalized;
59512
+ };
59517
59513
  class SolSignOffchainMessage extends BaseMethod {
59518
59514
  getSupportedProtocols() {
59519
59515
  return ['V1', 'V2'];
@@ -59528,15 +59524,21 @@ class SolSignOffchainMessage extends BaseMethod {
59528
59524
  { name: 'messageVersion', type: 'number', required: false },
59529
59525
  { name: 'messageFormat', type: 'number', required: false },
59530
59526
  { name: 'applicationDomainHex', type: 'hexString', required: false },
59527
+ { name: 'requiredSigners', type: 'array', required: false, allowEmpty: true },
59531
59528
  ]);
59532
- const { path, messageHex, messageVersion, messageFormat, applicationDomainHex } = this.payload;
59529
+ const { path, messageHex, messageVersion, messageFormat, applicationDomainHex, requiredSigners, } = this.payload;
59533
59530
  const addressN = validatePath(path, 3);
59531
+ if (applicationDomainHex !== undefined &&
59532
+ !isHexString(addHexPrefix(applicationDomainHex), SOLANA_APPLICATION_DOMAIN_LENGTH)) {
59533
+ throw invalidParameter('Parameter [applicationDomainHex] must be 32 bytes.');
59534
+ }
59534
59535
  this.params = {
59535
59536
  address_n: addressN,
59536
59537
  message: stripHexPrefix(messageHex),
59537
59538
  message_version: messageVersion !== null && messageVersion !== void 0 ? messageVersion : undefined,
59538
59539
  message_format: messageFormat !== null && messageFormat !== void 0 ? messageFormat : undefined,
59539
- application_domain: applicationDomainHex !== null && applicationDomainHex !== void 0 ? applicationDomainHex : undefined,
59540
+ application_domain: applicationDomainHex ? stripHexPrefix(applicationDomainHex) : undefined,
59541
+ required_signers: normalizeRequiredSigners(requiredSigners),
59540
59542
  };
59541
59543
  }
59542
59544
  getVersionRange() {
@@ -66380,11 +66382,15 @@ function isRetryableBleProtocolV2ProbeError(method, error) {
66380
66382
  message.includes('did not respond to expected protocol'));
66381
66383
  }
66382
66384
  function isRetryableBleConnectionError(method, error) {
66383
- var _a;
66385
+ var _a, _b;
66384
66386
  if ((_a = method.device) === null || _a === void 0 ? void 0 : _a.wasInterruptedByUser()) {
66385
66387
  return false;
66386
66388
  }
66387
66389
  const typedError = error;
66390
+ if ((typedError === null || typedError === void 0 ? void 0 : typedError.errorCode) === hdShared.HardwareErrorCode.BleTimeoutError &&
66391
+ ((_b = typedError.params) === null || _b === void 0 ? void 0 : _b.acquireDeadlineExceeded) === true) {
66392
+ return false;
66393
+ }
66388
66394
  return ((typedError === null || typedError === void 0 ? void 0 : typedError.errorCode) === hdShared.HardwareErrorCode.BleTimeoutError ||
66389
66395
  (typedError === null || typedError === void 0 ? void 0 : typedError.errorCode) === hdShared.HardwareErrorCode.BleConnectedError ||
66390
66396
  isRetryableBleProtocolV2ProbeError(method, error) ||
@@ -66397,10 +66403,11 @@ function isMissingDetectedProtocolV2Error(method, error) {
66397
66403
  typeof typedError.message === 'string' &&
66398
66404
  typedError.message.includes('Device protocol has not been detected'));
66399
66405
  }
66400
- function isProtocolV2PeerRemovedPairingError(method, error) {
66401
- return (method.payload.connectProtocol === 'V2' &&
66402
- (error === null || error === void 0 ? void 0 : error.errorCode) ===
66403
- hdShared.HardwareErrorCode.BlePeerRemovedPairingInformation);
66406
+ function isTerminalBleStaleBondError(error) {
66407
+ return hdShared.isBleStaleBondHardwareError(error);
66408
+ }
66409
+ function isDeviceIdentityMismatchError(error) {
66410
+ return ((error === null || error === void 0 ? void 0 : error.errorCode) === hdShared.HardwareErrorCode.DeviceCheckDeviceIdError);
66404
66411
  }
66405
66412
  const BLE_ACQUIRE_DEADLINE_MS = 60 * 1000;
66406
66413
  function raceBleAcquire(acquirePromise, abortSignal) {
@@ -66415,7 +66422,7 @@ function raceBleAcquire(acquirePromise, abortSignal) {
66415
66422
  fn();
66416
66423
  };
66417
66424
  const onAbort = () => settle(() => reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallQueueActionCancelled)));
66418
- const deadline = setTimeout(() => settle(() => reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleTimeoutError, `BLE acquire exceeded ${BLE_ACQUIRE_DEADLINE_MS}ms deadline`))), BLE_ACQUIRE_DEADLINE_MS);
66425
+ const deadline = setTimeout(() => settle(() => reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleTimeoutError, `BLE acquire exceeded ${BLE_ACQUIRE_DEADLINE_MS}ms deadline`, { acquireDeadlineExceeded: true }))), BLE_ACQUIRE_DEADLINE_MS);
66419
66426
  acquirePromise.then(value => settle(() => resolve(value)), error => settle(() => reject(error)));
66420
66427
  if (abortSignal) {
66421
66428
  if (abortSignal.aborted) {
@@ -66632,7 +66639,8 @@ const ensureConnected = (_context, method, connectId, pollingId, abortSignal) =>
66632
66639
  hdShared.HardwareErrorCode.DeviceInterruptedFromUser,
66633
66640
  hdShared.HardwareErrorCode.CallQueueActionCancelled,
66634
66641
  ].includes(error.errorCode) ||
66635
- isProtocolV2PeerRemovedPairingError(method, error)) {
66642
+ isTerminalBleStaleBondError(error) ||
66643
+ isDeviceIdentityMismatchError(error)) {
66636
66644
  reject(error);
66637
66645
  return;
66638
66646
  }
@@ -66694,9 +66702,9 @@ const cancel = (context, connectId) => {
66694
66702
  }
66695
66703
  else {
66696
66704
  const env = DataManager.getSettings('env');
66705
+ requestQueue.abortAllRequests();
66697
66706
  if (DataManager.isBleConnect(env)) {
66698
66707
  Log.debug('Cancel Api all _deviceList: ');
66699
- requestQueue.abortAllRequests();
66700
66708
  const canceledDevices = [];
66701
66709
  const interruptDevice = (device) => {
66702
66710
  if (!device || canceledDevices.includes(device)) {
@@ -1 +1 @@
1
- {"version":3,"file":"walletSession.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/walletSession.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuBlD,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,MAAM,0DAGjE;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,MAAM,qCAGjE;AAED,wBAAsB,qCAAqC,CAAC,MAAM,EAAE,MAAM,oBAgBzE;AA8JD,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;;;;GA6XF;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,MAAM,EAC/B,aAAa,CAAC,EAAE,OAAO;;;;;;GAOxB"}
1
+ {"version":3,"file":"walletSession.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/walletSession.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuBlD,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,MAAM,0DAGjE;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,MAAM,qCAGjE;AAED,wBAAsB,qCAAqC,CAAC,MAAM,EAAE,MAAM,oBAgBzE;AA8JD,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;;;;GAkYF;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,MAAM,EAC/B,aAAa,CAAC,EAAE,OAAO;;;;;;GAOxB"}
@@ -1,9 +1,11 @@
1
1
  import type { CommonParams, Response } from '../params';
2
2
  import type { OnboardingStatus, Success } from '@onekeyfe/hd-transport';
3
3
  import type { DeviceRebootParams } from '../../api/protocol-v2/helpers';
4
+ import type { UploadPortfolioParams } from '../../api/UploadPortfolio';
4
5
  import type { DeviceUploadWallpaperParams, DeviceUploadWallpaperResponse } from '../../api/protocol-v2/DeviceUploadWallpaper';
5
6
  import type { DeviceUploadNftParams, DeviceUploadNftResponse } from '../../api/protocol-v2/DeviceUploadNft';
6
7
  export type { DeviceRebootParams, RebootTypeInput } from '../../api/protocol-v2/helpers';
8
+ export type { UploadPortfolioParams } from '../../api/UploadPortfolio';
7
9
  export type { DeviceUploadWallpaperParams, DeviceUploadWallpaperResponse, } from '../../api/protocol-v2/DeviceUploadWallpaper';
8
10
  export type { DeviceUploadNftParams, DeviceUploadNftResponse, } from '../../api/protocol-v2/DeviceUploadNft';
9
11
  export type FileInfo = {
@@ -23,10 +25,7 @@ export declare function deviceReboot(connectId: string, params: CommonParams & D
23
25
  export declare function deviceGetOnboardingStatus(connectId: string, params?: CommonParams): Response<OnboardingStatus>;
24
26
  export declare function deviceUploadWallpaper(connectId: string, params: CommonParams & DeviceUploadWallpaperParams): Response<DeviceUploadWallpaperResponse>;
25
27
  export declare function deviceUploadNft(connectId: string, params: CommonParams & DeviceUploadNftParams): Response<DeviceUploadNftResponse>;
26
- export declare function uploadPortfolio(connectId: string, params: {
27
- packageBase64: string;
28
- timeoutMs?: number | string;
29
- }): Response<FileInfo & {
28
+ export declare function uploadPortfolio(connectId: string, params: UploadPortfolioParams): Response<FileInfo & {
30
29
  portfolioUpdated: true;
31
30
  }>;
32
31
  //# sourceMappingURL=protocolV2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocolV2.d.ts","sourceRoot":"","sources":["../../../src/types/api/protocolV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,uCAAuC,CAAC;AAG/C,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EACV,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAI/C,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG;IAEpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,wBAAwB,GAChC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,kBAAkB,GACxC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,GACpB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,2BAA2B,GACjD,QAAQ,CAAC,6BAA6B,CAAC,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAC3C,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IACN,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B,GACA,QAAQ,CAAC,QAAQ,GAAG;IAAE,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"protocolV2.d.ts","sourceRoot":"","sources":["../../../src/types/api/protocolV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,uCAAuC,CAAC;AAG/C,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EACV,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAI/C,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG;IAEpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,wBAAwB,GAChC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,kBAAkB,GACxC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,GACpB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,2BAA2B,GACjD,QAAQ,CAAC,6BAA6B,CAAC,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAC3C,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,GAC5B,QAAQ,CAAC,QAAQ,GAAG;IAAE,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC"}
@@ -10,6 +10,7 @@ export type SolSignOffchainMessageParams = {
10
10
  messageVersion?: SolanaOffChainMessageVersion;
11
11
  messageFormat?: SolanaOffChainMessageFormat;
12
12
  applicationDomainHex?: string;
13
+ requiredSigners?: string[];
13
14
  };
14
15
  export declare function solSignOffchainMessage(connectId: string, deviceId: string, params: CommonParams & SolSignOffchainMessageParams): Response<SolSignOffchainMessageResponse>;
15
16
  //# sourceMappingURL=solSignOffchainMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solSignOffchainMessage.d.ts","sourceRoot":"","sources":["../../../src/types/api/solSignOffchainMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,4BAA4B,GAClD,QAAQ,CAAC,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"solSignOffchainMessage.d.ts","sourceRoot":"","sources":["../../../src/types/api/solSignOffchainMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,4BAA4B,GAClD,QAAQ,CAAC,8BAA8B,CAAC,CAAC"}