@mocanetwork/airkit 1.2.0-beta.2 → 1.2.0-beta.3
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 +1788 -1418
- package/dist/airkit.esm.js +1788 -1419
- package/dist/airkit.umd.js +1788 -1418
- package/dist/types/airWalletProvider.d.ts +2 -4
- package/dist/types/authMessageService.d.ts +17 -0
- package/dist/types/common/air/error/codes.d.ts +7 -0
- package/dist/types/common/{realm → air}/messaging/auth.d.ts +29 -38
- package/dist/types/common/air/messaging/messageServiceBase.d.ts +34 -0
- package/dist/types/common/{realm → air}/messaging/provider.d.ts +1 -1
- package/dist/types/common/air/messaging/types.d.ts +16 -0
- package/dist/types/common/air/messaging/wallet.d.ts +140 -0
- package/dist/types/common/logging.d.ts +2 -0
- package/dist/types/common/types.d.ts +1 -0
- package/dist/types/common/utils.d.ts +6 -0
- package/dist/types/{windowController.d.ts → common/window/windowController.d.ts} +8 -3
- package/dist/types/error.d.ts +3 -1
- package/dist/types/interfaces.d.ts +0 -2
- package/dist/types/providerMessageService.d.ts +8 -0
- package/dist/types/utils.d.ts +2 -2
- package/dist/types/walletMessageService.d.ts +35 -0
- package/dist/types/windowService.d.ts +6 -3
- package/package.json +1 -1
- package/dist/types/common/realm/messaging/types.d.ts +0 -144
- package/dist/types/loglevel.d.ts +0 -3
- package/dist/types/messageService.d.ts +0 -67
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { EIP1193EventMap, EIP1193Provider } from "./common/provider/types";
|
|
2
2
|
import { AirWalletInitializedResult } from "./interfaces";
|
|
3
|
-
import { IframeController } from "./iframeController";
|
|
4
3
|
declare class AirWalletProvider implements EIP1193Provider {
|
|
5
4
|
#private;
|
|
6
5
|
chainId: string;
|
|
7
|
-
constructor({ isLoggedIn, ensureWallet,
|
|
6
|
+
constructor({ isLoggedIn, ensureWallet, }: {
|
|
8
7
|
isLoggedIn: () => boolean;
|
|
9
8
|
ensureWallet: () => Promise<AirWalletInitializedResult>;
|
|
10
|
-
getWalletIframeController: () => IframeController;
|
|
11
9
|
});
|
|
12
10
|
request(request: {
|
|
13
11
|
method: string;
|
|
@@ -16,6 +14,6 @@ declare class AirWalletProvider implements EIP1193Provider {
|
|
|
16
14
|
on<T extends keyof EIP1193EventMap>(eventName: T, listener: EIP1193EventMap[T]): void;
|
|
17
15
|
removeListener<T extends keyof EIP1193EventMap>(eventName: T, listener: EIP1193EventMap[T]): void;
|
|
18
16
|
removeAllListeners(): void;
|
|
19
|
-
startEventMessageListening: () => void
|
|
17
|
+
startEventMessageListening: (walletIframe: HTMLIFrameElement) => Promise<void>;
|
|
20
18
|
}
|
|
21
19
|
export default AirWalletProvider;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AirAuthInitializationRequestMessage, AirAuthLoginRequestMessage, AirAuthMessage } from "./common/air/messaging/auth";
|
|
2
|
+
import { MessageServiceBase } from "@mocanetwork/common/src/air/messaging/messageServiceBase";
|
|
3
|
+
export declare class AuthMessageService extends MessageServiceBase<AirAuthMessage> {
|
|
4
|
+
#private;
|
|
5
|
+
static create(): AuthMessageService;
|
|
6
|
+
open(authIframe: HTMLIFrameElement): Promise<void>;
|
|
7
|
+
initWalletCommunication(port: MessagePort): Promise<void>;
|
|
8
|
+
sendPartnerUserInfoRequest(): Promise<import("./common/air/messaging/auth").AirAuthPartnerUserInfoResponseMessage>;
|
|
9
|
+
sendLoginRequest(payload?: AirAuthLoginRequestMessage["payload"]): Promise<import("./common/air/messaging/auth").AirAuthLoginResponseToEmbedMessage>;
|
|
10
|
+
logout(): Promise<import("./common/air/messaging/auth").AirAuthLogoutResponseMessage>;
|
|
11
|
+
resetWalletCommunication(): Promise<void>;
|
|
12
|
+
sendInitializationRequest(payload: AirAuthInitializationRequestMessage["payload"]): Promise<import("./common/air/messaging/auth").AirAuthInitializationResponseMessage>;
|
|
13
|
+
sendSetupWalletSuccessResponse(): Promise<void>;
|
|
14
|
+
sendSetupWalletErrorResponse(error: Error): Promise<void>;
|
|
15
|
+
sendCrossPartnerTokenRequest(targetPartnerUrl: string): Promise<import("./common/air/messaging/auth").AirAuthCrossPartnerTokenResponseMessage>;
|
|
16
|
+
sendPartnerAccessTokenRequest(): Promise<import("./common/air/messaging/auth").AirAuthPartnerAccessTokenResponseMessage>;
|
|
17
|
+
}
|
|
@@ -84,7 +84,14 @@ export declare enum AirIDErrorName {
|
|
|
84
84
|
AIR_ID_INVALID_MINT_NAME = "AIR_ID_INVALID_MINT_NAME",
|
|
85
85
|
AIR_ID_MINT_TRANSACTION_HASH_MISMATCH = "AIR_ID_MINT_TRANSACTION_HASH_MISMATCH"
|
|
86
86
|
}
|
|
87
|
+
/*** Window Errors ***/
|
|
88
|
+
export declare enum WindowErrorName {
|
|
89
|
+
WINDOW_BLOCKED = "WINDOW_BLOCKED",
|
|
90
|
+
WINDOW_CLOSED = "WINDOW_CLOSED"
|
|
91
|
+
}
|
|
87
92
|
export declare const Codes: {
|
|
93
|
+
WINDOW_BLOCKED: WindowErrorName.WINDOW_BLOCKED;
|
|
94
|
+
WINDOW_CLOSED: WindowErrorName.WINDOW_CLOSED;
|
|
88
95
|
AIR_ID_MINT_TRANSACTION_NOT_FOUND: AirIDErrorName.AIR_ID_MINT_TRANSACTION_NOT_FOUND;
|
|
89
96
|
AIR_ID_ON_CHAIN_TRANSACTION_NOT_FOUND: AirIDErrorName.AIR_ID_ON_CHAIN_TRANSACTION_NOT_FOUND;
|
|
90
97
|
AIR_ID_NOT_FOUND: AirIDErrorName.AIR_ID_NOT_FOUND;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AirIdDetails, GlobalId, MFASetup } from "../../realm/user/types";
|
|
2
|
+
import { AirMessageBase, AirMessageBaseWithoutPayload, AirMessageErrorPayload, AirMessageSuccessPayload } from "./types";
|
|
3
3
|
export declare const AirAuthMessageTypes: {
|
|
4
4
|
readonly AUTH_SETUP_COMPLETED: "air_auth_setup_completed";
|
|
5
5
|
readonly INITIALIZATION_REQUEST: "air_auth_initialization_request";
|
|
@@ -30,34 +30,21 @@ export declare const AirAuthMessageTypes: {
|
|
|
30
30
|
readonly RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication";
|
|
31
31
|
};
|
|
32
32
|
export type AirAuthMessageType = (typeof AirAuthMessageTypes)[keyof typeof AirAuthMessageTypes];
|
|
33
|
-
type AirAuthMessageBase<TType extends AirAuthMessageType, TPayload> =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
type AirAuthMessageBaseWithoutPayload<TType extends AirAuthMessageType> = {
|
|
38
|
-
type: TType;
|
|
39
|
-
};
|
|
40
|
-
export type AirAuthSuccess = {
|
|
41
|
-
success: true;
|
|
42
|
-
};
|
|
43
|
-
export type AirAuthError = {
|
|
44
|
-
success: false;
|
|
45
|
-
errorName: AirErrorName;
|
|
46
|
-
errorMessage?: string;
|
|
47
|
-
};
|
|
48
|
-
export type AirAuthLoginSuccess = AirAuthSuccess & {
|
|
33
|
+
export type AirAuthMessageBase<TType extends AirAuthMessageType, TPayload extends object> = AirMessageBase<TType, TPayload>;
|
|
34
|
+
export type AirAuthMessageBaseWithoutPayload<TType extends AirAuthMessageType> = AirMessageBaseWithoutPayload<TType>;
|
|
35
|
+
export type AirAuthLoginSuccess = AirMessageSuccessPayload & {
|
|
49
36
|
email?: string;
|
|
50
37
|
partnerAccessToken: string;
|
|
51
38
|
} & GlobalId & MFASetup;
|
|
52
|
-
export type
|
|
39
|
+
export type AirMessageSuccessPayloadTokens = AirMessageSuccessPayload & {
|
|
53
40
|
accessToken: string;
|
|
54
41
|
partnerAccessToken: string;
|
|
55
42
|
};
|
|
56
|
-
export type AirAuthUserInfoResponsePayload = (
|
|
43
|
+
export type AirAuthUserInfoResponsePayload = (AirMessageSuccessPayload & GlobalId & {
|
|
57
44
|
email?: string;
|
|
58
45
|
airIds: AirIdDetails[];
|
|
59
|
-
}) |
|
|
60
|
-
export type AirAuthPartnerUserDetailsSuccess =
|
|
46
|
+
}) | AirMessageErrorPayload;
|
|
47
|
+
export type AirAuthPartnerUserDetailsSuccess = AirMessageSuccessPayload & {
|
|
61
48
|
partnerId: string;
|
|
62
49
|
partnerUserId: string;
|
|
63
50
|
airId?: AirIdDetails;
|
|
@@ -65,11 +52,11 @@ export type AirAuthPartnerUserDetailsSuccess = AirAuthSuccess & {
|
|
|
65
52
|
email?: string;
|
|
66
53
|
} & MFASetup;
|
|
67
54
|
};
|
|
68
|
-
export type AirAuthSuccessWithAirIdAndTokens = AirAuthPartnerUserDetailsSuccess &
|
|
69
|
-
type AirAuthLoginResponseToEmbedPayload = AirAuthLoginSuccess |
|
|
70
|
-
type AirAuthLoginResponseToWalletPayload = AirAuthSuccessWithAirIdAndTokens |
|
|
71
|
-
type AirAuthRefreshTokenResponsePayload =
|
|
72
|
-
type AirAuthPartnerUserInfoResponsePayload = AirAuthPartnerUserDetailsSuccess |
|
|
55
|
+
export type AirAuthSuccessWithAirIdAndTokens = AirAuthPartnerUserDetailsSuccess & AirMessageSuccessPayloadTokens;
|
|
56
|
+
type AirAuthLoginResponseToEmbedPayload = AirAuthLoginSuccess | AirMessageErrorPayload;
|
|
57
|
+
type AirAuthLoginResponseToWalletPayload = AirAuthSuccessWithAirIdAndTokens | AirMessageErrorPayload;
|
|
58
|
+
type AirAuthRefreshTokenResponsePayload = AirMessageSuccessPayloadTokens | AirMessageErrorPayload;
|
|
59
|
+
type AirAuthPartnerUserInfoResponsePayload = AirAuthPartnerUserDetailsSuccess | AirMessageErrorPayload;
|
|
73
60
|
type AirAuthWalletTokenRequestPayload = {
|
|
74
61
|
nonce: string;
|
|
75
62
|
partnerId: string;
|
|
@@ -77,36 +64,38 @@ type AirAuthWalletTokenRequestPayload = {
|
|
|
77
64
|
type AirAuthWalletTokenResponsePayload = (AirAuthPartnerUserDetailsSuccess & {
|
|
78
65
|
accessToken: string;
|
|
79
66
|
walletToken: string;
|
|
80
|
-
}) |
|
|
67
|
+
}) | AirMessageErrorPayload;
|
|
81
68
|
export type AirAuthInitializationSuccess = (AirAuthLoginSuccess & {
|
|
82
69
|
rehydrated: true;
|
|
83
|
-
}) | (
|
|
70
|
+
}) | (AirMessageSuccessPayload & {
|
|
84
71
|
rehydrated: false;
|
|
85
72
|
});
|
|
86
|
-
type AirAuthInitializationResponsePayload = AirAuthInitializationSuccess |
|
|
73
|
+
type AirAuthInitializationResponsePayload = AirAuthInitializationSuccess | AirMessageErrorPayload;
|
|
87
74
|
type AirAuthLoginRequestPayload = {
|
|
88
75
|
partnerLoginToken?: string;
|
|
89
76
|
};
|
|
90
|
-
type AirAuthSetupWalletResponsePayload =
|
|
77
|
+
type AirAuthSetupWalletResponsePayload = AirMessageSuccessPayload | AirMessageErrorPayload;
|
|
91
78
|
type AirAuthSignSiweMessageRequestPayload = {
|
|
92
79
|
wallet: string;
|
|
93
80
|
};
|
|
94
|
-
export type AirAuthSignSiweMessageSuccessPayload =
|
|
81
|
+
export type AirAuthSignSiweMessageSuccessPayload = AirMessageSuccessPayload & {
|
|
95
82
|
address: string;
|
|
96
83
|
message: string;
|
|
97
84
|
signature: string;
|
|
98
85
|
};
|
|
99
|
-
type AirAuthSignSiweMessageResponsePayload = AirAuthSignSiweMessageSuccessPayload |
|
|
86
|
+
type AirAuthSignSiweMessageResponsePayload = AirAuthSignSiweMessageSuccessPayload | AirMessageErrorPayload;
|
|
100
87
|
type AirAuthCrossPartnerTokenRequestPayload = {
|
|
101
88
|
targetPartnerUrl: string;
|
|
102
89
|
};
|
|
103
|
-
export type AirAuthCrossPartnerTokenSuccessPayload =
|
|
90
|
+
export type AirAuthCrossPartnerTokenSuccessPayload = AirMessageSuccessPayload & {
|
|
104
91
|
urlWithToken: string;
|
|
105
92
|
};
|
|
106
93
|
export type AirAuthInitializationRequestPayload = {
|
|
107
94
|
partnerId: string;
|
|
108
95
|
partnerDAppUrl?: string;
|
|
109
96
|
skipRehydration?: boolean;
|
|
97
|
+
sdkVersion: string;
|
|
98
|
+
enableLogging: boolean;
|
|
110
99
|
};
|
|
111
100
|
export type AirAuthInitializationRequestMessage = AirAuthMessageBase<"air_auth_initialization_request", AirAuthInitializationRequestPayload>;
|
|
112
101
|
export type AirAuthInitializationResponseMessage = AirAuthMessageBase<"air_auth_initialization_response", AirAuthInitializationResponsePayload>;
|
|
@@ -115,7 +104,9 @@ export type AirAuthLoginResponseToEmbedMessage = AirAuthMessageBase<"air_auth_lo
|
|
|
115
104
|
export type AirAuthLoginResponseToWalletServiceMessage = AirAuthMessageBase<"air_auth_login_wallet_response", AirAuthLoginResponseToWalletPayload>;
|
|
116
105
|
export type AirAuthUserInfoRequestMessage = AirAuthMessageBaseWithoutPayload<"air_auth_user_info_request">;
|
|
117
106
|
export type AirAuthUserInfoResponseMessage = AirAuthMessageBase<"air_auth_user_info_response", AirAuthUserInfoResponsePayload>;
|
|
118
|
-
export type AirAuthPartnerUserInfoRequestMessage =
|
|
107
|
+
export type AirAuthPartnerUserInfoRequestMessage = AirAuthMessageBase<"air_auth_partner_user_info_request", {
|
|
108
|
+
allowCache?: boolean;
|
|
109
|
+
}>;
|
|
119
110
|
export type AirAuthPartnerUserInfoResponseMessage = AirAuthMessageBase<"air_auth_partner_user_info_response", AirAuthPartnerUserInfoResponsePayload>;
|
|
120
111
|
export type AirAuthRefreshTokenRequestMessage = AirAuthMessageBaseWithoutPayload<"air_auth_refresh_token_request">;
|
|
121
112
|
export type AirAuthRefreshTokenResponseMessage = AirAuthMessageBase<"air_auth_refresh_token_response", AirAuthRefreshTokenResponsePayload>;
|
|
@@ -128,7 +119,7 @@ export type AirAuthSetupWalletResponseMessage = AirAuthMessageBase<"air_auth_set
|
|
|
128
119
|
export type AirAuthSignSiweMessageRequestMessage = AirAuthMessageBase<"air_auth_sign_siwe_message_request", AirAuthSignSiweMessageRequestPayload>;
|
|
129
120
|
export type AirAuthSignSiweMessageResponseMessage = AirAuthMessageBase<"air_auth_sign_siwe_message_response", AirAuthSignSiweMessageResponsePayload>;
|
|
130
121
|
export type AirAuthCrossPartnerTokenRequestMessage = AirAuthMessageBase<"air_auth_cross_partner_token_request", AirAuthCrossPartnerTokenRequestPayload>;
|
|
131
|
-
export type AirAuthCrossPartnerTokenResponseMessage = AirAuthMessageBase<"air_auth_cross_partner_token_response", AirAuthCrossPartnerTokenSuccessPayload |
|
|
122
|
+
export type AirAuthCrossPartnerTokenResponseMessage = AirAuthMessageBase<"air_auth_cross_partner_token_response", AirAuthCrossPartnerTokenSuccessPayload | AirMessageErrorPayload>;
|
|
132
123
|
export type AirAuthLogoutRequestMessage = AirAuthMessageBaseWithoutPayload<"air_auth_logout_request">;
|
|
133
124
|
export type AirAuthLogoutResponseMessage = AirAuthMessageBaseWithoutPayload<"air_auth_logout_response">;
|
|
134
125
|
export type AirAuthResetWalletCommunicationRequestMessage = AirAuthMessageBaseWithoutPayload<"air_auth_reset_wallet_communication">;
|
|
@@ -136,9 +127,9 @@ export type AirAuthIframeVisibilityRequestMessage = AirAuthMessageBase<"air_auth
|
|
|
136
127
|
visible: boolean;
|
|
137
128
|
}>;
|
|
138
129
|
export type AirAuthPartnerAccessTokenRequestMessage = AirAuthMessageBaseWithoutPayload<"air_auth_partner_access_token_request">;
|
|
139
|
-
export type AirAuthPartnerAccessTokenResponsePayload = (
|
|
130
|
+
export type AirAuthPartnerAccessTokenResponsePayload = (AirMessageSuccessPayload & {
|
|
140
131
|
partnerAccessToken: string;
|
|
141
|
-
}) |
|
|
132
|
+
}) | AirMessageErrorPayload;
|
|
142
133
|
export type AirAuthPartnerAccessTokenResponseMessage = AirAuthMessageBase<"air_auth_partner_access_token_response", AirAuthPartnerAccessTokenResponsePayload>;
|
|
143
134
|
export type AirAuthMessage = AirAuthSetupCompletedMessage | AirAuthInitializationRequestMessage | AirAuthInitializationResponseMessage | AirAuthLoginRequestMessage | AirAuthLoginResponseToEmbedMessage | AirAuthLoginResponseToWalletServiceMessage | AirAuthUserInfoRequestMessage | AirAuthUserInfoResponseMessage | AirAuthPartnerUserInfoRequestMessage | AirAuthPartnerUserInfoResponseMessage | AirAuthRefreshTokenRequestMessage | AirAuthRefreshTokenResponseMessage | AirAuthWalletTokenRequestMessage | AirAuthWalletTokenResponseMessage | AirAuthInitWalletCommunicationMessage | AirAuthSetupWalletRequestMessage | AirAuthSetupWalletResponseMessage | AirAuthSignSiweMessageRequestMessage | AirAuthSignSiweMessageResponseMessage | AirAuthCrossPartnerTokenRequestMessage | AirAuthCrossPartnerTokenResponseMessage | AirAuthLogoutRequestMessage | AirAuthLogoutResponseMessage | AirAuthIframeVisibilityRequestMessage | AirAuthResetWalletCommunicationRequestMessage | AirAuthPartnerAccessTokenRequestMessage | AirAuthPartnerAccessTokenResponseMessage;
|
|
144
135
|
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { AirMessageBase, AirMessageBaseWithoutPayload } from "./types";
|
|
3
|
+
export declare abstract class MessageServiceBase<TMessage extends AirMessageBase | AirMessageBaseWithoutPayload> {
|
|
4
|
+
protected readonly name: string;
|
|
5
|
+
protected allowedMessageTypes: string[];
|
|
6
|
+
private eventSubject;
|
|
7
|
+
private _events$;
|
|
8
|
+
private _messages$;
|
|
9
|
+
private messagePort?;
|
|
10
|
+
private targetWindow?;
|
|
11
|
+
private targetOrigin?;
|
|
12
|
+
private closeListener;
|
|
13
|
+
get events$(): Observable<MessageEvent<TMessage>>;
|
|
14
|
+
get messages$(): Observable<TMessage>;
|
|
15
|
+
get isOpen(): boolean;
|
|
16
|
+
protected constructor(name: string, allowedMessageTypes: string[]);
|
|
17
|
+
protected _open(target: {
|
|
18
|
+
window: Window;
|
|
19
|
+
origin: string;
|
|
20
|
+
} | MessagePort): Promise<void>;
|
|
21
|
+
protected isMessageAllowed(message: TMessage): boolean;
|
|
22
|
+
protected onBeforeEvent(_event: MessageEvent<TMessage>): Promise<void>;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
protected createErrorResponseMessage<T extends TMessage["type"]>(type: T, error: Error): {
|
|
25
|
+
type: T;
|
|
26
|
+
payload: {
|
|
27
|
+
success: false;
|
|
28
|
+
errorName: "USER_CANCELLED" | "CONFIG_ERROR" | "CLIENT_ERROR" | "UNKNOWN_ERROR" | "PERMISSION_NOT_ENABLED" | "SMART_ACCOUNT_NOT_DEPLOYED" | import("../error/codes").AuthErrorName | import("../error/codes").PartnerAccessTokenErrorName | import("../error/codes").RealmIDErrorName | import("../error/codes").ParameterErrorName | import("../error/codes").ServerErrorName | import("../error/codes").PasskeyErrorName | import("../error/codes").PasswordlessErrorName | import("../error/codes").AuthWalletErrorName | import("../error/codes").WalletLinkErrorName | import("../error/codes").IntentErrorName | import("../error/codes").PrivyErrorName | import("../error/codes").AirIDErrorName | import("../error/codes").WindowErrorName;
|
|
29
|
+
errorMessage: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
protected sendMessage(message: TMessage, transfer?: Transferable[]): Promise<void>;
|
|
33
|
+
protected deepClone(message: TMessage): TMessage;
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AirErrorName } from "../error/types";
|
|
2
|
+
export type AirMessageBase<TType extends string = string, TPayload extends object = object> = {
|
|
3
|
+
type: TType;
|
|
4
|
+
payload: TPayload;
|
|
5
|
+
};
|
|
6
|
+
export type AirMessageBaseWithoutPayload<TType extends string = string> = {
|
|
7
|
+
type: TType;
|
|
8
|
+
};
|
|
9
|
+
export type AirMessageSuccessPayload = {
|
|
10
|
+
success: true;
|
|
11
|
+
};
|
|
12
|
+
export type AirMessageErrorPayload = {
|
|
13
|
+
success: false;
|
|
14
|
+
errorName: AirErrorName;
|
|
15
|
+
errorMessage?: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { Hex } from "viem";
|
|
2
|
+
import { ActionPolicyInfo, Call } from "../../realm/smart-session/types";
|
|
3
|
+
import { AirIdDetails, MFASetup } from "../../realm/user/types";
|
|
4
|
+
import { AirMessageBase, AirMessageBaseWithoutPayload, AirMessageErrorPayload, AirMessageSuccessPayload } from "./types";
|
|
5
|
+
export declare const AirWalletMessageTypes: {
|
|
6
|
+
readonly SERVICE_STARTED: "air_service_started";
|
|
7
|
+
readonly INITIALIZATION_REQUEST: "air_initialization_request";
|
|
8
|
+
readonly INITIALIZATION_RESPONSE: "air_initialization_response";
|
|
9
|
+
readonly INIT_AUTH_COMMUNICATION: "air_init_auth_communication";
|
|
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_OR_UPDATE_MFA_REQUEST: "air_setup_mfa_request";
|
|
14
|
+
readonly SETUP_OR_UPDATE_MFA_RESPONSE: "air_setup_mfa_response";
|
|
15
|
+
readonly CLAIM_ID_REQUEST: "air_claim_id_request";
|
|
16
|
+
readonly CLAIM_ID_RESPONSE: "air_claim_id_response";
|
|
17
|
+
readonly DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request";
|
|
18
|
+
readonly DEPLOY_SMART_ACCOUNT_RESPONSE: "air_deploy_smart_account_response";
|
|
19
|
+
readonly GRANT_PERMISSIONS_REQUEST: "air_grant_permissions_request";
|
|
20
|
+
readonly GRANT_PERMISSIONS_RESPONSE: "air_grant_permissions_response";
|
|
21
|
+
readonly EXECUTE_ACTION_REQUEST: "air_execute_action_request";
|
|
22
|
+
readonly EXECUTE_ACTION_RESPONSE: "air_execute_action_response";
|
|
23
|
+
readonly REVOKE_PERMISSIONS_REQUEST: "air_revoke_permissions_request";
|
|
24
|
+
readonly REVOKE_PERMISSIONS_RESPONSE: "air_revoke_permissions_response";
|
|
25
|
+
readonly LIST_ALL_SESSION_KEY_SCOPES_REQUEST: "air_list_all_session_key_scopes_request";
|
|
26
|
+
readonly LIST_ALL_SESSION_KEY_SCOPES_RESPONSE: "air_list_all_session_key_scopes_response";
|
|
27
|
+
readonly WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request";
|
|
28
|
+
readonly OPEN_WINDOW_REQUEST: "air_open_window_request";
|
|
29
|
+
readonly OPEN_WINDOW_RESPONSE: "air_open_window_response";
|
|
30
|
+
readonly OPEN_WINDOW_RETRY_REQUEST: "air_open_window_retry_request";
|
|
31
|
+
readonly OPEN_WINDOW_RETRY_RESPONSE: "air_open_window_retry_response";
|
|
32
|
+
readonly WINDOW_CLOSED: "air_window_closed";
|
|
33
|
+
readonly IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request";
|
|
34
|
+
readonly IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response";
|
|
35
|
+
readonly LOGOUT_REQUEST: "air_logout_request";
|
|
36
|
+
readonly LOGOUT_RESPONSE: "air_logout_response";
|
|
37
|
+
};
|
|
38
|
+
export type AirWalletMessageType = (typeof AirWalletMessageTypes)[keyof typeof AirWalletMessageTypes];
|
|
39
|
+
export type AirWalletMessageBase<TType extends AirWalletMessageType, TPayload extends object> = AirMessageBase<TType, TPayload>;
|
|
40
|
+
export type AirWalletMessageBaseWithoutPayload<TType extends AirWalletMessageType> = AirMessageBaseWithoutPayload<TType>;
|
|
41
|
+
export type AirInitializationResponsePayload = AirMessageSuccessPayload | AirMessageErrorPayload;
|
|
42
|
+
export type AirInitializationRequestMessage = AirWalletMessageBase<"air_initialization_request", {
|
|
43
|
+
partnerId: string;
|
|
44
|
+
enableLogging: boolean;
|
|
45
|
+
sdkVersion: string;
|
|
46
|
+
}>;
|
|
47
|
+
export type AirInitializationResponseMessage = AirWalletMessageBase<"air_initialization_response", AirInitializationResponsePayload>;
|
|
48
|
+
export type AirWalletInitializationSuccess = AirMessageSuccessPayload & ({
|
|
49
|
+
isWalletLoggedIn: false;
|
|
50
|
+
} | ({
|
|
51
|
+
isWalletLoggedIn: true;
|
|
52
|
+
addresses: {
|
|
53
|
+
aa: string;
|
|
54
|
+
};
|
|
55
|
+
} & MFASetup));
|
|
56
|
+
type AirWalletInitializedPayload = AirWalletInitializationSuccess | AirMessageErrorPayload;
|
|
57
|
+
export type AirWalletInitializedMessage = AirWalletMessageBase<"air_wallet_initialized", AirWalletInitializedPayload>;
|
|
58
|
+
export type AirWalletLoginRequestMessage = AirWalletMessageBaseWithoutPayload<"air_wallet_login_request">;
|
|
59
|
+
export type AirWalletLoginSuccess = AirMessageSuccessPayload & MFASetup & {
|
|
60
|
+
addresses: {
|
|
61
|
+
aa: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
type AirWalletLoginResponsePayload = AirWalletLoginSuccess | AirMessageErrorPayload;
|
|
65
|
+
export type AirWalletLoginResponseMessage = AirWalletMessageBase<"air_wallet_login_response", AirWalletLoginResponsePayload>;
|
|
66
|
+
export type AirSetupOrUpdateMfaRequestMessage = AirWalletMessageBaseWithoutPayload<"air_setup_mfa_request">;
|
|
67
|
+
export type AirSetupOrUpdateMfaResponseMessage = AirWalletMessageBase<"air_setup_mfa_response", AirMessageSuccessPayload | AirMessageErrorPayload>;
|
|
68
|
+
export type AirClaimIdRequestMessage = AirWalletMessageBase<"air_claim_id_request", {
|
|
69
|
+
token?: string;
|
|
70
|
+
claimInBackground?: boolean;
|
|
71
|
+
}>;
|
|
72
|
+
export type AirClaimIdSuccess = AirMessageSuccessPayload & {
|
|
73
|
+
airId: AirIdDetails;
|
|
74
|
+
};
|
|
75
|
+
export type AirClaimIdResponsePayload = AirClaimIdSuccess | AirMessageErrorPayload;
|
|
76
|
+
export type AirClaimIdResponseMessage = AirWalletMessageBase<"air_claim_id_response", AirClaimIdResponsePayload>;
|
|
77
|
+
export type AirInitAuthCommunicationMessage = AirWalletMessageBase<"air_init_auth_communication", {
|
|
78
|
+
skipWalletLogin: boolean;
|
|
79
|
+
}>;
|
|
80
|
+
export type AirIsSmartAccountDeployedResponseMessage = AirWalletMessageBase<"air_is_smart_account_deployed_response", (AirMessageSuccessPayload & {
|
|
81
|
+
isDeployed: boolean;
|
|
82
|
+
}) | AirMessageErrorPayload>;
|
|
83
|
+
export type AirDeploySmartAccountRequestMessage = AirWalletMessageBaseWithoutPayload<"air_deploy_smart_account_request">;
|
|
84
|
+
export type AirDeploySmartAccountResponseMessage = AirWalletMessageBase<"air_deploy_smart_account_response", (AirMessageSuccessPayload & {
|
|
85
|
+
txHash: string;
|
|
86
|
+
}) | AirMessageErrorPayload>;
|
|
87
|
+
export type AirIsSmartAccountDeployedRequestMessage = AirWalletMessageBaseWithoutPayload<"air_is_smart_account_deployed_request">;
|
|
88
|
+
export type AirGrantPermissionsRequestMessage = AirWalletMessageBase<"air_grant_permissions_request", {
|
|
89
|
+
policies: ActionPolicyInfo[];
|
|
90
|
+
}>;
|
|
91
|
+
export type AirGrantPermissionsResponseMessage = AirWalletMessageBase<"air_grant_permissions_response", (AirMessageSuccessPayload & {
|
|
92
|
+
sessionData: {
|
|
93
|
+
compressedSessionData: string;
|
|
94
|
+
sessionOwnerPrivateKey: string;
|
|
95
|
+
permissionIds: string[];
|
|
96
|
+
};
|
|
97
|
+
}) | AirMessageErrorPayload>;
|
|
98
|
+
export type AirExecuteActionRequestMessage = AirWalletMessageBase<"air_execute_action_request", {
|
|
99
|
+
sessionData: string;
|
|
100
|
+
call: Call;
|
|
101
|
+
sessionOwnerPrivateKey: `0x${string}`;
|
|
102
|
+
}>;
|
|
103
|
+
export type AirRevokePermissionsRequestMessage = AirWalletMessageBase<"air_revoke_permissions_request", {
|
|
104
|
+
permissionId: Hex;
|
|
105
|
+
}>;
|
|
106
|
+
export type AirRevokePermissionsResponseMessage = AirWalletMessageBase<"air_revoke_permissions_response", (AirMessageSuccessPayload & {
|
|
107
|
+
txHash: string;
|
|
108
|
+
}) | AirMessageErrorPayload>;
|
|
109
|
+
export type AirExecuteActionResponseMessage = AirWalletMessageBase<"air_execute_action_response", (AirMessageSuccessPayload & {
|
|
110
|
+
txHash: string;
|
|
111
|
+
}) | AirMessageErrorPayload>;
|
|
112
|
+
export type AirListAllSessionKeyScopesSuccess = {
|
|
113
|
+
success: true;
|
|
114
|
+
sessionKeyScopes: ActionPolicyInfo[];
|
|
115
|
+
};
|
|
116
|
+
export type AirListAllSessionKeyScopesRequestMessage = AirWalletMessageBaseWithoutPayload<"air_list_all_session_key_scopes_request">;
|
|
117
|
+
export type AirListAllSessionKeyScopesResponseMessage = AirWalletMessageBase<"air_list_all_session_key_scopes_response", AirListAllSessionKeyScopesSuccess | AirMessageErrorPayload>;
|
|
118
|
+
export type AirWalletIframeVisibilityRequestMessage = AirWalletMessageBase<"air_wallet_iframe_visibility_request", {
|
|
119
|
+
visible: boolean;
|
|
120
|
+
}>;
|
|
121
|
+
export type AirLogoutRequestMessage = AirWalletMessageBaseWithoutPayload<"air_logout_request">;
|
|
122
|
+
export type AirLogoutResponseMessage = AirWalletMessageBase<"air_logout_response", AirMessageSuccessPayload | AirMessageErrorPayload>;
|
|
123
|
+
export type AirOpenWindowRequestMessage = AirWalletMessageBase<"air_open_window_request", {
|
|
124
|
+
url: string;
|
|
125
|
+
windowId: string;
|
|
126
|
+
}>;
|
|
127
|
+
export type AirOpenWindowResponseMessage = AirWalletMessageBase<"air_open_window_response", (AirMessageSuccessPayload | AirMessageErrorPayload) & {
|
|
128
|
+
windowId: string;
|
|
129
|
+
}>;
|
|
130
|
+
export type AirOpenWindowRetryRequestMessage = AirWalletMessageBase<"air_open_window_retry_request", {
|
|
131
|
+
windowId: string;
|
|
132
|
+
}>;
|
|
133
|
+
export type AirOpenWindowRetryResponseMessage = AirWalletMessageBase<"air_open_window_retry_response", (AirMessageSuccessPayload | AirMessageErrorPayload) & {
|
|
134
|
+
windowId: string;
|
|
135
|
+
}>;
|
|
136
|
+
export type AirWindowClosedMessage = AirWalletMessageBase<"air_window_closed", {
|
|
137
|
+
windowId: string;
|
|
138
|
+
}>;
|
|
139
|
+
export type AirWalletMessage = AirInitializationRequestMessage | AirInitializationResponseMessage | AirWalletInitializedMessage | AirWalletLoginRequestMessage | AirWalletLoginResponseMessage | AirSetupOrUpdateMfaRequestMessage | AirSetupOrUpdateMfaResponseMessage | AirClaimIdRequestMessage | AirClaimIdResponseMessage | AirInitAuthCommunicationMessage | AirIsSmartAccountDeployedRequestMessage | AirIsSmartAccountDeployedResponseMessage | AirDeploySmartAccountRequestMessage | AirDeploySmartAccountResponseMessage | AirGrantPermissionsRequestMessage | AirGrantPermissionsResponseMessage | AirRevokePermissionsRequestMessage | AirRevokePermissionsResponseMessage | AirExecuteActionRequestMessage | AirExecuteActionResponseMessage | AirListAllSessionKeyScopesRequestMessage | AirListAllSessionKeyScopesResponseMessage | AirWalletIframeVisibilityRequestMessage | AirLogoutRequestMessage | AirLogoutResponseMessage | AirOpenWindowRequestMessage | AirOpenWindowResponseMessage | AirOpenWindowRetryRequestMessage | AirOpenWindowRetryResponseMessage | AirWindowClosedMessage;
|
|
140
|
+
export {};
|
|
@@ -19,3 +19,9 @@ export declare const setPartnerTheme: (theme: string, partnerId: string, configA
|
|
|
19
19
|
*/
|
|
20
20
|
export declare const randomId: () => string;
|
|
21
21
|
export declare const bigIntReplacer: (_key: string, value: unknown) => unknown;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a window features string for `window.open`, based on the current screen size.
|
|
24
|
+
* It tries to center the window and limits the size to the given max width and height.
|
|
25
|
+
* Slightly reduces the size to avoid browser auto-resizing.
|
|
26
|
+
*/
|
|
27
|
+
export declare const getWindowFeatures: (maxWidth: number, maxHeight: number) => string;
|
|
@@ -6,14 +6,19 @@ export declare class WindowController {
|
|
|
6
6
|
private windowOrigin;
|
|
7
7
|
private windowId;
|
|
8
8
|
private _messages$;
|
|
9
|
-
get messages$(): import("rxjs").Observable<MessageEvent<
|
|
10
|
-
constructor(
|
|
9
|
+
get messages$(): import("rxjs").Observable<MessageEvent<unknown>>;
|
|
10
|
+
constructor(windowId: string, windowUrl: string);
|
|
11
11
|
get windowInstance(): Window | null;
|
|
12
|
-
openWindow():
|
|
12
|
+
openWindow(onRetry: () => Promise<void>): Promise<{
|
|
13
|
+
pendingWindowOpenCheck: Promise<"opened" | "retry">;
|
|
14
|
+
}>;
|
|
13
15
|
postMessage(message: unknown, transfer?: Transferable[]): void;
|
|
14
16
|
onMessage(callback: (event: MessageEvent) => void): {
|
|
15
17
|
close: () => void;
|
|
16
18
|
};
|
|
17
19
|
cleanup(): void;
|
|
18
20
|
onClose(callback: () => void): Subscription;
|
|
21
|
+
private isWindowOpen;
|
|
22
|
+
private tryOpenWindow;
|
|
23
|
+
private scheduleWindowClosedChecks;
|
|
19
24
|
}
|
package/dist/types/error.d.ts
CHANGED
|
@@ -4,9 +4,10 @@ type AirServiceErrorName = AirErrorName | "NOT_INITIALISED" | "ALREADY_INITIALIS
|
|
|
4
4
|
export declare class AirServiceError extends BaseError<AirServiceErrorName> {
|
|
5
5
|
static from(error: unknown): AirServiceError;
|
|
6
6
|
}
|
|
7
|
-
declare class ProviderRpcError extends Error {
|
|
7
|
+
export declare class ProviderRpcError extends Error {
|
|
8
8
|
code: number;
|
|
9
9
|
name: string;
|
|
10
|
+
metaMessages: string[];
|
|
10
11
|
constructor(message: string);
|
|
11
12
|
}
|
|
12
13
|
export declare class UserRejectedRequestError extends ProviderRpcError {
|
|
@@ -36,6 +37,7 @@ export declare class SwitchChainError extends ProviderRpcError {
|
|
|
36
37
|
export declare class TransactionRejectedRpcError extends ProviderRpcError {
|
|
37
38
|
code: number;
|
|
38
39
|
name: string;
|
|
40
|
+
constructor(message: string);
|
|
39
41
|
}
|
|
40
42
|
export declare class InvalidRequestRpcError extends ProviderRpcError {
|
|
41
43
|
code: number;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LogLevelDesc } from "loglevel";
|
|
2
1
|
import { AirIdDetails } from "./common/realm/user/types";
|
|
3
2
|
import { EIP1193Provider as EIP1193ProviderInterface } from "./common/provider/types";
|
|
4
3
|
export declare const BUILD_ENV: {
|
|
@@ -11,7 +10,6 @@ export type BUILD_ENV_TYPE = (typeof BUILD_ENV)[keyof typeof BUILD_ENV];
|
|
|
11
10
|
export interface AirUrlConfig {
|
|
12
11
|
authUrl: string;
|
|
13
12
|
walletUrl: string;
|
|
14
|
-
logLevel: LogLevelDesc;
|
|
15
13
|
}
|
|
16
14
|
export type AirInitializationResult = {
|
|
17
15
|
rehydrated: boolean;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MessageServiceBase } from "./common/air/messaging/messageServiceBase";
|
|
2
|
+
import { AirWalletProviderMessage, AirWalletProviderMessageRequest } from "./common/air/messaging/provider";
|
|
3
|
+
export declare class ProviderMessageService extends MessageServiceBase<AirWalletProviderMessage> {
|
|
4
|
+
#private;
|
|
5
|
+
static create(): ProviderMessageService;
|
|
6
|
+
open(walletIframe: HTMLIFrameElement): Promise<void>;
|
|
7
|
+
sendWalletProviderRequest(payload: AirWalletProviderMessageRequest["payload"]): Promise<import("./common/air/messaging/provider").AirWalletProviderMessageSuccessResponse | import("./common/air/messaging/provider").AirWalletProviderMessageErrorResponse>;
|
|
8
|
+
}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import { AirUrlConfig, BUILD_ENV_TYPE } from "./interfaces";
|
|
|
2
2
|
export declare const AIR_URLS: Record<BUILD_ENV_TYPE, AirUrlConfig>;
|
|
3
3
|
export declare const handleEvent: (handle: EventTarget, eventName: string, handler: (...args: unknown[]) => void, ...handlerArgs: unknown[]) => void;
|
|
4
4
|
export declare const htmlToElement: <T extends Element>(html: string) => T;
|
|
5
|
-
export declare const isElement: (element: unknown) => element is
|
|
5
|
+
export declare const isElement: (element: unknown) => element is Element | Document;
|
|
6
6
|
export declare const randomId: () => string;
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const extractErrorHash: (message: string) => string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Hex } from "viem";
|
|
2
|
+
import { AirClaimIdRequestMessage, AirGrantPermissionsRequestMessage, AirInitializationRequestMessage, AirWalletMessage } from "./common/air/messaging/wallet";
|
|
3
|
+
import type { ActionPolicyInfo, Call } from "./common/realm/smart-session/types";
|
|
4
|
+
import { MessageServiceBase } from "./common/air/messaging/messageServiceBase";
|
|
5
|
+
export declare class WalletMessageService extends MessageServiceBase<AirWalletMessage> {
|
|
6
|
+
#private;
|
|
7
|
+
static create(): WalletMessageService;
|
|
8
|
+
open(walletIframe: HTMLIFrameElement): Promise<void>;
|
|
9
|
+
initAuthCommunication(skipWalletLogin: boolean, port: MessagePort): Promise<void>;
|
|
10
|
+
sendGrantPermissionRequest(policies: ActionPolicyInfo[]): Promise<{
|
|
11
|
+
compressedSessionData: string;
|
|
12
|
+
sessionOwnerPrivateKey: string;
|
|
13
|
+
permissionIds: string[];
|
|
14
|
+
}>;
|
|
15
|
+
sendExecuteActionRequest(params: {
|
|
16
|
+
sessionData: string;
|
|
17
|
+
sessionOwnerPrivateKey: `0x${string}`;
|
|
18
|
+
call: Call;
|
|
19
|
+
}): Promise<string>;
|
|
20
|
+
sendRevokePermissionsRequest(permissionId: Hex): Promise<string>;
|
|
21
|
+
sendDeploySmartAccountRequest(): Promise<import("./common/air/messaging/wallet").AirDeploySmartAccountResponseMessage>;
|
|
22
|
+
sendIsSmartAccountDeployedRequest(): Promise<import("./common/air/messaging/wallet").AirIsSmartAccountDeployedResponseMessage>;
|
|
23
|
+
logout(): Promise<import("./common/air/messaging/wallet").AirLogoutResponseMessage>;
|
|
24
|
+
sendInitializationRequest(payload: AirInitializationRequestMessage["payload"]): Promise<import("./common/air/messaging/wallet").AirInitializationResponseMessage>;
|
|
25
|
+
sendGrantPermissionsRequest(payload: AirGrantPermissionsRequestMessage["payload"]): Promise<import("./common/air/messaging/wallet").AirGrantPermissionsResponseMessage>;
|
|
26
|
+
sendListAllSessionKeyScopesRequest(): Promise<import("./common/air/messaging/wallet").AirListAllSessionKeyScopesResponseMessage>;
|
|
27
|
+
onInitialized(): Promise<import("./common/air/messaging/wallet").AirWalletInitializedMessage>;
|
|
28
|
+
sendLoginRequest(): Promise<import("./common/air/messaging/wallet").AirWalletLoginResponseMessage>;
|
|
29
|
+
sendSetupMfaRequest(): Promise<import("./common/air/messaging/wallet").AirSetupOrUpdateMfaResponseMessage>;
|
|
30
|
+
sendOpenWindowSuccessResponse(windowId: string, port: MessagePort): Promise<void>;
|
|
31
|
+
sendOpenWindowErrorResponse(windowId: string, error: Error): Promise<void>;
|
|
32
|
+
sendOpenWindowRetryRequest(windowId: string): Promise<import("./common/air/messaging/wallet").AirOpenWindowRetryResponseMessage>;
|
|
33
|
+
sendWindowClosed(windowId: string): Promise<void>;
|
|
34
|
+
sendClaimIdRequest(payload: AirClaimIdRequestMessage["payload"]): Promise<import("./common/air/messaging/wallet").AirClaimIdResponseMessage>;
|
|
35
|
+
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { WindowController } from "./windowController";
|
|
1
|
+
import { WindowController } from "./common/window/windowController";
|
|
2
2
|
declare class WindowService {
|
|
3
3
|
private static _instance;
|
|
4
4
|
static get instance(): WindowService;
|
|
5
5
|
private windowControllers;
|
|
6
6
|
private sendWindowInitializationRequest;
|
|
7
|
-
openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging,
|
|
7
|
+
openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, onRetry, }: {
|
|
8
8
|
url: string;
|
|
9
9
|
windowId: string;
|
|
10
10
|
partnerId: string;
|
|
11
11
|
enableLogging: boolean;
|
|
12
|
+
onRetry: () => Promise<void>;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
windowController: WindowController;
|
|
12
15
|
port: MessagePort;
|
|
13
|
-
}
|
|
16
|
+
}>;
|
|
14
17
|
getWindowController(windowId: string): WindowController;
|
|
15
18
|
removeWindowController(windowId: string): void;
|
|
16
19
|
}
|