@megaeth-labs/wallet-sdk 0.1.24 → 0.1.25

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/index.cjs CHANGED
@@ -53,18 +53,29 @@ var events = {
53
53
 
54
54
  // src/consts.ts
55
55
  var WALLET_URL = "https://account.megaeth.com";
56
- var LOCAL_WALLET_URL = "http://localhost:4000";
57
- var LOCAL_HTTPS_WALLET_URL = "https://wallet.local:4000";
58
- var STAGING_WALLET_URL = "https://account-git-staging-mega-eth.vercel.app";
59
56
  var SANDBOX_WALLET_URL = "https://account-sandbox.megaeth.com";
60
57
 
61
58
  // src/helpers.ts
59
+ var ALLOWED_DEV_UI_HOSTS = ["localhost", "wallet.local"];
60
+ var ALLOWED_DEV_UI_HOST_SUFFIXES = [".megaeth.com", "-mega-eth.vercel.app"];
61
+ var isAllowedDevUIUrl = (url) => {
62
+ let hostname;
63
+ try {
64
+ ({ hostname } = new URL(url));
65
+ } catch {
66
+ return false;
67
+ }
68
+ return ALLOWED_DEV_UI_HOSTS.includes(hostname) || ALLOWED_DEV_UI_HOST_SUFFIXES.some((suffix) => hostname.endsWith(suffix));
69
+ };
62
70
  var getWalletUrl = (config) => {
63
71
  let origin = WALLET_URL;
64
- if (config.devLocal) {
65
- origin = config.devHTTPS ? LOCAL_HTTPS_WALLET_URL : LOCAL_WALLET_URL;
66
- } else if (config.staging) {
67
- origin = STAGING_WALLET_URL;
72
+ if (config.devUIUrl) {
73
+ if (!isAllowedDevUIUrl(config.devUIUrl)) {
74
+ throw new Error(
75
+ `Invalid devUIUrl "${config.devUIUrl}": host must be localhost, wallet.local, a *.megaeth.com domain, or a *-mega-eth.vercel.app preview.`
76
+ );
77
+ }
78
+ origin = config.devUIUrl;
68
79
  } else if (config.devMode) {
69
80
  origin = SANDBOX_WALLET_URL;
70
81
  }
@@ -322,11 +333,11 @@ var createIFrame = (url) => {
322
333
  };
323
334
  var initialise = async (config) => {
324
335
  if (state_default.initialised) return;
325
- state_default.initialised = true;
326
336
  state_default.network = config?.network || "mainnet";
327
337
  Logger.setLogLevel(config?.logging || "error");
328
338
  Logger.debug("SDK", "Initialising...");
329
339
  const { origin, uiUrl } = getWalletUrl(config);
340
+ state_default.initialised = true;
330
341
  state_default.iframe = createIFrame(uiUrl);
331
342
  const messenger = new Penpal.WindowMessenger({
332
343
  remoteWindow: state_default.iframe.contentWindow,
package/dist/index.d.cts CHANGED
@@ -6,9 +6,7 @@ interface Config {
6
6
  network: Network;
7
7
  logging?: LogLevel;
8
8
  devMode?: boolean;
9
- devHTTPS?: boolean;
10
- devLocal?: boolean;
11
- staging?: boolean;
9
+ devUIUrl?: string;
12
10
  debug?: boolean;
13
11
  sponsorUrl?: string;
14
12
  sponsorMode?: SponsorMode;
package/dist/index.d.ts CHANGED
@@ -6,9 +6,7 @@ interface Config {
6
6
  network: Network;
7
7
  logging?: LogLevel;
8
8
  devMode?: boolean;
9
- devHTTPS?: boolean;
10
- devLocal?: boolean;
11
- staging?: boolean;
9
+ devUIUrl?: string;
12
10
  debug?: boolean;
13
11
  sponsorUrl?: string;
14
12
  sponsorMode?: SponsorMode;
package/dist/index.js CHANGED
@@ -17,18 +17,29 @@ var events = {
17
17
 
18
18
  // src/consts.ts
19
19
  var WALLET_URL = "https://account.megaeth.com";
20
- var LOCAL_WALLET_URL = "http://localhost:4000";
21
- var LOCAL_HTTPS_WALLET_URL = "https://wallet.local:4000";
22
- var STAGING_WALLET_URL = "https://account-git-staging-mega-eth.vercel.app";
23
20
  var SANDBOX_WALLET_URL = "https://account-sandbox.megaeth.com";
24
21
 
25
22
  // src/helpers.ts
23
+ var ALLOWED_DEV_UI_HOSTS = ["localhost", "wallet.local"];
24
+ var ALLOWED_DEV_UI_HOST_SUFFIXES = [".megaeth.com", "-mega-eth.vercel.app"];
25
+ var isAllowedDevUIUrl = (url) => {
26
+ let hostname;
27
+ try {
28
+ ({ hostname } = new URL(url));
29
+ } catch {
30
+ return false;
31
+ }
32
+ return ALLOWED_DEV_UI_HOSTS.includes(hostname) || ALLOWED_DEV_UI_HOST_SUFFIXES.some((suffix) => hostname.endsWith(suffix));
33
+ };
26
34
  var getWalletUrl = (config) => {
27
35
  let origin = WALLET_URL;
28
- if (config.devLocal) {
29
- origin = config.devHTTPS ? LOCAL_HTTPS_WALLET_URL : LOCAL_WALLET_URL;
30
- } else if (config.staging) {
31
- origin = STAGING_WALLET_URL;
36
+ if (config.devUIUrl) {
37
+ if (!isAllowedDevUIUrl(config.devUIUrl)) {
38
+ throw new Error(
39
+ `Invalid devUIUrl "${config.devUIUrl}": host must be localhost, wallet.local, a *.megaeth.com domain, or a *-mega-eth.vercel.app preview.`
40
+ );
41
+ }
42
+ origin = config.devUIUrl;
32
43
  } else if (config.devMode) {
33
44
  origin = SANDBOX_WALLET_URL;
34
45
  }
@@ -286,11 +297,11 @@ var createIFrame = (url) => {
286
297
  };
287
298
  var initialise = async (config) => {
288
299
  if (state_default.initialised) return;
289
- state_default.initialised = true;
290
300
  state_default.network = config?.network || "mainnet";
291
301
  Logger.setLogLevel(config?.logging || "error");
292
302
  Logger.debug("SDK", "Initialising...");
293
303
  const { origin, uiUrl } = getWalletUrl(config);
304
+ state_default.initialised = true;
294
305
  state_default.iframe = createIFrame(uiUrl);
295
306
  const messenger = new Penpal.WindowMessenger({
296
307
  remoteWindow: state_default.iframe.contentWindow,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megaeth-labs/wallet-sdk",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "description": "MegaETH Wallet SDK for web applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",