wallet-adapter-gameshift 0.1.0 → 0.1.2
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/lib/cjs/adapter.js +38 -5
- package/lib/cjs/adapter.js.map +1 -1
- package/lib/esm/adapter.js +37 -6
- package/lib/esm/adapter.js.map +1 -1
- package/lib/types/adapter.d.ts +2 -0
- package/lib/types/adapter.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapter.ts +42 -7
package/lib/cjs/adapter.js
CHANGED
|
@@ -21,20 +21,24 @@ class GameshiftWalletAdapter extends wallet_adapter_base_1.BaseMessageSignerWall
|
|
|
21
21
|
this.url = 'https://gameshift.build';
|
|
22
22
|
this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiM2QjQ2QzEiLz4KPHBhdGggZD0iTTMwIDU0QzMwIDQwLjc0NTIgNDAuNzQ1MiAzMCA1NCAzMEM2Ny4yNTQ4IDMwIDc4IDQwLjc0NTIgNzggNTRDNzggNjcuMjU0OCA2Ny4yNTQ4IDc4IDU0IDc4QzQwLjc0NTIgNzggMzAgNjcuMjU0OCAzMCA1NFoiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iNiIvPgo8cGF0aCBkPSJNNTQgNDJWNjZNNDIgNTRINjYiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
|
|
23
23
|
this.supportedTransactionVersions = new Set(['legacy', 0]);
|
|
24
|
-
this._readyState =
|
|
25
|
-
? wallet_adapter_base_1.WalletReadyState.Unsupported
|
|
26
|
-
: wallet_adapter_base_1.WalletReadyState.Loadable;
|
|
24
|
+
this._readyState = wallet_adapter_base_1.WalletReadyState.Loadable;
|
|
27
25
|
this._connecting = false;
|
|
28
26
|
this._publicKey = null;
|
|
29
27
|
this._token = null;
|
|
30
28
|
this._email = null;
|
|
31
|
-
|
|
29
|
+
// Normalize portal URL: remove trailing slash and ensure www prefix for consistency
|
|
30
|
+
this._portalUrl = this._normalizePortalUrl(config.portalUrl || 'http://localhost:3000');
|
|
32
31
|
this._metakeepAppId = config.metakeepAppId;
|
|
33
32
|
this._popupWidth = config.popupWidth || 450;
|
|
34
33
|
this._popupHeight = config.popupHeight || 650;
|
|
35
34
|
this._popup = null;
|
|
36
35
|
this._messageHandler = null;
|
|
37
36
|
this._popupCheckInterval = null;
|
|
37
|
+
(0, wallet_adapter_base_1.scopePollingDetectionStrategy)(() => {
|
|
38
|
+
this._readyState = wallet_adapter_base_1.WalletReadyState.Installed;
|
|
39
|
+
this.emit('readyStateChange', this._readyState);
|
|
40
|
+
return true;
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
get publicKey() {
|
|
40
44
|
return this._publicKey;
|
|
@@ -58,6 +62,15 @@ class GameshiftWalletAdapter extends wallet_adapter_base_1.BaseMessageSignerWall
|
|
|
58
62
|
get email() {
|
|
59
63
|
return this._email;
|
|
60
64
|
}
|
|
65
|
+
autoConnect() {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
// Skip autoconnect in the Loadable state
|
|
68
|
+
// We can't redirect to a universal link without user input
|
|
69
|
+
if (this.readyState === wallet_adapter_base_1.WalletReadyState.Installed) {
|
|
70
|
+
yield this.connect();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
61
74
|
connect() {
|
|
62
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
76
|
var _a;
|
|
@@ -81,8 +94,10 @@ class GameshiftWalletAdapter extends wallet_adapter_base_1.BaseMessageSignerWall
|
|
|
81
94
|
this._messageHandler = (event) => {
|
|
82
95
|
var _a;
|
|
83
96
|
// Only accept messages from the portal
|
|
84
|
-
if (event.origin !== this._portalUrl)
|
|
97
|
+
if (event.origin !== this._portalUrl) {
|
|
98
|
+
console.log('Origin mismatch, ignoring message');
|
|
85
99
|
return;
|
|
100
|
+
}
|
|
86
101
|
const message = event.data;
|
|
87
102
|
switch (message.type) {
|
|
88
103
|
case 'gameshift:auth:success':
|
|
@@ -127,6 +142,7 @@ class GameshiftWalletAdapter extends wallet_adapter_base_1.BaseMessageSignerWall
|
|
|
127
142
|
// Wait for 3 consecutive checks (1.5s) to confirm it's really closed
|
|
128
143
|
// This allows OAuth redirects time to complete
|
|
129
144
|
if (closedCheckCount >= 3 && !isResolved) {
|
|
145
|
+
debugger;
|
|
130
146
|
isResolved = true;
|
|
131
147
|
this._cleanup();
|
|
132
148
|
reject(new wallet_adapter_base_1.WalletConnectionError('User closed the authentication popup'));
|
|
@@ -275,6 +291,23 @@ class GameshiftWalletAdapter extends wallet_adapter_base_1.BaseMessageSignerWall
|
|
|
275
291
|
}
|
|
276
292
|
});
|
|
277
293
|
}
|
|
294
|
+
_normalizePortalUrl(url) {
|
|
295
|
+
// Remove trailing slash
|
|
296
|
+
url = url.replace(/\/$/, '');
|
|
297
|
+
// For non-localhost URLs, ensure www prefix if the portal uses it
|
|
298
|
+
try {
|
|
299
|
+
const parsed = new URL(url);
|
|
300
|
+
if (parsed.hostname !== 'localhost' && !parsed.hostname.startsWith('www.')) {
|
|
301
|
+
// Add www prefix for production domains (e.g., gameshift.gg -> www.gameshift.gg)
|
|
302
|
+
parsed.hostname = `www.${parsed.hostname}`;
|
|
303
|
+
return parsed.toString().replace(/\/$/, '');
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
catch (_a) {
|
|
307
|
+
// If URL parsing fails, return as-is
|
|
308
|
+
}
|
|
309
|
+
return url;
|
|
310
|
+
}
|
|
278
311
|
_cleanup() {
|
|
279
312
|
if (this._messageHandler) {
|
|
280
313
|
window.removeEventListener('message', this._messageHandler);
|
package/lib/cjs/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/adapter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseMessageSignerWalletAdapter, WalletConnectionError, WalletNotConnectedError, WalletPublicKeyError, WalletReadyState, } from '@solana/wallet-adapter-base';
|
|
1
|
+
import { BaseMessageSignerWalletAdapter, scopePollingDetectionStrategy, WalletConnectionError, WalletNotConnectedError, WalletPublicKeyError, WalletReadyState, } from '@solana/wallet-adapter-base';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { MetaKeep } from 'metakeep';
|
|
4
4
|
export const GameshiftWalletName = 'Gameshift';
|
|
@@ -9,20 +9,24 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
9
9
|
this.url = 'https://gameshift.build';
|
|
10
10
|
this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiM2QjQ2QzEiLz4KPHBhdGggZD0iTTMwIDU0QzMwIDQwLjc0NTIgNDAuNzQ1MiAzMCA1NCAzMEM2Ny4yNTQ4IDMwIDc4IDQwLjc0NTIgNzggNTRDNzggNjcuMjU0OCA2Ny4yNTQ4IDc4IDU0IDc4QzQwLjc0NTIgNzggMzAgNjcuMjU0OCAzMCA1NFoiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iNiIvPgo8cGF0aCBkPSJNNTQgNDJWNjZNNDIgNTRINjYiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';
|
|
11
11
|
this.supportedTransactionVersions = new Set(['legacy', 0]);
|
|
12
|
-
this._readyState =
|
|
13
|
-
? WalletReadyState.Unsupported
|
|
14
|
-
: WalletReadyState.Loadable;
|
|
12
|
+
this._readyState = WalletReadyState.Loadable;
|
|
15
13
|
this._connecting = false;
|
|
16
14
|
this._publicKey = null;
|
|
17
15
|
this._token = null;
|
|
18
16
|
this._email = null;
|
|
19
|
-
|
|
17
|
+
// Normalize portal URL: remove trailing slash and ensure www prefix for consistency
|
|
18
|
+
this._portalUrl = this._normalizePortalUrl(config.portalUrl || 'http://localhost:3000');
|
|
20
19
|
this._metakeepAppId = config.metakeepAppId;
|
|
21
20
|
this._popupWidth = config.popupWidth || 450;
|
|
22
21
|
this._popupHeight = config.popupHeight || 650;
|
|
23
22
|
this._popup = null;
|
|
24
23
|
this._messageHandler = null;
|
|
25
24
|
this._popupCheckInterval = null;
|
|
25
|
+
scopePollingDetectionStrategy(() => {
|
|
26
|
+
this._readyState = WalletReadyState.Installed;
|
|
27
|
+
this.emit('readyStateChange', this._readyState);
|
|
28
|
+
return true;
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
31
|
get publicKey() {
|
|
28
32
|
return this._publicKey;
|
|
@@ -46,6 +50,13 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
46
50
|
get email() {
|
|
47
51
|
return this._email;
|
|
48
52
|
}
|
|
53
|
+
async autoConnect() {
|
|
54
|
+
// Skip autoconnect in the Loadable state
|
|
55
|
+
// We can't redirect to a universal link without user input
|
|
56
|
+
if (this.readyState === WalletReadyState.Installed) {
|
|
57
|
+
await this.connect();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
49
60
|
async connect() {
|
|
50
61
|
try {
|
|
51
62
|
if (this.connected || this.connecting)
|
|
@@ -66,8 +77,10 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
66
77
|
// Message handler for postMessage from popup
|
|
67
78
|
this._messageHandler = (event) => {
|
|
68
79
|
// Only accept messages from the portal
|
|
69
|
-
if (event.origin !== this._portalUrl)
|
|
80
|
+
if (event.origin !== this._portalUrl) {
|
|
81
|
+
console.log('Origin mismatch, ignoring message');
|
|
70
82
|
return;
|
|
83
|
+
}
|
|
71
84
|
const message = event.data;
|
|
72
85
|
switch (message.type) {
|
|
73
86
|
case 'gameshift:auth:success':
|
|
@@ -111,6 +124,7 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
111
124
|
// Wait for 3 consecutive checks (1.5s) to confirm it's really closed
|
|
112
125
|
// This allows OAuth redirects time to complete
|
|
113
126
|
if (closedCheckCount >= 3 && !isResolved) {
|
|
127
|
+
debugger;
|
|
114
128
|
isResolved = true;
|
|
115
129
|
this._cleanup();
|
|
116
130
|
reject(new WalletConnectionError('User closed the authentication popup'));
|
|
@@ -248,6 +262,23 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
248
262
|
throw error;
|
|
249
263
|
}
|
|
250
264
|
}
|
|
265
|
+
_normalizePortalUrl(url) {
|
|
266
|
+
// Remove trailing slash
|
|
267
|
+
url = url.replace(/\/$/, '');
|
|
268
|
+
// For non-localhost URLs, ensure www prefix if the portal uses it
|
|
269
|
+
try {
|
|
270
|
+
const parsed = new URL(url);
|
|
271
|
+
if (parsed.hostname !== 'localhost' && !parsed.hostname.startsWith('www.')) {
|
|
272
|
+
// Add www prefix for production domains (e.g., gameshift.gg -> www.gameshift.gg)
|
|
273
|
+
parsed.hostname = `www.${parsed.hostname}`;
|
|
274
|
+
return parsed.toString().replace(/\/$/, '');
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// If URL parsing fails, return as-is
|
|
279
|
+
}
|
|
280
|
+
return url;
|
|
281
|
+
}
|
|
251
282
|
_cleanup() {
|
|
252
283
|
if (this._messageHandler) {
|
|
253
284
|
window.removeEventListener('message', this._messageHandler);
|
package/lib/esm/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACH,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,GACnB,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAapC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAsC,CAAC;AA4B1E,MAAM,OAAO,sBAAuB,SAAQ,8BAA8B;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/types/adapter.d.ts
CHANGED
|
@@ -43,12 +43,14 @@ export declare class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapt
|
|
|
43
43
|
* Get the user's email address after connection.
|
|
44
44
|
*/
|
|
45
45
|
get email(): string | null;
|
|
46
|
+
autoConnect(): Promise<void>;
|
|
46
47
|
connect(): Promise<void>;
|
|
47
48
|
disconnect(): Promise<void>;
|
|
48
49
|
sendTransaction<T extends Transaction | VersionedTransaction>(transaction: T, connection: Connection, options?: SendTransactionOptions): Promise<TransactionSignature>;
|
|
49
50
|
signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
|
|
50
51
|
signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]>;
|
|
51
52
|
signMessage(message: Uint8Array): Promise<Uint8Array>;
|
|
53
|
+
private _normalizePortalUrl;
|
|
52
54
|
private _cleanup;
|
|
53
55
|
}
|
|
54
56
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EACH,8BAA8B,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EACH,8BAA8B,EAK9B,gBAAgB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACR,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,WAAW,4BAA4B;IACzC,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAkB,UAAU,CAAC,WAAW,CAAC,CAAC;AA4B1E,qBAAa,sBAAuB,SAAQ,8BAA8B;IACtE,IAAI,0BAAuB;IAC3B,GAAG,SAA6B;IAChC,IAAI,SACqkB;IACzkB,4BAA4B,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAA0B;IAEvF,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,WAAW,CAA+C;gBAEtD,MAAM,EAAE,4BAA4B;IAsBhD,IAAI,SAAS,qBAEZ;IAED,IAAI,UAAU,YAEb;IAED,IAAI,UAAU,qBAEb;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAEK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAC9D,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,oBAAoB,CAAC;IAW1B,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBzF,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAmClG,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB3D,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,QAAQ;CAsBnB"}
|
package/package.json
CHANGED
package/src/adapter.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SendTransactionOptions, WalletName } from '@solana/wallet-adapter-base';
|
|
2
2
|
import {
|
|
3
3
|
BaseMessageSignerWalletAdapter,
|
|
4
|
+
scopePollingDetectionStrategy,
|
|
4
5
|
WalletConnectionError,
|
|
5
6
|
WalletNotConnectedError,
|
|
6
7
|
WalletPublicKeyError,
|
|
@@ -73,10 +74,7 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
73
74
|
private _popup: Window | null;
|
|
74
75
|
private _messageHandler: ((event: MessageEvent) => void) | null;
|
|
75
76
|
private _popupCheckInterval: ReturnType<typeof setInterval> | null;
|
|
76
|
-
private _readyState: WalletReadyState =
|
|
77
|
-
typeof window === 'undefined' || typeof document === 'undefined'
|
|
78
|
-
? WalletReadyState.Unsupported
|
|
79
|
-
: WalletReadyState.Loadable;
|
|
77
|
+
private _readyState: WalletReadyState = WalletReadyState.Loadable;
|
|
80
78
|
|
|
81
79
|
constructor(config: GameshiftWalletAdapterConfig) {
|
|
82
80
|
super();
|
|
@@ -84,13 +82,20 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
84
82
|
this._publicKey = null;
|
|
85
83
|
this._token = null;
|
|
86
84
|
this._email = null;
|
|
87
|
-
|
|
85
|
+
// Normalize portal URL: remove trailing slash and ensure www prefix for consistency
|
|
86
|
+
this._portalUrl = this._normalizePortalUrl(config.portalUrl || 'http://localhost:3000');
|
|
88
87
|
this._metakeepAppId = config.metakeepAppId;
|
|
89
88
|
this._popupWidth = config.popupWidth || 450;
|
|
90
89
|
this._popupHeight = config.popupHeight || 650;
|
|
91
90
|
this._popup = null;
|
|
92
91
|
this._messageHandler = null;
|
|
93
92
|
this._popupCheckInterval = null;
|
|
93
|
+
|
|
94
|
+
scopePollingDetectionStrategy(() => {
|
|
95
|
+
this._readyState = WalletReadyState.Installed;
|
|
96
|
+
this.emit('readyStateChange', this._readyState);
|
|
97
|
+
return true;
|
|
98
|
+
});
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
get publicKey() {
|
|
@@ -120,6 +125,14 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
120
125
|
return this._email;
|
|
121
126
|
}
|
|
122
127
|
|
|
128
|
+
async autoConnect(): Promise<void> {
|
|
129
|
+
// Skip autoconnect in the Loadable state
|
|
130
|
+
// We can't redirect to a universal link without user input
|
|
131
|
+
if (this.readyState === WalletReadyState.Installed) {
|
|
132
|
+
await this.connect();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
123
136
|
async connect(): Promise<void> {
|
|
124
137
|
try {
|
|
125
138
|
if (this.connected || this.connecting) return;
|
|
@@ -145,10 +158,12 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
145
158
|
// Message handler for postMessage from popup
|
|
146
159
|
this._messageHandler = (event: MessageEvent) => {
|
|
147
160
|
// Only accept messages from the portal
|
|
148
|
-
if (event.origin !== this._portalUrl)
|
|
161
|
+
if (event.origin !== this._portalUrl) {
|
|
162
|
+
console.log('Origin mismatch, ignoring message');
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
149
165
|
|
|
150
166
|
const message = event.data as GameshiftAuthMessage;
|
|
151
|
-
|
|
152
167
|
switch (message.type) {
|
|
153
168
|
case 'gameshift:auth:success':
|
|
154
169
|
if (message.data && !isResolved) {
|
|
@@ -201,6 +216,7 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
201
216
|
// Wait for 3 consecutive checks (1.5s) to confirm it's really closed
|
|
202
217
|
// This allows OAuth redirects time to complete
|
|
203
218
|
if (closedCheckCount >= 3 && !isResolved) {
|
|
219
|
+
debugger;
|
|
204
220
|
isResolved = true;
|
|
205
221
|
this._cleanup();
|
|
206
222
|
reject(new WalletConnectionError('User closed the authentication popup'));
|
|
@@ -359,6 +375,25 @@ export class GameshiftWalletAdapter extends BaseMessageSignerWalletAdapter {
|
|
|
359
375
|
}
|
|
360
376
|
}
|
|
361
377
|
|
|
378
|
+
private _normalizePortalUrl(url: string): string {
|
|
379
|
+
// Remove trailing slash
|
|
380
|
+
url = url.replace(/\/$/, '');
|
|
381
|
+
|
|
382
|
+
// For non-localhost URLs, ensure www prefix if the portal uses it
|
|
383
|
+
try {
|
|
384
|
+
const parsed = new URL(url);
|
|
385
|
+
if (parsed.hostname !== 'localhost' && !parsed.hostname.startsWith('www.')) {
|
|
386
|
+
// Add www prefix for production domains (e.g., gameshift.gg -> www.gameshift.gg)
|
|
387
|
+
parsed.hostname = `www.${parsed.hostname}`;
|
|
388
|
+
return parsed.toString().replace(/\/$/, '');
|
|
389
|
+
}
|
|
390
|
+
} catch {
|
|
391
|
+
// If URL parsing fails, return as-is
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
return url;
|
|
395
|
+
}
|
|
396
|
+
|
|
362
397
|
private _cleanup(): void {
|
|
363
398
|
if (this._messageHandler) {
|
|
364
399
|
window.removeEventListener('message', this._messageHandler);
|