@megaeth-labs/wallet-sdk 0.1.23 → 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
  }
@@ -267,6 +278,16 @@ var transfer = (request) => {
267
278
  return state_default.remote.transfer(request);
268
279
  };
269
280
 
281
+ // src/outbound-methods/toMegaName.ts
282
+ var toMegaName = async (address) => {
283
+ return state_default.remote.toMegaName(address);
284
+ };
285
+
286
+ // src/outbound-methods/fromMegaName.ts
287
+ var fromMegaName = async (name) => {
288
+ return state_default.remote.fromMegaName(name);
289
+ };
290
+
270
291
  // src/outbound-methods/index.ts
271
292
  var outboundMethods = {
272
293
  status,
@@ -286,7 +307,9 @@ var outboundMethods = {
286
307
  authenticate,
287
308
  manageAccount,
288
309
  send,
289
- swap
310
+ swap,
311
+ toMegaName,
312
+ fromMegaName
290
313
  };
291
314
 
292
315
  // src/wallet.ts
@@ -310,11 +333,11 @@ var createIFrame = (url) => {
310
333
  };
311
334
  var initialise = async (config) => {
312
335
  if (state_default.initialised) return;
313
- state_default.initialised = true;
314
336
  state_default.network = config?.network || "mainnet";
315
337
  Logger.setLogLevel(config?.logging || "error");
316
338
  Logger.debug("SDK", "Initialising...");
317
339
  const { origin, uiUrl } = getWalletUrl(config);
340
+ state_default.initialised = true;
318
341
  state_default.iframe = createIFrame(uiUrl);
319
342
  const messenger = new Penpal.WindowMessenger({
320
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;
@@ -18,7 +16,6 @@ type ConnectionStatus = {
18
16
  status: 'connected' | 'disconnected' | 'cancelled';
19
17
  address?: `0x${string}`;
20
18
  network: Network;
21
- megaName?: string;
22
19
  };
23
20
  interface TransferRequest {
24
21
  amount: string;
@@ -124,6 +121,8 @@ interface RemoteAPI {
124
121
  }) => Promise<void>;
125
122
  swap: (request: SwapRequest) => Promise<TransactionResult>;
126
123
  send: (request: SendRequest) => Promise<TransactionResult>;
124
+ toMegaName: (address: `0x${string}`) => Promise<string | undefined>;
125
+ fromMegaName: (name: string) => Promise<`0x${string}` | undefined>;
127
126
  [key: string]: any;
128
127
  }
129
128
  interface Permission {
@@ -206,6 +205,8 @@ declare const mega: {
206
205
  }) => Promise<void>;
207
206
  send: (request: SendRequest) => Promise<TransactionResult>;
208
207
  swap: (request: SwapRequest) => Promise<TransactionResult>;
208
+ toMegaName: (address: `0x${string}`) => Promise<string | undefined>;
209
+ fromMegaName: (name: string) => Promise<`0x${string}` | undefined>;
209
210
  initialise: (config: Config) => Promise<ConnectionStatus | undefined>;
210
211
  events: {
211
212
  onStatusChange: (callback: (status: ConnectionStatus) => void) => void;
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;
@@ -18,7 +16,6 @@ type ConnectionStatus = {
18
16
  status: 'connected' | 'disconnected' | 'cancelled';
19
17
  address?: `0x${string}`;
20
18
  network: Network;
21
- megaName?: string;
22
19
  };
23
20
  interface TransferRequest {
24
21
  amount: string;
@@ -124,6 +121,8 @@ interface RemoteAPI {
124
121
  }) => Promise<void>;
125
122
  swap: (request: SwapRequest) => Promise<TransactionResult>;
126
123
  send: (request: SendRequest) => Promise<TransactionResult>;
124
+ toMegaName: (address: `0x${string}`) => Promise<string | undefined>;
125
+ fromMegaName: (name: string) => Promise<`0x${string}` | undefined>;
127
126
  [key: string]: any;
128
127
  }
129
128
  interface Permission {
@@ -206,6 +205,8 @@ declare const mega: {
206
205
  }) => Promise<void>;
207
206
  send: (request: SendRequest) => Promise<TransactionResult>;
208
207
  swap: (request: SwapRequest) => Promise<TransactionResult>;
208
+ toMegaName: (address: `0x${string}`) => Promise<string | undefined>;
209
+ fromMegaName: (name: string) => Promise<`0x${string}` | undefined>;
209
210
  initialise: (config: Config) => Promise<ConnectionStatus | undefined>;
210
211
  events: {
211
212
  onStatusChange: (callback: (status: ConnectionStatus) => void) => void;
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
  }
@@ -231,6 +242,16 @@ var transfer = (request) => {
231
242
  return state_default.remote.transfer(request);
232
243
  };
233
244
 
245
+ // src/outbound-methods/toMegaName.ts
246
+ var toMegaName = async (address) => {
247
+ return state_default.remote.toMegaName(address);
248
+ };
249
+
250
+ // src/outbound-methods/fromMegaName.ts
251
+ var fromMegaName = async (name) => {
252
+ return state_default.remote.fromMegaName(name);
253
+ };
254
+
234
255
  // src/outbound-methods/index.ts
235
256
  var outboundMethods = {
236
257
  status,
@@ -250,7 +271,9 @@ var outboundMethods = {
250
271
  authenticate,
251
272
  manageAccount,
252
273
  send,
253
- swap
274
+ swap,
275
+ toMegaName,
276
+ fromMegaName
254
277
  };
255
278
 
256
279
  // src/wallet.ts
@@ -274,11 +297,11 @@ var createIFrame = (url) => {
274
297
  };
275
298
  var initialise = async (config) => {
276
299
  if (state_default.initialised) return;
277
- state_default.initialised = true;
278
300
  state_default.network = config?.network || "mainnet";
279
301
  Logger.setLogLevel(config?.logging || "error");
280
302
  Logger.debug("SDK", "Initialising...");
281
303
  const { origin, uiUrl } = getWalletUrl(config);
304
+ state_default.initialised = true;
282
305
  state_default.iframe = createIFrame(uiUrl);
283
306
  const messenger = new Penpal.WindowMessenger({
284
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.23",
3
+ "version": "0.1.25",
4
4
  "description": "MegaETH Wallet SDK for web applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",