@cartridge/controller 0.3.18 → 0.3.19
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/LICENSE +16 -0
- package/lib/constants.d.ts +1 -7
- package/lib/constants.js +12 -22
- package/lib/constants.js.map +1 -1
- package/lib/device.d.ts +2 -2
- package/lib/device.js +48 -57
- package/lib/device.js.map +1 -1
- package/lib/errors.js +2 -5
- package/lib/errors.js.map +1 -1
- package/lib/index.d.ts +10 -8
- package/lib/index.js +161 -212
- package/lib/index.js.map +1 -1
- package/lib/inject.d.ts +12 -11
- package/lib/inject.js +63 -96
- package/lib/inject.js.map +1 -1
- package/lib/modal.js +3 -7
- package/lib/modal.js.map +1 -1
- package/lib/signer.d.ts +5 -2
- package/lib/signer.js +26 -21
- package/lib/signer.js.map +1 -1
- package/lib/types.d.ts +13 -14
- package/lib/types.js +2 -10
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +12 -13
- package/lib/utils.js +51 -70
- package/lib/utils.js.map +1 -1
- package/package.json +10 -11
package/lib/index.js
CHANGED
|
@@ -1,68 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.injectController = exports.verifyMessageHash = exports.split = exports.computeAddress = exports.providers = void 0;
|
|
30
|
-
const starknet_1 = require("starknet");
|
|
31
|
-
const penpal_1 = require("@cartridge/penpal");
|
|
32
|
-
const device_1 = __importDefault(require("./device"));
|
|
33
|
-
const types_1 = require("./types");
|
|
34
|
-
const modal_1 = require("./modal");
|
|
35
|
-
exports.providers = {
|
|
36
|
-
[starknet_1.constants.StarknetChainId.TESTNET]: new starknet_1.SequencerProvider({
|
|
37
|
-
network: "goerli-alpha",
|
|
1
|
+
import { constants, RpcProvider } from "starknet";
|
|
2
|
+
import { connectToChild, } from "@cartridge/penpal";
|
|
3
|
+
import DeviceAccount from "./device";
|
|
4
|
+
import { ResponseCodes, } from "./types";
|
|
5
|
+
import { createModal } from "./modal";
|
|
6
|
+
export const providers = {
|
|
7
|
+
[constants.StarknetChainId.SN_MAIN]: new RpcProvider({
|
|
8
|
+
nodeUrl: process.env.NEXT_PUBLIC_RPC_MAINNET,
|
|
38
9
|
}),
|
|
39
|
-
[
|
|
40
|
-
|
|
10
|
+
[constants.StarknetChainId.SN_SEPOLIA]: new RpcProvider({
|
|
11
|
+
nodeUrl: process.env.NEXT_PUBLIC_RPC_SEPOLIA,
|
|
41
12
|
}),
|
|
42
13
|
};
|
|
43
14
|
class Controller {
|
|
15
|
+
connection;
|
|
16
|
+
keychain;
|
|
17
|
+
policies = [];
|
|
18
|
+
url = "https://x.cartridge.gg";
|
|
19
|
+
chainId = constants.StarknetChainId.SN_SEPOLIA;
|
|
20
|
+
accounts;
|
|
21
|
+
modal;
|
|
22
|
+
starterPackId;
|
|
44
23
|
constructor(policies, options) {
|
|
45
|
-
this.policies = [];
|
|
46
|
-
this.url = "https://x.cartridge.gg";
|
|
47
|
-
this.chainId = types_1.SupportedChainIds.TESTNET;
|
|
48
24
|
if (policies) {
|
|
49
25
|
this.policies = policies;
|
|
50
26
|
}
|
|
51
|
-
if (options
|
|
27
|
+
if (options?.chainId) {
|
|
52
28
|
this.chainId = options.chainId;
|
|
53
29
|
}
|
|
54
|
-
if (options
|
|
30
|
+
if (options?.starterPackId) {
|
|
55
31
|
this.starterPackId = options.starterPackId;
|
|
56
32
|
}
|
|
57
|
-
if (options
|
|
33
|
+
if (options?.url) {
|
|
58
34
|
this.url = options.url;
|
|
59
35
|
}
|
|
60
36
|
if (typeof document === "undefined") {
|
|
61
37
|
return;
|
|
62
38
|
}
|
|
63
|
-
this.modal =
|
|
64
|
-
|
|
65
|
-
(_a = this.keychain) === null || _a === void 0 ? void 0 : _a.reset();
|
|
39
|
+
this.modal = createModal(this.url, () => {
|
|
40
|
+
this.keychain?.reset();
|
|
66
41
|
});
|
|
67
42
|
if (document.readyState === "complete" ||
|
|
68
43
|
document.readyState === "interactive") {
|
|
@@ -73,7 +48,7 @@ class Controller {
|
|
|
73
48
|
document.body.appendChild(this.modal.element);
|
|
74
49
|
});
|
|
75
50
|
}
|
|
76
|
-
this.connection =
|
|
51
|
+
this.connection = connectToChild({
|
|
77
52
|
iframe: this.modal.element.children[0],
|
|
78
53
|
});
|
|
79
54
|
this.connection.promise
|
|
@@ -86,168 +61,148 @@ class Controller {
|
|
|
86
61
|
}
|
|
87
62
|
return this.accounts[this.chainId];
|
|
88
63
|
}
|
|
89
|
-
ready() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
});
|
|
64
|
+
async ready() {
|
|
65
|
+
return this.connection?.promise
|
|
66
|
+
.then(() => this.probe())
|
|
67
|
+
.then((res) => !!res, () => false);
|
|
94
68
|
}
|
|
95
|
-
probe() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (res.code !== types_1.ResponseCodes.SUCCESS) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const { address } = res;
|
|
107
|
-
this.accounts = {
|
|
108
|
-
[starknet_1.constants.StarknetChainId.MAINNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], address, this.keychain, this.modal),
|
|
109
|
-
[starknet_1.constants.StarknetChainId.TESTNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], address, this.keychain, this.modal),
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
catch (e) {
|
|
113
|
-
console.error(e);
|
|
69
|
+
async probe() {
|
|
70
|
+
if (!this.keychain || !this.modal) {
|
|
71
|
+
console.error("not ready for connect");
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const res = await this.keychain.probe();
|
|
76
|
+
if (res.code !== ResponseCodes.SUCCESS) {
|
|
114
77
|
return;
|
|
115
78
|
}
|
|
116
|
-
|
|
117
|
-
|
|
79
|
+
const { address } = res;
|
|
80
|
+
this.accounts = {
|
|
81
|
+
[constants.StarknetChainId.SN_MAIN]: new DeviceAccount(providers[constants.StarknetChainId.SN_MAIN], address, this.keychain, this.modal),
|
|
82
|
+
[constants.StarknetChainId.SN_SEPOLIA]: new DeviceAccount(providers[constants.StarknetChainId.SN_SEPOLIA], address, this.keychain, this.modal),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
console.error(e);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
return !!this.accounts[this.chainId];
|
|
118
90
|
}
|
|
119
|
-
switchChain(chainId) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
this.chainId = cid;
|
|
126
|
-
});
|
|
91
|
+
async switchChain(chainId) {
|
|
92
|
+
if (this.chainId === chainId) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.chainId = chainId;
|
|
127
96
|
}
|
|
128
97
|
// Register a new device key.
|
|
129
|
-
register(username, credentialId, credential) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return yield this.keychain.register(username, credentialId, credential);
|
|
136
|
-
});
|
|
98
|
+
async register(username, credentialId, credential) {
|
|
99
|
+
if (!this.keychain) {
|
|
100
|
+
console.error("not ready for connect");
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return await this.keychain.register(username, credentialId, credential);
|
|
137
104
|
}
|
|
138
|
-
login(address, credentialId, options) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return this.keychain.login(address, credentialId, options);
|
|
145
|
-
});
|
|
105
|
+
async login(address, credentialId, options) {
|
|
106
|
+
if (!this.keychain) {
|
|
107
|
+
console.error("not ready for connect");
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return this.keychain.login(address, credentialId, options);
|
|
146
111
|
}
|
|
147
|
-
provision(address, credentialId) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return this.keychain.provision(address, credentialId);
|
|
154
|
-
});
|
|
112
|
+
async provision(address, credentialId) {
|
|
113
|
+
if (!this.keychain) {
|
|
114
|
+
console.error("not ready for connect");
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return this.keychain.provision(address, credentialId);
|
|
155
118
|
}
|
|
156
|
-
issueStarterPack(id) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
throw new Error(response.message);
|
|
168
|
-
}
|
|
119
|
+
async issueStarterPack(id) {
|
|
120
|
+
if (!this.keychain || !this.modal) {
|
|
121
|
+
console.error("not ready for connect");
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
this.modal.open();
|
|
125
|
+
try {
|
|
126
|
+
if (!this.account) {
|
|
127
|
+
let response = await this.keychain.connect(this.policies, undefined, this.chainId);
|
|
128
|
+
if (response.code !== ResponseCodes.SUCCESS) {
|
|
129
|
+
throw new Error(response.message);
|
|
169
130
|
}
|
|
170
|
-
return yield this.keychain.issueStarterPack(id);
|
|
171
|
-
}
|
|
172
|
-
catch (e) {
|
|
173
|
-
console.log(e);
|
|
174
131
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
132
|
+
return await this.keychain.issueStarterPack(id);
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
console.log(e);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
this.modal.close();
|
|
139
|
+
}
|
|
179
140
|
}
|
|
180
|
-
showQuests(gameId) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
});
|
|
141
|
+
async showQuests(gameId) {
|
|
142
|
+
if (!this.keychain || !this.modal) {
|
|
143
|
+
console.error("not ready for connect");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.modal.open();
|
|
147
|
+
try {
|
|
148
|
+
return await this.keychain.showQuests(gameId);
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
console.error(e);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
this.modal.close();
|
|
155
|
+
}
|
|
197
156
|
}
|
|
198
|
-
connect() {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
yield document.requestStorageAccess();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
this.modal.open();
|
|
214
|
-
try {
|
|
215
|
-
let response = yield this.keychain.connect(this.policies, undefined, this.chainId);
|
|
216
|
-
if (response.code !== types_1.ResponseCodes.SUCCESS) {
|
|
217
|
-
throw new Error(response.message);
|
|
218
|
-
}
|
|
219
|
-
response = response;
|
|
220
|
-
this.accounts = {
|
|
221
|
-
[starknet_1.constants.StarknetChainId.MAINNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], response.address, this.keychain, this.modal),
|
|
222
|
-
[starknet_1.constants.StarknetChainId.TESTNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], response.address, this.keychain, this.modal),
|
|
223
|
-
};
|
|
224
|
-
if (this.starterPackId) {
|
|
225
|
-
yield this.keychain.issueStarterPack(this.starterPackId);
|
|
226
|
-
}
|
|
227
|
-
return this.accounts[this.chainId];
|
|
228
|
-
}
|
|
229
|
-
catch (e) {
|
|
230
|
-
console.log(e);
|
|
231
|
-
}
|
|
232
|
-
finally {
|
|
233
|
-
this.modal.close();
|
|
157
|
+
async connect() {
|
|
158
|
+
if (this.accounts) {
|
|
159
|
+
return this.accounts[this.chainId];
|
|
160
|
+
}
|
|
161
|
+
if (!this.keychain || !this.modal) {
|
|
162
|
+
console.error("not ready for connect");
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (!!document.hasStorageAccess) {
|
|
166
|
+
const ok = await document.hasStorageAccess();
|
|
167
|
+
if (!ok) {
|
|
168
|
+
await document.requestStorageAccess();
|
|
234
169
|
}
|
|
235
|
-
}
|
|
170
|
+
}
|
|
171
|
+
this.modal.open();
|
|
172
|
+
try {
|
|
173
|
+
let response = await this.keychain.connect(this.policies, undefined, this.chainId);
|
|
174
|
+
if (response.code !== ResponseCodes.SUCCESS) {
|
|
175
|
+
throw new Error(response.message);
|
|
176
|
+
}
|
|
177
|
+
response = response;
|
|
178
|
+
this.accounts = {
|
|
179
|
+
[constants.StarknetChainId.SN_MAIN]: new DeviceAccount(providers[constants.StarknetChainId.SN_MAIN], response.address, this.keychain, this.modal),
|
|
180
|
+
[constants.StarknetChainId.SN_SEPOLIA]: new DeviceAccount(providers[constants.StarknetChainId.SN_SEPOLIA], response.address, this.keychain, this.modal),
|
|
181
|
+
};
|
|
182
|
+
if (this.starterPackId) {
|
|
183
|
+
await this.keychain.issueStarterPack(this.starterPackId);
|
|
184
|
+
}
|
|
185
|
+
return this.accounts[this.chainId];
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
console.log(e);
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
this.modal.close();
|
|
192
|
+
}
|
|
236
193
|
}
|
|
237
|
-
disconnect() {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
yield document.requestStorageAccess();
|
|
247
|
-
}
|
|
194
|
+
async disconnect() {
|
|
195
|
+
if (!this.keychain) {
|
|
196
|
+
console.error("not ready for disconnect");
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
if (!!document.hasStorageAccess) {
|
|
200
|
+
const ok = await document.hasStorageAccess();
|
|
201
|
+
if (!ok) {
|
|
202
|
+
await document.requestStorageAccess();
|
|
248
203
|
}
|
|
249
|
-
|
|
250
|
-
|
|
204
|
+
}
|
|
205
|
+
return await this.keychain.disconnect();
|
|
251
206
|
}
|
|
252
207
|
revoke(origin, policy) {
|
|
253
208
|
if (!this.keychain) {
|
|
@@ -256,23 +211,17 @@ class Controller {
|
|
|
256
211
|
}
|
|
257
212
|
return this.keychain.revoke(origin);
|
|
258
213
|
}
|
|
259
|
-
approvals(origin) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
return this.keychain.approvals(origin);
|
|
266
|
-
});
|
|
214
|
+
async approvals(origin) {
|
|
215
|
+
if (!this.keychain) {
|
|
216
|
+
console.error("not ready for disconnect");
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
return this.keychain.approvals(origin);
|
|
267
220
|
}
|
|
268
221
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
Object.defineProperty(exports, "verifyMessageHash", { enumerable: true, get: function () { return utils_1.verifyMessageHash; } });
|
|
275
|
-
var inject_1 = require("./inject");
|
|
276
|
-
Object.defineProperty(exports, "injectController", { enumerable: true, get: function () { return inject_1.injectController; } });
|
|
277
|
-
exports.default = Controller;
|
|
222
|
+
export * from "./types";
|
|
223
|
+
export * from "./errors";
|
|
224
|
+
export { computeAddress, split, verifyMessageHash } from "./utils";
|
|
225
|
+
export { injectController } from "./inject";
|
|
226
|
+
export default Controller;
|
|
278
227
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/inject.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { constants } from "starknet";
|
|
1
2
|
import { AccountInterface, ProviderInterface } from "starknet";
|
|
2
|
-
import { Policy
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
import { Policy } from "./types";
|
|
4
|
+
export type EventType = "accountsChanged" | "networkChanged";
|
|
5
|
+
export type EventHandler = (data: any) => void;
|
|
5
6
|
interface WatchAssetParameters {
|
|
6
7
|
type: string;
|
|
7
8
|
options: {
|
|
@@ -12,7 +13,7 @@ interface WatchAssetParameters {
|
|
|
12
13
|
name?: string;
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
|
-
export
|
|
16
|
+
export type RpcMessage = {
|
|
16
17
|
type: "wallet_watchAsset";
|
|
17
18
|
params: WatchAssetParameters;
|
|
18
19
|
result: boolean;
|
|
@@ -21,10 +22,10 @@ export declare type RpcMessage = {
|
|
|
21
22
|
params: unknown;
|
|
22
23
|
result: never;
|
|
23
24
|
};
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
25
|
+
export type AccountChangeEventHandler = (accounts: string[]) => void;
|
|
26
|
+
export type NetworkChangeEventHandler = (network?: string) => void;
|
|
27
|
+
export type WalletEventHandlers = AccountChangeEventHandler | NetworkChangeEventHandler;
|
|
28
|
+
export type WalletEvents = {
|
|
28
29
|
type: "accountsChanged";
|
|
29
30
|
handler: AccountChangeEventHandler;
|
|
30
31
|
} | {
|
|
@@ -53,7 +54,7 @@ export declare class InjectedController implements IStarknetWindowObject {
|
|
|
53
54
|
name: string;
|
|
54
55
|
version: string;
|
|
55
56
|
icon: string;
|
|
56
|
-
provider: import("starknet").
|
|
57
|
+
provider: import("starknet").Provider;
|
|
57
58
|
isConnected: boolean;
|
|
58
59
|
account?: AccountInterface | undefined;
|
|
59
60
|
selectedAddress?: string;
|
|
@@ -63,7 +64,7 @@ export declare class InjectedController implements IStarknetWindowObject {
|
|
|
63
64
|
url?: string;
|
|
64
65
|
origin?: string;
|
|
65
66
|
starterPackId?: string;
|
|
66
|
-
chainId?:
|
|
67
|
+
chainId?: constants.StarknetChainId;
|
|
67
68
|
});
|
|
68
69
|
request: (call: Omit<RpcMessage, "result">) => Promise<RpcMessage["result"]>;
|
|
69
70
|
enable: () => Promise<string[]>;
|
|
@@ -75,6 +76,6 @@ declare function injectController(policies?: Policy[], options?: {
|
|
|
75
76
|
url?: string;
|
|
76
77
|
origin?: string;
|
|
77
78
|
starterPackId?: string;
|
|
78
|
-
chainId?:
|
|
79
|
+
chainId?: constants.StarknetChainId;
|
|
79
80
|
}): void;
|
|
80
81
|
export { injectController };
|