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