@mocanetwork/airkit 1.1.0-beta.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.
@@ -131,6 +131,10 @@ const AirMessageTypes = {
131
131
  INITIALIZATION_RESPONSE: "air_initialization_response",
132
132
  INIT_AUTH_COMMUNICATION: "air_init_auth_communication",
133
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",
134
138
  CLAIM_ID_REQUEST: "air_claim_id_request",
135
139
  CLAIM_ID_RESPONSE: "air_claim_id_response",
136
140
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
@@ -145,8 +149,7 @@ const AirMessageTypes = {
145
149
  IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
146
150
  IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
147
151
  LOGOUT_REQUEST: "air_logout_request",
148
- LOGOUT_RESPONSE: "air_logout_response",
149
- SETUP_MFA_REQUEST: "air_setup_mfa_request"
152
+ LOGOUT_RESPONSE: "air_logout_response"
150
153
  };
151
154
 
152
155
  class BaseError extends Error {
@@ -1365,6 +1368,8 @@ var AirWalletProviderMessageTypes;
1365
1368
  const ACCOUNT_MESSAGES = [
1366
1369
  AirMessageTypes.INITIALIZATION_RESPONSE,
1367
1370
  AirMessageTypes.WALLET_INITIALIZED,
1371
+ AirMessageTypes.WALLET_LOGIN_RESPONSE,
1372
+ AirMessageTypes.SETUP_MFA_RESPONSE,
1368
1373
  AirMessageTypes.CLAIM_ID_RESPONSE,
1369
1374
  AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
1370
1375
  AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
@@ -1599,6 +1604,18 @@ class AirMessageService {
1599
1604
  onWalletInitialized() {
1600
1605
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1601
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
+ }
1602
1619
  async sendClaimIdRequest(walletIframe, payload) {
1603
1620
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1604
1621
  const { origin } = new URL(walletIframe.src);
@@ -1682,7 +1699,7 @@ class AirWalletProvider {
1682
1699
  _AirWalletProvider_ensureWallet.set(this, undefined);
1683
1700
  _AirWalletProvider_getWalletIframeController.set(this, undefined);
1684
1701
  _AirWalletProvider_eventListeners.set(this, undefined);
1685
- this.listenProviderEventMessage = () => {
1702
+ this.startEventMessageListening = () => {
1686
1703
  AirMessageService$1.providerEvent$.subscribe((message) => {
1687
1704
  __classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
1688
1705
  });
@@ -1829,7 +1846,7 @@ IframeController.defaultState = {
1829
1846
  isVisible: false,
1830
1847
  };
1831
1848
 
1832
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _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, _AirService_cleanUpAuthWalletCommunication;
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;
1833
1850
  class AirService {
1834
1851
  constructor({ partnerId }) {
1835
1852
  _AirService_instances.add(this);
@@ -1843,7 +1860,6 @@ class AirService {
1843
1860
  _AirService_airAuthListener.set(this, []);
1844
1861
  _AirService_walletIframeController.set(this, undefined);
1845
1862
  _AirService_walletInitialization.set(this, undefined);
1846
- _AirService_isWalletInitialized.set(this, false);
1847
1863
  _AirService_walletLoggedInResult.set(this, undefined);
1848
1864
  _AirService_airWalletProvider.set(this, undefined);
1849
1865
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
@@ -2071,9 +2087,14 @@ class AirService {
2071
2087
  return this.provider;
2072
2088
  }
2073
2089
  async preloadWallet() {
2074
- if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2075
- return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2076
- return await __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
+ }
2077
2098
  }
2078
2099
  async claimAirId(options) {
2079
2100
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
@@ -2142,50 +2163,37 @@ class AirService {
2142
2163
  clearEventListeners() {
2143
2164
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
2144
2165
  }
2145
- // This is for internal use only
2146
- // @ts-expect-error for unused function
2147
- async _showWalletWidget() {
2148
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2149
- // return (this.#realmEmbed as any)._showWalletWidget();
2150
- log.info("_showWalletWidget");
2151
- return null;
2152
- }
2153
2166
  }
2154
- _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_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet =
2155
- // Result of this.#walletInitialization:
2156
- // - If skipWalletLogin is true, it returns the result of empty abstractAccountAddress
2157
- // - If skipWalletLogin is false, it returns the result of abstractAccountAddress from wallet initialization
2158
- // - If #ensureWallet is called again, it returns the result of abstractAccountAddress from the second
2159
- // wallet initialization if this first wallet initialization doesn't have abstractAccountAddress
2160
- async function _AirService_ensureWallet(option) {
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) {
2161
2168
  if (!this.isInitialized)
2162
2169
  throw new Error("Service not initialized");
2163
2170
  if (!this.isLoggedIn && !option?.skipWalletLogin)
2164
2171
  throw new Error("User not logged in");
2165
2172
  if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2166
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");
2167
2176
  try {
2168
2177
  const result = await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
2169
- // Note: Checking for abstractAccountAddress from the result and this.#walletLoggedInResult to avoid race condition
2170
- if (option?.skipWalletLogin ||
2171
- result?.abstractAccountAddress ||
2172
- __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")?.abstractAccountAddress) {
2173
- return result || __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2178
+ if (option?.skipWalletLogin || result.isWalletLoggedIn) {
2179
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, result);
2174
2180
  }
2175
- const walletInitResult = await AirMessageService$1.onWalletInitialized();
2176
- if (walletInitResult.payload.success !== true) {
2177
- throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2178
- }
2179
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
2180
2181
  }
2181
2182
  catch (error) {
2182
2183
  __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
2183
2184
  log.error("Error initializing wallet", error);
2184
2185
  throw error;
2185
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);
2192
+ }
2193
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletLoginResult.payload);
2186
2194
  }, _AirService_initializeWallet = async function _AirService_initializeWallet(option) {
2187
- if (__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f"))
2188
- throw new AirServiceError("ALREADY_INITIALISED", "Already initialized");
2195
+ if (__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2196
+ throw new Error("Already initializing");
2189
2197
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
2190
2198
  log.info(walletUrl, "url loaded");
2191
2199
  const walletIframeOrigin = new URL(walletUrl).origin;
@@ -2201,21 +2209,11 @@ async function _AirService_ensureWallet(option) {
2201
2209
  walletIframeController.updateIframeState();
2202
2210
  break;
2203
2211
  }
2204
- case AirMessageTypes.WALLET_INITIALIZED: {
2205
- if (msg.payload.success === true && msg.payload.addresses?.aa) {
2212
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2213
+ if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2206
2214
  __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2207
2215
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2208
2216
  }
2209
- if (msg.payload.success === false) {
2210
- if (!__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f")) {
2211
- // MFA fail case, also reset wallet port
2212
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuthWalletCommunication).call(this);
2213
- }
2214
- else {
2215
- // Logout wallet and destroy the wallet iframe
2216
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2217
- }
2218
- }
2219
2217
  break;
2220
2218
  }
2221
2219
  }
@@ -2240,15 +2238,18 @@ async function _AirService_ensureWallet(option) {
2240
2238
  };
2241
2239
  window.addEventListener("message", handleAuthMessage);
2242
2240
  });
2243
- __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").listenProviderEventMessage();
2241
+ __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening();
2244
2242
  const walletInitPromise = AirMessageService$1.onWalletInitialized();
2245
2243
  AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
2246
2244
  const walletInitResult = await walletInitPromise;
2247
2245
  if (walletInitResult.payload.success !== true) {
2248
2246
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2249
2247
  }
2250
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, true, "f");
2251
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
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;
2252
2253
  }
2253
2254
  catch (error) {
2254
2255
  log.error("Error initializing wallet", error);
@@ -2282,8 +2283,14 @@ async function _AirService_ensureWallet(option) {
2282
2283
  isMFASetup: payload.isMFASetup,
2283
2284
  };
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
+ }
2285
2292
  return {
2286
- abstractAccountAddress: payload.addresses?.aa ?? null,
2293
+ abstractAccountAddress: payload.addresses.aa,
2287
2294
  isMFASetup: payload.isMFASetup,
2288
2295
  };
2289
2296
  }, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
@@ -2308,18 +2315,14 @@ async function _AirService_ensureWallet(option) {
2308
2315
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
2309
2316
  __classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
2310
2317
  }
2311
- // Close the message service
2312
- AirMessageService$1.closeAirObservables();
2313
- __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2314
- __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2315
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, false, "f");
2316
- }, _AirService_cleanUpAuthWalletCommunication = function _AirService_cleanUpAuthWalletCommunication() {
2317
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2318
- return;
2319
2318
  const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2320
2319
  if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
2321
2320
  AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
2322
2321
  }
2322
+ // Close the message service
2323
+ AirMessageService$1.closeAirObservables();
2324
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2325
+ __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2323
2326
  };
2324
2327
 
2325
2328
  exports.AirService = AirService;
@@ -129,6 +129,10 @@ const AirMessageTypes = {
129
129
  INITIALIZATION_RESPONSE: "air_initialization_response",
130
130
  INIT_AUTH_COMMUNICATION: "air_init_auth_communication",
131
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",
132
136
  CLAIM_ID_REQUEST: "air_claim_id_request",
133
137
  CLAIM_ID_RESPONSE: "air_claim_id_response",
134
138
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
@@ -143,8 +147,7 @@ const AirMessageTypes = {
143
147
  IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
144
148
  IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
145
149
  LOGOUT_REQUEST: "air_logout_request",
146
- LOGOUT_RESPONSE: "air_logout_response",
147
- SETUP_MFA_REQUEST: "air_setup_mfa_request"
150
+ LOGOUT_RESPONSE: "air_logout_response"
148
151
  };
149
152
 
150
153
  class BaseError extends Error {
@@ -1363,6 +1366,8 @@ var AirWalletProviderMessageTypes;
1363
1366
  const ACCOUNT_MESSAGES = [
1364
1367
  AirMessageTypes.INITIALIZATION_RESPONSE,
1365
1368
  AirMessageTypes.WALLET_INITIALIZED,
1369
+ AirMessageTypes.WALLET_LOGIN_RESPONSE,
1370
+ AirMessageTypes.SETUP_MFA_RESPONSE,
1366
1371
  AirMessageTypes.CLAIM_ID_RESPONSE,
1367
1372
  AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
1368
1373
  AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
@@ -1597,6 +1602,18 @@ class AirMessageService {
1597
1602
  onWalletInitialized() {
1598
1603
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1599
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
+ }
1600
1617
  async sendClaimIdRequest(walletIframe, payload) {
1601
1618
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1602
1619
  const { origin } = new URL(walletIframe.src);
@@ -1680,7 +1697,7 @@ class AirWalletProvider {
1680
1697
  _AirWalletProvider_ensureWallet.set(this, undefined);
1681
1698
  _AirWalletProvider_getWalletIframeController.set(this, undefined);
1682
1699
  _AirWalletProvider_eventListeners.set(this, undefined);
1683
- this.listenProviderEventMessage = () => {
1700
+ this.startEventMessageListening = () => {
1684
1701
  AirMessageService$1.providerEvent$.subscribe((message) => {
1685
1702
  __classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
1686
1703
  });
@@ -1827,7 +1844,7 @@ IframeController.defaultState = {
1827
1844
  isVisible: false,
1828
1845
  };
1829
1846
 
1830
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _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, _AirService_cleanUpAuthWalletCommunication;
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;
1831
1848
  class AirService {
1832
1849
  constructor({ partnerId }) {
1833
1850
  _AirService_instances.add(this);
@@ -1841,7 +1858,6 @@ class AirService {
1841
1858
  _AirService_airAuthListener.set(this, []);
1842
1859
  _AirService_walletIframeController.set(this, undefined);
1843
1860
  _AirService_walletInitialization.set(this, undefined);
1844
- _AirService_isWalletInitialized.set(this, false);
1845
1861
  _AirService_walletLoggedInResult.set(this, undefined);
1846
1862
  _AirService_airWalletProvider.set(this, undefined);
1847
1863
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
@@ -2069,9 +2085,14 @@ class AirService {
2069
2085
  return this.provider;
2070
2086
  }
2071
2087
  async preloadWallet() {
2072
- if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2073
- return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2074
- return await __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
+ }
2075
2096
  }
2076
2097
  async claimAirId(options) {
2077
2098
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
@@ -2140,50 +2161,37 @@ class AirService {
2140
2161
  clearEventListeners() {
2141
2162
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
2142
2163
  }
2143
- // This is for internal use only
2144
- // @ts-expect-error for unused function
2145
- async _showWalletWidget() {
2146
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2147
- // return (this.#realmEmbed as any)._showWalletWidget();
2148
- log.info("_showWalletWidget");
2149
- return null;
2150
- }
2151
2164
  }
2152
- _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_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet =
2153
- // Result of this.#walletInitialization:
2154
- // - If skipWalletLogin is true, it returns the result of empty abstractAccountAddress
2155
- // - If skipWalletLogin is false, it returns the result of abstractAccountAddress from wallet initialization
2156
- // - If #ensureWallet is called again, it returns the result of abstractAccountAddress from the second
2157
- // wallet initialization if this first wallet initialization doesn't have abstractAccountAddress
2158
- async function _AirService_ensureWallet(option) {
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) {
2159
2166
  if (!this.isInitialized)
2160
2167
  throw new Error("Service not initialized");
2161
2168
  if (!this.isLoggedIn && !option?.skipWalletLogin)
2162
2169
  throw new Error("User not logged in");
2163
2170
  if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2164
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");
2165
2174
  try {
2166
2175
  const result = await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
2167
- // Note: Checking for abstractAccountAddress from the result and this.#walletLoggedInResult to avoid race condition
2168
- if (option?.skipWalletLogin ||
2169
- result?.abstractAccountAddress ||
2170
- __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")?.abstractAccountAddress) {
2171
- return result || __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2176
+ if (option?.skipWalletLogin || result.isWalletLoggedIn) {
2177
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, result);
2172
2178
  }
2173
- const walletInitResult = await AirMessageService$1.onWalletInitialized();
2174
- if (walletInitResult.payload.success !== true) {
2175
- throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2176
- }
2177
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
2178
2179
  }
2179
2180
  catch (error) {
2180
2181
  __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
2181
2182
  log.error("Error initializing wallet", error);
2182
2183
  throw error;
2183
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);
2190
+ }
2191
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletLoginResult.payload);
2184
2192
  }, _AirService_initializeWallet = async function _AirService_initializeWallet(option) {
2185
- if (__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f"))
2186
- throw new AirServiceError("ALREADY_INITIALISED", "Already initialized");
2193
+ if (__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2194
+ throw new Error("Already initializing");
2187
2195
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
2188
2196
  log.info(walletUrl, "url loaded");
2189
2197
  const walletIframeOrigin = new URL(walletUrl).origin;
@@ -2199,21 +2207,11 @@ async function _AirService_ensureWallet(option) {
2199
2207
  walletIframeController.updateIframeState();
2200
2208
  break;
2201
2209
  }
2202
- case AirMessageTypes.WALLET_INITIALIZED: {
2203
- if (msg.payload.success === true && msg.payload.addresses?.aa) {
2210
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2211
+ if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2204
2212
  __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2205
2213
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2206
2214
  }
2207
- if (msg.payload.success === false) {
2208
- if (!__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f")) {
2209
- // MFA fail case, also reset wallet port
2210
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuthWalletCommunication).call(this);
2211
- }
2212
- else {
2213
- // Logout wallet and destroy the wallet iframe
2214
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2215
- }
2216
- }
2217
2215
  break;
2218
2216
  }
2219
2217
  }
@@ -2238,15 +2236,18 @@ async function _AirService_ensureWallet(option) {
2238
2236
  };
2239
2237
  window.addEventListener("message", handleAuthMessage);
2240
2238
  });
2241
- __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").listenProviderEventMessage();
2239
+ __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening();
2242
2240
  const walletInitPromise = AirMessageService$1.onWalletInitialized();
2243
2241
  AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
2244
2242
  const walletInitResult = await walletInitPromise;
2245
2243
  if (walletInitResult.payload.success !== true) {
2246
2244
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2247
2245
  }
2248
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, true, "f");
2249
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
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;
2250
2251
  }
2251
2252
  catch (error) {
2252
2253
  log.error("Error initializing wallet", error);
@@ -2280,8 +2281,14 @@ async function _AirService_ensureWallet(option) {
2280
2281
  isMFASetup: payload.isMFASetup,
2281
2282
  };
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
+ }
2283
2290
  return {
2284
- abstractAccountAddress: payload.addresses?.aa ?? null,
2291
+ abstractAccountAddress: payload.addresses.aa,
2285
2292
  isMFASetup: payload.isMFASetup,
2286
2293
  };
2287
2294
  }, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
@@ -2306,18 +2313,14 @@ async function _AirService_ensureWallet(option) {
2306
2313
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
2307
2314
  __classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
2308
2315
  }
2309
- // Close the message service
2310
- AirMessageService$1.closeAirObservables();
2311
- __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2312
- __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2313
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, false, "f");
2314
- }, _AirService_cleanUpAuthWalletCommunication = function _AirService_cleanUpAuthWalletCommunication() {
2315
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2316
- return;
2317
2316
  const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2318
2317
  if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
2319
2318
  AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
2320
2319
  }
2320
+ // Close the message service
2321
+ AirMessageService$1.closeAirObservables();
2322
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2323
+ __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2321
2324
  };
2322
2325
 
2323
2326
  export { AirService, AirServiceError, BUILD_ENV, ChainDisconnectedError, InternalRpcError, InvalidParamsRpcError, InvalidRequestRpcError, MethodNotFoundRpcError, ProviderDisconnectedError, SwitchChainError, UnauthorizedProviderError, UnsupportedProviderMethodError, UserRejectedRequestError, ensureProviderRpcError };
@@ -135,6 +135,10 @@
135
135
  INITIALIZATION_RESPONSE: "air_initialization_response",
136
136
  INIT_AUTH_COMMUNICATION: "air_init_auth_communication",
137
137
  WALLET_INITIALIZED: "air_wallet_initialized",
138
+ WALLET_LOGIN_REQUEST: "air_wallet_login_request",
139
+ WALLET_LOGIN_RESPONSE: "air_wallet_login_response",
140
+ SETUP_MFA_REQUEST: "air_setup_mfa_request",
141
+ SETUP_MFA_RESPONSE: "air_setup_mfa_response",
138
142
  CLAIM_ID_REQUEST: "air_claim_id_request",
139
143
  CLAIM_ID_RESPONSE: "air_claim_id_response",
140
144
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
@@ -149,8 +153,7 @@
149
153
  IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
150
154
  IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
151
155
  LOGOUT_REQUEST: "air_logout_request",
152
- LOGOUT_RESPONSE: "air_logout_response",
153
- SETUP_MFA_REQUEST: "air_setup_mfa_request"
156
+ LOGOUT_RESPONSE: "air_logout_response"
154
157
  };
155
158
 
156
159
  class BaseError extends Error {
@@ -1369,6 +1372,8 @@
1369
1372
  const ACCOUNT_MESSAGES = [
1370
1373
  AirMessageTypes.INITIALIZATION_RESPONSE,
1371
1374
  AirMessageTypes.WALLET_INITIALIZED,
1375
+ AirMessageTypes.WALLET_LOGIN_RESPONSE,
1376
+ AirMessageTypes.SETUP_MFA_RESPONSE,
1372
1377
  AirMessageTypes.CLAIM_ID_RESPONSE,
1373
1378
  AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
1374
1379
  AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
@@ -1603,6 +1608,18 @@
1603
1608
  onWalletInitialized() {
1604
1609
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1605
1610
  }
1611
+ sendWalletLoginRequest(walletIframe) {
1612
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_LOGIN_RESPONSE)));
1613
+ const { origin } = new URL(walletIframe.src);
1614
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.WALLET_LOGIN_REQUEST }, origin);
1615
+ return response;
1616
+ }
1617
+ async sendSetupMfaRequest(walletIframe) {
1618
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.SETUP_MFA_RESPONSE)));
1619
+ const { origin } = new URL(walletIframe.src);
1620
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.SETUP_MFA_REQUEST }, origin);
1621
+ return response;
1622
+ }
1606
1623
  async sendClaimIdRequest(walletIframe, payload) {
1607
1624
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1608
1625
  const { origin } = new URL(walletIframe.src);
@@ -1686,7 +1703,7 @@
1686
1703
  _AirWalletProvider_ensureWallet.set(this, undefined);
1687
1704
  _AirWalletProvider_getWalletIframeController.set(this, undefined);
1688
1705
  _AirWalletProvider_eventListeners.set(this, undefined);
1689
- this.listenProviderEventMessage = () => {
1706
+ this.startEventMessageListening = () => {
1690
1707
  AirMessageService$1.providerEvent$.subscribe((message) => {
1691
1708
  __classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
1692
1709
  });
@@ -1833,7 +1850,7 @@
1833
1850
  isVisible: false,
1834
1851
  };
1835
1852
 
1836
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _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, _AirService_cleanUpAuthWalletCommunication;
1853
+ 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;
1837
1854
  class AirService {
1838
1855
  constructor({ partnerId }) {
1839
1856
  _AirService_instances.add(this);
@@ -1847,7 +1864,6 @@
1847
1864
  _AirService_airAuthListener.set(this, []);
1848
1865
  _AirService_walletIframeController.set(this, undefined);
1849
1866
  _AirService_walletInitialization.set(this, undefined);
1850
- _AirService_isWalletInitialized.set(this, false);
1851
1867
  _AirService_walletLoggedInResult.set(this, undefined);
1852
1868
  _AirService_airWalletProvider.set(this, undefined);
1853
1869
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
@@ -2075,9 +2091,14 @@
2075
2091
  return this.provider;
2076
2092
  }
2077
2093
  async preloadWallet() {
2078
- if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2079
- return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2080
- return await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2094
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2095
+ }
2096
+ async setupOrUpdateMfa() {
2097
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2098
+ const result = await AirMessageService$1.sendSetupMfaRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2099
+ if (result.payload.success === false) {
2100
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2101
+ }
2081
2102
  }
2082
2103
  async claimAirId(options) {
2083
2104
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
@@ -2146,50 +2167,37 @@
2146
2167
  clearEventListeners() {
2147
2168
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
2148
2169
  }
2149
- // This is for internal use only
2150
- // @ts-expect-error for unused function
2151
- async _showWalletWidget() {
2152
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2153
- // return (this.#realmEmbed as any)._showWalletWidget();
2154
- log.info("_showWalletWidget");
2155
- return null;
2156
- }
2157
2170
  }
2158
- _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_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet =
2159
- // Result of this.#walletInitialization:
2160
- // - If skipWalletLogin is true, it returns the result of empty abstractAccountAddress
2161
- // - If skipWalletLogin is false, it returns the result of abstractAccountAddress from wallet initialization
2162
- // - If #ensureWallet is called again, it returns the result of abstractAccountAddress from the second
2163
- // wallet initialization if this first wallet initialization doesn't have abstractAccountAddress
2164
- async function _AirService_ensureWallet(option) {
2171
+ _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) {
2165
2172
  if (!this.isInitialized)
2166
2173
  throw new Error("Service not initialized");
2167
2174
  if (!this.isLoggedIn && !option?.skipWalletLogin)
2168
2175
  throw new Error("User not logged in");
2169
2176
  if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2170
2177
  __classPrivateFieldSet(this, _AirService_walletInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeWallet).call(this, option), "f");
2178
+ if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2179
+ return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2171
2180
  try {
2172
2181
  const result = await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
2173
- // Note: Checking for abstractAccountAddress from the result and this.#walletLoggedInResult to avoid race condition
2174
- if (option?.skipWalletLogin ||
2175
- result?.abstractAccountAddress ||
2176
- __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")?.abstractAccountAddress) {
2177
- return result || __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2182
+ if (option?.skipWalletLogin || result.isWalletLoggedIn) {
2183
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, result);
2178
2184
  }
2179
- const walletInitResult = await AirMessageService$1.onWalletInitialized();
2180
- if (walletInitResult.payload.success !== true) {
2181
- throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2182
- }
2183
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
2184
2185
  }
2185
2186
  catch (error) {
2186
2187
  __classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
2187
2188
  log.error("Error initializing wallet", error);
2188
2189
  throw error;
2189
2190
  }
2191
+ if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2192
+ return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2193
+ const walletLoginResult = await AirMessageService$1.sendWalletLoginRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2194
+ if (walletLoginResult.payload.success !== true) {
2195
+ throw new AirServiceError(walletLoginResult.payload.errorName, walletLoginResult.payload.errorMessage);
2196
+ }
2197
+ return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletLoginResult.payload);
2190
2198
  }, _AirService_initializeWallet = async function _AirService_initializeWallet(option) {
2191
- if (__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f"))
2192
- throw new AirServiceError("ALREADY_INITIALISED", "Already initialized");
2199
+ if (__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2200
+ throw new Error("Already initializing");
2193
2201
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
2194
2202
  log.info(walletUrl, "url loaded");
2195
2203
  const walletIframeOrigin = new URL(walletUrl).origin;
@@ -2205,21 +2213,11 @@
2205
2213
  walletIframeController.updateIframeState();
2206
2214
  break;
2207
2215
  }
2208
- case AirMessageTypes.WALLET_INITIALIZED: {
2209
- if (msg.payload.success === true && msg.payload.addresses?.aa) {
2216
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2217
+ if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2210
2218
  __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2211
2219
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2212
2220
  }
2213
- if (msg.payload.success === false) {
2214
- if (!__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f")) {
2215
- // MFA fail case, also reset wallet port
2216
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuthWalletCommunication).call(this);
2217
- }
2218
- else {
2219
- // Logout wallet and destroy the wallet iframe
2220
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2221
- }
2222
- }
2223
2221
  break;
2224
2222
  }
2225
2223
  }
@@ -2244,15 +2242,18 @@
2244
2242
  };
2245
2243
  window.addEventListener("message", handleAuthMessage);
2246
2244
  });
2247
- __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").listenProviderEventMessage();
2245
+ __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening();
2248
2246
  const walletInitPromise = AirMessageService$1.onWalletInitialized();
2249
2247
  AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
2250
2248
  const walletInitResult = await walletInitPromise;
2251
2249
  if (walletInitResult.payload.success !== true) {
2252
2250
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
2253
2251
  }
2254
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, true, "f");
2255
- return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
2252
+ if (!__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f") && walletInitResult.payload.isWalletLoggedIn) {
2253
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload), "f");
2254
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2255
+ }
2256
+ return walletInitResult.payload;
2256
2257
  }
2257
2258
  catch (error) {
2258
2259
  log.error("Error initializing wallet", error);
@@ -2286,8 +2287,14 @@
2286
2287
  isMFASetup: payload.isMFASetup,
2287
2288
  };
2288
2289
  }, _AirService_createWalletInitializedResult = function _AirService_createWalletInitializedResult(payload) {
2290
+ if ("isWalletLoggedIn" in payload && !payload.isWalletLoggedIn) {
2291
+ return {
2292
+ abstractAccountAddress: null,
2293
+ isMFASetup: __classPrivateFieldGet(this, _AirService_loginResult, "f")?.isMFASetup ?? false,
2294
+ };
2295
+ }
2289
2296
  return {
2290
- abstractAccountAddress: payload.addresses?.aa ?? null,
2297
+ abstractAccountAddress: payload.addresses.aa,
2291
2298
  isMFASetup: payload.isMFASetup,
2292
2299
  };
2293
2300
  }, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
@@ -2312,18 +2319,14 @@
2312
2319
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
2313
2320
  __classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
2314
2321
  }
2315
- // Close the message service
2316
- AirMessageService$1.closeAirObservables();
2317
- __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2318
- __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2319
- __classPrivateFieldSet(this, _AirService_isWalletInitialized, false, "f");
2320
- }, _AirService_cleanUpAuthWalletCommunication = function _AirService_cleanUpAuthWalletCommunication() {
2321
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2322
- return;
2323
2322
  const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2324
2323
  if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
2325
2324
  AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
2326
2325
  }
2326
+ // Close the message service
2327
+ AirMessageService$1.closeAirObservables();
2328
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2329
+ __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2327
2330
  };
2328
2331
 
2329
2332
  exports.AirService = AirService;
@@ -1,6 +1,6 @@
1
1
  import { Hex } from "./common/realm/smart-session/hex";
2
2
  import { ActionPolicyInfo, Call } from "./common/realm/smart-session/types";
3
- import { AirEventListener, AirLoginResult, AirUserDetails, AirWalletInitializedResult, BUILD_ENV_TYPE, ClaimAirIdOptions, ClaimAirIdResult, EIP1193Provider } from "./interfaces";
3
+ import { AirEventListener, AirLoginResult, AirUserDetails, BUILD_ENV_TYPE, ClaimAirIdOptions, ClaimAirIdResult, EIP1193Provider } from "./interfaces";
4
4
  declare class AirService {
5
5
  #private;
6
6
  constructor({ partnerId }: {
@@ -51,7 +51,8 @@ declare class AirService {
51
51
  */
52
52
  isSmartAccountDeployed(): Promise<boolean>;
53
53
  getProvider(): EIP1193Provider;
54
- preloadWallet(): Promise<AirWalletInitializedResult>;
54
+ preloadWallet(): Promise<void>;
55
+ setupOrUpdateMfa(): Promise<void>;
55
56
  claimAirId(options?: ClaimAirIdOptions): Promise<ClaimAirIdResult>;
56
57
  getUserInfo(): Promise<AirUserDetails>;
57
58
  goToPartner(partnerUrl: string): Promise<{
@@ -62,6 +63,5 @@ declare class AirService {
62
63
  on(listener: AirEventListener): void;
63
64
  off(listener: AirEventListener): void;
64
65
  clearEventListeners(): void;
65
- private _showWalletWidget;
66
66
  }
67
67
  export default AirService;
@@ -16,6 +16,6 @@ declare class AirWalletProvider implements EIP1193Provider {
16
16
  on<T extends keyof EIP1193EventMap>(eventName: T, listener: EIP1193EventMap[T]): void;
17
17
  removeListener<T extends keyof EIP1193EventMap>(eventName: T, listener: EIP1193EventMap[T]): void;
18
18
  removeAllListeners(): void;
19
- listenProviderEventMessage: () => void;
19
+ startEventMessageListening: () => void;
20
20
  }
21
21
  export default AirWalletProvider;
@@ -8,6 +8,10 @@ export declare const AirMessageTypes: {
8
8
  readonly INITIALIZATION_RESPONSE: "air_initialization_response";
9
9
  readonly INIT_AUTH_COMMUNICATION: "air_init_auth_communication";
10
10
  readonly WALLET_INITIALIZED: "air_wallet_initialized";
11
+ readonly WALLET_LOGIN_REQUEST: "air_wallet_login_request";
12
+ readonly WALLET_LOGIN_RESPONSE: "air_wallet_login_response";
13
+ readonly SETUP_MFA_REQUEST: "air_setup_mfa_request";
14
+ readonly SETUP_MFA_RESPONSE: "air_setup_mfa_response";
11
15
  readonly CLAIM_ID_REQUEST: "air_claim_id_request";
12
16
  readonly CLAIM_ID_RESPONSE: "air_claim_id_response";
13
17
  readonly DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request";
@@ -23,7 +27,6 @@ export declare const AirMessageTypes: {
23
27
  readonly IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response";
24
28
  readonly LOGOUT_REQUEST: "air_logout_request";
25
29
  readonly LOGOUT_RESPONSE: "air_logout_response";
26
- readonly SETUP_MFA_REQUEST: "air_setup_mfa_request";
27
30
  };
28
31
  export type AirMessageType = (typeof AirMessageTypes)[keyof typeof AirMessageTypes];
29
32
  type AirMessageBase<TType extends AirMessageType, TPayload> = {
@@ -33,33 +36,45 @@ type AirMessageBase<TType extends AirMessageType, TPayload> = {
33
36
  type AirMessageBaseWithoutPayload<TType extends AirMessageType> = {
34
37
  type: TType;
35
38
  };
39
+ type AirSuccessPayload = {
40
+ success: true;
41
+ };
36
42
  type AirErrorPayload = {
37
43
  success: false;
38
44
  errorName: AirErrorName;
39
45
  errorMessage?: string;
40
46
  };
41
- type AirInitializationResponsePayload = {
42
- success: true;
43
- } | AirErrorPayload;
47
+ type AirInitializationResponsePayload = AirSuccessPayload | AirErrorPayload;
44
48
  export type AirInitializationRequestMessage = AirMessageBase<"air_initialization_request", {
45
49
  partnerId: string;
46
50
  enableLogging: boolean;
47
51
  }>;
48
52
  export type AirInitializationResponseMessage = AirMessageBase<"air_initialization_response", AirInitializationResponsePayload>;
49
- export type AirWalletInitializationSuccess = MFASetup & {
50
- success: true;
53
+ export type AirWalletInitializationSuccess = AirSuccessPayload & ({
54
+ isWalletLoggedIn: false;
55
+ } | ({
56
+ isWalletLoggedIn: true;
51
57
  addresses: {
52
58
  aa: string;
53
- } | null;
54
- };
59
+ };
60
+ } & MFASetup));
55
61
  type AirWalletInitializedPayload = AirWalletInitializationSuccess | AirErrorPayload;
56
62
  export type AirWalletInitializedMessage = AirMessageBase<"air_wallet_initialized", AirWalletInitializedPayload>;
63
+ export type AirWalletLoginRequestMessage = AirMessageBaseWithoutPayload<"air_wallet_login_request">;
64
+ export type AirWalletLoginSuccess = AirSuccessPayload & MFASetup & {
65
+ addresses: {
66
+ aa: string;
67
+ };
68
+ };
69
+ type AirWalletLoginResponsePayload = AirWalletLoginSuccess | AirErrorPayload;
70
+ export type AirWalletLoginResponseMessage = AirMessageBase<"air_wallet_login_response", AirWalletLoginResponsePayload>;
71
+ export type AirSetupMfaRequestMessage = AirMessageBaseWithoutPayload<"air_setup_mfa_request">;
72
+ export type AirSetupMfaResponseMessage = AirMessageBase<"air_setup_mfa_response", AirSuccessPayload | AirErrorPayload>;
57
73
  export type AirClaimIdRequestMessage = AirMessageBase<"air_claim_id_request", {
58
74
  token?: string;
59
75
  claimInBackground?: boolean;
60
76
  }>;
61
- export type AirClaimIdSuccess = {
62
- success: true;
77
+ export type AirClaimIdSuccess = AirSuccessPayload & {
63
78
  airId: AirIdDetails;
64
79
  };
65
80
  export type AirClaimIdResponsePayload = AirClaimIdSuccess | AirErrorPayload;
@@ -67,35 +82,24 @@ export type AirClaimIdResponseMessage = AirMessageBase<"air_claim_id_response",
67
82
  export type AirInitAuthCommunicationMessage = AirMessageBase<"air_init_auth_communication", {
68
83
  skipWalletLogin: boolean;
69
84
  }>;
70
- export type AirIsSmartAccountDeployedResponseMessage = AirMessageBase<"air_is_smart_account_deployed_response", {
71
- success: true;
85
+ export type AirIsSmartAccountDeployedResponseMessage = AirMessageBase<"air_is_smart_account_deployed_response", (AirSuccessPayload & {
72
86
  isDeployed: boolean;
73
- } | AirErrorPayload>;
87
+ }) | AirErrorPayload>;
74
88
  export type AirDeploySmartAccountRequestMessage = AirMessageBaseWithoutPayload<"air_deploy_smart_account_request">;
75
- export type AirDeploySmartAccountResponseMessage = AirMessageBase<"air_deploy_smart_account_response", {
76
- success: true;
89
+ export type AirDeploySmartAccountResponseMessage = AirMessageBase<"air_deploy_smart_account_response", (AirSuccessPayload & {
77
90
  txHash: string;
78
- } | {
79
- success: false;
80
- errorName: AirErrorName;
81
- errorMessage?: string;
82
- }>;
91
+ }) | AirErrorPayload>;
83
92
  export type AirIsSmartAccountDeployedRequestMessage = AirMessageBaseWithoutPayload<"air_is_smart_account_deployed_request">;
84
93
  export type AirGrantPermissionsRequestMessage = AirMessageBase<"air_grant_permissions_request", {
85
94
  policies: ActionPolicyInfo[];
86
95
  }>;
87
- export type AirGrantPermissionsResponseMessage = AirMessageBase<"air_grant_permissions_response", {
88
- success: true;
96
+ export type AirGrantPermissionsResponseMessage = AirMessageBase<"air_grant_permissions_response", (AirSuccessPayload & {
89
97
  sessionData: {
90
98
  compressedSessionData: string;
91
99
  sessionOwnerPrivateKey: string;
92
100
  permissionIds: string[];
93
101
  };
94
- } | {
95
- success: false;
96
- errorName: AirErrorName;
97
- errorMessage?: string;
98
- }>;
102
+ }) | AirErrorPayload>;
99
103
  export type AirExecuteActionRequestMessage = AirMessageBase<"air_execute_action_request", {
100
104
  sessionData: string;
101
105
  call: Call;
@@ -104,33 +108,16 @@ export type AirExecuteActionRequestMessage = AirMessageBase<"air_execute_action_
104
108
  export type AirRevokePermissionsRequestMessage = AirMessageBase<"air_revoke_permissions_request", {
105
109
  permissionId: Hex;
106
110
  }>;
107
- export type AirRevokePermissionsResponseMessage = AirMessageBase<"air_revoke_permissions_response", {
108
- success: true;
111
+ export type AirRevokePermissionsResponseMessage = AirMessageBase<"air_revoke_permissions_response", (AirSuccessPayload & {
109
112
  txHash: string;
110
- } | {
111
- success: false;
112
- errorName: AirErrorName;
113
- errorMessage?: string;
114
- }>;
115
- export type AirExecuteActionResponseMessage = AirMessageBase<"air_execute_action_response", {
116
- success: true;
113
+ }) | AirErrorPayload>;
114
+ export type AirExecuteActionResponseMessage = AirMessageBase<"air_execute_action_response", (AirSuccessPayload & {
117
115
  txHash: string;
118
- } | {
119
- success: false;
120
- errorName: AirErrorName;
121
- errorMessage?: string;
122
- }>;
116
+ }) | AirErrorPayload>;
123
117
  export type AirWalletIframeVisibilityRequestMessage = AirMessageBase<"air_wallet_iframe_visibility_request", {
124
118
  visible: boolean;
125
119
  }>;
126
120
  export type AirLogoutRequestMessage = AirMessageBaseWithoutPayload<"air_logout_request">;
127
- export type AirLogoutResponseMessage = AirMessageBase<"air_logout_response", {
128
- success: true;
129
- } | {
130
- success: false;
131
- errorName: AirErrorName;
132
- errorMessage?: string;
133
- }>;
134
- export type AirSetupMfaRequestMessage = AirMessageBaseWithoutPayload<"air_setup_mfa_request">;
135
- export type AirMessage = AirInitializationRequestMessage | AirInitializationResponseMessage | AirWalletInitializedMessage | AirClaimIdRequestMessage | AirClaimIdResponseMessage | AirInitAuthCommunicationMessage | AirIsSmartAccountDeployedRequestMessage | AirIsSmartAccountDeployedResponseMessage | AirDeploySmartAccountRequestMessage | AirDeploySmartAccountResponseMessage | AirGrantPermissionsRequestMessage | AirGrantPermissionsResponseMessage | AirRevokePermissionsRequestMessage | AirRevokePermissionsResponseMessage | AirExecuteActionRequestMessage | AirExecuteActionResponseMessage | AirWalletIframeVisibilityRequestMessage | AirSetupMfaRequestMessage | AirLogoutRequestMessage | AirLogoutResponseMessage;
121
+ export type AirLogoutResponseMessage = AirMessageBase<"air_logout_response", AirSuccessPayload | AirErrorPayload>;
122
+ export type AirMessage = AirInitializationRequestMessage | AirInitializationResponseMessage | AirWalletInitializedMessage | AirWalletLoginRequestMessage | AirWalletLoginResponseMessage | AirSetupMfaRequestMessage | AirSetupMfaResponseMessage | AirClaimIdRequestMessage | AirClaimIdResponseMessage | AirInitAuthCommunicationMessage | AirIsSmartAccountDeployedRequestMessage | AirIsSmartAccountDeployedResponseMessage | AirDeploySmartAccountRequestMessage | AirDeploySmartAccountResponseMessage | AirGrantPermissionsRequestMessage | AirGrantPermissionsResponseMessage | AirRevokePermissionsRequestMessage | AirRevokePermissionsResponseMessage | AirExecuteActionRequestMessage | AirExecuteActionResponseMessage | AirWalletIframeVisibilityRequestMessage | AirLogoutRequestMessage | AirLogoutResponseMessage;
136
123
  export {};
@@ -47,6 +47,8 @@ declare class AirMessageService {
47
47
  sendCrossPartnerTokenRequest(authIframe: HTMLIFrameElement, targetPartnerUrl: string): Promise<import("./common/realm/messaging/auth").AirAuthCrossPartnerTokenResponseMessage>;
48
48
  sendGrantPermissionsRequest(walletIframe: HTMLIFrameElement, payload: AirGrantPermissionsRequestMessage["payload"]): Promise<import("./common/realm/messaging/types").AirGrantPermissionsResponseMessage>;
49
49
  onWalletInitialized(): Promise<import("./common/realm/messaging/types").AirWalletInitializedMessage>;
50
+ sendWalletLoginRequest(walletIframe: HTMLIFrameElement): Promise<import("./common/realm/messaging/types").AirWalletLoginResponseMessage>;
51
+ sendSetupMfaRequest(walletIframe: HTMLIFrameElement): Promise<import("./common/realm/messaging/types").AirSetupMfaResponseMessage>;
50
52
  sendClaimIdRequest(walletIframe: HTMLIFrameElement, payload: AirClaimIdRequestMessage["payload"]): Promise<import("./common/realm/messaging/types").AirClaimIdResponseMessage>;
51
53
  sendWalletProviderRequest(walletIframe: HTMLIFrameElement, payload: AirWalletProviderMessageRequest["payload"]): Promise<AirWalletProviderMessageResponse>;
52
54
  closeAuthObservables(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mocanetwork/airkit",
3
- "version": "1.1.0-beta.0",
3
+ "version": "1.1.0",
4
4
  "description": "Air kit to interact with the Moca Network",
5
5
  "main": "dist/airkit.cjs.js",
6
6
  "module": "dist/airkit.esm.js",