@cartridge/controller 0.7.4 → 0.7.5
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/.turbo/turbo-build$colon$deps.log +37 -37
- package/.turbo/turbo-build.log +33 -33
- package/dist/controller.cjs +37 -19
- package/dist/controller.cjs.map +1 -1
- package/dist/controller.d.cts +2 -1
- package/dist/controller.d.ts +2 -1
- package/dist/controller.js +38 -20
- package/dist/controller.js.map +1 -1
- package/dist/index.cjs +81 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +82 -26
- package/dist/index.js.map +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +2 -2
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/{provider-qWUzdqt3.d.cts → provider-CTDncg8U.d.cts} +3 -1
- package/dist/{provider-qWUzdqt3.d.ts → provider-CTDncg8U.d.ts} +3 -1
- package/dist/session/index.cjs +1 -1
- package/dist/session/index.cjs.map +1 -1
- package/dist/session/index.d.cts +2 -2
- package/dist/session/index.d.ts +2 -2
- package/dist/session/index.js +1 -1
- package/dist/session/index.js.map +1 -1
- package/package.json +3 -3
- package/src/controller.ts +22 -26
- package/src/iframe/profile.ts +11 -0
- package/src/types.ts +2 -0
- package/src/utils.ts +11 -1
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
> @cartridge/controller@0.7.
|
|
2
|
+
|
|
3
|
+
> @cartridge/controller@0.7.5 build:deps /Users/tarrencevanas/code/c7e/controller/packages/controller
|
|
4
4
|
> tsup
|
|
5
5
|
|
|
6
|
-
[34mCLI[39m Building entry: src/controller.ts, src/index.ts, src/lookup.ts, src/
|
|
6
|
+
[34mCLI[39m Building entry: src/controller.ts, src/index.ts, src/lookup.ts, src/node/index.ts, src/session/index.ts
|
|
7
7
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
8
8
|
[34mCLI[39m tsup v8.3.6
|
|
9
|
-
[34mCLI[39m Using tsup config: /
|
|
9
|
+
[34mCLI[39m Using tsup config: /Users/tarrencevanas/code/c7e/controller/packages/controller/package.json
|
|
10
10
|
[34mCLI[39m Target: esnext
|
|
11
11
|
[34mCLI[39m Cleaning output folder
|
|
12
12
|
[34mESM[39m Build start
|
|
13
13
|
[34mCJS[39m Build start
|
|
14
14
|
"addAddressPadding", "CallData", "getChecksumAddress", "hash", "typedData" and "TypedDataRevision" are imported from external module "starknet" but never used in "dist/controller.js".
|
|
15
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.js".
|
|
16
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.js".
|
|
15
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.js".
|
|
16
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.js".
|
|
17
17
|
"addAddressPadding", "CallData", "getChecksumAddress", "hash", "typedData" and "TypedDataRevision" are imported from external module "starknet" but never used in "dist/controller.cjs".
|
|
18
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.cjs".
|
|
19
|
-
Entry module "dist/session/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
20
18
|
Entry module "dist/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
21
19
|
DTS Build start
|
|
22
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.cjs".
|
|
20
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.cjs".
|
|
23
21
|
Entry module "dist/node/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
[32mESM[39m [1mdist/controller.js.map [22m[32m72.63 KB[39m
|
|
30
|
-
[32mESM[39m [1mdist/session/index.js.map [22m[32m55.90 KB[39m
|
|
31
|
-
[32mESM[39m [1mdist/lookup.js.map [22m[32m4.00 KB[39m
|
|
32
|
-
[32mESM[39m [1mdist/node/index.js.map [22m[32m63.31 KB[39m
|
|
33
|
-
[32mESM[39m [1mdist/index.js.map [22m[32m166.90 KB[39m
|
|
34
|
-
[32mESM[39m ⚡️ Build success in 468ms
|
|
22
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.cjs".
|
|
23
|
+
Entry module "dist/session/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
24
|
+
[32mCJS[39m [1mdist/node/index.cjs [22m[32m32.30 KB[39m
|
|
25
|
+
[32mCJS[39m [1mdist/controller.cjs [22m[32m37.62 KB[39m
|
|
26
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m94.87 KB[39m
|
|
35
27
|
[32mCJS[39m [1mdist/lookup.cjs [22m[32m1.69 KB[39m
|
|
36
28
|
[32mCJS[39m [1mdist/session/index.cjs [22m[32m28.94 KB[39m
|
|
37
|
-
[32mCJS[39m [1mdist/
|
|
38
|
-
[32mCJS[39m [1mdist/
|
|
39
|
-
[32mCJS[39m [1mdist/
|
|
29
|
+
[32mCJS[39m [1mdist/node/index.cjs.map [22m[32m63.86 KB[39m
|
|
30
|
+
[32mCJS[39m [1mdist/controller.cjs.map [22m[32m73.80 KB[39m
|
|
31
|
+
[32mCJS[39m [1mdist/session/index.cjs.map [22m[32m56.40 KB[39m
|
|
32
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m169.67 KB[39m
|
|
40
33
|
[32mCJS[39m [1mdist/lookup.cjs.map [22m[32m4.00 KB[39m
|
|
41
|
-
[32mCJS[39m
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
34
|
+
[32mCJS[39m ⚡️ Build success in 392ms
|
|
35
|
+
[32mESM[39m [1mdist/controller.js [22m[32m37.57 KB[39m
|
|
36
|
+
[32mESM[39m [1mdist/index.js [22m[32m94.45 KB[39m
|
|
37
|
+
[32mESM[39m [1mdist/node/index.js [22m[32m31.52 KB[39m
|
|
38
|
+
[32mESM[39m [1mdist/lookup.js [22m[32m1.63 KB[39m
|
|
39
|
+
[32mESM[39m [1mdist/session/index.js [22m[32m28.81 KB[39m
|
|
40
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m169.48 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/controller.js.map [22m[32m73.71 KB[39m
|
|
42
|
+
[32mESM[39m [1mdist/lookup.js.map [22m[32m4.00 KB[39m
|
|
43
|
+
[32mESM[39m [1mdist/node/index.js.map [22m[32m63.66 KB[39m
|
|
44
|
+
[32mESM[39m [1mdist/session/index.js.map [22m[32m56.24 KB[39m
|
|
45
|
+
[32mESM[39m ⚡️ Build success in 393ms
|
|
46
|
+
DTS ⚡️ Build success in 2828ms
|
|
47
|
+
DTS dist/index.d.ts 1.57 KB
|
|
48
|
+
DTS dist/controller.d.ts 1.37 KB
|
|
49
49
|
DTS dist/lookup.d.ts 216.00 B
|
|
50
|
-
DTS dist/session/index.d.ts 1.90 KB
|
|
51
50
|
DTS dist/node/index.d.ts 2.35 KB
|
|
51
|
+
DTS dist/session/index.d.ts 1.90 KB
|
|
52
52
|
DTS dist/policies-DD1aPjQ4.d.ts 565.00 B
|
|
53
|
-
DTS dist/provider-
|
|
54
|
-
DTS dist/index.d.cts 1.
|
|
55
|
-
DTS dist/controller.d.cts 1.
|
|
53
|
+
DTS dist/provider-CTDncg8U.d.ts 6.90 KB
|
|
54
|
+
DTS dist/index.d.cts 1.58 KB
|
|
55
|
+
DTS dist/controller.d.cts 1.37 KB
|
|
56
56
|
DTS dist/lookup.d.cts 216.00 B
|
|
57
|
-
DTS dist/session/index.d.cts 1.90 KB
|
|
58
57
|
DTS dist/node/index.d.cts 2.36 KB
|
|
58
|
+
DTS dist/session/index.d.cts 1.90 KB
|
|
59
59
|
DTS dist/policies-DD1aPjQ4.d.cts 565.00 B
|
|
60
|
-
DTS dist/provider-
|
|
60
|
+
DTS dist/provider-CTDncg8U.d.cts 6.90 KB
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
> @cartridge/controller@0.7.
|
|
2
|
+
|
|
3
|
+
> @cartridge/controller@0.7.5 build /Users/tarrencevanas/code/c7e/controller/packages/controller
|
|
4
4
|
> pnpm build:deps
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
> @cartridge/controller@0.7.
|
|
7
|
+
> @cartridge/controller@0.7.5 build:deps /Users/tarrencevanas/code/c7e/controller/packages/controller
|
|
8
8
|
> tsup
|
|
9
9
|
|
|
10
|
-
[34mCLI[39m Building entry: src/controller.ts, src/index.ts, src/lookup.ts, src/
|
|
10
|
+
[34mCLI[39m Building entry: src/controller.ts, src/index.ts, src/lookup.ts, src/node/index.ts, src/session/index.ts
|
|
11
11
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
12
12
|
[34mCLI[39m tsup v8.3.6
|
|
13
|
-
[34mCLI[39m Using tsup config: /
|
|
13
|
+
[34mCLI[39m Using tsup config: /Users/tarrencevanas/code/c7e/controller/packages/controller/package.json
|
|
14
14
|
[34mCLI[39m Target: esnext
|
|
15
15
|
[34mCLI[39m Cleaning output folder
|
|
16
16
|
[34mESM[39m Build start
|
|
17
17
|
[34mCJS[39m Build start
|
|
18
18
|
"addAddressPadding", "CallData", "getChecksumAddress", "hash", "typedData" and "TypedDataRevision" are imported from external module "starknet" but never used in "dist/controller.cjs".
|
|
19
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.cjs".
|
|
20
|
+
Entry module "dist/node/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
19
21
|
Entry module "dist/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
20
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.cjs".
|
|
22
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.cjs".
|
|
21
23
|
Entry module "dist/session/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
22
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.cjs".
|
|
23
|
-
Entry module "dist/node/index.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
|
|
24
24
|
"addAddressPadding", "CallData", "getChecksumAddress", "hash", "typedData" and "TypedDataRevision" are imported from external module "starknet" but never used in "dist/controller.js".
|
|
25
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/
|
|
25
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/node/index.js".
|
|
26
26
|
DTS Build start
|
|
27
|
-
"constants", "getChecksumAddress" and "shortString" are imported from external module "starknet" but never used in "dist/
|
|
28
|
-
[32mCJS[39m [1mdist/
|
|
27
|
+
"constants", "getChecksumAddress", "Provider" and "shortString" are imported from external module "starknet" but never used in "dist/session/index.js".
|
|
28
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m94.87 KB[39m
|
|
29
29
|
[32mCJS[39m [1mdist/node/index.cjs [22m[32m32.30 KB[39m
|
|
30
|
+
[32mCJS[39m [1mdist/controller.cjs [22m[32m37.62 KB[39m
|
|
30
31
|
[32mCJS[39m [1mdist/lookup.cjs [22m[32m1.69 KB[39m
|
|
31
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m93.56 KB[39m
|
|
32
32
|
[32mCJS[39m [1mdist/session/index.cjs [22m[32m28.94 KB[39m
|
|
33
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m169.67 KB[39m
|
|
34
|
+
[32mCJS[39m [1mdist/node/index.cjs.map [22m[32m63.86 KB[39m
|
|
33
35
|
[32mCJS[39m [1mdist/lookup.cjs.map [22m[32m4.00 KB[39m
|
|
34
|
-
[32mCJS[39m [1mdist/controller.cjs.map [22m[
|
|
35
|
-
[32mCJS[39m [1mdist/
|
|
36
|
-
[32mCJS[39m
|
|
37
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[32m167.07 KB[39m
|
|
38
|
-
[32mCJS[39m ⚡️ Build success in 468ms
|
|
36
|
+
[32mCJS[39m [1mdist/controller.cjs.map [22m[32m73.80 KB[39m
|
|
37
|
+
[32mCJS[39m [1mdist/session/index.cjs.map [22m[32m56.40 KB[39m
|
|
38
|
+
[32mCJS[39m ⚡️ Build success in 449ms
|
|
39
39
|
[32mESM[39m [1mdist/lookup.js [22m[32m1.63 KB[39m
|
|
40
|
-
[32mESM[39m [1mdist/controller.js [22m[32m37.15 KB[39m
|
|
41
40
|
[32mESM[39m [1mdist/node/index.js [22m[32m31.52 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/index.js [22m[32m94.45 KB[39m
|
|
42
42
|
[32mESM[39m [1mdist/session/index.js [22m[32m28.81 KB[39m
|
|
43
|
-
[32mESM[39m [1mdist/
|
|
43
|
+
[32mESM[39m [1mdist/controller.js [22m[32m37.57 KB[39m
|
|
44
44
|
[32mESM[39m [1mdist/lookup.js.map [22m[32m4.00 KB[39m
|
|
45
|
-
[32mESM[39m [1mdist/controller.js.map [22m[
|
|
46
|
-
[32mESM[39m [1mdist/
|
|
47
|
-
[32mESM[39m [1mdist/
|
|
48
|
-
[32mESM[39m [1mdist/index.js.map
|
|
49
|
-
[32mESM[39m ⚡️ Build success in
|
|
50
|
-
DTS ⚡️ Build success in
|
|
51
|
-
DTS dist/index.d.ts 1.
|
|
52
|
-
DTS dist/controller.d.ts 1.
|
|
45
|
+
[32mESM[39m [1mdist/controller.js.map [22m[32m73.71 KB[39m
|
|
46
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m169.48 KB[39m
|
|
47
|
+
[32mESM[39m [1mdist/node/index.js.map [22m[32m63.66 KB[39m
|
|
48
|
+
[32mESM[39m [1mdist/session/index.js.map [22m[32m56.24 KB[39m
|
|
49
|
+
[32mESM[39m ⚡️ Build success in 450ms
|
|
50
|
+
DTS ⚡️ Build success in 2783ms
|
|
51
|
+
DTS dist/index.d.ts 1.57 KB
|
|
52
|
+
DTS dist/controller.d.ts 1.37 KB
|
|
53
53
|
DTS dist/lookup.d.ts 216.00 B
|
|
54
|
-
DTS dist/session/index.d.ts 1.90 KB
|
|
55
54
|
DTS dist/node/index.d.ts 2.35 KB
|
|
55
|
+
DTS dist/session/index.d.ts 1.90 KB
|
|
56
56
|
DTS dist/policies-DD1aPjQ4.d.ts 565.00 B
|
|
57
|
-
DTS dist/provider-
|
|
58
|
-
DTS dist/index.d.cts 1.
|
|
59
|
-
DTS dist/controller.d.cts 1.
|
|
57
|
+
DTS dist/provider-CTDncg8U.d.ts 6.90 KB
|
|
58
|
+
DTS dist/index.d.cts 1.58 KB
|
|
59
|
+
DTS dist/controller.d.cts 1.37 KB
|
|
60
60
|
DTS dist/lookup.d.cts 216.00 B
|
|
61
|
-
DTS dist/session/index.d.cts 1.90 KB
|
|
62
61
|
DTS dist/node/index.d.cts 2.36 KB
|
|
62
|
+
DTS dist/session/index.d.cts 1.90 KB
|
|
63
63
|
DTS dist/policies-DD1aPjQ4.d.cts 565.00 B
|
|
64
|
-
DTS dist/provider-
|
|
64
|
+
DTS dist/provider-CTDncg8U.d.cts 6.90 KB
|
package/dist/controller.cjs
CHANGED
|
@@ -5,10 +5,11 @@ var penpal = require('@cartridge/penpal');
|
|
|
5
5
|
var typesJs = require('@starknet-io/types-js');
|
|
6
6
|
|
|
7
7
|
// src/account.ts
|
|
8
|
+
var LOCAL_HOSTNAMES = ["localhost", "127.0.0.1", "0.0.0.0"];
|
|
8
9
|
function toArray(val) {
|
|
9
10
|
return Array.isArray(val) ? val : [val];
|
|
10
11
|
}
|
|
11
|
-
function parseChainId(url) {
|
|
12
|
+
async function parseChainId(url) {
|
|
12
13
|
const parts = url.pathname.split("/");
|
|
13
14
|
if (parts.includes("starknet")) {
|
|
14
15
|
if (parts.includes("mainnet")) {
|
|
@@ -28,6 +29,12 @@ function parseChainId(url) {
|
|
|
28
29
|
);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
if (LOCAL_HOSTNAMES.includes(url.hostname)) {
|
|
33
|
+
const provider = new starknet.Provider({
|
|
34
|
+
nodeUrl: url.toString()
|
|
35
|
+
});
|
|
36
|
+
return await provider.getChainId();
|
|
37
|
+
}
|
|
31
38
|
throw new Error(`Chain ${url.toString()} not supported`);
|
|
32
39
|
}
|
|
33
40
|
|
|
@@ -262,6 +269,7 @@ var ProfileIFrame = class extends IFrame {
|
|
|
262
269
|
slot,
|
|
263
270
|
namespace,
|
|
264
271
|
tokens,
|
|
272
|
+
policies,
|
|
265
273
|
...iframeOptions
|
|
266
274
|
}) {
|
|
267
275
|
const _profileUrl = (profileUrl || PROFILE_URL).replace(/\/$/, "");
|
|
@@ -282,6 +290,15 @@ var ProfileIFrame = class extends IFrame {
|
|
|
282
290
|
encodeURIComponent(tokens.erc20.toString())
|
|
283
291
|
);
|
|
284
292
|
}
|
|
293
|
+
if (policies?.contracts) {
|
|
294
|
+
const methods = Object.values(policies.contracts).flatMap(
|
|
295
|
+
(contract) => contract.methods
|
|
296
|
+
);
|
|
297
|
+
_url.searchParams.set(
|
|
298
|
+
"methods",
|
|
299
|
+
encodeURIComponent(JSON.stringify(methods))
|
|
300
|
+
);
|
|
301
|
+
}
|
|
285
302
|
super({
|
|
286
303
|
...iframeOptions,
|
|
287
304
|
id: "controller-profile",
|
|
@@ -300,7 +317,7 @@ var NotReadyToConnect = class _NotReadyToConnect extends Error {
|
|
|
300
317
|
|
|
301
318
|
// package.json
|
|
302
319
|
var package_default = {
|
|
303
|
-
version: "0.7.
|
|
320
|
+
version: "0.7.5"};
|
|
304
321
|
|
|
305
322
|
// src/icon.ts
|
|
306
323
|
var icon = "data:image/png;base64,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";
|
|
@@ -486,24 +503,8 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
486
503
|
chains;
|
|
487
504
|
constructor(options) {
|
|
488
505
|
super();
|
|
489
|
-
const chains = /* @__PURE__ */ new Map();
|
|
490
|
-
for (const chain of options.chains) {
|
|
491
|
-
const url = new URL(chain.rpcUrl);
|
|
492
|
-
const chainId = parseChainId(url);
|
|
493
|
-
chains.set(chainId, chain);
|
|
494
|
-
}
|
|
495
|
-
if (options.policies?.messages?.length && options.policies.messages.length !== chains.size) {
|
|
496
|
-
console.warn(
|
|
497
|
-
"Each message policy is associated with a specific chain. The number of message policies does not match the number of chains specified - session message signing may not work on some chains."
|
|
498
|
-
);
|
|
499
|
-
}
|
|
500
|
-
this.chains = chains;
|
|
501
506
|
this.selectedChain = options.defaultChainId;
|
|
502
|
-
|
|
503
|
-
throw new Error(
|
|
504
|
-
`Chain ${this.selectedChain} not found in configured chains`
|
|
505
|
-
);
|
|
506
|
-
}
|
|
507
|
+
this.chains = /* @__PURE__ */ new Map();
|
|
507
508
|
this.iframes = {
|
|
508
509
|
keychain: new KeychainIFrame({
|
|
509
510
|
...options,
|
|
@@ -514,6 +515,7 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
514
515
|
})
|
|
515
516
|
};
|
|
516
517
|
this.options = options;
|
|
518
|
+
this.validateChains(options.chains);
|
|
517
519
|
if (typeof window !== "undefined") {
|
|
518
520
|
window.starknet_controller = this;
|
|
519
521
|
}
|
|
@@ -760,6 +762,22 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
760
762
|
}
|
|
761
763
|
return await this.keychain.delegateAccount();
|
|
762
764
|
}
|
|
765
|
+
async validateChains(chains) {
|
|
766
|
+
for (const chain of chains) {
|
|
767
|
+
try {
|
|
768
|
+
const url = new URL(chain.rpcUrl);
|
|
769
|
+
const chainId = await parseChainId(url);
|
|
770
|
+
this.chains.set(chainId, chain);
|
|
771
|
+
} catch (error) {
|
|
772
|
+
console.error(`Failed to parse chainId for ${chain.rpcUrl}:`, error);
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
if (!this.chains.has(this.selectedChain)) {
|
|
776
|
+
console.warn(
|
|
777
|
+
`Selected chain ${this.selectedChain} not found in configured chains. Available chains: ${Array.from(this.chains.keys()).join(", ")}`
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
763
781
|
waitForKeychain({
|
|
764
782
|
timeout = 5e4,
|
|
765
783
|
interval = 100
|