@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 +32 -9
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +32 -9
- package/package.json +1 -1
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.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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,
|