@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.
- package/dist/airkit.cjs.js +62 -59
- package/dist/airkit.esm.js +62 -59
- package/dist/airkit.umd.js +62 -59
- package/dist/types/airService.d.ts +3 -3
- package/dist/types/airWalletProvider.d.ts +1 -1
- package/dist/types/common/realm/messaging/types.d.ts +37 -50
- package/dist/types/messageService.d.ts +2 -0
- package/package.json +1 -1
package/dist/airkit.cjs.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
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(),
|
|
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
|
-
|
|
2170
|
-
|
|
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,
|
|
2188
|
-
throw new
|
|
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.
|
|
2205
|
-
if (msg.payload.success === true &&
|
|
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").
|
|
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
|
-
|
|
2251
|
-
|
|
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
|
|
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;
|
package/dist/airkit.esm.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
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(),
|
|
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
|
-
|
|
2168
|
-
|
|
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,
|
|
2186
|
-
throw new
|
|
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.
|
|
2203
|
-
if (msg.payload.success === true &&
|
|
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").
|
|
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
|
-
|
|
2249
|
-
|
|
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
|
|
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 };
|
package/dist/airkit.umd.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
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(),
|
|
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
|
-
|
|
2174
|
-
|
|
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,
|
|
2192
|
-
throw new
|
|
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.
|
|
2209
|
-
if (msg.payload.success === true &&
|
|
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").
|
|
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
|
-
|
|
2255
|
-
|
|
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
|
|
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,
|
|
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<
|
|
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
|
-
|
|
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 =
|
|
50
|
-
|
|
53
|
+
export type AirWalletInitializationSuccess = AirSuccessPayload & ({
|
|
54
|
+
isWalletLoggedIn: false;
|
|
55
|
+
} | ({
|
|
56
|
+
isWalletLoggedIn: true;
|
|
51
57
|
addresses: {
|
|
52
58
|
aa: string;
|
|
53
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
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;
|