@cartridge/controller 0.3.1 → 0.3.2

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.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { AccountInterface, constants, number, RpcProvider, Signature } from "starknet";
2
+ import { AccountInterface, constants, RpcProvider } from "starknet";
3
3
  import { AsyncMethodReturns } from "@cartridge/penpal";
4
4
  import { Session, Keychain, Policy } from "./types";
5
- import BN from "bn.js";
6
5
  export declare const providers: {
7
6
  "0x534e5f474f45524c49": RpcProvider;
8
7
  "0x534e5f474f45524c4932": RpcProvider;
@@ -44,15 +43,10 @@ declare class Controller {
44
43
  disconnect(): Promise<void | null>;
45
44
  revoke(origin: string, policy: Policy[]): Promise<void> | null;
46
45
  approvals(origin: string): Promise<Session | undefined>;
47
- verifyMessageHash(messageHash: number.BigNumberish, signature: Signature): Promise<boolean | undefined>;
48
46
  private createModal;
49
47
  }
50
- export declare function split(n: BN): {
51
- x: BN;
52
- y: BN;
53
- z: BN;
54
- };
55
48
  export * from "./types";
56
49
  export * from "./errors";
50
+ export { computeAddress, split, verifyMessageHash } from "./utils";
57
51
  export { injectController } from "./inject";
58
52
  export default Controller;
package/lib/index.js CHANGED
@@ -54,15 +54,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  };
55
55
  var _a;
56
56
  Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.injectController = exports.split = exports.providers = void 0;
57
+ exports.injectController = exports.verifyMessageHash = exports.split = exports.computeAddress = exports.providers = void 0;
58
58
  var starknet_1 = require("starknet");
59
59
  var penpal_1 = require("@cartridge/penpal");
60
60
  var device_1 = __importDefault(require("./device"));
61
61
  var types_1 = require("./types");
62
- var utils_1 = require("./utils");
63
- var graphql_1 = require("./generated/graphql");
64
- var cbor_x_1 = require("cbor-x");
65
- var constants_1 = require("@cartridge/controller/src/constants");
66
62
  exports.providers = (_a = {},
67
63
  _a[starknet_1.constants.StarknetChainId.TESTNET] = new starknet_1.RpcProvider({
68
64
  nodeUrl: "https://starknet-goerli.cartridge.gg/rpc/v0.2",
@@ -306,61 +302,6 @@ var Controller = /** @class */ (function () {
306
302
  });
307
303
  });
308
304
  };
309
- Controller.prototype.verifyMessageHash = function (messageHash, signature) {
310
- var _a, _b, _c, _d, _e, _f, _g;
311
- return __awaiter(this, void 0, void 0, function () {
312
- var isDeployed, res, isRegistered, keyPair, res, account, pubKeyCbor, x, y, _h, x0, x1, x2, _j, y0, y1, y2, address, keyPair;
313
- return __generator(this, function (_k) {
314
- switch (_k.label) {
315
- case 0:
316
- isDeployed = !!((_a = this.account) === null || _a === void 0 ? void 0 : _a.getClassHashAt(this.account.address, "latest"));
317
- if (!isDeployed) return [3 /*break*/, 2];
318
- return [4 /*yield*/, ((_b = this.account) === null || _b === void 0 ? void 0 : _b.callContract({
319
- contractAddress: this.account.address,
320
- entrypoint: "executeOnPlugin",
321
- calldata: [
322
- constants_1.CLASS_HASHES["0.0.1"].controller,
323
- starknet_1.hash.getSelector("is_public_key"),
324
- "0x1",
325
- signature[0],
326
- ],
327
- }))];
328
- case 1:
329
- res = _k.sent();
330
- isRegistered = (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
331
- if (isRegistered) {
332
- keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
333
- return [2 /*return*/, starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature)];
334
- }
335
- else {
336
- // validate register txn and signature
337
- }
338
- return [3 /*break*/, 4];
339
- case 2: return [4 /*yield*/, utils_1.client.request(graphql_1.AccountDocument, {
340
- address: (_c = this.account) === null || _c === void 0 ? void 0 : _c.address,
341
- })];
342
- case 3:
343
- res = _k.sent();
344
- account = (_f = (_e = (_d = res === null || res === void 0 ? void 0 : res.accounts) === null || _d === void 0 ? void 0 : _d.edges) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.node;
345
- if (!account) {
346
- return [2 /*return*/, false];
347
- }
348
- pubKeyCbor = (0, cbor_x_1.decode)(starknet_1.number.toBN(account.credential.publicKey).toBuffer())[0];
349
- x = starknet_1.number.toBN("0x" + pubKeyCbor[-2].toString("hex"));
350
- y = starknet_1.number.toBN("0x" + pubKeyCbor[-3].toString("hex"));
351
- _h = split(x), x0 = _h.x, x1 = _h.y, x2 = _h.z;
352
- _j = split(y), y0 = _j.x, y1 = _j.y, y2 = _j.z;
353
- address = (0, utils_1.computeAddress)(account.id, { x0: x0, x1: x1, x2: x2 }, { y0: y0, y1: y1, y2: y2 }, signature[0]);
354
- if (address !== ((_g = this.account) === null || _g === void 0 ? void 0 : _g.address)) {
355
- throw new Error("invalid public key");
356
- }
357
- keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
358
- return [2 /*return*/, starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature)];
359
- case 4: return [2 /*return*/];
360
- }
361
- });
362
- });
363
- };
364
305
  Controller.prototype.createModal = function () {
365
306
  var _this = this;
366
307
  var iframe = document.createElement("iframe");
@@ -408,16 +349,12 @@ var Controller = /** @class */ (function () {
408
349
  };
409
350
  return Controller;
410
351
  }());
411
- var BASE = starknet_1.number.toBN(2).pow(starknet_1.number.toBN(86));
412
- function split(n) {
413
- var x = n.mod(BASE);
414
- var y = n.div(BASE).mod(BASE);
415
- var z = n.div(BASE).div(BASE);
416
- return { x: x, y: y, z: z };
417
- }
418
- exports.split = split;
419
352
  __exportStar(require("./types"), exports);
420
353
  __exportStar(require("./errors"), exports);
354
+ var utils_1 = require("./utils");
355
+ Object.defineProperty(exports, "computeAddress", { enumerable: true, get: function () { return utils_1.computeAddress; } });
356
+ Object.defineProperty(exports, "split", { enumerable: true, get: function () { return utils_1.split; } });
357
+ Object.defineProperty(exports, "verifyMessageHash", { enumerable: true, get: function () { return utils_1.verifyMessageHash; } });
421
358
  var inject_1 = require("./inject");
422
359
  Object.defineProperty(exports, "injectController", { enumerable: true, get: function () { return inject_1.injectController; } });
423
360
  exports.default = Controller;
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAMkB;AAClB,4CAI2B;AAE3B,oDAAqC;AACrC,iCAQiB;AAGJ,QAAA,SAAS;IACpB,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,sBAAW,CAAC;QACnD,OAAO,EAAE,+CAA+C;KACzD,CAAC;IACF,GAAC,oBAAS,CAAC,eAAe,CAAC,QAAQ,IAAG,IAAI,sBAAW,CAAC;QACpD,OAAO,EAAE,gDAAgD;KAC1D,CAAC;IACF,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,sBAAW,CAAC;QACnD,OAAO,EAAE,wCAAwC;KAClD,CAAC;QACF;AAEF;IASE,oBACE,QAAmB,EACnB,OAGC;QALH,iBAuCC;QA7CO,aAAQ,GAAa,EAAE,CAAC;QACxB,QAAG,GAAW,wBAAwB,CAAC;QACxC,YAAO,GAA8B,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC;QAW5E,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;SACxB;QAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,OAAO;SACR;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,IACE,QAAQ,CAAC,UAAU,KAAK,UAAU;YAClC,QAAQ,CAAC,UAAU,KAAK,aAAa,EACrC;YACA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC/C;aAAM;YACL,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;gBAC5C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAI,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,UAAU,GAAG,IAAA,uBAAc,EAAW;YACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAsB;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO;aACpB,IAAI,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAA1B,CAA0B,CAAC;aAC9C,IAAI,CAAC,cAAM,OAAA,KAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAI,+BAAO;aAAX;YACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO;aACR;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;;;OAAA;IAEK,0BAAK,GAAX;;;;;gBACE,sBAAO,MAAA,IAAI,CAAC,UAAU,0CAAE,OAAO,CAC5B,IAAI,CAAC,cAAM,OAAA,KAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,EACvB,IAAI,CACH,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,EACd,cAAM,OAAA,KAAK,EAAL,CAAK,CACZ,EAAC;;;KACL;IAEK,0BAAK,GAAX;;;;;;;wBACE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;4BACjC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;4BACvC,sBAAO,IAAI,EAAC;yBACb;;;;wBAGa,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAA;;wBAAjC,GAAG,GAAG,SAA2B;wBACvC,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAa,CAAC,OAAO,EAAE;4BACtC,sBAAO;yBACR;wBAEO,OAAO,GAAK,GAAiB,QAAtB,CAAuB;wBACtC,IAAI,CAAC,QAAQ;4BACX,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,gBAAa,CACpD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAC5C,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;4BACD,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,gBAAa,CACpD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAC5C,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;4BACD,GAAC,oBAAS,CAAC,eAAe,CAAC,QAAQ,IAAG,IAAI,gBAAa,CACrD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,EAC7C,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;+BACF,CAAC;;;;wBAEF,OAAO,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC;wBACjB,sBAAO;4BAGT,sBAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;;;;KACtC;IAEK,gCAAW,GAAjB,UAAkB,OAAkC;;;gBAClD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;oBAC5B,sBAAO;iBACR;gBAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;;;KACxB;IAED,6BAA6B;IACvB,6BAAQ,GAAd,UACE,QAAgB,EAChB,YAAoB,EACpB,UAAoC;;;;;wBAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;4BACvC,sBAAO,IAAI,EAAC;yBACb;wBAEM,qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EAAA;4BAAvE,sBAAO,SAAgE,EAAC;;;;KACzE;IAEK,0BAAK,GAAX,UACE,OAAe,EACf,YAAoB,EACpB,OAGC;;;gBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACvC,sBAAO,IAAI,EAAC;iBACb;gBAED,sBAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAC;;;KAC5D;IAEK,8BAAS,GAAf,UAAgB,OAAe,EAAE,YAAoB;;;gBACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACvC,sBAAO,IAAI,EAAC;iBACb;gBAED,sBAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,EAAC;;;KACvD;IAEK,4BAAO,GAAb;;;;;;;wBACE,IAAI,IAAI,CAAC,QAAQ,EAAE;4BACjB,sBAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;yBACpC;wBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;4BACjC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;4BACvC,sBAAO;yBACR;6BAEG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAA3B,wBAA2B;wBAClB,qBAAM,QAAQ,CAAC,gBAAgB,EAAE,EAAA;;wBAAtC,EAAE,GAAG,SAAiC;6BACxC,CAAC,EAAE,EAAH,wBAAG;wBACL,qBAAM,QAAQ,CAAC,oBAAoB,EAAE,EAAA;;wBAArC,SAAqC,CAAC;;;wBAI1C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;;;wBAGD,qBAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAA;;wBAArD,QAAQ,GAAG,SAA0C;wBACzD,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAa,CAAC,OAAO,EAAE;4BAC3C,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;yBACnC;wBAED,QAAQ,GAAG,QAAwB,CAAC;wBACpC,IAAI,CAAC,QAAQ;4BACX,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,gBAAa,CACpD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAC5C,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;4BACD,GAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,IAAG,IAAI,gBAAa,CACpD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAC5C,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;4BACD,GAAC,oBAAS,CAAC,eAAe,CAAC,QAAQ,IAAG,IAAI,gBAAa,CACrD,iBAAS,CAAC,oBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,EAC7C,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX;+BACF,CAAC;wBACF,sBAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;;;wBAEnC,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;;;wBAEf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;;;;;;KAEtB;IAEK,+BAAU,GAAhB;;;;;;wBACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAClB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;4BAC1C,sBAAO,IAAI,EAAC;yBACb;6BAEG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAA3B,wBAA2B;wBAClB,qBAAM,QAAQ,CAAC,gBAAgB,EAAE,EAAA;;wBAAtC,EAAE,GAAG,SAAiC;6BACxC,CAAC,EAAE,EAAH,wBAAG;wBACL,qBAAM,QAAQ,CAAC,oBAAoB,EAAE,EAAA;;wBAArC,SAAqC,CAAC;;4BAInC,qBAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAA;4BAAvC,sBAAO,SAAgC,EAAC;;;;KACzC;IAED,2BAAM,GAAN,UAAO,MAAc,EAAE,MAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEK,8BAAS,GAAf,UAAgB,MAAc;;;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC1C,sBAAO;iBACR;gBAED,sBAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC;;;KACxC;IAEO,gCAAW,GAAnB;QAAA,iBA+CC;QA9CC,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACtB,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;SAC/D;QAED,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;QACjC,SAAS,CAAC,KAAK,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACpD,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACjC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC1C,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACjC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAM,IAAI,GAAG;YACX,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC;QAEF,IAAM,KAAK,GAAG;;YACZ,MAAA,KAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;YACvB,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,GAAG,cAAM,OAAA,KAAK,EAAE,EAAP,CAAO,CAAC;QAElC,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,IAAI,MAAA;YACJ,KAAK,OAAA;SACN,CAAC;IACJ,CAAC;IACH,iBAAC;AAAD,CAAC,AAlSD,IAkSC;AAED,0CAAwB;AACxB,2CAAyB;AACzB,iCAAmE;AAA1D,uGAAA,cAAc,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AACjD,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,kBAAe,UAAU,CAAC"}
package/lib/utils.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Policy } from "./types";
2
2
  import { GraphQLClient } from "graphql-request";
3
+ import { number, Signature, Provider } from "starknet";
3
4
  import BN from "bn.js";
4
5
  export declare const ENDPOINT: string;
5
6
  export declare const client: GraphQLClient;
@@ -13,3 +14,9 @@ export declare const computeAddress: (username: string, { x0, x1, x2 }: {
13
14
  y1: BN;
14
15
  y2: BN;
15
16
  }, deviceKey: string) => string;
17
+ export declare const verifyMessageHash: (provider: Provider, address: string, messageHash: number.BigNumberish, signature: Signature) => Promise<boolean | undefined>;
18
+ export declare function split(n: BN): {
19
+ x: BN;
20
+ y: BN;
21
+ z: BN;
22
+ };
package/lib/utils.js CHANGED
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
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
+ };
2
38
  var __read = (this && this.__read) || function (o, n) {
3
39
  var m = typeof Symbol === "function" && o[Symbol.iterator];
4
40
  if (!m) return o;
@@ -28,11 +64,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
64
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
65
  };
30
66
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.computeAddress = exports.diff = exports.client = exports.ENDPOINT = void 0;
67
+ exports.split = exports.verifyMessageHash = exports.computeAddress = exports.diff = exports.client = exports.ENDPOINT = void 0;
32
68
  var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
33
69
  var graphql_request_1 = require("graphql-request");
34
70
  var starknet_1 = require("starknet");
35
- var constants_1 = require("@cartridge/controller/src/constants");
71
+ var constants_1 = require("./constants");
72
+ var graphql_1 = require("./generated/graphql");
73
+ var cbor_x_1 = require("cbor-x");
36
74
  exports.ENDPOINT = process.env.NEXT_PUBLIC_API_URL;
37
75
  exports.client = new graphql_request_1.GraphQLClient(exports.ENDPOINT, { credentials: "include" });
38
76
  function diff(a, b) {
@@ -60,4 +98,66 @@ var computeAddress = function (username, _a, _b, deviceKey) {
60
98
  ], "0");
61
99
  };
62
100
  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*/];
151
+ }
152
+ });
153
+ }); };
154
+ exports.verifyMessageHash = verifyMessageHash;
155
+ var BASE = starknet_1.number.toBN(2).pow(starknet_1.number.toBN(86));
156
+ 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 };
161
+ }
162
+ exports.split = split;
63
163
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAoC;AAEpC,mDAAgD;AAChD,qCAAqD;AAErD,iEAAgF;AAEnE,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAoB,CAAC;AAE5C,QAAA,MAAM,GAAG,IAAI,+BAAa,CAAC,gBAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAE9E,SAAgB,IAAI,CAAC,CAAW,EAAE,CAAW;IAC3C,OAAO,CAAC,CAAC,MAAM,CACb,UAAC,IAAI,EAAE,OAAO;QACZ,OAAA,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO,IAAK,OAAA,IAAA,yBAAK,EAAC,OAAO,EAAE,OAAO,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,wCAAK,IAAI,YAAE,OAAO,SAAC;IAAxE,CAAwE,EAC1E,EAAc,CACf,CAAC;AACJ,CAAC;AAND,oBAMC;AAEM,IAAM,cAAc,GAAG,UAC5B,QAAgB,EAChB,EAA0C,EAC1C,EAA0C,EAC1C,SAAiB;QAFf,EAAE,QAAA,EAAE,EAAE,QAAA,EAAE,EAAE,QAAA;QACV,EAAE,QAAA,EAAE,EAAE,QAAA,EAAE,EAAE,QAAA;IAGZ,OAAA,eAAI,CAAC,gCAAgC,CACnC,sBAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EACvC,iBAAM,CAAC,IAAI,CAAC,uBAAW,CAAC,EACxB;QACE,iBAAM,CAAC,IAAI,CAAC,wBAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QAC1C,eAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QACtC,GAAG;QACH,iBAAM,CAAC,IAAI,CAAC,wBAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;QAC7C,GAAG;QACH,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,iBAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KACvB,EACD,GAAG,CACJ;AAlBD,CAkBC,CAAC;AAxBS,QAAA,cAAc,kBAwBvB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartridge/controller",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Cartridge Controller",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -32,6 +32,7 @@
32
32
  "cbor-x": "^1.5.0",
33
33
  "fast-deep-equal": "^3.1.3",
34
34
  "query-string": "^7.1.1",
35
+ "react-query": "^3.39.2",
35
36
  "starknet": "^4.17.1"
36
37
  }
37
38
  }