@ledgerhq/live-common 34.54.0 → 34.54.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 (125) hide show
  1. package/lib/e2e/speculosCI.d.ts.map +1 -1
  2. package/lib/e2e/speculosCI.js +1 -6
  3. package/lib/e2e/speculosCI.js.map +1 -1
  4. package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
  5. package/lib/exchange/swap/postSwapState.js +10 -6
  6. package/lib/exchange/swap/postSwapState.js.map +1 -1
  7. package/lib/exchange/swap/transactionStrategies.d.ts +2 -1
  8. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  9. package/lib/exchange/swap/transactionStrategies.js +7 -6
  10. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  11. package/lib/exchange/swap/types.d.ts +3 -1
  12. package/lib/exchange/swap/types.d.ts.map +1 -1
  13. package/lib/hw/connectAppEventMapper.d.ts.map +1 -1
  14. package/lib/hw/connectAppEventMapper.js +21 -2
  15. package/lib/hw/connectAppEventMapper.js.map +1 -1
  16. package/lib/hw/getAppAndVersion.d.ts +3 -1
  17. package/lib/hw/getAppAndVersion.d.ts.map +1 -1
  18. package/lib/hw/getAppAndVersion.js +2 -2
  19. package/lib/hw/getAppAndVersion.js.map +1 -1
  20. package/lib/wallet-api/Exchange/SwapError.d.ts +93 -0
  21. package/lib/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  22. package/lib/wallet-api/Exchange/SwapError.js +142 -0
  23. package/lib/wallet-api/Exchange/SwapError.js.map +1 -0
  24. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  25. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  26. package/lib/wallet-api/Exchange/handleSwapErrors.js +112 -0
  27. package/lib/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  28. package/lib/wallet-api/Exchange/index.d.ts +4 -0
  29. package/lib/wallet-api/Exchange/index.d.ts.map +1 -0
  30. package/lib/wallet-api/Exchange/index.js +27 -0
  31. package/lib/wallet-api/Exchange/index.js.map +1 -0
  32. package/lib/wallet-api/Exchange/parser.d.ts +46 -0
  33. package/lib/wallet-api/Exchange/parser.d.ts.map +1 -0
  34. package/lib/wallet-api/Exchange/parser.js +97 -0
  35. package/lib/wallet-api/Exchange/parser.js.map +1 -0
  36. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  37. package/lib/wallet-api/Exchange/server.js +227 -174
  38. package/lib/wallet-api/Exchange/server.js.map +1 -1
  39. package/lib/wallet-api/Exchange/tracking.d.ts +7 -6
  40. package/lib/wallet-api/Exchange/tracking.d.ts.map +1 -1
  41. package/lib/wallet-api/Exchange/tracking.js +52 -13
  42. package/lib/wallet-api/Exchange/tracking.js.map +1 -1
  43. package/lib/wallet-api/logic.d.ts +1 -1
  44. package/lib/wallet-api/logic.d.ts.map +1 -1
  45. package/lib/wallet-api/logic.js +5 -5
  46. package/lib/wallet-api/logic.js.map +1 -1
  47. package/lib/wallet-api/react.d.ts.map +1 -1
  48. package/lib/wallet-api/react.js +9 -6
  49. package/lib/wallet-api/react.js.map +1 -1
  50. package/lib/wallet-api/tracking.d.ts +5 -5
  51. package/lib/wallet-api/tracking.d.ts.map +1 -1
  52. package/lib/wallet-api/tracking.js +30 -10
  53. package/lib/wallet-api/tracking.js.map +1 -1
  54. package/lib-es/e2e/speculosCI.d.ts.map +1 -1
  55. package/lib-es/e2e/speculosCI.js +1 -6
  56. package/lib-es/e2e/speculosCI.js.map +1 -1
  57. package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
  58. package/lib-es/exchange/swap/postSwapState.js +10 -6
  59. package/lib-es/exchange/swap/postSwapState.js.map +1 -1
  60. package/lib-es/exchange/swap/transactionStrategies.d.ts +2 -1
  61. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  62. package/lib-es/exchange/swap/transactionStrategies.js +7 -6
  63. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  64. package/lib-es/exchange/swap/types.d.ts +3 -1
  65. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  66. package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -1
  67. package/lib-es/hw/connectAppEventMapper.js +23 -4
  68. package/lib-es/hw/connectAppEventMapper.js.map +1 -1
  69. package/lib-es/hw/getAppAndVersion.d.ts +3 -1
  70. package/lib-es/hw/getAppAndVersion.d.ts.map +1 -1
  71. package/lib-es/hw/getAppAndVersion.js +2 -2
  72. package/lib-es/hw/getAppAndVersion.js.map +1 -1
  73. package/lib-es/wallet-api/Exchange/SwapError.d.ts +93 -0
  74. package/lib-es/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  75. package/lib-es/wallet-api/Exchange/SwapError.js +128 -0
  76. package/lib-es/wallet-api/Exchange/SwapError.js.map +1 -0
  77. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  78. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  79. package/lib-es/wallet-api/Exchange/handleSwapErrors.js +106 -0
  80. package/lib-es/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  81. package/lib-es/wallet-api/Exchange/index.d.ts +4 -0
  82. package/lib-es/wallet-api/Exchange/index.d.ts.map +1 -0
  83. package/lib-es/wallet-api/Exchange/index.js +7 -0
  84. package/lib-es/wallet-api/Exchange/index.js.map +1 -0
  85. package/lib-es/wallet-api/Exchange/parser.d.ts +46 -0
  86. package/lib-es/wallet-api/Exchange/parser.d.ts.map +1 -0
  87. package/lib-es/wallet-api/Exchange/parser.js +90 -0
  88. package/lib-es/wallet-api/Exchange/parser.js.map +1 -0
  89. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  90. package/lib-es/wallet-api/Exchange/server.js +224 -174
  91. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  92. package/lib-es/wallet-api/Exchange/tracking.d.ts +7 -6
  93. package/lib-es/wallet-api/Exchange/tracking.d.ts.map +1 -1
  94. package/lib-es/wallet-api/Exchange/tracking.js +52 -13
  95. package/lib-es/wallet-api/Exchange/tracking.js.map +1 -1
  96. package/lib-es/wallet-api/logic.d.ts +1 -1
  97. package/lib-es/wallet-api/logic.d.ts.map +1 -1
  98. package/lib-es/wallet-api/logic.js +5 -5
  99. package/lib-es/wallet-api/logic.js.map +1 -1
  100. package/lib-es/wallet-api/react.d.ts.map +1 -1
  101. package/lib-es/wallet-api/react.js +9 -6
  102. package/lib-es/wallet-api/react.js.map +1 -1
  103. package/lib-es/wallet-api/tracking.d.ts +5 -5
  104. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  105. package/lib-es/wallet-api/tracking.js +30 -10
  106. package/lib-es/wallet-api/tracking.js.map +1 -1
  107. package/package.json +68 -68
  108. package/src/e2e/speculosCI.ts +1 -6
  109. package/src/exchange/swap/postSwapState.ts +10 -5
  110. package/src/exchange/swap/transactionStrategies.ts +8 -7
  111. package/src/exchange/swap/types.ts +3 -1
  112. package/src/hw/connectAppEventMapper.ts +28 -4
  113. package/src/hw/getAppAndVersion.ts +2 -1
  114. package/src/wallet-api/Exchange/SwapError.test.ts +126 -0
  115. package/src/wallet-api/Exchange/SwapError.ts +159 -0
  116. package/src/wallet-api/Exchange/handleSwapErrors.test.ts +46 -0
  117. package/src/wallet-api/Exchange/handleSwapErrors.ts +161 -0
  118. package/src/wallet-api/Exchange/index.ts +26 -0
  119. package/src/wallet-api/Exchange/parser.test.ts +86 -0
  120. package/src/wallet-api/Exchange/parser.ts +119 -0
  121. package/src/wallet-api/Exchange/server.ts +289 -232
  122. package/src/wallet-api/Exchange/tracking.ts +56 -13
  123. package/src/wallet-api/logic.ts +5 -4
  124. package/src/wallet-api/react.ts +10 -5
  125. package/src/wallet-api/tracking.ts +30 -10
@@ -88,24 +88,25 @@ export async function signTransactionLogic(
88
88
  },
89
89
  ) => Promise<SignedOperation>,
90
90
  tokenCurrency?: string,
91
+ isEmbeddedSwap?: boolean,
91
92
  ): Promise<SignedOperation> {
92
- tracking.signTransactionRequested(manifest);
93
+ tracking.signTransactionRequested(manifest, isEmbeddedSwap);
93
94
 
94
95
  if (!transaction) {
95
- tracking.signTransactionFail(manifest);
96
+ tracking.signTransactionFail(manifest, isEmbeddedSwap);
96
97
  throw new Error("Transaction required");
97
98
  }
98
99
 
99
100
  const accountId = getAccountIdFromWalletAccountId(walletAccountId);
100
101
  if (!accountId) {
101
- tracking.signTransactionFail(manifest);
102
+ tracking.signTransactionFail(manifest, isEmbeddedSwap);
102
103
  throw new Error(`accountId ${walletAccountId} unknown`);
103
104
  }
104
105
 
105
106
  const account = accounts.find(account => account.id === accountId);
106
107
 
107
108
  if (!account) {
108
- tracking.signTransactionFail(manifest);
109
+ tracking.signTransactionFail(manifest, isEmbeddedSwap);
109
110
  throw new Error("Account required");
110
111
  }
111
112
 
@@ -806,8 +806,12 @@ export function useWalletAPIServer({
806
806
 
807
807
  server.setHandler(
808
808
  "transaction.signAndBroadcast",
809
- async ({ accountId, tokenCurrency, transaction, options }) => {
809
+ async ({ accountId, tokenCurrency, transaction, options, meta }) => {
810
810
  const sponsored = transaction.family === "ethereum" && transaction.sponsored;
811
+ // isEmbedded is passed via meta (not transaction) as it's a tracking param, not a tx property
812
+ const isEmbeddedSwap =
813
+ transaction.family === "ethereum" &&
814
+ (meta as { isEmbedded?: boolean } | undefined)?.isEmbedded;
811
815
 
812
816
  const signedTransaction = await signTransactionLogic(
813
817
  { manifest, accounts, tracking },
@@ -824,18 +828,19 @@ export function useWalletAPIServer({
824
828
  onSuccess: signedOperation => {
825
829
  if (done) return;
826
830
  done = true;
827
- tracking.signTransactionSuccess(manifest);
831
+ tracking.signTransactionSuccess(manifest, isEmbeddedSwap);
828
832
  resolve(signedOperation);
829
833
  },
830
834
  onError: error => {
831
835
  if (done) return;
832
836
  done = true;
833
- tracking.signTransactionFail(manifest);
837
+ tracking.signTransactionFail(manifest, isEmbeddedSwap);
834
838
  reject(error);
835
839
  },
836
840
  });
837
841
  }),
838
842
  tokenCurrency,
843
+ isEmbeddedSwap,
839
844
  );
840
845
 
841
846
  return broadcastTransactionLogic(
@@ -858,9 +863,9 @@ export function useWalletAPIServer({
858
863
  sponsored,
859
864
  },
860
865
  });
861
- tracking.broadcastSuccess(manifest);
866
+ tracking.broadcastSuccess(manifest, isEmbeddedSwap);
862
867
  } catch (error) {
863
- tracking.broadcastFail(manifest);
868
+ tracking.broadcastFail(manifest, isEmbeddedSwap);
864
869
  throw error;
865
870
  }
866
871
  }
@@ -56,18 +56,30 @@ export default function trackingWrapper(trackCall: TrackWalletAPI) {
56
56
  },
57
57
 
58
58
  // Sign transaction modal open
59
- signTransactionRequested: (manifest: AppManifest) => {
60
- track("WalletAPI SignTransaction", getEventData(manifest));
59
+ signTransactionRequested: (manifest: AppManifest, isEmbeddedSwap?: boolean) => {
60
+ const properties = {
61
+ ...getEventData(manifest),
62
+ ...(isEmbeddedSwap !== undefined && { isEmbeddedSwap: String(isEmbeddedSwap) }),
63
+ };
64
+ track("WalletAPI SignTransaction", properties);
61
65
  },
62
66
 
63
67
  // Failed to sign transaction (cancel or error)
64
- signTransactionFail: (manifest: AppManifest) => {
65
- track("WalletAPI SignTransaction Fail", getEventData(manifest));
68
+ signTransactionFail: (manifest: AppManifest, isEmbeddedSwap?: boolean) => {
69
+ const properties = {
70
+ ...getEventData(manifest),
71
+ ...(isEmbeddedSwap !== undefined && { isEmbeddedSwap: String(isEmbeddedSwap) }),
72
+ };
73
+ track("WalletAPI SignTransaction Fail", properties);
66
74
  },
67
75
 
68
76
  // Successfully signed transaction
69
- signTransactionSuccess: (manifest: AppManifest) => {
70
- track("WalletAPI SignTransaction Success", getEventData(manifest));
77
+ signTransactionSuccess: (manifest: AppManifest, isEmbeddedSwap?: boolean) => {
78
+ const properties = {
79
+ ...getEventData(manifest),
80
+ ...(isEmbeddedSwap !== undefined && { isEmbeddedSwap: String(isEmbeddedSwap) }),
81
+ };
82
+ track("WalletAPI SignTransaction Success", properties);
71
83
  },
72
84
 
73
85
  // Sign Raw transaction modal open
@@ -116,13 +128,21 @@ export default function trackingWrapper(trackCall: TrackWalletAPI) {
116
128
  },
117
129
 
118
130
  // Failed to broadcast a signed transaction
119
- broadcastFail: (manifest: AppManifest) => {
120
- track("WalletAPI Broadcast Fail", getEventData(manifest));
131
+ broadcastFail: (manifest: AppManifest, isEmbeddedSwap?: boolean) => {
132
+ const properties = {
133
+ ...getEventData(manifest),
134
+ ...(isEmbeddedSwap !== undefined && { isEmbeddedSwap: String(isEmbeddedSwap) }),
135
+ };
136
+ track("WalletAPI Broadcast Fail", properties);
121
137
  },
122
138
 
123
139
  // Successfully broadcast a signed transaction
124
- broadcastSuccess: (manifest: AppManifest) => {
125
- track("WalletAPI Broadcast Success", getEventData(manifest));
140
+ broadcastSuccess: (manifest: AppManifest, isEmbeddedSwap?: boolean) => {
141
+ const properties = {
142
+ ...getEventData(manifest),
143
+ ...(isEmbeddedSwap !== undefined && { isEmbeddedSwap: String(isEmbeddedSwap) }),
144
+ };
145
+ track("WalletAPI Broadcast Success", properties);
126
146
  },
127
147
 
128
148
  // Successfully broadcast a signed transaction