@pushchain/ui-kit 5.1.1 → 5.2.0-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 (67) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +3 -2
  3. package/src/lib/components/LoginModal/index.js +20 -19
  4. package/src/lib/components/LoginModal/index.js.map +1 -1
  5. package/src/lib/components/LoginModal/useSmartModalPosition.js +1 -2
  6. package/src/lib/components/LoginModal/useSmartModalPosition.js.map +1 -1
  7. package/src/lib/components/PushUniversalAccountButton/index.js +9 -8
  8. package/src/lib/components/PushUniversalAccountButton/index.js.map +1 -1
  9. package/src/lib/components/PushWalletToast/index.js +2 -2
  10. package/src/lib/components/PushWalletToast/index.js.map +1 -1
  11. package/src/lib/components/common/Button.js +1 -4
  12. package/src/lib/components/common/Button.js.map +1 -1
  13. package/src/lib/constants/index.d.ts +3 -0
  14. package/src/lib/constants/index.js +3 -0
  15. package/src/lib/constants/index.js.map +1 -1
  16. package/src/lib/context/PushChainContext.d.ts +34 -0
  17. package/src/lib/context/PushChainContext.js +139 -0
  18. package/src/lib/context/PushChainContext.js.map +1 -0
  19. package/src/lib/context/WalletContext.js +154 -150
  20. package/src/lib/context/WalletContext.js.map +1 -1
  21. package/src/lib/helpers/txnAuthGuard.js +16 -17
  22. package/src/lib/helpers/txnAuthGuard.js.map +1 -1
  23. package/src/lib/hooks/useAppMetadata.js +1 -1
  24. package/src/lib/hooks/useAppMetadata.js.map +1 -1
  25. package/src/lib/hooks/usePushChainClient.d.ts +1 -2
  26. package/src/lib/hooks/usePushChainClient.js +5 -112
  27. package/src/lib/hooks/usePushChainClient.js.map +1 -1
  28. package/src/lib/polyfills/index.d.ts +0 -4
  29. package/src/lib/polyfills/index.js +14 -11
  30. package/src/lib/polyfills/index.js.map +1 -1
  31. package/src/lib/providers/PushWalletProvider.js +30 -6
  32. package/src/lib/providers/PushWalletProvider.js.map +1 -1
  33. package/src/lib/providers/waap/initWaap.d.ts +2 -0
  34. package/src/lib/providers/waap/initWaap.js +16 -0
  35. package/src/lib/providers/waap/initWaap.js.map +1 -0
  36. package/src/lib/providers/waap/useWaapAuth.d.ts +13 -0
  37. package/src/lib/providers/waap/useWaapAuth.js +68 -0
  38. package/src/lib/providers/waap/useWaapAuth.js.map +1 -0
  39. package/src/lib/providers/waap/waap.config.d.ts +4 -0
  40. package/src/lib/providers/waap/waap.config.js +62 -0
  41. package/src/lib/providers/waap/waap.config.js.map +1 -0
  42. package/src/lib/providers/waap/waapEvents.d.ts +7 -0
  43. package/src/lib/providers/waap/waapEvents.js +44 -0
  44. package/src/lib/providers/waap/waapEvents.js.map +1 -0
  45. package/src/lib/providers/waap/waapProvider.d.ts +8 -0
  46. package/src/lib/providers/waap/waapProvider.js +142 -0
  47. package/src/lib/providers/waap/waapProvider.js.map +1 -0
  48. package/src/lib/providers/walletProviders/BaseWalletProvider.js +3 -0
  49. package/src/lib/providers/walletProviders/BaseWalletProvider.js.map +1 -1
  50. package/src/lib/providers/walletProviders/WalletProviderRegistry.js +3 -4
  51. package/src/lib/providers/walletProviders/WalletProviderRegistry.js.map +1 -1
  52. package/src/lib/providers/walletProviders/ethereum/chains.js +4 -1
  53. package/src/lib/providers/walletProviders/ethereum/chains.js.map +1 -1
  54. package/src/lib/providers/walletProviders/ethereum/metamask.js +183 -183
  55. package/src/lib/providers/walletProviders/ethereum/metamask.js.map +1 -1
  56. package/src/lib/providers/walletProviders/ethereum/rabby.js +157 -156
  57. package/src/lib/providers/walletProviders/ethereum/rabby.js.map +1 -1
  58. package/src/lib/providers/walletProviders/ethereum/walletConnect.js +155 -157
  59. package/src/lib/providers/walletProviders/ethereum/walletConnect.js.map +1 -1
  60. package/src/lib/providers/walletProviders/ethereum/zerion.js +157 -156
  61. package/src/lib/providers/walletProviders/ethereum/zerion.js.map +1 -1
  62. package/src/lib/providers/walletProviders/solana/phantom.js +210 -215
  63. package/src/lib/providers/walletProviders/solana/phantom.js.map +1 -1
  64. package/src/lib/providers/walletProviders/utils/eip6963.js +2 -4
  65. package/src/lib/providers/walletProviders/utils/eip6963.js.map +1 -1
  66. package/src/lib/styles/token.js +5 -1
  67. package/src/lib/styles/token.js.map +1 -1
@@ -12,6 +12,9 @@ const WalletProviderRegistry_1 = require("../providers/walletProviders/WalletPro
12
12
  const PushWalletToast_1 = require("../components/PushWalletToast");
13
13
  const LoginModal_1 = require("../components/LoginModal");
14
14
  const WalletContextMap_1 = require("./WalletContextMap");
15
+ const useWaapAuth_1 = require("../providers/waap/useWaapAuth");
16
+ const waapProvider_1 = require("../providers/waap/waapProvider");
17
+ const PushChainContext_1 = require("./PushChainContext");
15
18
  exports.WalletContext = (0, react_1.createContext)(null);
16
19
  const WalletContextProvider = ({ children, config, app, themeMode = constants_1.PushUI.CONSTANTS.THEME.DARK, themeOverrides, }) => {
17
20
  const [universalAccount, setUniversalAccount] = (0, react_1.useState)(null);
@@ -23,7 +26,6 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
23
26
  const [connectionStatus, setConnectionStatus] = (0, react_1.useState)(types_1.ConnectionStatus.NOT_CONNECTED);
24
27
  const [externalWallet, setExternalWallet] = (0, react_1.useState)(null); // to connect with external wallet
25
28
  const [progress, setProgress] = (0, react_1.useState)(null);
26
- const signatureResolverRef = (0, react_1.useRef)(null);
27
29
  const upgradeResolverRef = (0, react_1.useRef)(null);
28
30
  const pushChainClientRef = (0, react_1.useRef)(null);
29
31
  const setPushChainClient = (client) => {
@@ -31,25 +33,32 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
31
33
  };
32
34
  const [modalAppData, setModalAppData] = (0, react_1.useState)(app
33
35
  ? {
34
- title: app === null || app === void 0 ? void 0 : app.title,
35
- logoURL: app === null || app === void 0 ? void 0 : app.logoUrl,
36
- description: app === null || app === void 0 ? void 0 : app.description,
36
+ title: app?.title,
37
+ logoURL: app?.logoUrl,
38
+ description: app?.description,
37
39
  }
38
40
  : undefined);
39
41
  const [walletAppData, setWalletAppData] = (0, react_1.useState)(app
40
42
  ? {
41
- title: app === null || app === void 0 ? void 0 : app.title,
42
- logoURL: app === null || app === void 0 ? void 0 : app.logoUrl,
43
- description: app === null || app === void 0 ? void 0 : app.description,
43
+ title: app?.title,
44
+ logoURL: app?.logoUrl,
45
+ description: app?.description,
44
46
  }
45
47
  : undefined);
46
48
  const [activeTriggerId, setActiveTriggerId] = (0, react_1.useState)();
49
+ const { loginWithWaapSocial } = (0, useWaapAuth_1.useWaapAuth)();
47
50
  const toggleButtonRefs = react_1.default.useRef({});
48
51
  const updateModalAppData = (newData) => {
49
- setModalAppData((prevData) => (Object.assign(Object.assign({}, prevData), newData)));
52
+ setModalAppData((prevData) => ({
53
+ ...prevData,
54
+ ...newData,
55
+ }));
50
56
  };
51
57
  const updateWalletAppData = (newData) => {
52
- setWalletAppData((prevData) => (Object.assign(Object.assign({}, prevData), newData)));
58
+ setWalletAppData((prevData) => ({
59
+ ...prevData,
60
+ ...newData,
61
+ }));
53
62
  };
54
63
  const handleConnectToPushWallet = () => {
55
64
  setWalletVisibility(true);
@@ -65,13 +74,15 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
65
74
  };
66
75
  sendMessageToPushWallet({
67
76
  type: constants_1.APP_TO_WALLET_ACTION.WALLET_CONFIG,
68
- data: Object.assign({}, walletConfig),
77
+ data: {
78
+ ...walletConfig,
79
+ },
69
80
  });
70
81
  };
71
82
  const handleUserLogOutEvent = () => {
72
83
  if (externalWallet) {
73
84
  const providerReceived = WalletProviderRegistry_1.walletRegistry.getProvider(externalWallet.providerName);
74
- providerReceived === null || providerReceived === void 0 ? void 0 : providerReceived.disconnect();
85
+ providerReceived?.disconnect();
75
86
  }
76
87
  setConnectionStatus(types_1.ConnectionStatus.NOT_CONNECTED);
77
88
  setUniversalAccount(null);
@@ -80,13 +91,12 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
80
91
  setIframeLoading(true);
81
92
  setExternalWallet(null);
82
93
  setIsReadOnly(false);
83
- localStorage.removeItem(`walletInfo_${(config === null || config === void 0 ? void 0 : config.uid) || 'default'}`);
94
+ localStorage.removeItem(`walletInfo_${config?.uid || 'default'}`);
84
95
  document.body.style.overflow = '';
85
96
  };
86
97
  // sending events to wallet from dapp
87
98
  const sendMessageToPushWallet = (message) => {
88
- var _a;
89
- if ((_a = iframeRef === null || iframeRef === void 0 ? void 0 : iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) {
99
+ if (iframeRef?.current?.contentWindow) {
90
100
  try {
91
101
  iframeRef.current.contentWindow.postMessage(message, constants_1.WALLET_CONFIG_URL[config.network]);
92
102
  }
@@ -114,9 +124,9 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
114
124
  if (response.account) {
115
125
  setUniversalAccount(response.account);
116
126
  }
117
- localStorage.setItem(`walletInfo_${(config === null || config === void 0 ? void 0 : config.uid) || 'default'}`, JSON.stringify({
127
+ localStorage.setItem(`walletInfo_${config?.uid || 'default'}`, JSON.stringify({
118
128
  account: response.account,
119
- uid: (config === null || config === void 0 ? void 0 : config.uid) || 'default'
129
+ uid: config?.uid || 'default'
120
130
  }));
121
131
  };
122
132
  const handleAppConnectionRejection = () => {
@@ -124,13 +134,13 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
124
134
  setUniversalAccount(null);
125
135
  };
126
136
  // Connect external wallet
127
- const handleExternalWalletConnection = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
137
+ const handleExternalWalletConnection = async (data) => {
128
138
  try {
129
139
  const providerReceived = WalletProviderRegistry_1.walletRegistry.getProvider(data.provider);
130
140
  if (!providerReceived) {
131
141
  return;
132
142
  }
133
- const walletInfo = yield providerReceived.connect(data.chain);
143
+ const walletInfo = await providerReceived.connect(data.chain);
134
144
  setConnectionStatus(types_1.ConnectionStatus.CONNECTED);
135
145
  setMinimiseWallet(true);
136
146
  const result = core_1.PushChain.utils.account.fromChainAgnostic(walletInfo.caipAddress);
@@ -140,14 +150,17 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
140
150
  providerName: data.provider,
141
151
  chainType: data.chain,
142
152
  };
143
- localStorage.setItem(`walletInfo_${(config === null || config === void 0 ? void 0 : config.uid) || 'default'}`, JSON.stringify({
153
+ localStorage.setItem(`walletInfo_${config?.uid || 'default'}`, JSON.stringify({
144
154
  wallet: connectedWallet,
145
- uid: (config === null || config === void 0 ? void 0 : config.uid) || 'default'
155
+ uid: config?.uid || 'default'
146
156
  }));
147
157
  setExternalWallet(connectedWallet);
148
158
  sendMessageToPushWallet({
149
159
  type: constants_1.APP_TO_WALLET_ACTION.CONNECTION_STATUS,
150
- data: Object.assign({ status: 'successful' }, connectedWallet),
160
+ data: {
161
+ status: 'successful',
162
+ ...connectedWallet,
163
+ },
151
164
  });
152
165
  }
153
166
  catch (error) {
@@ -160,9 +173,9 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
160
173
  });
161
174
  throw new Error('Failed to connect to provider');
162
175
  }
163
- });
176
+ };
164
177
  // handles external wallet signature request
165
- const handleExternalWalletSignRequest = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
178
+ const handleExternalWalletSignRequest = async (data) => {
166
179
  if (!externalWallet) {
167
180
  throw new Error('No External wallet connected');
168
181
  }
@@ -171,15 +184,16 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
171
184
  if (!providerReceived) {
172
185
  throw new Error('Provider not found');
173
186
  }
174
- const signature = yield providerReceived.signMessage(data);
187
+ await providerReceived.switchNetwork?.(externalWallet.chainType);
188
+ const signature = await providerReceived.signMessage(data);
175
189
  return signature;
176
190
  }
177
191
  catch (error) {
178
192
  console.log('Error in generating signature', error);
179
193
  throw new Error('Signature request failed');
180
194
  }
181
- });
182
- const handleExternalWalletSignTransactionRequest = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
195
+ };
196
+ const handleExternalWalletSignTransactionRequest = async (data) => {
183
197
  if (!externalWallet) {
184
198
  throw new Error('No External wallet connected');
185
199
  }
@@ -188,15 +202,16 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
188
202
  if (!providerReceived) {
189
203
  throw new Error('Provider not found');
190
204
  }
191
- const signature = yield providerReceived.signAndSendTransaction(data);
205
+ await providerReceived.switchNetwork?.(externalWallet.chainType);
206
+ const signature = await providerReceived.signAndSendTransaction(data);
192
207
  return signature;
193
208
  }
194
209
  catch (error) {
195
210
  console.log('Error in generating signature', error);
196
211
  throw new Error('Signature request failed');
197
212
  }
198
- });
199
- const handleExternalWalletSignTypedDataRequest = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
213
+ };
214
+ const handleExternalWalletSignTypedDataRequest = async (data) => {
200
215
  if (!externalWallet) {
201
216
  throw new Error('No External wallet connected');
202
217
  }
@@ -205,124 +220,118 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
205
220
  if (!providerReceived) {
206
221
  throw new Error('Provider not found');
207
222
  }
208
- const signature = yield providerReceived.signTypedData(data);
223
+ await providerReceived.switchNetwork?.(externalWallet.chainType);
224
+ const signature = await providerReceived.signTypedData(data);
209
225
  return signature;
210
226
  }
211
227
  catch (error) {
212
228
  console.log('Error in generating signature', error);
213
229
  throw new Error('Signature request failed');
214
230
  }
215
- });
216
- // handles Push wallet signature request
217
- const handleSendSignRequestToPushWallet = (data) => {
218
- return new Promise((resolve, reject) => {
219
- if (signatureResolverRef.current) {
220
- reject(new Error('Another sign request is already in progress'));
221
- return;
222
- }
223
- setMinimiseWallet(false);
224
- signatureResolverRef.current = {
225
- success: (response) => {
226
- resolve(response.signature);
227
- signatureResolverRef.current = null; // Clean up
228
- setMinimiseWallet(true);
229
- },
230
- error: (response) => {
231
- signatureResolverRef.current = null; // Clean up
232
- reject(new Error('Signature request failed'));
233
- setMinimiseWallet(true);
234
- },
235
- };
236
- // Send the sign request to the wallet tab
231
+ };
232
+ const handleSocialConnection = async () => {
233
+ const result = await loginWithWaapSocial();
234
+ if (!result) {
237
235
  sendMessageToPushWallet({
238
- type: constants_1.APP_TO_WALLET_ACTION.SIGN_MESSAGE,
239
- data,
236
+ type: constants_1.APP_TO_WALLET_ACTION.SOCIAL_CONNECTION_STATUS,
237
+ data: {
238
+ error: true,
239
+ },
240
240
  });
241
+ return;
242
+ }
243
+ ;
244
+ const w = await core_1.PushChain.utils.account.convertExecutorToOriginAccount(result.address);
245
+ if (!w.account)
246
+ return;
247
+ sendMessageToPushWallet({
248
+ type: constants_1.APP_TO_WALLET_ACTION.SOCIAL_CONNECTION_STATUS,
249
+ data: {
250
+ account: w.account,
251
+ },
241
252
  });
242
253
  };
243
- const handleSendSignTransactionRequestToPushWallet = (data) => {
244
- return new Promise((resolve, reject) => {
245
- if (signatureResolverRef.current) {
246
- reject(new Error('Another sign request is already in progress'));
247
- return;
248
- }
249
- setMinimiseWallet(false);
250
- signatureResolverRef.current = {
251
- success: (response) => {
252
- resolve(response.signature);
253
- signatureResolverRef.current = null; // Clean up
254
- setMinimiseWallet(true);
255
- },
256
- error: (response) => {
257
- signatureResolverRef.current = null; // Clean up
258
- reject(new Error('Signature request failed'));
259
- setMinimiseWallet(true);
260
- },
261
- };
262
- // Send the sign request to the wallet tab
254
+ const handleSocialSignAndSendMessage = async (message) => {
255
+ try {
256
+ const signature = await (0, waapProvider_1.waapSignMessage)(message);
263
257
  sendMessageToPushWallet({
264
- type: constants_1.APP_TO_WALLET_ACTION.SIGN_TRANSACTION,
265
- data,
258
+ type: constants_1.APP_TO_WALLET_ACTION.SIGN_MESSAGE,
259
+ data: { signature },
266
260
  });
267
- });
268
- };
269
- const handleSendSignTypedDataRequestToPushWallet = (data) => {
270
- return new Promise((resolve, reject) => {
271
- if (signatureResolverRef.current) {
272
- reject(new Error('Another sign request is already in progress'));
273
- return;
274
- }
275
- setMinimiseWallet(false);
276
- signatureResolverRef.current = {
277
- success: (response) => {
278
- resolve(response.signature);
279
- signatureResolverRef.current = null; // Clean up
280
- setMinimiseWallet(true);
261
+ }
262
+ catch (error) {
263
+ sendMessageToPushWallet({
264
+ type: constants_1.APP_TO_WALLET_ACTION.ERROR,
265
+ data: {
266
+ error: error,
281
267
  },
282
- error: (response) => {
283
- signatureResolverRef.current = null; // Clean up
284
- reject(new Error('Signature request failed'));
285
- setMinimiseWallet(true);
268
+ });
269
+ }
270
+ };
271
+ const handleSocialSignAndSendTransaction = async (txn) => {
272
+ try {
273
+ const signature = await (0, waapProvider_1.waapSignAndSendTransaction)(txn);
274
+ sendMessageToPushWallet({
275
+ type: constants_1.WALLET_TO_APP_ACTION.SIGN_TRANSACTION,
276
+ data: { signature },
277
+ });
278
+ }
279
+ catch (error) {
280
+ sendMessageToPushWallet({
281
+ type: constants_1.WALLET_TO_APP_ACTION.ERROR,
282
+ data: {
283
+ error: error,
286
284
  },
287
- };
288
- // Send the sign request to the wallet tab
285
+ });
286
+ }
287
+ };
288
+ const handleSocialSignTypedData = async (typedData) => {
289
+ try {
290
+ const signature = await (0, waapProvider_1.waapSignTypedData)(typedData);
289
291
  sendMessageToPushWallet({
290
- type: constants_1.APP_TO_WALLET_ACTION.SIGN_TYPED_DATA,
291
- data,
292
+ type: constants_1.WALLET_TO_APP_ACTION.SIGN_TYPED_DATA,
293
+ data: { signature },
292
294
  });
293
- });
295
+ }
296
+ catch (error) {
297
+ sendMessageToPushWallet({
298
+ type: constants_1.WALLET_TO_APP_ACTION.ERROR,
299
+ data: {
300
+ error: error,
301
+ },
302
+ });
303
+ }
294
304
  };
295
- // sending Message sign request to wallet based on which wallet is connected (external or pushwallet)
296
- const handleSignMessage = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
305
+ const handleSignMessage = async (data) => {
297
306
  let signature;
298
307
  if (externalWallet) {
299
- signature = yield handleExternalWalletSignRequest(data);
308
+ signature = await handleExternalWalletSignRequest(data);
300
309
  }
301
310
  else {
302
- signature = yield handleSendSignRequestToPushWallet(data);
311
+ signature = await (0, waapProvider_1.waapSignMessage)(data);
303
312
  }
304
313
  return signature;
305
- });
306
- const handleSignAndSendTransaction = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
314
+ };
315
+ const handleSignAndSendTransaction = async (data) => {
307
316
  let signature;
308
317
  if (externalWallet) {
309
- signature = yield handleExternalWalletSignTransactionRequest(data);
318
+ signature = await handleExternalWalletSignTransactionRequest(data);
310
319
  }
311
320
  else {
312
- signature = yield handleSendSignTransactionRequestToPushWallet(data);
321
+ signature = await (0, waapProvider_1.waapSignAndSendTransaction)(data);
313
322
  }
314
323
  return signature;
315
- });
316
- const handleSignTypedData = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
324
+ };
325
+ const handleSignTypedData = async (data) => {
317
326
  let signature;
318
327
  if (externalWallet) {
319
- signature = yield handleExternalWalletSignTypedDataRequest(data);
328
+ signature = await handleExternalWalletSignTypedDataRequest(data);
320
329
  }
321
330
  else {
322
- signature = yield handleSendSignTypedDataRequestToPushWallet(data);
331
+ signature = await (0, waapProvider_1.waapSignTypedData)(data);
323
332
  }
324
333
  return signature;
325
- });
334
+ };
326
335
  const getAuthWindowConfig = () => {
327
336
  // Calculate the screen width and height
328
337
  const screenWidth = window.screen.width;
@@ -367,13 +376,13 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
367
376
  }, 100000);
368
377
  });
369
378
  };
370
- const checkAndShowUpgradeIfNeeded = (pushChainClient) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
379
+ const checkAndShowUpgradeIfNeeded = async (pushChainClient) => {
371
380
  setPushChainClient(pushChainClient);
372
381
  if (!pushChainClient) {
373
382
  return false;
374
383
  }
375
384
  try {
376
- yield pushChainClient.accountStatusReady;
385
+ await pushChainClient.accountStatusReady;
377
386
  if (!pushChainClient.isReadMode && pushChainClient.accountStatus.uea.loaded && pushChainClient.accountStatus.uea.requiresUpgrade) {
378
387
  setMinimiseWallet(false);
379
388
  sendMessageToPushWallet({
@@ -403,33 +412,30 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
403
412
  console.error('Error checking upgrade status:', error);
404
413
  return false;
405
414
  }
406
- });
415
+ };
407
416
  const handleUpgradeAccountSuccess = () => {
408
- var _a;
409
417
  setMinimiseWallet(true);
410
418
  // Resolve any pending upgrade promise
411
- if ((_a = upgradeResolverRef.current) === null || _a === void 0 ? void 0 : _a.success) {
419
+ if (upgradeResolverRef.current?.success) {
412
420
  upgradeResolverRef.current.success();
413
421
  upgradeResolverRef.current = null;
414
422
  }
415
423
  };
416
424
  const handleUpgradeAccountError = (error) => {
417
- var _a;
418
425
  setMinimiseWallet(true);
419
426
  // Reject any pending upgrade promise
420
- if ((_a = upgradeResolverRef.current) === null || _a === void 0 ? void 0 : _a.error) {
427
+ if (upgradeResolverRef.current?.error) {
421
428
  upgradeResolverRef.current.error(error instanceof Error ? error : new Error('Upgrade failed'));
422
429
  upgradeResolverRef.current = null;
423
430
  }
424
431
  };
425
- const handleUpgradeAccount = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
426
- var _a;
432
+ const handleUpgradeAccount = async () => {
427
433
  const pushChainClient = pushChainClientRef.current;
428
434
  if (!pushChainClient) {
429
435
  throw new Error('PushChain client not initialized');
430
436
  }
431
437
  try {
432
- yield pushChainClient.upgradeAccount({
438
+ await pushChainClient.upgradeAccount({
433
439
  progressHook: (progress) => {
434
440
  setProgress(progress);
435
441
  if (progress.id === progress_hook_types_1.PROGRESS_HOOK.UEA_MIG_9901) {
@@ -452,20 +458,19 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
452
458
  data: { success: false, error: error instanceof Error ? error.message : 'Upgrade failed' },
453
459
  });
454
460
  // Reject the upgrade promise
455
- if ((_a = upgradeResolverRef.current) === null || _a === void 0 ? void 0 : _a.error) {
461
+ if (upgradeResolverRef.current?.error) {
456
462
  upgradeResolverRef.current.error(error instanceof Error ? error : new Error('Upgrade failed'));
457
463
  }
458
464
  }
459
- });
465
+ };
460
466
  (0, react_1.useEffect)(() => {
461
- var _a;
462
- const walletInfo = localStorage.getItem(`walletInfo_${(config === null || config === void 0 ? void 0 : config.uid) || 'default'}`);
467
+ const walletInfo = localStorage.getItem(`walletInfo_${config?.uid || 'default'}`);
463
468
  const walletData = walletInfo ? JSON.parse(walletInfo) : null;
464
469
  if (!walletData)
465
470
  return;
466
- if (walletData.uid !== (config === null || config === void 0 ? void 0 : config.uid))
471
+ if (walletData.uid !== config?.uid)
467
472
  return;
468
- if ((walletData === null || walletData === void 0 ? void 0 : walletData.wallet) && ((_a = walletData.wallet) === null || _a === void 0 ? void 0 : _a.providerName)) {
473
+ if (walletData?.wallet && walletData.wallet?.providerName) {
469
474
  setUniversalAccount(core_1.PushChain.utils.account.fromChainAgnostic(walletData.wallet.address));
470
475
  setExternalWallet(walletData.wallet);
471
476
  }
@@ -485,25 +490,33 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
485
490
  if (externalWallet) {
486
491
  sendMessageToPushWallet({
487
492
  type: constants_1.APP_TO_WALLET_ACTION.READ_ONLY_CONNECTION_STATUS,
488
- data: Object.assign({ status: 'successful' }, externalWallet),
493
+ data: {
494
+ status: 'successful',
495
+ ...externalWallet,
496
+ },
489
497
  });
490
498
  }
491
499
  else if (universalAccount) {
492
500
  sendMessageToPushWallet({
493
501
  type: constants_1.APP_TO_WALLET_ACTION.READ_ONLY_CONNECTION_STATUS,
494
- data: Object.assign({ status: 'successful' }, universalAccount),
502
+ data: {
503
+ status: 'successful',
504
+ ...universalAccount,
505
+ },
495
506
  });
496
507
  }
497
508
  }, [isIframeLoading, externalWallet]);
498
509
  (0, react_1.useEffect)(() => {
499
510
  const messageHandler = (event) => {
500
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
501
- if (((_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) !== event.source)
511
+ if (iframeRef.current?.contentWindow !== event.source)
502
512
  return;
503
513
  switch (event.data.type) {
504
514
  case constants_1.WALLET_TO_APP_ACTION.CONNECT_EXTERNAL_WALLET:
505
515
  handleExternalWalletConnection(event.data.data);
506
516
  break;
517
+ case constants_1.WALLET_TO_APP_ACTION.CONNECT_SOCIAL:
518
+ handleSocialConnection();
519
+ break;
507
520
  case constants_1.WALLET_TO_APP_ACTION.IS_LOGGED_IN:
508
521
  handleIsLoggedInAction();
509
522
  break;
@@ -513,27 +526,18 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
513
526
  case constants_1.WALLET_TO_APP_ACTION.APP_CONNECTION_REJECTED:
514
527
  handleAppConnectionRejection();
515
528
  break;
516
- case constants_1.WALLET_TO_APP_ACTION.SIGN_MESSAGE:
517
- if (signatureResolverRef.current) {
518
- (_c = (_b = signatureResolverRef === null || signatureResolverRef === void 0 ? void 0 : signatureResolverRef.current) === null || _b === void 0 ? void 0 : _b.success) === null || _c === void 0 ? void 0 : _c.call(_b, event.data.data);
519
- }
529
+ case constants_1.APP_TO_WALLET_ACTION.SIGN_MESSAGE:
530
+ handleSocialSignAndSendMessage(event.data.data);
520
531
  break;
521
- case constants_1.WALLET_TO_APP_ACTION.SIGN_TRANSACTION:
522
- if (signatureResolverRef.current) {
523
- (_e = (_d = signatureResolverRef === null || signatureResolverRef === void 0 ? void 0 : signatureResolverRef.current) === null || _d === void 0 ? void 0 : _d.success) === null || _e === void 0 ? void 0 : _e.call(_d, event.data.data);
524
- }
532
+ case constants_1.APP_TO_WALLET_ACTION.SIGN_TRANSACTION:
533
+ handleSocialSignAndSendTransaction(event.data.data);
525
534
  break;
526
- case constants_1.WALLET_TO_APP_ACTION.SIGN_TYPED_DATA:
527
- if (signatureResolverRef.current) {
528
- (_g = (_f = signatureResolverRef === null || signatureResolverRef === void 0 ? void 0 : signatureResolverRef.current) === null || _f === void 0 ? void 0 : _f.success) === null || _g === void 0 ? void 0 : _g.call(_f, event.data.data);
529
- }
535
+ case constants_1.APP_TO_WALLET_ACTION.SIGN_TYPED_DATA:
536
+ handleSocialSignTypedData(event.data.data);
530
537
  break;
531
538
  case constants_1.WALLET_TO_APP_ACTION.IS_LOGGED_OUT:
532
539
  handleUserLogOutEvent();
533
540
  break;
534
- case constants_1.WALLET_TO_APP_ACTION.ERROR:
535
- (_j = (_h = signatureResolverRef === null || signatureResolverRef === void 0 ? void 0 : signatureResolverRef.current) === null || _h === void 0 ? void 0 : _h.error) === null || _j === void 0 ? void 0 : _j.call(_h, event.data.data);
536
- break;
537
541
  case constants_1.WALLET_TO_APP_ACTION.CLOSE_IFRAME:
538
542
  if (universalAccount)
539
543
  setMinimiseWallet(true);
@@ -556,8 +560,8 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
556
560
  window.addEventListener('message', messageHandler);
557
561
  return () => window.removeEventListener('message', messageHandler);
558
562
  }, [universalAccount]);
559
- const WalletContext = (0, WalletContextMap_1.getWalletContext)((config === null || config === void 0 ? void 0 : config.uid) || 'default');
560
- return ((0, jsx_runtime_1.jsxs)(WalletContext.Provider, { value: {
563
+ const WalletContext = (0, WalletContextMap_1.getWalletContext)(config?.uid || 'default');
564
+ return ((0, jsx_runtime_1.jsx)(WalletContext.Provider, { value: {
561
565
  app,
562
566
  config,
563
567
  connectionStatus,
@@ -586,7 +590,7 @@ const WalletContextProvider = ({ children, config, app, themeMode = constants_1.
586
590
  setActiveTriggerId,
587
591
  toggleButtonRefs,
588
592
  connectionType: externalWallet ? 'external' : 'social',
589
- }, children: [(0, jsx_runtime_1.jsx)(LoginModal_1.LoginModal, { iframeRef: iframeRef, themeMode: themeMode, modalAppData: modalAppData, isWalletVisible: isWalletVisible, isIframeLoading: isIframeLoading, setIframeLoading: setIframeLoading, sendWalletConfig: sendWalletConfig, config: config, universalAccount: universalAccount, isWalletMinimised: isWalletMinimised, setMinimiseWallet: setMinimiseWallet, handleUserLogOutEvent: handleUserLogOutEvent, sendMessageToPushWallet: sendMessageToPushWallet, isReadOnly: isReadOnly, toggleButtonRefs: toggleButtonRefs, activeTriggerId: activeTriggerId }), progress && ((0, jsx_runtime_1.jsx)(PushWalletToast_1.PushWalletToast, { progress: progress, setProgress: setProgress })), children] }));
593
+ }, children: (0, jsx_runtime_1.jsxs)(PushChainContext_1.PushChainProvider, { uid: config?.uid || 'default', universalAccount: universalAccount, handleSignMessage: handleSignMessage, handleSignAndSendTransaction: handleSignAndSendTransaction, handleSignTypedData: handleSignTypedData, handleExternalWalletConnection: handleExternalWalletConnection, requestPushWalletConnection: requestPushWalletConnection, config: config, setProgress: setProgress, isReadOnly: isReadOnly, setIsReadOnly: setIsReadOnly, checkAndShowUpgradeIfNeeded: checkAndShowUpgradeIfNeeded, children: [(0, jsx_runtime_1.jsx)(LoginModal_1.LoginModal, { iframeRef: iframeRef, themeMode: themeMode, modalAppData: modalAppData, isWalletVisible: isWalletVisible, isIframeLoading: isIframeLoading, setIframeLoading: setIframeLoading, sendWalletConfig: sendWalletConfig, config: config, universalAccount: universalAccount, isWalletMinimised: isWalletMinimised, setMinimiseWallet: setMinimiseWallet, handleUserLogOutEvent: handleUserLogOutEvent, sendMessageToPushWallet: sendMessageToPushWallet, isReadOnly: isReadOnly, toggleButtonRefs: toggleButtonRefs, activeTriggerId: activeTriggerId }), progress && ((0, jsx_runtime_1.jsx)(PushWalletToast_1.PushWalletToast, { progress: progress, setProgress: setProgress })), children] }) }));
590
594
  };
591
595
  exports.WalletContextProvider = WalletContextProvider;
592
596
  //# sourceMappingURL=WalletContext.js.map