@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/inject.js CHANGED
@@ -31,40 +31,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
32
  });
33
33
  };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (_) try {
41
- 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;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
34
  Object.defineProperty(exports, "__esModule", { value: true });
62
35
  exports.injectController = exports.InjectedController = void 0;
63
- var starknet_1 = require("starknet");
64
- var _1 = __importStar(require("."));
65
- var InjectedController = /** @class */ (function () {
66
- function InjectedController(policies, options) {
67
- var _this = this;
36
+ const starknet_1 = require("starknet");
37
+ const _1 = __importStar(require("."));
38
+ class InjectedController {
39
+ constructor(policies, options) {
68
40
  this.id = "Cartridge";
69
41
  this.name = "Cartridge";
70
42
  this.version = "0.0.1";
@@ -72,76 +44,63 @@ var InjectedController = /** @class */ (function () {
72
44
  this.provider = _1.providers[starknet_1.constants.StarknetChainId.MAINNET];
73
45
  this.isConnected = false;
74
46
  this.subscriptions = [];
75
- this.request = function (call) {
47
+ this.request = (call) => {
76
48
  throw Error("Not implemented");
77
49
  };
78
- this.enable = function () { return __awaiter(_this, void 0, void 0, function () {
79
- var _a;
80
- return __generator(this, function (_b) {
81
- switch (_b.label) {
82
- case 0:
83
- _a = this;
84
- return [4 /*yield*/, this.controller.connect()];
85
- case 1:
86
- _a.account = _b.sent();
87
- if (!this.account) {
88
- return [2 /*return*/, []];
89
- }
90
- this.provider = _1.providers[this.controller.chainId];
91
- this.isConnected = true;
92
- return [2 /*return*/, [this.account.address]];
93
- }
94
- });
95
- }); };
96
- this.isPreauthorized = function () { return __awaiter(_this, void 0, void 0, function () {
97
- var _this = this;
98
- return __generator(this, function (_a) {
99
- return [2 /*return*/, this.controller
100
- .ready()
101
- .then(function () {
102
- return _this.controller.probe();
103
- })
104
- .then(function (connected) { return !!connected; })];
105
- });
106
- }); };
107
- this.on = function (type, handler) {
50
+ this.enable = () => __awaiter(this, void 0, void 0, function* () {
51
+ this.account = yield this.controller.connect();
52
+ if (!this.account) {
53
+ return [];
54
+ }
55
+ this.provider = _1.providers[this.controller.chainId];
56
+ this.isConnected = true;
57
+ return [this.account.address];
58
+ });
59
+ this.isPreauthorized = () => __awaiter(this, void 0, void 0, function* () {
60
+ return this.controller
61
+ .ready()
62
+ .then(() => {
63
+ return this.controller.probe();
64
+ })
65
+ .then((connected) => !!connected);
66
+ });
67
+ this.on = (type, handler) => {
108
68
  if (type === "accountsChanged") {
109
- _this.subscriptions.push({
110
- type: type,
111
- handler: handler,
69
+ this.subscriptions.push({
70
+ type,
71
+ handler,
112
72
  });
113
73
  }
114
74
  else if (type === "networkChanged") {
115
- _this.subscriptions.push({
116
- type: type,
117
- handler: handler,
75
+ this.subscriptions.push({
76
+ type,
77
+ handler,
118
78
  });
119
79
  }
120
80
  else {
121
- throw new Error("Unknwown event: ".concat(type));
81
+ throw new Error(`Unknwown event: ${type}`);
122
82
  }
123
83
  };
124
- this.off = function (type, handler) {
84
+ this.off = (type, handler) => {
125
85
  if (type !== "accountsChanged" && type !== "networkChanged") {
126
- throw new Error("Unknwown event: ".concat(type));
86
+ throw new Error(`Unknwown event: ${type}`);
127
87
  }
128
- var idx = _this.subscriptions.findIndex(function (userEvent) { return userEvent.type === type && userEvent.handler === handler; });
88
+ const idx = this.subscriptions.findIndex((userEvent) => userEvent.type === type && userEvent.handler === handler);
129
89
  if (idx >= 0) {
130
- _this.subscriptions.splice(idx, 1);
90
+ this.subscriptions.splice(idx, 1);
131
91
  }
132
92
  };
133
93
  this.controller = new _1.default(policies, options);
134
- this.controller.ready().then(function (isConnected) {
135
- _this.isConnected = !!isConnected;
136
- if (_this.controller.account) {
137
- _this.account = _this.controller.account;
138
- _this.provider = _1.providers[_this.controller.chainId];
139
- _this.selectedAddress = _this.account.address;
94
+ this.controller.ready().then(isConnected => {
95
+ this.isConnected = !!isConnected;
96
+ if (this.controller.account) {
97
+ this.account = this.controller.account;
98
+ this.provider = _1.providers[this.controller.chainId];
99
+ this.selectedAddress = this.account.address;
140
100
  }
141
101
  });
142
102
  }
143
- return InjectedController;
144
- }());
103
+ }
145
104
  exports.InjectedController = InjectedController;
146
105
  function injectController(policies, options) {
147
106
  window.starknet_cartridge = new InjectedController(policies, options);
package/lib/inject.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
package/lib/modal.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export declare const createModal: (src: string, onClose?: () => void) => {
2
+ element: HTMLDivElement;
3
+ open: () => void;
4
+ close: () => void;
5
+ };
package/lib/modal.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createModal = void 0;
4
+ const createModal = (src, onClose) => {
5
+ const iframe = document.createElement("iframe");
6
+ iframe.src = src;
7
+ iframe.id = "cartridge-modal";
8
+ iframe.style.border = "none";
9
+ iframe.sandbox.add("allow-forms");
10
+ iframe.sandbox.add("allow-popups");
11
+ iframe.sandbox.add("allow-scripts");
12
+ iframe.sandbox.add("allow-same-origin");
13
+ iframe.allow = "publickey-credentials-get *";
14
+ if (!!document.hasStorageAccess) {
15
+ iframe.sandbox.add("allow-storage-access-by-user-activation");
16
+ }
17
+ const container = document.createElement("div");
18
+ container.style.position = "fixed";
19
+ container.style.height = "100%";
20
+ container.style.width = "100%";
21
+ container.style.top = "0";
22
+ container.style.left = "0";
23
+ container.style.zIndex = "10000";
24
+ container.style.backgroundColor = "rgba(0,0,0,0.5)";
25
+ container.style.display = "flex";
26
+ container.style.alignItems = "center";
27
+ container.style.justifyContent = "center";
28
+ container.style.display = "none";
29
+ container.appendChild(iframe);
30
+ const open = () => {
31
+ container.style.display = "flex";
32
+ };
33
+ const close = () => {
34
+ if (onClose) {
35
+ onClose();
36
+ }
37
+ container.style.display = "none";
38
+ };
39
+ container.onclick = () => close();
40
+ resize(iframe);
41
+ window.addEventListener("resize", () => resize(iframe));
42
+ return {
43
+ element: container,
44
+ open,
45
+ close,
46
+ };
47
+ };
48
+ exports.createModal = createModal;
49
+ const resize = (el) => {
50
+ if (window.innerWidth < 600) {
51
+ el.style.height = "100%";
52
+ el.style.width = "100%";
53
+ el.style.borderRadius = "0";
54
+ return;
55
+ }
56
+ el.style.height = "600px";
57
+ el.style.width = "400px";
58
+ el.style.borderRadius = "8px";
59
+ };
60
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../src/modal.ts"],"names":[],"mappings":"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"}
package/lib/signer.js CHANGED
@@ -8,37 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
11
  Object.defineProperty(exports, "__esModule", { value: true });
39
12
  exports.Signer = void 0;
40
- var Signer = /** @class */ (function () {
41
- function Signer(keychain, modal) {
13
+ class Signer {
14
+ constructor(keychain, modal) {
42
15
  this.keychain = keychain;
43
16
  this.modal = modal;
44
17
  }
@@ -47,9 +20,9 @@ var Signer = /** @class */ (function () {
47
20
  *
48
21
  * @returns public key of signer as hex string with 0x prefix
49
22
  */
50
- Signer.prototype.getPubKey = function () {
23
+ getPubKey() {
51
24
  return Promise.resolve("");
52
- };
25
+ }
53
26
  /**
54
27
  * Sign an JSON object for off-chain usage with the starknet private key and return the signature
55
28
  * This adds a message prefix so it cant be interchanged with transactions
@@ -59,23 +32,14 @@ var Signer = /** @class */ (function () {
59
32
  * @returns the signature of the JSON object
60
33
  * @throws {Error} if the JSON object is not a valid JSON
61
34
  */
62
- Signer.prototype.signMessage = function (typedData, account) {
63
- return __awaiter(this, void 0, void 0, function () {
64
- var res;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0:
68
- this.modal.open();
69
- return [4 /*yield*/, this.keychain.signMessage(typedData, account)];
70
- case 1:
71
- res = _a.sent();
72
- this.modal.close();
73
- return [2 /*return*/, res];
74
- }
75
- });
35
+ signMessage(typedData, account) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ this.modal.open();
38
+ const res = yield this.keychain.signMessage(typedData, account);
39
+ this.modal.close();
40
+ return res;
76
41
  });
77
- };
78
- return Signer;
79
- }());
42
+ }
43
+ }
80
44
  exports.Signer = Signer;
81
45
  //# sourceMappingURL=signer.js.map
package/lib/signer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;IAGE,gBAAY,QAAsC,EAAE,KAAY;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,0BAAS,GAAhB;QACE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACU,4BAAW,GAAxB,UACE,SAA8B,EAC9B,OAAe;;;;;;wBAEf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACN,qBAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA;;wBAAzD,GAAG,GAAG,SAAmD;wBAC/D,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;wBACnB,sBAAO,GAAgB,EAAC;;;;KACzB;IACH,aAAC;AAAD,CAAC,AAnCD,IAmCC;AAnCY,wBAAM"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,MAAa,MAAM;IAGjB,YAAY,QAAsC,EAAE,KAAY;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACU,WAAW,CACtB,SAA8B,EAC9B,OAAe;;YAEf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,GAAgB,CAAC;QAC1B,CAAC;KAAA;CACF;AAnCD,wBAmCC"}
package/lib/types.d.ts CHANGED
@@ -45,7 +45,7 @@ export declare type ProbeReply = {
45
45
  };
46
46
  export interface Keychain {
47
47
  probe(): Promise<ProbeReply | Error>;
48
- connect(policies: Policy[]): Promise<ConnectReply | Error>;
48
+ connect(policies: Policy[], starterPackId?: string): Promise<ConnectReply | Error>;
49
49
  disconnect(): void;
50
50
  reset(): void;
51
51
  revoke(origin: string): void;
package/lib/utils.d.ts CHANGED
@@ -1,9 +1,6 @@
1
1
  import { Policy } from "./types";
2
- import { GraphQLClient } from "graphql-request";
3
2
  import { number, Signature, Provider } from "starknet";
4
3
  import BN from "bn.js";
5
- export declare const ENDPOINT: string;
6
- export declare const client: GraphQLClient;
7
4
  export declare function diff(a: Policy[], b: Policy[]): Policy[];
8
5
  export declare const computeAddress: (username: string, { x0, x1, x2 }: {
9
6
  x0: BN;
@@ -14,7 +11,8 @@ export declare const computeAddress: (username: string, { x0, x1, x2 }: {
14
11
  y1: BN;
15
12
  y2: BN;
16
13
  }, deviceKey: string) => string;
17
- export declare const verifyMessageHash: (provider: Provider, address: string, messageHash: number.BigNumberish, signature: Signature) => Promise<boolean | undefined>;
14
+ export declare const verifyMessageHash: (provider: Provider, address: string, messageHash: number.BigNumberish, signature: Signature) => Promise<boolean>;
15
+ export declare const getAccounts: (addresses: string[]) => Promise<any>;
18
16
  export declare function split(n: BN): {
19
17
  x: BN;
20
18
  y: BN;
package/lib/utils.js CHANGED
@@ -8,156 +8,119 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
- if (ar || !(i in from)) {
57
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
- ar[i] = from[i];
59
- }
60
- }
61
- return to.concat(ar || Array.prototype.slice.call(from));
62
- };
63
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
64
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
65
13
  };
66
14
  Object.defineProperty(exports, "__esModule", { value: true });
67
- exports.split = exports.verifyMessageHash = exports.computeAddress = exports.diff = exports.client = exports.ENDPOINT = void 0;
68
- var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
69
- var graphql_request_1 = require("graphql-request");
70
- var starknet_1 = require("starknet");
71
- var constants_1 = require("./constants");
72
- var graphql_1 = require("./generated/graphql");
73
- var cbor_x_1 = require("cbor-x");
74
- exports.ENDPOINT = process.env.NEXT_PUBLIC_API_URL;
75
- exports.client = new graphql_request_1.GraphQLClient(exports.ENDPOINT, { credentials: "include" });
15
+ exports.split = exports.getAccounts = exports.verifyMessageHash = exports.computeAddress = exports.diff = void 0;
16
+ const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
17
+ const starknet_1 = require("starknet");
18
+ const constants_1 = require("./constants");
19
+ const cbor_x_1 = require("cbor-x");
76
20
  function diff(a, b) {
77
- return a.reduce(function (prev, policyA) {
78
- return b.some(function (policyB) { return (0, fast_deep_equal_1.default)(policyB, policyA); }) ? prev : __spreadArray(__spreadArray([], __read(prev), false), [policyA], false);
79
- }, []);
21
+ return a.reduce((prev, policyA) => b.some((policyB) => (0, fast_deep_equal_1.default)(policyB, policyA)) ? prev : [...prev, policyA], []);
80
22
  }
81
23
  exports.diff = diff;
82
- var computeAddress = function (username, _a, _b, deviceKey) {
83
- var x0 = _a.x0, x1 = _a.x1, x2 = _a.x2;
84
- var y0 = _b.y0, y1 = _b.y1, y2 = _b.y2;
85
- return starknet_1.hash.calculateContractAddressFromHash(starknet_1.shortString.encodeShortString(username), starknet_1.number.toBN(constants_1.PROXY_CLASS), [
86
- starknet_1.number.toBN(constants_1.CLASS_HASHES["0.0.1"].account),
87
- starknet_1.hash.getSelectorFromName("initialize"),
88
- "9",
89
- starknet_1.number.toBN(constants_1.CLASS_HASHES["0.0.1"].controller),
90
- "7",
91
- x0,
92
- x1,
93
- x2,
94
- y0,
95
- y1,
96
- y2,
97
- starknet_1.number.toBN(deviceKey),
98
- ], "0");
99
- };
24
+ const computeAddress = (username, { x0, x1, x2 }, { y0, y1, y2 }, deviceKey) => starknet_1.hash.calculateContractAddressFromHash(starknet_1.shortString.encodeShortString(username), starknet_1.number.toBN(constants_1.PROXY_CLASS), [
25
+ starknet_1.number.toBN(constants_1.CLASS_HASHES["0.0.1"].account),
26
+ starknet_1.hash.getSelectorFromName("initialize"),
27
+ "9",
28
+ starknet_1.number.toBN(constants_1.CLASS_HASHES["0.0.1"].controller),
29
+ "7",
30
+ x0,
31
+ x1,
32
+ x2,
33
+ y0,
34
+ y1,
35
+ y2,
36
+ starknet_1.number.toBN(deviceKey),
37
+ ], "0");
100
38
  exports.computeAddress = computeAddress;
101
- var verifyMessageHash = function (provider, address, messageHash, signature) { return __awaiter(void 0, void 0, void 0, function () {
102
- var isDeployed, res, isRegistered, keyPair, res, account, pubKeyCbor, x, y, _a, x0, x1, x2, _b, y0, y1, y2, computedAddress, keyPair;
103
- var _c, _d, _e;
104
- return __generator(this, function (_f) {
105
- switch (_f.label) {
106
- case 0:
107
- isDeployed = !!provider.getClassHashAt(address, "latest");
108
- if (!isDeployed) return [3 /*break*/, 2];
109
- return [4 /*yield*/, provider.callContract({
110
- contractAddress: address,
111
- entrypoint: "executeOnPlugin",
112
- calldata: [
113
- constants_1.CLASS_HASHES["0.0.1"].controller,
114
- starknet_1.hash.getSelector("is_public_key"),
115
- "0x1",
116
- signature[0],
117
- ],
118
- })];
119
- case 1:
120
- res = _f.sent();
121
- isRegistered = (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
122
- if (isRegistered) {
123
- keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
124
- return [2 /*return*/, starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature)];
125
- }
126
- else {
127
- // validate register txn and signature
128
- }
129
- return [3 /*break*/, 4];
130
- case 2: return [4 /*yield*/, exports.client.request(graphql_1.AccountDocument, {
131
- address: address,
132
- })];
133
- case 3:
134
- res = _f.sent();
135
- account = (_e = (_d = (_c = res === null || res === void 0 ? void 0 : res.accounts) === null || _c === void 0 ? void 0 : _c.edges) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.node;
136
- if (!account) {
137
- return [2 /*return*/, false];
138
- }
139
- pubKeyCbor = (0, cbor_x_1.decode)(starknet_1.number.toBN(account.credential.publicKey).toBuffer())[0];
140
- x = starknet_1.number.toBN("0x" + pubKeyCbor[-2].toString("hex"));
141
- y = starknet_1.number.toBN("0x" + pubKeyCbor[-3].toString("hex"));
142
- _a = split(x), x0 = _a.x, x1 = _a.y, x2 = _a.z;
143
- _b = split(y), y0 = _b.x, y1 = _b.y, y2 = _b.z;
144
- computedAddress = (0, exports.computeAddress)(account.id, { x0: x0, x1: x1, x2: x2 }, { y0: y0, y1: y1, y2: y2 }, signature[0]);
145
- if (computedAddress !== address) {
146
- throw new Error("invalid public key");
147
- }
148
- keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
149
- return [2 /*return*/, starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature)];
150
- case 4: return [2 /*return*/];
39
+ const verifyMessageHash = (provider, address, messageHash, signature) => __awaiter(void 0, void 0, void 0, function* () {
40
+ var _a, _b, _c;
41
+ const isDeployed = !!provider.getClassHashAt(address, "latest");
42
+ if (isDeployed) {
43
+ const res = yield provider.callContract({
44
+ contractAddress: address,
45
+ entrypoint: "executeOnPlugin",
46
+ calldata: [
47
+ constants_1.CLASS_HASHES["0.0.1"].controller,
48
+ starknet_1.hash.getSelector("is_public_key"),
49
+ "0x1",
50
+ signature[0],
51
+ ],
52
+ });
53
+ const isRegistered = (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
54
+ if (isRegistered) {
55
+ const keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
56
+ return starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature);
151
57
  }
152
- });
153
- }); };
58
+ else {
59
+ const res = yield provider.callContract({
60
+ contractAddress: address,
61
+ entrypoint: "isValidSignature",
62
+ calldata: [messageHash, signature.length, ...signature],
63
+ }, "latest");
64
+ return (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
65
+ }
66
+ }
67
+ else {
68
+ const res = yield (yield fetch("https://api.cartridge.gg/query", {
69
+ "headers": {
70
+ "content-type": "application/json",
71
+ },
72
+ "body": `{\"query\":\"query Account($address: String!) {\\n accounts(where: { contractAddress: $address }) {\\n edges {\\n node {\\n id\\n credential {\\n id\\n publicKey\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":{\"address\":\"${(0, starknet_1.addAddressPadding)(address)}\"},\"operationName\":\"Account\"}`,
73
+ "method": "POST",
74
+ "mode": "cors",
75
+ "credentials": "omit",
76
+ })).json();
77
+ const account = (_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.accounts) === null || _a === void 0 ? void 0 : _a.edges) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.node;
78
+ if (!account) {
79
+ return false;
80
+ }
81
+ const pubKeyCbor = (0, cbor_x_1.decode)(starknet_1.number.toBN(account.credential.publicKey).toBuffer())[0];
82
+ const x = starknet_1.number.toBN("0x" + pubKeyCbor[-2].toString("hex"));
83
+ const y = starknet_1.number.toBN("0x" + pubKeyCbor[-3].toString("hex"));
84
+ const { x: x0, y: x1, z: x2 } = split(x);
85
+ const { x: y0, y: y1, z: y2 } = split(y);
86
+ const computedAddress = (0, exports.computeAddress)(account.id, { x0, x1, x2 }, { y0, y1, y2 }, signature[0]);
87
+ if (computedAddress !== address) {
88
+ throw new Error("invalid public key");
89
+ }
90
+ const keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
91
+ return starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature);
92
+ }
93
+ });
154
94
  exports.verifyMessageHash = verifyMessageHash;
155
- var BASE = starknet_1.number.toBN(2).pow(starknet_1.number.toBN(86));
95
+ const getAccounts = (addresses) => __awaiter(void 0, void 0, void 0, function* () {
96
+ const query = addresses.map(addr => ({
97
+ contractAddress: (0, starknet_1.addAddressPadding)(addr),
98
+ }));
99
+ const res = yield (yield fetch("https://api.cartridge.gg/query", {
100
+ "headers": {
101
+ "content-type": "application/json",
102
+ },
103
+ "body": `{\"query\":\"query AccountInfo($addresses: [AccountWhereInput!]!) {\\n accounts(where: { or: $addresses}) {\\n edges {\\n node {\\n id\\n contractAddress\\n }\\n }\\n }\\n}\",\"variables\":{\"addresses\":${JSON.stringify(query)}},\"operationName\":\"AccountInfo\"}`,
104
+ "method": "POST",
105
+ "mode": "cors",
106
+ "credentials": "omit"
107
+ })).json();
108
+ if (res.errors) {
109
+ throw new Error(res.errors[0].message);
110
+ }
111
+ return res.accounts.edges.map((edge) => ({
112
+ id: edge.node.id,
113
+ name: edge.node.id,
114
+ profile_uri: `https://cartridge.gg/profile/${edge.node.contractAddress}`,
115
+ }));
116
+ });
117
+ exports.getAccounts = getAccounts;
118
+ const BASE = starknet_1.number.toBN(2).pow(starknet_1.number.toBN(86));
156
119
  function split(n) {
157
- var x = n.mod(BASE);
158
- var y = n.div(BASE).mod(BASE);
159
- var z = n.div(BASE).div(BASE);
160
- return { x: x, y: y, z: z };
120
+ const x = n.mod(BASE);
121
+ const y = n.div(BASE).mod(BASE);
122
+ const z = n.div(BASE).div(BASE);
123
+ return { x, y, z };
161
124
  }
162
125
  exports.split = split;
163
126
  //# sourceMappingURL=utils.js.map