@mocanetwork/airkit 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -104,6 +104,8 @@ const AirAuthMessageTypes = {
104
104
  LOGIN_REQUEST: "air_auth_login_request",
105
105
  LOGIN_RESPONSE: "air_auth_login_response",
106
106
  LOGIN_WALLET_RESPONSE: "air_auth_login_wallet_response",
107
+ USER_INFO_REQUEST: "air_auth_user_info_request",
108
+ USER_INFO_RESPONSE: "air_auth_user_info_response",
107
109
  PARTNER_USER_INFO_REQUEST: "air_auth_partner_user_info_request",
108
110
  PARTNER_USER_INFO_RESPONSE: "air_auth_partner_user_info_response",
109
111
  REFRESH_TOKEN_REQUEST: "air_auth_refresh_token_request",
@@ -116,8 +118,11 @@ const AirAuthMessageTypes = {
116
118
  SETUP_WALLET_RESPONSE: "air_auth_setup_wallet_response",
117
119
  SIGN_SIWE_MESSAGE_REQUEST: "air_auth_sign_siwe_message_request",
118
120
  SIGN_SIWE_MESSAGE_RESPONSE: "air_auth_sign_siwe_message_response",
121
+ CROSS_PARTNER_TOKEN_REQUEST: "air_auth_cross_partner_token_request",
122
+ CROSS_PARTNER_TOKEN_RESPONSE: "air_auth_cross_partner_token_response",
119
123
  LOGOUT_REQUEST: "air_auth_logout_request",
120
- LOGOUT_RESPONSE: "air_auth_logout_response"
124
+ LOGOUT_RESPONSE: "air_auth_logout_response",
125
+ RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication"
121
126
  };
122
127
 
123
128
  const AirMessageTypes = {
@@ -126,6 +131,10 @@ const AirMessageTypes = {
126
131
  INITIALIZATION_RESPONSE: "air_initialization_response",
127
132
  INIT_AUTH_COMMUNICATION: "air_init_auth_communication",
128
133
  WALLET_INITIALIZED: "air_wallet_initialized",
134
+ WALLET_LOGIN_REQUEST: "air_wallet_login_request",
135
+ WALLET_LOGIN_RESPONSE: "air_wallet_login_response",
136
+ SETUP_MFA_REQUEST: "air_setup_mfa_request",
137
+ SETUP_MFA_RESPONSE: "air_setup_mfa_response",
129
138
  CLAIM_ID_REQUEST: "air_claim_id_request",
130
139
  CLAIM_ID_RESPONSE: "air_claim_id_response",
131
140
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
@@ -143,6 +152,152 @@ const AirMessageTypes = {
143
152
  LOGOUT_RESPONSE: "air_logout_response"
144
153
  };
145
154
 
155
+ class BaseError extends Error {
156
+ constructor(name, message, options = {}) {
157
+ const {
158
+ cause,
159
+ context
160
+ } = options;
161
+ super(message || name);
162
+ this.name = name;
163
+ this.stack = cause?.stack;
164
+ this.cause = cause;
165
+ this.context = context;
166
+ }
167
+ toJSON() {
168
+ return {
169
+ name: this.name,
170
+ message: this.message,
171
+ context: this.context,
172
+ cause: this.cause
173
+ };
174
+ }
175
+ }
176
+
177
+ class AirServiceError extends BaseError {
178
+ static from(error) {
179
+ if (error instanceof AirServiceError) {
180
+ return error;
181
+ }
182
+ else if (error instanceof Object && "message" in error) {
183
+ if (error.message === "User cancelled login") {
184
+ return new AirServiceError("USER_CANCELLED", error.message);
185
+ }
186
+ return new AirServiceError("UNKNOWN_ERROR", error.message.toString());
187
+ }
188
+ return new AirServiceError("UNKNOWN_ERROR");
189
+ }
190
+ }
191
+ class ProviderRpcError extends Error {
192
+ constructor(message) {
193
+ super(message);
194
+ }
195
+ }
196
+ class UserRejectedRequestError extends ProviderRpcError {
197
+ constructor() {
198
+ super(...arguments);
199
+ this.code = 4001;
200
+ this.name = "UserRejectedRequestError";
201
+ }
202
+ }
203
+ class UnauthorizedProviderError extends ProviderRpcError {
204
+ constructor() {
205
+ super(...arguments);
206
+ this.code = 4100;
207
+ this.name = "UnauthorizedProviderError";
208
+ }
209
+ }
210
+ class UnsupportedProviderMethodError extends ProviderRpcError {
211
+ constructor() {
212
+ super(...arguments);
213
+ this.code = 4200;
214
+ this.name = "UnsupportedProviderMethodError";
215
+ }
216
+ }
217
+ class ProviderDisconnectedError extends ProviderRpcError {
218
+ constructor() {
219
+ super(...arguments);
220
+ this.code = 4900;
221
+ this.name = "ProviderDisconnectedError";
222
+ }
223
+ }
224
+ class ChainDisconnectedError extends ProviderRpcError {
225
+ constructor() {
226
+ super(...arguments);
227
+ this.code = 4901;
228
+ this.name = "ChainDisconnectedError";
229
+ }
230
+ }
231
+ class SwitchChainError extends ProviderRpcError {
232
+ constructor() {
233
+ super(...arguments);
234
+ this.code = 4902;
235
+ this.name = "SwitchChainError";
236
+ }
237
+ }
238
+ class InvalidRequestRpcError extends ProviderRpcError {
239
+ constructor() {
240
+ super(...arguments);
241
+ this.code = -32600;
242
+ this.name = "InvalidRequestRpcError";
243
+ }
244
+ }
245
+ class MethodNotFoundRpcError extends ProviderRpcError {
246
+ constructor() {
247
+ super(...arguments);
248
+ this.code = -32601;
249
+ this.name = "MethodNotFoundRpcError";
250
+ }
251
+ }
252
+ class InvalidParamsRpcError extends ProviderRpcError {
253
+ constructor() {
254
+ super(...arguments);
255
+ this.code = -32602;
256
+ this.name = "InvalidParamsRpcError";
257
+ }
258
+ }
259
+ class InternalRpcError extends ProviderRpcError {
260
+ constructor() {
261
+ super(...arguments);
262
+ this.code = -32603;
263
+ this.name = "InternalRpcError";
264
+ }
265
+ }
266
+ function ensureProviderRpcError(value) {
267
+ if (value instanceof ProviderRpcError) {
268
+ return value;
269
+ }
270
+ if (typeof value === "object" &&
271
+ value !== null &&
272
+ "errorCode" in value &&
273
+ "errorMessage" in value) {
274
+ if (typeof value.errorCode === "number" && typeof value.errorMessage === "string") {
275
+ switch (value.errorCode) {
276
+ case 4001:
277
+ return new UserRejectedRequestError(value.errorMessage);
278
+ case 4100:
279
+ return new UnauthorizedProviderError(value.errorMessage);
280
+ case 4200:
281
+ return new UnsupportedProviderMethodError(value.errorMessage);
282
+ case 4900:
283
+ return new ProviderDisconnectedError(value.errorMessage);
284
+ case 4901:
285
+ return new ChainDisconnectedError(value.errorMessage);
286
+ case 4902:
287
+ return new SwitchChainError(value.errorMessage);
288
+ }
289
+ }
290
+ }
291
+ let stringified = "[Unable to stringify the thrown value]";
292
+ try {
293
+ stringified = JSON.stringify(value);
294
+ }
295
+ catch {
296
+ // ignoring failed stringify
297
+ }
298
+ return new InternalRpcError(`Invalid value for ProviderRpcError: ${stringified}`);
299
+ }
300
+
146
301
  function isFunction(value) {
147
302
  return typeof value === 'function';
148
303
  }
@@ -870,50 +1025,11 @@ function filter(predicate, thisArg) {
870
1025
  });
871
1026
  }
872
1027
 
873
- class BaseError extends Error {
874
- constructor(name, message, options = {}) {
875
- const {
876
- cause,
877
- context
878
- } = options;
879
- super(message || name);
880
- this.name = name;
881
- this.stack = cause?.stack;
882
- this.cause = cause;
883
- this.context = context;
884
- }
885
- toJSON() {
886
- return {
887
- name: this.name,
888
- message: this.message,
889
- context: this.context,
890
- cause: this.cause
891
- };
892
- }
893
- }
894
-
895
- class AirServiceError extends BaseError {
896
- static from(error) {
897
- if (error instanceof AirServiceError) {
898
- return error;
899
- }
900
- else if (error instanceof Object && "message" in error) {
901
- if (error.message === "User cancelled login") {
902
- return new AirServiceError("USER_CANCELLED", error.message);
903
- }
904
- return new AirServiceError("UNKNOWN_ERROR", error.message.toString());
905
- }
906
- return new AirServiceError("UNKNOWN_ERROR");
907
- }
908
- }
909
- class RealmEmbedError extends AirServiceError {
910
- }
911
-
912
1028
  function getDefaultExportFromCjs (x) {
913
1029
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
914
1030
  }
915
1031
 
916
- var loglevel$2 = {exports: {}};
1032
+ var loglevel$1 = {exports: {}};
917
1033
 
918
1034
  /*
919
1035
  * loglevel - https://github.com/pimterry/loglevel
@@ -921,10 +1037,10 @@ var loglevel$2 = {exports: {}};
921
1037
  * Copyright (c) 2013 Tim Perry
922
1038
  * Licensed under the MIT license.
923
1039
  */
924
- var loglevel$1 = loglevel$2.exports;
1040
+ var loglevel = loglevel$1.exports;
925
1041
  var hasRequiredLoglevel;
926
1042
  function requireLoglevel() {
927
- if (hasRequiredLoglevel) return loglevel$2.exports;
1043
+ if (hasRequiredLoglevel) return loglevel$1.exports;
928
1044
  hasRequiredLoglevel = 1;
929
1045
  (function (module) {
930
1046
  (function (root, definition) {
@@ -934,7 +1050,7 @@ function requireLoglevel() {
934
1050
  } else {
935
1051
  root.log = definition();
936
1052
  }
937
- })(loglevel$1, function () {
1053
+ })(loglevel, function () {
938
1054
 
939
1055
  // Slightly dubious tricks to cut down minimized file size
940
1056
  var noop = function () {};
@@ -1233,24 +1349,27 @@ function requireLoglevel() {
1233
1349
  defaultLogger['default'] = defaultLogger;
1234
1350
  return defaultLogger;
1235
1351
  });
1236
- })(loglevel$2);
1237
- return loglevel$2.exports;
1352
+ })(loglevel$1);
1353
+ return loglevel$1.exports;
1238
1354
  }
1239
1355
 
1240
1356
  var loglevelExports = requireLoglevel();
1241
- var loglevel = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);
1357
+ var log$1 = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);
1242
1358
 
1243
- var log = loglevel.getLogger("airkit");
1359
+ var log = log$1.getLogger("airkit");
1244
1360
 
1245
1361
  var AirWalletProviderMessageTypes;
1246
1362
  (function (AirWalletProviderMessageTypes) {
1247
1363
  AirWalletProviderMessageTypes["REQUEST"] = "JRPC_REQUEST";
1248
1364
  AirWalletProviderMessageTypes["RESPONSE"] = "JRPC_RESPONSE";
1365
+ AirWalletProviderMessageTypes["EVENT"] = "JRPC_EVENT";
1249
1366
  })(AirWalletProviderMessageTypes || (AirWalletProviderMessageTypes = {}));
1250
1367
 
1251
1368
  const ACCOUNT_MESSAGES = [
1252
1369
  AirMessageTypes.INITIALIZATION_RESPONSE,
1253
1370
  AirMessageTypes.WALLET_INITIALIZED,
1371
+ AirMessageTypes.WALLET_LOGIN_RESPONSE,
1372
+ AirMessageTypes.SETUP_MFA_RESPONSE,
1254
1373
  AirMessageTypes.CLAIM_ID_RESPONSE,
1255
1374
  AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
1256
1375
  AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
@@ -1268,6 +1387,7 @@ const AUTH_MESSAGES = [
1268
1387
  AirAuthMessageTypes.SETUP_WALLET_REQUEST,
1269
1388
  AirAuthMessageTypes.LOGOUT_RESPONSE,
1270
1389
  AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
1390
+ AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
1271
1391
  AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
1272
1392
  ];
1273
1393
  class AirMessageService {
@@ -1291,6 +1411,9 @@ class AirMessageService {
1291
1411
  get providerMessage$() {
1292
1412
  return this._providerMessage$.asObservable();
1293
1413
  }
1414
+ get providerEvent$() {
1415
+ return this._providerEvent$.asObservable();
1416
+ }
1294
1417
  async openAuthObservables({ authIframeOrigin }) {
1295
1418
  this.closeAuthObservables();
1296
1419
  this.setupAuthObservables();
@@ -1331,13 +1454,16 @@ class AirMessageService {
1331
1454
  if (ev.data.type === AirWalletProviderMessageTypes.RESPONSE) {
1332
1455
  this._providerMessage$.next(ev.data);
1333
1456
  }
1457
+ if (ev.data.type === AirWalletProviderMessageTypes.EVENT) {
1458
+ this._providerEvent$.next(ev.data);
1459
+ }
1334
1460
  };
1335
1461
  window.addEventListener("message", handleWalletMessage);
1336
1462
  this.closeWalletMessageListeners = () => {
1337
1463
  window.removeEventListener("message", handleWalletMessage);
1338
1464
  };
1339
1465
  }
1340
- setupIframeCommunication(authIframe, walletIframe) {
1466
+ setupIframeCommunication(authIframe, walletIframe, skipWalletLogin) {
1341
1467
  const channel = new MessageChannel();
1342
1468
  const authOrigin = new URL(authIframe.src).origin;
1343
1469
  authIframe.contentWindow.postMessage({
@@ -1346,6 +1472,9 @@ class AirMessageService {
1346
1472
  const walletOrigin = new URL(walletIframe.src).origin;
1347
1473
  walletIframe.contentWindow.postMessage({
1348
1474
  type: AirMessageTypes.INIT_AUTH_COMMUNICATION,
1475
+ payload: {
1476
+ skipWalletLogin,
1477
+ },
1349
1478
  }, walletOrigin, [channel.port2]);
1350
1479
  }
1351
1480
  async sendGrantPermissionRequest(walletIframe, policies) {
@@ -1359,7 +1488,7 @@ class AirMessageService {
1359
1488
  }, origin);
1360
1489
  const result = await response;
1361
1490
  if (result.payload.success === false) {
1362
- throw new RealmEmbedError(result.payload.errorName, result.payload.errorMessage);
1491
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1363
1492
  }
1364
1493
  return result.payload.sessionData;
1365
1494
  }
@@ -1380,7 +1509,7 @@ class AirMessageService {
1380
1509
  }, origin);
1381
1510
  const result = await response;
1382
1511
  if (result.payload.success === false) {
1383
- throw new RealmEmbedError(result.payload.errorName, result.payload.errorMessage);
1512
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1384
1513
  }
1385
1514
  return result.payload.txHash;
1386
1515
  }
@@ -1395,7 +1524,7 @@ class AirMessageService {
1395
1524
  }, origin);
1396
1525
  const result = await response;
1397
1526
  if (result.payload.success === false) {
1398
- throw new RealmEmbedError(result.payload.errorName, result.payload.errorMessage);
1527
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1399
1528
  }
1400
1529
  return result.payload.txHash;
1401
1530
  }
@@ -1439,6 +1568,10 @@ class AirMessageService {
1439
1568
  walletIframe.contentWindow.postMessage({ type: AirMessageTypes.LOGOUT_REQUEST }, origin);
1440
1569
  return response;
1441
1570
  }
1571
+ sendResetAuthServiceWalletCommunication(authIframe) {
1572
+ const { origin: authOrigin } = new URL(authIframe.src);
1573
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.RESET_WALLET_COMMUNICATION }, authOrigin);
1574
+ }
1442
1575
  async sendAuthInitializationRequest(authIframe, payload) {
1443
1576
  const response = firstValueFrom(this._authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.INITIALIZATION_RESPONSE)));
1444
1577
  const { origin } = new URL(authIframe.src);
@@ -1451,6 +1584,17 @@ class AirMessageService {
1451
1584
  walletIframe.contentWindow.postMessage({ type: AirMessageTypes.INITIALIZATION_REQUEST, payload }, origin);
1452
1585
  return response;
1453
1586
  }
1587
+ async sendCrossPartnerTokenRequest(authIframe, targetPartnerUrl) {
1588
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE)));
1589
+ const { origin } = new URL(authIframe.src);
1590
+ authIframe.contentWindow.postMessage({
1591
+ type: AirAuthMessageTypes.CROSS_PARTNER_TOKEN_REQUEST,
1592
+ payload: {
1593
+ targetPartnerUrl,
1594
+ },
1595
+ }, origin);
1596
+ return response;
1597
+ }
1454
1598
  async sendGrantPermissionsRequest(walletIframe, payload) {
1455
1599
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
1456
1600
  const { origin } = new URL(walletIframe.src);
@@ -1460,6 +1604,18 @@ class AirMessageService {
1460
1604
  onWalletInitialized() {
1461
1605
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1462
1606
  }
1607
+ sendWalletLoginRequest(walletIframe) {
1608
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_LOGIN_RESPONSE)));
1609
+ const { origin } = new URL(walletIframe.src);
1610
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.WALLET_LOGIN_REQUEST }, origin);
1611
+ return response;
1612
+ }
1613
+ async sendSetupMfaRequest(walletIframe) {
1614
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.SETUP_MFA_RESPONSE)));
1615
+ const { origin } = new URL(walletIframe.src);
1616
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.SETUP_MFA_REQUEST }, origin);
1617
+ return response;
1618
+ }
1463
1619
  async sendClaimIdRequest(walletIframe, payload) {
1464
1620
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1465
1621
  const { origin } = new URL(walletIframe.src);
@@ -1491,6 +1647,8 @@ class AirMessageService {
1491
1647
  closeWalletObservables() {
1492
1648
  if (this._providerMessage$ && !this._providerMessage$.closed)
1493
1649
  this._providerMessage$.complete();
1650
+ if (this._providerEvent$ && !this._providerEvent$.closed)
1651
+ this._providerEvent$.complete();
1494
1652
  if (this.closeWalletMessageListeners)
1495
1653
  this.closeWalletMessageListeners();
1496
1654
  }
@@ -1502,38 +1660,11 @@ class AirMessageService {
1502
1660
  }
1503
1661
  setupWalletObservables() {
1504
1662
  this._providerMessage$ = new Subject();
1663
+ this._providerEvent$ = new Subject();
1505
1664
  }
1506
1665
  }
1507
1666
  var AirMessageService$1 = AirMessageService.instance;
1508
1667
 
1509
- class ProviderRpcError extends Error {
1510
- constructor(message, code, data) {
1511
- super(message);
1512
- this.code = code;
1513
- this.data = data;
1514
- }
1515
- }
1516
- new ProviderRpcError("Invalid JSON", -32700);
1517
- const ProviderRpcInvalidRequestError = new ProviderRpcError("Invalid request", -32600);
1518
- const ProviderRpcMethodNotFoundError = new ProviderRpcError("Method not found", -32601);
1519
- const ProviderRpcInvalidParamsError = new ProviderRpcError("Invalid params", -32602);
1520
- new ProviderRpcError("Internal error", -32603);
1521
- new ProviderRpcError("User rejected request", 4001);
1522
- new ProviderRpcError("Unauthorized", 4100);
1523
- new ProviderRpcError("Unsupported method", 4200);
1524
- new ProviderRpcError("Disconnected", 4900);
1525
- new ProviderRpcError("Chain Disconnected", 4901);
1526
- function ensureProviderRpcError(value) {
1527
- if (value instanceof ProviderRpcError) return value;
1528
- let stringified = "[Unable to stringify the thrown value]";
1529
- try {
1530
- stringified = JSON.stringify(value);
1531
- } catch {
1532
- // ignoring failed stringify
1533
- }
1534
- return new ProviderRpcError(`This value was not thrown as type ProviderRpcError: ${stringified}`, -32603);
1535
- }
1536
-
1537
1668
  const BUILD_ENV = {
1538
1669
  PRODUCTION: "production",
1539
1670
  STAGING: "staging",
@@ -1544,66 +1675,113 @@ const AIR_URLS = {
1544
1675
  [BUILD_ENV.DEVELOPMENT]: {
1545
1676
  authUrl: "http://localhost:8100",
1546
1677
  walletUrl: "http://localhost:8200",
1547
- legacyWalletUrl: "https://localhost:4050",
1548
1678
  logLevel: "debug",
1549
1679
  },
1550
1680
  [BUILD_ENV.STAGING]: {
1551
1681
  authUrl: "https://auth.staging.air3.com",
1552
1682
  walletUrl: "https://account.staging.air3.com",
1553
- legacyWalletUrl: "https://account.staging.realmnetwork.io",
1554
1683
  logLevel: "info",
1555
1684
  },
1556
1685
  [BUILD_ENV.PRODUCTION]: {
1557
1686
  authUrl: "https://auth.air3.com",
1558
1687
  walletUrl: "https://account.air3.com",
1559
- legacyWalletUrl: "https://account.realmnetwork.io",
1560
1688
  logLevel: "error",
1561
1689
  },
1562
1690
  };
1563
1691
  const isElement = (element) => element instanceof Element || element instanceof Document;
1564
1692
  const randomId = () => Math.random().toString(36).slice(2);
1565
1693
 
1566
- var _AirWalletProvider_walletIframe;
1694
+ var _AirWalletProvider_instances, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_getWalletIframeController, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
1567
1695
  class AirWalletProvider {
1568
- constructor(walletIframe) {
1569
- _AirWalletProvider_walletIframe.set(this, undefined);
1570
- __classPrivateFieldSet(this, _AirWalletProvider_walletIframe, walletIframe, "f");
1696
+ constructor({ isLoggedIn, ensureWallet, getWalletIframeController, }) {
1697
+ _AirWalletProvider_instances.add(this);
1698
+ _AirWalletProvider_isLoggedIn.set(this, undefined);
1699
+ _AirWalletProvider_ensureWallet.set(this, undefined);
1700
+ _AirWalletProvider_getWalletIframeController.set(this, undefined);
1701
+ _AirWalletProvider_eventListeners.set(this, undefined);
1702
+ this.startEventMessageListening = () => {
1703
+ AirMessageService$1.providerEvent$.subscribe((message) => {
1704
+ __classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
1705
+ });
1706
+ };
1707
+ __classPrivateFieldSet(this, _AirWalletProvider_isLoggedIn, isLoggedIn, "f");
1708
+ __classPrivateFieldSet(this, _AirWalletProvider_ensureWallet, ensureWallet, "f");
1709
+ __classPrivateFieldSet(this, _AirWalletProvider_getWalletIframeController, getWalletIframeController, "f");
1710
+ __classPrivateFieldSet(this, _AirWalletProvider_eventListeners, {
1711
+ connect: [],
1712
+ disconnect: [],
1713
+ accountsChanged: [],
1714
+ chainChanged: [],
1715
+ message: [],
1716
+ }, "f");
1571
1717
  }
1572
1718
  async request(request) {
1573
1719
  // Check if the request is valid
1574
1720
  if (!request || typeof request !== "object" || Array.isArray(request)) {
1575
- throw ProviderRpcInvalidRequestError;
1721
+ throw new InvalidRequestRpcError("Invalid request");
1576
1722
  }
1577
1723
  const { method, params } = request;
1578
1724
  // Check if the method is valid
1579
1725
  if (typeof method !== "string" || method.length === 0) {
1580
- throw ProviderRpcMethodNotFoundError;
1726
+ throw new MethodNotFoundRpcError("Invalid method");
1581
1727
  }
1582
1728
  // Check if the params are valid
1583
1729
  if (params !== undefined &&
1584
1730
  !Array.isArray(params) &&
1585
1731
  (typeof params !== "object" || params === null)) {
1586
- throw ProviderRpcInvalidParamsError;
1732
+ throw new InvalidParamsRpcError("Invalid params");
1733
+ }
1734
+ // Check if the user is logged in
1735
+ if (!__classPrivateFieldGet(this, _AirWalletProvider_isLoggedIn, "f").call(this)) {
1736
+ throw new UnauthorizedProviderError("User is not logged in");
1737
+ }
1738
+ try {
1739
+ await __classPrivateFieldGet(this, _AirWalletProvider_ensureWallet, "f").call(this);
1740
+ }
1741
+ catch (error) {
1742
+ throw ensureProviderRpcError(error);
1587
1743
  }
1588
1744
  const requestId = randomId();
1589
- const response = await AirMessageService$1.sendWalletProviderRequest(__classPrivateFieldGet(this, _AirWalletProvider_walletIframe, "f"), {
1745
+ const response = await AirMessageService$1.sendWalletProviderRequest(__classPrivateFieldGet(this, _AirWalletProvider_getWalletIframeController, "f").call(this).iframeElement, {
1590
1746
  requestId,
1591
1747
  ...request,
1592
1748
  });
1593
1749
  if (!response.success) {
1594
- const error = ensureProviderRpcError(response.payload);
1595
- throw error;
1750
+ throw ensureProviderRpcError(response.payload);
1596
1751
  }
1597
1752
  return response.payload.response;
1598
1753
  }
1599
1754
  on(eventName, listener) {
1600
- console.log("on", eventName, listener);
1755
+ __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || [];
1756
+ __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].push(listener);
1601
1757
  }
1602
1758
  removeListener(eventName, listener) {
1603
- console.log("removeListener", eventName, listener);
1759
+ __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || [];
1760
+ const index = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].indexOf(listener);
1761
+ if (index >= 0) {
1762
+ __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].splice(index, 1);
1763
+ }
1764
+ }
1765
+ removeAllListeners() {
1766
+ __classPrivateFieldSet(this, _AirWalletProvider_eventListeners, {
1767
+ connect: [],
1768
+ disconnect: [],
1769
+ accountsChanged: [],
1770
+ chainChanged: [],
1771
+ message: [],
1772
+ }, "f");
1604
1773
  }
1605
1774
  }
1606
- _AirWalletProvider_walletIframe = new WeakMap();
1775
+ _AirWalletProvider_isLoggedIn = new WeakMap(), _AirWalletProvider_ensureWallet = new WeakMap(), _AirWalletProvider_getWalletIframeController = new WeakMap(), _AirWalletProvider_eventListeners = new WeakMap(), _AirWalletProvider_instances = new WeakSet(), _AirWalletProvider_emit = function _AirWalletProvider_emit(eventName, ...args) {
1776
+ (__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || []).forEach((listener) => {
1777
+ try {
1778
+ return listener(...args);
1779
+ }
1780
+ catch (error) {
1781
+ log$1.error(error);
1782
+ }
1783
+ });
1784
+ };
1607
1785
 
1608
1786
  class IframeController {
1609
1787
  constructor(iframeUrl, iframeId, state) {
@@ -1668,9 +1846,8 @@ IframeController.defaultState = {
1668
1846
  isVisible: false,
1669
1847
  };
1670
1848
 
1671
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
1849
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
1672
1850
  class AirService {
1673
- // #walletRehydrationState: AirRehydrationResult;
1674
1851
  constructor({ partnerId }) {
1675
1852
  _AirService_instances.add(this);
1676
1853
  _AirService_loginResult.set(this, undefined);
@@ -1683,9 +1860,14 @@ class AirService {
1683
1860
  _AirService_airAuthListener.set(this, []);
1684
1861
  _AirService_walletIframeController.set(this, undefined);
1685
1862
  _AirService_walletInitialization.set(this, undefined);
1686
- _AirService_isWalletInitialized.set(this, false);
1863
+ _AirService_walletLoggedInResult.set(this, undefined);
1687
1864
  _AirService_airWalletProvider.set(this, undefined);
1688
1865
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
1866
+ __classPrivateFieldSet(this, _AirService_airWalletProvider, new AirWalletProvider({
1867
+ isLoggedIn: () => this.isLoggedIn,
1868
+ ensureWallet: __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).bind(this),
1869
+ getWalletIframeController: () => __classPrivateFieldGet(this, _AirService_walletIframeController, "f"),
1870
+ }), "f");
1689
1871
  // this.#modalZIndex = modalZIndex ?? 99999;
1690
1872
  }
1691
1873
  get buildEnv() {
@@ -1698,7 +1880,15 @@ class AirService {
1698
1880
  return !!__classPrivateFieldGet(this, _AirService_loginResult, "f");
1699
1881
  }
1700
1882
  get isWalletInitialized() {
1701
- return __classPrivateFieldGet(this, _AirService_isWalletInitialized, "f");
1883
+ return !!__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
1884
+ }
1885
+ get provider() {
1886
+ const provider = __classPrivateFieldGet(this, _AirService_airWalletProvider, "f");
1887
+ return {
1888
+ request: provider.request.bind(provider),
1889
+ on: provider.on.bind(provider),
1890
+ removeListener: provider.removeListener.bind(provider),
1891
+ };
1702
1892
  }
1703
1893
  async init({ buildEnv = BUILD_ENV.PRODUCTION, enableLogging = false, skipRehydration = false, }) {
1704
1894
  if (!__classPrivateFieldGet(this, _AirService_partnerId, "f"))
@@ -1726,7 +1916,7 @@ class AirService {
1726
1916
  }
1727
1917
  case AirAuthMessageTypes.SETUP_WALLET_REQUEST: {
1728
1918
  try {
1729
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
1919
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
1730
1920
  __classPrivateFieldGet(this, _AirService_authIframeController, "f").postMessage({
1731
1921
  type: AirAuthMessageTypes.SETUP_WALLET_RESPONSE,
1732
1922
  payload: {
@@ -1761,6 +1951,7 @@ class AirService {
1761
1951
  const { payload } = await AirMessageService$1.sendAuthInitializationRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, {
1762
1952
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
1763
1953
  skipRehydration,
1954
+ partnerDAppUrl: window.location.href,
1764
1955
  });
1765
1956
  if (payload.success === true) {
1766
1957
  resolve(payload);
@@ -1788,11 +1979,6 @@ class AirService {
1788
1979
  }
1789
1980
  return null;
1790
1981
  }
1791
- async cleanUp() {
1792
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
1793
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuth).call(this);
1794
- this.clearEventListeners();
1795
- }
1796
1982
  async login(options) {
1797
1983
  if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
1798
1984
  throw new Error("Service is not initialized");
@@ -1897,25 +2083,18 @@ class AirService {
1897
2083
  throw AirServiceError.from(error);
1898
2084
  }
1899
2085
  }
1900
- async logout() {
1901
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
1902
- throw new Error("Service is not initialized");
1903
- if (!this.isLoggedIn)
1904
- throw new Error("No active session to logout");
1905
- // Clear up wallet
1906
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
1907
- await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
1908
- __classPrivateFieldSet(this, _AirService_loginResult, undefined, "f");
1909
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedOut).call(this);
1910
- }
1911
- async getProvider() {
1912
- if (!this.isLoggedIn)
1913
- return null;
1914
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
1915
- return __classPrivateFieldGet(this, _AirService_airWalletProvider, "f");
2086
+ getProvider() {
2087
+ return this.provider;
1916
2088
  }
1917
2089
  async preloadWallet() {
1918
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2090
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2091
+ }
2092
+ async setupOrUpdateMfa() {
2093
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2094
+ const result = await AirMessageService$1.sendSetupMfaRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2095
+ if (result.payload.success === false) {
2096
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2097
+ }
1919
2098
  }
1920
2099
  async claimAirId(options) {
1921
2100
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
@@ -1940,9 +2119,39 @@ class AirService {
1940
2119
  id: info.payload.user.id,
1941
2120
  abstractAccountAddress: info.payload.user.abstractAccountAddress,
1942
2121
  email: info.payload.user.email,
2122
+ isMFASetup: info.payload.user.isMFASetup,
1943
2123
  },
1944
2124
  };
1945
2125
  }
2126
+ async goToPartner(partnerUrl) {
2127
+ if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2128
+ throw new Error("Service is not initialized");
2129
+ if (!this.isLoggedIn)
2130
+ throw new Error("No active session to generate token");
2131
+ const result = await AirMessageService$1.sendCrossPartnerTokenRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, partnerUrl);
2132
+ if (result.payload.success === false) {
2133
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2134
+ }
2135
+ return {
2136
+ urlWithToken: result.payload.urlWithToken,
2137
+ };
2138
+ }
2139
+ async logout() {
2140
+ if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2141
+ throw new Error("Service is not initialized");
2142
+ if (!this.isLoggedIn)
2143
+ throw new Error("No active session to logout");
2144
+ // Clear up wallet
2145
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2146
+ await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2147
+ __classPrivateFieldSet(this, _AirService_loginResult, undefined, "f");
2148
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedOut).call(this);
2149
+ }
2150
+ async cleanUp() {
2151
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2152
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuth).call(this);
2153
+ this.clearEventListeners();
2154
+ }
1946
2155
  on(listener) {
1947
2156
  if (__classPrivateFieldGet(this, _AirService_airAuthListener, "f").indexOf(listener) < 0)
1948
2157
  __classPrivateFieldGet(this, _AirService_airAuthListener, "f").push(listener);
@@ -1954,35 +2163,37 @@ class AirService {
1954
2163
  clearEventListeners() {
1955
2164
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
1956
2165
  }
1957
- // This is for internal use only
1958
- // @ts-expect-error for unused function
1959
- async _showWalletWidget() {
1960
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
1961
- // return (this.#realmEmbed as any)._showWalletWidget();
1962
- log.info("_showWalletWidget");
1963
- return null;
1964
- }
1965
2166
  }
1966
- _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_isWalletInitialized = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet = async function _AirService_ensureWallet() {
2167
+ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet = async function _AirService_ensureWallet(option) {
1967
2168
  if (!this.isInitialized)
1968
2169
  throw new Error("Service not initialized");
1969
- if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f")) {
1970
- try {
1971
- __classPrivateFieldSet(this, _AirService_walletInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeWallet).call(this), "f");
1972
- return await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
1973
- }
1974
- catch (error) {
1975
- __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
1976
- log.error("Error initializing wallet", error);
1977
- throw error;
2170
+ if (!this.isLoggedIn && !option?.skipWalletLogin)
2171
+ throw new Error("User not logged in");
2172
+ if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2173
+ __classPrivateFieldSet(this, _AirService_walletInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeWallet).call(this, option), "f");
2174
+ if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2175
+ return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2176
+ try {
2177
+ const result = await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
2178
+ if (option?.skipWalletLogin || result.isWalletLoggedIn) {
2179
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, result);
1978
2180
  }
1979
2181
  }
1980
- else {
1981
- return __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
2182
+ catch (error) {
2183
+ __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
2184
+ log.error("Error initializing wallet", error);
2185
+ throw error;
2186
+ }
2187
+ if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2188
+ return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2189
+ const walletLoginResult = await AirMessageService$1.sendWalletLoginRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2190
+ if (walletLoginResult.payload.success !== true) {
2191
+ throw new AirServiceError(walletLoginResult.payload.errorName, walletLoginResult.payload.errorMessage);
1982
2192
  }
1983
- }, _AirService_initializeWallet = async function _AirService_initializeWallet() {
1984
- if (__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f"))
1985
- throw new AirServiceError("ALREADY_INITIALISED", "Already initialized");
2193
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletLoginResult.payload);
2194
+ }, _AirService_initializeWallet = async function _AirService_initializeWallet(option) {
2195
+ if (__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2196
+ throw new Error("Already initializing");
1986
2197
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
1987
2198
  log.info(walletUrl, "url loaded");
1988
2199
  const walletIframeOrigin = new URL(walletUrl).origin;
@@ -1998,6 +2209,13 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
1998
2209
  walletIframeController.updateIframeState();
1999
2210
  break;
2000
2211
  }
2212
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2213
+ if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2214
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2215
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2216
+ }
2217
+ break;
2218
+ }
2001
2219
  }
2002
2220
  });
2003
2221
  await new Promise((resolve, reject) => {
@@ -2020,18 +2238,18 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2020
2238
  };
2021
2239
  window.addEventListener("message", handleAuthMessage);
2022
2240
  });
2241
+ __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening();
2023
2242
  const walletInitPromise = AirMessageService$1.onWalletInitialized();
2024
- AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2243
+ AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
2025
2244
  const walletInitResult = await walletInitPromise;
2026
2245
  if (walletInitResult.payload.success !== true) {
2027
2246
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2028
2247
  }
2029
- __classPrivateFieldSet(this, _AirService_airWalletProvider, new AirWalletProvider(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement), "f");
2030
- const result = {
2031
- abstractAccountAddress: walletInitResult.payload.addresses.aa,
2032
- };
2033
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, result);
2034
- return result;
2248
+ if (!__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f") && walletInitResult.payload.isWalletLoggedIn) {
2249
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload), "f");
2250
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2251
+ }
2252
+ return walletInitResult.payload;
2035
2253
  }
2036
2254
  catch (error) {
2037
2255
  log.error("Error initializing wallet", error);
@@ -2062,6 +2280,18 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2062
2280
  id: payload.id,
2063
2281
  abstractAccountAddress: payload.abstractAccountAddress,
2064
2282
  token: payload.partnerAccessToken,
2283
+ isMFASetup: payload.isMFASetup,
2284
+ };
2285
+ }, _AirService_createWalletInitializedResult = function _AirService_createWalletInitializedResult(payload) {
2286
+ if ("isWalletLoggedIn" in payload && !payload.isWalletLoggedIn) {
2287
+ return {
2288
+ abstractAccountAddress: null,
2289
+ isMFASetup: __classPrivateFieldGet(this, _AirService_loginResult, "f")?.isMFASetup ?? false,
2290
+ };
2291
+ }
2292
+ return {
2293
+ abstractAccountAddress: payload.addresses.aa,
2294
+ isMFASetup: payload.isMFASetup,
2065
2295
  };
2066
2296
  }, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
2067
2297
  // Logout auth session
@@ -2085,14 +2315,27 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2085
2315
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
2086
2316
  __classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
2087
2317
  }
2318
+ const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2319
+ if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
2320
+ AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
2321
+ }
2088
2322
  // Close the message service
2089
2323
  AirMessageService$1.closeAirObservables();
2090
- __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
2091
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, false, "f");
2324
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2325
+ __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2092
2326
  };
2093
2327
 
2094
2328
  exports.AirService = AirService;
2095
2329
  exports.AirServiceError = AirServiceError;
2096
- exports.AirWalletProvider = AirWalletProvider;
2097
2330
  exports.BUILD_ENV = BUILD_ENV;
2098
- exports.RealmEmbedError = RealmEmbedError;
2331
+ exports.ChainDisconnectedError = ChainDisconnectedError;
2332
+ exports.InternalRpcError = InternalRpcError;
2333
+ exports.InvalidParamsRpcError = InvalidParamsRpcError;
2334
+ exports.InvalidRequestRpcError = InvalidRequestRpcError;
2335
+ exports.MethodNotFoundRpcError = MethodNotFoundRpcError;
2336
+ exports.ProviderDisconnectedError = ProviderDisconnectedError;
2337
+ exports.SwitchChainError = SwitchChainError;
2338
+ exports.UnauthorizedProviderError = UnauthorizedProviderError;
2339
+ exports.UnsupportedProviderMethodError = UnsupportedProviderMethodError;
2340
+ exports.UserRejectedRequestError = UserRejectedRequestError;
2341
+ exports.ensureProviderRpcError = ensureProviderRpcError;