@cartridge/controller 0.3.2 → 0.3.4

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/lib/index.js CHANGED
@@ -22,57 +22,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
22
22
  step((generator = generator.apply(thisArg, _arguments || [])).next());
23
23
  });
24
24
  };
25
- var __generator = (this && this.__generator) || function (thisArg, body) {
26
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
- function verb(n) { return function (v) { return step([n, v]); }; }
29
- function step(op) {
30
- if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
32
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
- if (y = 0, t) op = [op[0] & 2, t.value];
34
- switch (op[0]) {
35
- case 0: case 1: t = op; break;
36
- case 4: _.label++; return { value: op[1], done: false };
37
- case 5: _.label++; y = op[1]; op = [0]; continue;
38
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
- default:
40
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
- if (t[2]) _.ops.pop();
45
- _.trys.pop(); continue;
46
- }
47
- op = body.call(thisArg, _);
48
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
- }
51
- };
52
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
53
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
54
27
  };
55
- var _a;
56
28
  Object.defineProperty(exports, "__esModule", { value: true });
57
29
  exports.injectController = exports.verifyMessageHash = exports.split = exports.computeAddress = exports.providers = void 0;
58
- var starknet_1 = require("starknet");
59
- var penpal_1 = require("@cartridge/penpal");
60
- var device_1 = __importDefault(require("./device"));
61
- var types_1 = require("./types");
62
- exports.providers = (_a = {},
63
- _a[starknet_1.constants.StarknetChainId.TESTNET] = new starknet_1.RpcProvider({
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.RpcProvider({
64
37
  nodeUrl: "https://starknet-goerli.cartridge.gg/rpc/v0.2",
65
38
  }),
66
- _a[starknet_1.constants.StarknetChainId.TESTNET2] = new starknet_1.RpcProvider({
39
+ [starknet_1.constants.StarknetChainId.TESTNET2]: new starknet_1.RpcProvider({
67
40
  nodeUrl: "https://starknet-goerli2.cartridge.gg/rpc/v0.2",
68
41
  }),
69
- _a[starknet_1.constants.StarknetChainId.MAINNET] = new starknet_1.RpcProvider({
42
+ [starknet_1.constants.StarknetChainId.MAINNET]: new starknet_1.RpcProvider({
70
43
  nodeUrl: "https://starknet.cartridge.gg/rpc/v0.2",
71
44
  }),
72
- _a);
73
- var Controller = /** @class */ (function () {
74
- function Controller(policies, options) {
75
- var _this = this;
45
+ };
46
+ class Controller {
47
+ constructor(policies, options) {
76
48
  this.policies = [];
77
49
  this.url = "https://x.cartridge.gg";
78
50
  this.chainId = starknet_1.constants.StarknetChainId.TESTNET;
@@ -85,270 +57,168 @@ var Controller = /** @class */ (function () {
85
57
  if (typeof document === "undefined") {
86
58
  return;
87
59
  }
88
- this.modal = this.createModal();
60
+ this.modal = (0, modal_1.createModal)(this.url, () => {
61
+ var _a;
62
+ (_a = this.keychain) === null || _a === void 0 ? void 0 : _a.reset();
63
+ });
89
64
  if (document.readyState === "complete" ||
90
65
  document.readyState === "interactive") {
91
66
  document.body.appendChild(this.modal.element);
92
67
  }
93
68
  else {
94
- document.addEventListener("DOMContentLoaded", function () {
95
- document.body.appendChild(_this.modal.element);
69
+ document.addEventListener("DOMContentLoaded", () => {
70
+ document.body.appendChild(this.modal.element);
96
71
  });
97
72
  }
98
73
  this.connection = (0, penpal_1.connectToChild)({
99
74
  iframe: this.modal.element.children[0],
100
75
  });
101
76
  this.connection.promise
102
- .then(function (keychain) { return (_this.keychain = keychain); })
103
- .then(function () { return _this.probe(); });
77
+ .then((keychain) => (this.keychain = keychain))
78
+ .then(() => this.probe());
104
79
  }
105
- Object.defineProperty(Controller.prototype, "account", {
106
- get: function () {
107
- if (!this.accounts) {
108
- return;
109
- }
110
- return this.accounts[this.chainId];
111
- },
112
- enumerable: false,
113
- configurable: true
114
- });
115
- Controller.prototype.ready = function () {
80
+ get account() {
81
+ if (!this.accounts) {
82
+ return;
83
+ }
84
+ return this.accounts[this.chainId];
85
+ }
86
+ ready() {
116
87
  var _a;
117
- return __awaiter(this, void 0, void 0, function () {
118
- var _this = this;
119
- return __generator(this, function (_b) {
120
- return [2 /*return*/, (_a = this.connection) === null || _a === void 0 ? void 0 : _a.promise.then(function () { return _this.probe(); }).then(function (res) { return !!res; }, function () { return false; })];
121
- });
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ return (_a = this.connection) === null || _a === void 0 ? void 0 : _a.promise.then(() => this.probe()).then((res) => !!res, () => false);
122
90
  });
123
- };
124
- Controller.prototype.probe = function () {
125
- return __awaiter(this, void 0, void 0, function () {
126
- var res, address, e_1;
127
- var _a;
128
- return __generator(this, function (_b) {
129
- switch (_b.label) {
130
- case 0:
131
- if (!this.keychain || !this.modal) {
132
- console.error("not ready for connect");
133
- return [2 /*return*/, null];
134
- }
135
- _b.label = 1;
136
- case 1:
137
- _b.trys.push([1, 3, , 4]);
138
- return [4 /*yield*/, this.keychain.probe()];
139
- case 2:
140
- res = _b.sent();
141
- if (res.code !== types_1.ResponseCodes.SUCCESS) {
142
- return [2 /*return*/];
143
- }
144
- address = res.address;
145
- this.accounts = (_a = {},
146
- _a[starknet_1.constants.StarknetChainId.MAINNET] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], address, this.keychain, this.modal),
147
- _a[starknet_1.constants.StarknetChainId.TESTNET] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], address, this.keychain, this.modal),
148
- _a[starknet_1.constants.StarknetChainId.TESTNET2] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET2], address, this.keychain, this.modal),
149
- _a);
150
- return [3 /*break*/, 4];
151
- case 3:
152
- e_1 = _b.sent();
153
- console.error(e_1);
154
- return [2 /*return*/];
155
- case 4: return [2 /*return*/, !!this.accounts[this.chainId]];
91
+ }
92
+ probe() {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ if (!this.keychain || !this.modal) {
95
+ console.error("not ready for connect");
96
+ return null;
97
+ }
98
+ try {
99
+ const res = yield this.keychain.probe();
100
+ if (res.code !== types_1.ResponseCodes.SUCCESS) {
101
+ return;
156
102
  }
157
- });
103
+ const { address } = res;
104
+ this.accounts = {
105
+ [starknet_1.constants.StarknetChainId.MAINNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], address, this.keychain, this.modal),
106
+ [starknet_1.constants.StarknetChainId.TESTNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], address, this.keychain, this.modal),
107
+ [starknet_1.constants.StarknetChainId.TESTNET2]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET2], address, this.keychain, this.modal),
108
+ };
109
+ }
110
+ catch (e) {
111
+ console.error(e);
112
+ return;
113
+ }
114
+ return !!this.accounts[this.chainId];
158
115
  });
159
- };
160
- Controller.prototype.switchChain = function (chainId) {
161
- return __awaiter(this, void 0, void 0, function () {
162
- return __generator(this, function (_a) {
163
- if (this.chainId === chainId) {
164
- return [2 /*return*/];
165
- }
166
- this.chainId = chainId;
167
- return [2 /*return*/];
168
- });
116
+ }
117
+ switchChain(chainId) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ if (this.chainId === chainId) {
120
+ return;
121
+ }
122
+ this.chainId = chainId;
169
123
  });
170
- };
124
+ }
171
125
  // Register a new device key.
172
- Controller.prototype.register = function (username, credentialId, credential) {
173
- return __awaiter(this, void 0, void 0, function () {
174
- return __generator(this, function (_a) {
175
- switch (_a.label) {
176
- case 0:
177
- if (!this.keychain) {
178
- console.error("not ready for connect");
179
- return [2 /*return*/, null];
180
- }
181
- return [4 /*yield*/, this.keychain.register(username, credentialId, credential)];
182
- case 1: return [2 /*return*/, _a.sent()];
183
- }
184
- });
126
+ register(username, credentialId, credential) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ if (!this.keychain) {
129
+ console.error("not ready for connect");
130
+ return null;
131
+ }
132
+ return yield this.keychain.register(username, credentialId, credential);
185
133
  });
186
- };
187
- Controller.prototype.login = function (address, credentialId, options) {
188
- return __awaiter(this, void 0, void 0, function () {
189
- return __generator(this, function (_a) {
190
- if (!this.keychain) {
191
- console.error("not ready for connect");
192
- return [2 /*return*/, null];
193
- }
194
- return [2 /*return*/, this.keychain.login(address, credentialId, options)];
195
- });
134
+ }
135
+ login(address, credentialId, options) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ if (!this.keychain) {
138
+ console.error("not ready for connect");
139
+ return null;
140
+ }
141
+ return this.keychain.login(address, credentialId, options);
196
142
  });
197
- };
198
- Controller.prototype.provision = function (address, credentialId) {
199
- return __awaiter(this, void 0, void 0, function () {
200
- return __generator(this, function (_a) {
201
- if (!this.keychain) {
202
- console.error("not ready for connect");
203
- return [2 /*return*/, null];
204
- }
205
- return [2 /*return*/, this.keychain.provision(address, credentialId)];
206
- });
143
+ }
144
+ provision(address, credentialId) {
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ if (!this.keychain) {
147
+ console.error("not ready for connect");
148
+ return null;
149
+ }
150
+ return this.keychain.provision(address, credentialId);
207
151
  });
208
- };
209
- Controller.prototype.connect = function () {
210
- return __awaiter(this, void 0, void 0, function () {
211
- var ok, response, e_2;
212
- var _a;
213
- return __generator(this, function (_b) {
214
- switch (_b.label) {
215
- case 0:
216
- if (this.accounts) {
217
- return [2 /*return*/, this.accounts[this.chainId]];
218
- }
219
- if (!this.keychain || !this.modal) {
220
- console.error("not ready for connect");
221
- return [2 /*return*/];
222
- }
223
- if (!!!document.hasStorageAccess) return [3 /*break*/, 3];
224
- return [4 /*yield*/, document.hasStorageAccess()];
225
- case 1:
226
- ok = _b.sent();
227
- if (!!ok) return [3 /*break*/, 3];
228
- return [4 /*yield*/, document.requestStorageAccess()];
229
- case 2:
230
- _b.sent();
231
- _b.label = 3;
232
- case 3:
233
- this.modal.open();
234
- _b.label = 4;
235
- case 4:
236
- _b.trys.push([4, 6, 7, 8]);
237
- return [4 /*yield*/, this.keychain.connect(this.policies)];
238
- case 5:
239
- response = _b.sent();
240
- if (response.code !== types_1.ResponseCodes.SUCCESS) {
241
- throw new Error(response.message);
242
- }
243
- response = response;
244
- this.accounts = (_a = {},
245
- _a[starknet_1.constants.StarknetChainId.MAINNET] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], response.address, this.keychain, this.modal),
246
- _a[starknet_1.constants.StarknetChainId.TESTNET] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], response.address, this.keychain, this.modal),
247
- _a[starknet_1.constants.StarknetChainId.TESTNET2] = new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET2], response.address, this.keychain, this.modal),
248
- _a);
249
- return [2 /*return*/, this.accounts[this.chainId]];
250
- case 6:
251
- e_2 = _b.sent();
252
- console.log(e_2);
253
- return [3 /*break*/, 8];
254
- case 7:
255
- this.modal.close();
256
- return [7 /*endfinally*/];
257
- case 8: return [2 /*return*/];
152
+ }
153
+ connect(starterPackId) {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ if (this.accounts) {
156
+ return this.accounts[this.chainId];
157
+ }
158
+ if (!this.keychain || !this.modal) {
159
+ console.error("not ready for connect");
160
+ return;
161
+ }
162
+ if (!!document.hasStorageAccess) {
163
+ const ok = yield document.hasStorageAccess();
164
+ if (!ok) {
165
+ yield document.requestStorageAccess();
258
166
  }
259
- });
167
+ }
168
+ this.modal.open();
169
+ try {
170
+ let response = yield this.keychain.connect(this.policies, starterPackId);
171
+ if (response.code !== types_1.ResponseCodes.SUCCESS) {
172
+ throw new Error(response.message);
173
+ }
174
+ response = response;
175
+ this.accounts = {
176
+ [starknet_1.constants.StarknetChainId.MAINNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.MAINNET], response.address, this.keychain, this.modal),
177
+ [starknet_1.constants.StarknetChainId.TESTNET]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET], response.address, this.keychain, this.modal),
178
+ [starknet_1.constants.StarknetChainId.TESTNET2]: new device_1.default(exports.providers[starknet_1.constants.StarknetChainId.TESTNET2], response.address, this.keychain, this.modal),
179
+ };
180
+ return this.accounts[this.chainId];
181
+ }
182
+ catch (e) {
183
+ console.log(e);
184
+ }
185
+ finally {
186
+ this.modal.close();
187
+ }
260
188
  });
261
- };
262
- Controller.prototype.disconnect = function () {
263
- return __awaiter(this, void 0, void 0, function () {
264
- var ok;
265
- return __generator(this, function (_a) {
266
- switch (_a.label) {
267
- case 0:
268
- if (!this.keychain) {
269
- console.error("not ready for disconnect");
270
- return [2 /*return*/, null];
271
- }
272
- if (!!!document.hasStorageAccess) return [3 /*break*/, 3];
273
- return [4 /*yield*/, document.hasStorageAccess()];
274
- case 1:
275
- ok = _a.sent();
276
- if (!!ok) return [3 /*break*/, 3];
277
- return [4 /*yield*/, document.requestStorageAccess()];
278
- case 2:
279
- _a.sent();
280
- _a.label = 3;
281
- case 3: return [4 /*yield*/, this.keychain.disconnect()];
282
- case 4: return [2 /*return*/, _a.sent()];
189
+ }
190
+ disconnect() {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ if (!this.keychain) {
193
+ console.error("not ready for disconnect");
194
+ return null;
195
+ }
196
+ if (!!document.hasStorageAccess) {
197
+ const ok = yield document.hasStorageAccess();
198
+ if (!ok) {
199
+ yield document.requestStorageAccess();
283
200
  }
284
- });
201
+ }
202
+ return yield this.keychain.disconnect();
285
203
  });
286
- };
287
- Controller.prototype.revoke = function (origin, policy) {
204
+ }
205
+ revoke(origin, policy) {
288
206
  if (!this.keychain) {
289
207
  console.error("not ready for disconnect");
290
208
  return null;
291
209
  }
292
210
  return this.keychain.revoke(origin);
293
- };
294
- Controller.prototype.approvals = function (origin) {
295
- return __awaiter(this, void 0, void 0, function () {
296
- return __generator(this, function (_a) {
297
- if (!this.keychain) {
298
- console.error("not ready for disconnect");
299
- return [2 /*return*/];
300
- }
301
- return [2 /*return*/, this.keychain.approvals(origin)];
302
- });
211
+ }
212
+ approvals(origin) {
213
+ return __awaiter(this, void 0, void 0, function* () {
214
+ if (!this.keychain) {
215
+ console.error("not ready for disconnect");
216
+ return;
217
+ }
218
+ return this.keychain.approvals(origin);
303
219
  });
304
- };
305
- Controller.prototype.createModal = function () {
306
- var _this = this;
307
- var iframe = document.createElement("iframe");
308
- iframe.src = this.url;
309
- iframe.id = "cartridge-modal";
310
- iframe.style.minHeight = "600px";
311
- iframe.style.minWidth = "400px";
312
- iframe.style.border = "none";
313
- iframe.style.borderRadius = "8px";
314
- iframe.sandbox.add("allow-forms");
315
- iframe.sandbox.add("allow-popups");
316
- iframe.sandbox.add("allow-scripts");
317
- iframe.sandbox.add("allow-same-origin");
318
- iframe.allow = "publickey-credentials-get *";
319
- if (!!document.hasStorageAccess) {
320
- iframe.sandbox.add("allow-storage-access-by-user-activation");
321
- }
322
- var container = document.createElement("div");
323
- container.style.position = "fixed";
324
- container.style.height = "100%";
325
- container.style.width = "100%";
326
- container.style.top = "0";
327
- container.style.left = "0";
328
- container.style.zIndex = "10000";
329
- container.style.backgroundColor = "rgba(0,0,0,0.5)";
330
- container.style.display = "flex";
331
- container.style.alignItems = "center";
332
- container.style.justifyContent = "center";
333
- container.style.display = "none";
334
- container.appendChild(iframe);
335
- var open = function () {
336
- container.style.display = "flex";
337
- };
338
- var close = function () {
339
- var _a;
340
- (_a = _this.keychain) === null || _a === void 0 ? void 0 : _a.reset();
341
- container.style.display = "none";
342
- };
343
- container.onclick = function () { return close(); };
344
- return {
345
- element: container,
346
- open: open,
347
- close: close,
348
- };
349
- };
350
- return Controller;
351
- }());
220
+ }
221
+ }
352
222
  __exportStar(require("./types"), exports);
353
223
  __exportStar(require("./errors"), exports);
354
224
  var utils_1 = require("./utils");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}