@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/lib/inject.js CHANGED
@@ -1,109 +1,76 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.injectController = exports.InjectedController = void 0;
36
- const starknet_1 = require("starknet");
37
- const _1 = __importStar(require("."));
38
- class InjectedController {
1
+ import { constants } from "starknet";
2
+ import Controller, { providers } from ".";
3
+ export class InjectedController {
4
+ id = "Cartridge";
5
+ name = "Cartridge";
6
+ version = "0.0.1";
7
+ icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjkiIGhlaWdodD0iNTciIHZpZXdCb3g9IjAgMCA2OSA1NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy41NTEzIDAuMDM5MDYyNUg0NC42Mjc4TDQ0LjcwMTIgMC4wNDE3NTc4QzQ2LjI2MjQgMC4wOTkwOTkyIDQ3Ljc5NDggMC40NzQ3OTUgNDkuMjA0OSAxLjE0NTA5TDYzLjUyMjcgNy4xODc5NUw2My42NTIyIDcuMjU0MDRDNjUuMDExOCA3Ljk0ODEyIDY2LjE0NzggOS4wMTA3NyA2Ni45MzE2IDEwLjMxOTNDNjcuNzA4MSAxMS42MTU3IDY4LjEwODUgMTMuMTAyMSA2OC4wODg5IDE0LjYxMjFWMzguNjg0QzY4LjA4ODkgMzguNzEgNjguMDg5IDM4LjczNzYgNjguMDg5MSAzOC43NjY2QzY4LjA5MTQgMzkuNjQwOSA2OC4wOTc0IDQxLjgzNTYgNjYuMTY5NyA0My43NjgxTDYxLjY2MjYgNDguMjg2NUM2MC44OTEzIDQ5LjA1OTggNTkuOTY3IDQ5LjY3NDkgNTguODA3IDQ5Ljk4NDlDNTcuOTIxNyA1MC4yMjE1IDU3LjA1MzUgNTAuMjE3IDU2LjY2MyA1MC4yMTVDNTYuNjMxMSA1MC4yMTQ4IDU2LjYwMjQgNTAuMjE0NyA1Ni41NzcxIDUwLjIxNDdMNTAuMzM4NSA1MC4yMDk5TDUwLjMzNjIgNTYuMjM1M0gxNy45MjkzVjUwLjIxNDdIMTEuNjA0QzExLjU3ODggNTAuMjE0NyAxMS41NTAxIDUwLjIxNDggMTEuNTE4MiA1MC4yMTVDMTEuMTI3NiA1MC4yMTcgMTAuMjU5NSA1MC4yMjE1IDkuMzc0MTYgNDkuOTg0OUM4LjIxNDUgNDkuNjc0OSA3LjI5MDQgNDkuMDYwMiA2LjUxOTEyIDQ4LjI4NzFMMi4wMTAxMSA0My43Njg3QzAuMDgyNDUwMyA0MS44MzYyIDAuMDg3Nzg0NCAzOS42NDA5IDAuMDkwMTUyNCAzOC43NjY2QzAuMDkwMjMwOSAzOC43Mzc2IDAuMDkwMzA1NSAzOC43MSAwLjA5MDMwNTUgMzguNjg0VjE0LjYxMjdDMC4wNzA0MyAxMy4xMDI1IDAuNDcwNjMgMTEuNjE1NyAxLjI0NzI5IDEwLjMxOTJDMi4wMzEzOSA5LjAxMDE4IDMuMTY3OTIgNy45NDczOCA0LjUyODExIDcuMjUzNUw0LjY1Njk3IDcuMTg3NzZMMTguOTcyOCAxLjE0NDg5QzIwLjM4MzUgMC40NzQ4MDggMjEuOTE2MiAwLjA5OTE5NTUgMjMuNDc3OCAwLjA0MTc2NUwyMy41NTEzIDAuMDM5MDYyNVoiIGZpbGw9IiMwRjE0MTAiLz4KPHBhdGggZD0iTTIyLjI4NjMgMjIuOTcyOUg0NS42NDdWMTcuMDcxN0gyMi4yOTIyQzIyLjI5MjIgMTcuNjc0NiAyMi4yODYzIDIyLjk3MjkgMjIuMjg2MyAyMi45NzI5WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8cGF0aCBkPSJNNjEuODMzNCAxMC44MTY3TDQ3LjU1OTEgNC43OTIxM0M0Ni42MjA4IDQuMzMzODggNDUuNTk3NCA0LjA3NzM3IDQ0LjU1NDQgNC4wMzkwNkgyMy42MjQ4QzIyLjU4MTIgNC4wNzc0NCAyMS41NTcxIDQuMzMzOTQgMjAuNjE4MiA0Ljc5MjEzTDYuMzQ1NzkgMTAuODE2N0M1LjY1NTMgMTEuMTY4OSA1LjA3NzYxIDExLjcwODggNC42Nzg3NiAxMi4zNzQ3QzQuMjc5OSAxMy4wNDA1IDQuMDc1OTggMTMuODA1NCA0LjA5MDMxIDE0LjU4MlYzOC42ODRDNC4wOTAzMSAzOS40MzcxIDQuMDkwMyA0MC4xOTAxIDQuODQxNDggNDAuOTQzMkw5LjM1MDQ5IDQ1LjQ2MTZDMTAuMTAxNyA0Ni4yMTQ3IDEwLjY2NTUgNDYuMjE0NyAxMS42MDQgNDYuMjE0N0gyMS45MjkzQzIxLjkyOTMgNDYuODYyMSAyMS45MjkzIDUyLjIzNTMgMjEuOTI5MyA1Mi4yMzUzSDQ2LjMzNzdWNDYuMjA2OUgyMS45NDg4VjQwLjE5MDFIMTAuODUyOEMxMC4xMDE3IDQwLjE5MDEgMTAuMTAxNyAzOS40MzcxIDEwLjEwMTcgMzkuNDM3MVYxMC44MTY3QzEwLjEwMTcgMTAuODE2NyAxMC4xMDE3IDEwLjA2MzYgMTAuODUyOCAxMC4wNjM2SDU3LjMyODNDNTguMDc5NSAxMC4wNjM2IDU4LjA3OTUgMTAuODE2NyA1OC4wNzk1IDEwLjgxNjdWMzkuNDM3MUM1OC4wNzk1IDM5LjQzNzEgNTguMDc5NSA0MC4xOTAxIDU3LjMyODMgNDAuMTkwMUg0Ni4zNDM2TDQ2LjMzNzcgNDYuMjA2OUw1Ni41NzcxIDQ2LjIxNDdDNTcuNTE1NiA0Ni4yMTQ3IDU4LjA3OTUgNDYuMjE0NyA1OC44MzA3IDQ1LjQ2MTZMNjMuMzM3NyA0MC45NDMyQzY0LjA4ODkgNDAuMTkwMSA2NC4wODg5IDM5LjQzNzEgNjQuMDg4OSAzOC42ODRWMTQuNTgyQzY0LjEwMyAxMy44MDU1IDYzLjg5OSAxMy4wNDA2IDYzLjUwMDEgMTIuMzc0OEM2My4xMDEzIDExLjcwOSA2Mi41MjM4IDExLjE2OTEgNjEuODMzNCAxMC44MTY3WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8L3N2Zz4K";
8
+ provider = providers[constants.StarknetChainId.SN_MAIN];
9
+ isConnected = false;
10
+ account;
11
+ selectedAddress;
12
+ subscriptions = [];
13
+ controller;
39
14
  constructor(policies, options) {
40
- this.id = "Cartridge";
41
- this.name = "Cartridge";
42
- this.version = "0.0.1";
43
- this.icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjkiIGhlaWdodD0iNTciIHZpZXdCb3g9IjAgMCA2OSA1NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy41NTEzIDAuMDM5MDYyNUg0NC42Mjc4TDQ0LjcwMTIgMC4wNDE3NTc4QzQ2LjI2MjQgMC4wOTkwOTkyIDQ3Ljc5NDggMC40NzQ3OTUgNDkuMjA0OSAxLjE0NTA5TDYzLjUyMjcgNy4xODc5NUw2My42NTIyIDcuMjU0MDRDNjUuMDExOCA3Ljk0ODEyIDY2LjE0NzggOS4wMTA3NyA2Ni45MzE2IDEwLjMxOTNDNjcuNzA4MSAxMS42MTU3IDY4LjEwODUgMTMuMTAyMSA2OC4wODg5IDE0LjYxMjFWMzguNjg0QzY4LjA4ODkgMzguNzEgNjguMDg5IDM4LjczNzYgNjguMDg5MSAzOC43NjY2QzY4LjA5MTQgMzkuNjQwOSA2OC4wOTc0IDQxLjgzNTYgNjYuMTY5NyA0My43NjgxTDYxLjY2MjYgNDguMjg2NUM2MC44OTEzIDQ5LjA1OTggNTkuOTY3IDQ5LjY3NDkgNTguODA3IDQ5Ljk4NDlDNTcuOTIxNyA1MC4yMjE1IDU3LjA1MzUgNTAuMjE3IDU2LjY2MyA1MC4yMTVDNTYuNjMxMSA1MC4yMTQ4IDU2LjYwMjQgNTAuMjE0NyA1Ni41NzcxIDUwLjIxNDdMNTAuMzM4NSA1MC4yMDk5TDUwLjMzNjIgNTYuMjM1M0gxNy45MjkzVjUwLjIxNDdIMTEuNjA0QzExLjU3ODggNTAuMjE0NyAxMS41NTAxIDUwLjIxNDggMTEuNTE4MiA1MC4yMTVDMTEuMTI3NiA1MC4yMTcgMTAuMjU5NSA1MC4yMjE1IDkuMzc0MTYgNDkuOTg0OUM4LjIxNDUgNDkuNjc0OSA3LjI5MDQgNDkuMDYwMiA2LjUxOTEyIDQ4LjI4NzFMMi4wMTAxMSA0My43Njg3QzAuMDgyNDUwMyA0MS44MzYyIDAuMDg3Nzg0NCAzOS42NDA5IDAuMDkwMTUyNCAzOC43NjY2QzAuMDkwMjMwOSAzOC43Mzc2IDAuMDkwMzA1NSAzOC43MSAwLjA5MDMwNTUgMzguNjg0VjE0LjYxMjdDMC4wNzA0MyAxMy4xMDI1IDAuNDcwNjMgMTEuNjE1NyAxLjI0NzI5IDEwLjMxOTJDMi4wMzEzOSA5LjAxMDE4IDMuMTY3OTIgNy45NDczOCA0LjUyODExIDcuMjUzNUw0LjY1Njk3IDcuMTg3NzZMMTguOTcyOCAxLjE0NDg5QzIwLjM4MzUgMC40NzQ4MDggMjEuOTE2MiAwLjA5OTE5NTUgMjMuNDc3OCAwLjA0MTc2NUwyMy41NTEzIDAuMDM5MDYyNVoiIGZpbGw9IiMwRjE0MTAiLz4KPHBhdGggZD0iTTIyLjI4NjMgMjIuOTcyOUg0NS42NDdWMTcuMDcxN0gyMi4yOTIyQzIyLjI5MjIgMTcuNjc0NiAyMi4yODYzIDIyLjk3MjkgMjIuMjg2MyAyMi45NzI5WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8cGF0aCBkPSJNNjEuODMzNCAxMC44MTY3TDQ3LjU1OTEgNC43OTIxM0M0Ni42MjA4IDQuMzMzODggNDUuNTk3NCA0LjA3NzM3IDQ0LjU1NDQgNC4wMzkwNkgyMy42MjQ4QzIyLjU4MTIgNC4wNzc0NCAyMS41NTcxIDQuMzMzOTQgMjAuNjE4MiA0Ljc5MjEzTDYuMzQ1NzkgMTAuODE2N0M1LjY1NTMgMTEuMTY4OSA1LjA3NzYxIDExLjcwODggNC42Nzg3NiAxMi4zNzQ3QzQuMjc5OSAxMy4wNDA1IDQuMDc1OTggMTMuODA1NCA0LjA5MDMxIDE0LjU4MlYzOC42ODRDNC4wOTAzMSAzOS40MzcxIDQuMDkwMyA0MC4xOTAxIDQuODQxNDggNDAuOTQzMkw5LjM1MDQ5IDQ1LjQ2MTZDMTAuMTAxNyA0Ni4yMTQ3IDEwLjY2NTUgNDYuMjE0NyAxMS42MDQgNDYuMjE0N0gyMS45MjkzQzIxLjkyOTMgNDYuODYyMSAyMS45MjkzIDUyLjIzNTMgMjEuOTI5MyA1Mi4yMzUzSDQ2LjMzNzdWNDYuMjA2OUgyMS45NDg4VjQwLjE5MDFIMTAuODUyOEMxMC4xMDE3IDQwLjE5MDEgMTAuMTAxNyAzOS40MzcxIDEwLjEwMTcgMzkuNDM3MVYxMC44MTY3QzEwLjEwMTcgMTAuODE2NyAxMC4xMDE3IDEwLjA2MzYgMTAuODUyOCAxMC4wNjM2SDU3LjMyODNDNTguMDc5NSAxMC4wNjM2IDU4LjA3OTUgMTAuODE2NyA1OC4wNzk1IDEwLjgxNjdWMzkuNDM3MUM1OC4wNzk1IDM5LjQzNzEgNTguMDc5NSA0MC4xOTAxIDU3LjMyODMgNDAuMTkwMUg0Ni4zNDM2TDQ2LjMzNzcgNDYuMjA2OUw1Ni41NzcxIDQ2LjIxNDdDNTcuNTE1NiA0Ni4yMTQ3IDU4LjA3OTUgNDYuMjE0NyA1OC44MzA3IDQ1LjQ2MTZMNjMuMzM3NyA0MC45NDMyQzY0LjA4ODkgNDAuMTkwMSA2NC4wODg5IDM5LjQzNzEgNjQuMDg4OSAzOC42ODRWMTQuNTgyQzY0LjEwMyAxMy44MDU1IDYzLjg5OSAxMy4wNDA2IDYzLjUwMDEgMTIuMzc0OEM2My4xMDEzIDExLjcwOSA2Mi41MjM4IDExLjE2OTEgNjEuODMzNCAxMC44MTY3WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8L3N2Zz4K";
44
- this.provider = _1.providers[starknet_1.constants.StarknetChainId.MAINNET];
45
- this.isConnected = false;
46
- this.subscriptions = [];
47
- this.request = (call) => {
48
- throw Error("Not implemented");
49
- };
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) => {
68
- if (type === "accountsChanged") {
69
- this.subscriptions.push({
70
- type,
71
- handler,
72
- });
73
- }
74
- else if (type === "networkChanged") {
75
- this.subscriptions.push({
76
- type,
77
- handler,
78
- });
79
- }
80
- else {
81
- throw new Error(`Unknwown event: ${type}`);
82
- }
83
- };
84
- this.off = (type, handler) => {
85
- if (type !== "accountsChanged" && type !== "networkChanged") {
86
- throw new Error(`Unknwown event: ${type}`);
87
- }
88
- const idx = this.subscriptions.findIndex((userEvent) => userEvent.type === type && userEvent.handler === handler);
89
- if (idx >= 0) {
90
- this.subscriptions.splice(idx, 1);
91
- }
92
- };
93
- this.controller = new _1.default(policies, options);
94
- this.controller.ready().then(isConnected => {
15
+ this.controller = new Controller(policies, options);
16
+ this.controller.ready().then((isConnected) => {
95
17
  this.isConnected = !!isConnected;
96
18
  if (this.controller.account) {
97
19
  this.account = this.controller.account;
98
- this.provider = _1.providers[this.controller.chainId];
20
+ this.provider = providers[this.controller.chainId];
99
21
  this.selectedAddress = this.account.address;
100
22
  }
101
23
  });
102
24
  }
25
+ request = (call) => {
26
+ throw Error("Not implemented");
27
+ };
28
+ enable = async () => {
29
+ this.account = await this.controller.connect();
30
+ if (!this.account) {
31
+ return [];
32
+ }
33
+ this.provider = providers[this.controller.chainId];
34
+ this.isConnected = true;
35
+ return [this.account.address];
36
+ };
37
+ isPreauthorized = async () => {
38
+ return this.controller
39
+ .ready()
40
+ .then(() => {
41
+ return this.controller.probe();
42
+ })
43
+ .then((connected) => !!connected);
44
+ };
45
+ on = (type, handler) => {
46
+ if (type === "accountsChanged") {
47
+ this.subscriptions.push({
48
+ type,
49
+ handler,
50
+ });
51
+ }
52
+ else if (type === "networkChanged") {
53
+ this.subscriptions.push({
54
+ type,
55
+ handler,
56
+ });
57
+ }
58
+ else {
59
+ throw new Error(`Unknwown event: ${type}`);
60
+ }
61
+ };
62
+ off = (type, handler) => {
63
+ if (type !== "accountsChanged" && type !== "networkChanged") {
64
+ throw new Error(`Unknwown event: ${type}`);
65
+ }
66
+ const idx = this.subscriptions.findIndex((userEvent) => userEvent.type === type && userEvent.handler === handler);
67
+ if (idx >= 0) {
68
+ this.subscriptions.splice(idx, 1);
69
+ }
70
+ };
103
71
  }
104
- exports.InjectedController = InjectedController;
105
72
  function injectController(policies, options) {
106
73
  window.starknet_cartridge = new InjectedController(policies, options);
107
74
  }
108
- exports.injectController = injectController;
75
+ export { injectController };
109
76
  //# sourceMappingURL=inject.js.map
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.js CHANGED
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createModal = void 0;
4
- const createModal = (src, onClose) => {
1
+ export const createModal = (src, onClose) => {
5
2
  const iframe = document.createElement("iframe");
6
3
  iframe.src = src;
7
4
  iframe.id = "cartridge-modal";
@@ -21,7 +18,7 @@ const createModal = (src, onClose) => {
21
18
  container.style.top = "0";
22
19
  container.style.left = "0";
23
20
  container.style.zIndex = "10000";
24
- container.style.backgroundColor = "rgba(0,0,0,0.5)";
21
+ container.style.backgroundColor = "rgba(0,0,0,0.6)";
25
22
  container.style.display = "flex";
26
23
  container.style.alignItems = "center";
27
24
  container.style.justifyContent = "center";
@@ -49,9 +46,8 @@ const createModal = (src, onClose) => {
49
46
  close,
50
47
  };
51
48
  };
52
- exports.createModal = createModal;
53
49
  const resize = (el) => {
54
- if (window.innerWidth < 600) {
50
+ if (window.innerWidth < 768) {
55
51
  el.style.height = "100%";
56
52
  el.style.width = "100%";
57
53
  el.style.borderRadius = "0";
package/lib/modal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../src/modal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../src/modal.ts"],"names":[],"mappings":"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"}
package/lib/signer.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Signature, typedData } from "starknet";
1
+ import { Abi, Call, DeclareSignerDetails, DeployAccountSignerDetails, InvocationsSignerDetails, Signature, SignerInterface, typedData } from "starknet";
2
2
  import { Keychain, Modal } from "./types";
3
3
  import { AsyncMethodReturns } from "@cartridge/penpal";
4
- export declare class Signer {
4
+ export declare class Signer implements SignerInterface {
5
5
  private keychain;
6
6
  modal: Modal;
7
7
  constructor(keychain: AsyncMethodReturns<Keychain>, modal: Modal);
@@ -21,4 +21,7 @@ export declare class Signer {
21
21
  * @throws {Error} if the JSON object is not a valid JSON
22
22
  */
23
23
  signMessage(typedData: typedData.TypedData, account: string): Promise<Signature>;
24
+ signTransaction(transactions: Call[], transactionsDetail: InvocationsSignerDetails, abis?: Abi[]): Promise<Signature>;
25
+ signDeployAccountTransaction(transaction: DeployAccountSignerDetails): Promise<Signature>;
26
+ signDeclareTransaction(transaction: DeclareSignerDetails): Promise<Signature>;
24
27
  }
package/lib/signer.js CHANGED
@@ -1,16 +1,6 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Signer = void 0;
13
- class Signer {
1
+ export class Signer {
2
+ keychain;
3
+ modal;
14
4
  constructor(keychain, modal) {
15
5
  this.keychain = keychain;
16
6
  this.modal = modal;
@@ -32,14 +22,29 @@ class Signer {
32
22
  * @returns the signature of the JSON object
33
23
  * @throws {Error} if the JSON object is not a valid JSON
34
24
  */
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;
41
- });
25
+ async signMessage(typedData, account) {
26
+ this.modal.open();
27
+ const res = await this.keychain.signMessage(typedData, account);
28
+ this.modal.close();
29
+ return res;
30
+ }
31
+ async signTransaction(transactions, transactionsDetail, abis) {
32
+ this.modal.open();
33
+ const res = await this.keychain.signTransaction(transactions, transactionsDetail, abis);
34
+ this.modal.close();
35
+ return res;
36
+ }
37
+ async signDeployAccountTransaction(transaction) {
38
+ this.modal.open();
39
+ const res = await this.keychain.signDeployAccountTransaction(transaction);
40
+ this.modal.close();
41
+ return res;
42
+ }
43
+ async signDeclareTransaction(transaction) {
44
+ this.modal.open();
45
+ const res = await this.keychain.signDeclareTransaction(transaction);
46
+ this.modal.close();
47
+ return res;
42
48
  }
43
49
  }
44
- exports.Signer = Signer;
45
50
  //# 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,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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,MAAM;IACT,QAAQ,CAA+B;IAC/C,KAAK,CAAQ;IACb,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;IACI,KAAK,CAAC,WAAW,CACtB,SAA8B,EAC9B,OAAe;QAEf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,GAAgB,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,YAAoB,EACpB,kBAA4C,EAC5C,IAAY;QAEZ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC7C,YAAY,EACZ,kBAAkB,EAClB,IAAI,CACL,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,4BAA4B,CACvC,WAAuC;QAEvC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,WAAiC;QAEjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
package/lib/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
- import { constants, number, Abi, Call, InvocationsDetails, typedData, InvokeFunctionResponse, Signature, EstimateFeeDetails, EstimateFee, DeclareContractPayload } from "starknet";
3
- export declare type Assertion = {
2
+ import { constants, Abi, Call, InvocationsDetails, typedData, InvokeFunctionResponse, Signature, EstimateFeeDetails, EstimateFee, DeclareContractPayload, BigNumberish, InvocationsSignerDetails, DeployAccountSignerDetails, DeclareSignerDetails } from "starknet";
3
+ export type Assertion = {
4
4
  id: string;
5
5
  type: string;
6
6
  rawId: string;
@@ -11,45 +11,41 @@ export declare type Assertion = {
11
11
  signature: string;
12
12
  };
13
13
  };
14
- export declare type Session = {
14
+ export type Session = {
15
15
  chainId: constants.StarknetChainId;
16
16
  policies: Policy[];
17
- maxFee: number.BigNumberish;
17
+ maxFee: BigNumberish;
18
18
  };
19
- export declare type Policy = {
19
+ export type Policy = {
20
20
  target: string;
21
21
  method?: string;
22
22
  };
23
- export declare enum SupportedChainIds {
24
- MAINNET = "0x534e5f4d41494e",
25
- TESTNET = "0x534e5f474f45524c49"
26
- }
27
23
  export declare enum ResponseCodes {
28
24
  SUCCESS = "SUCCESS",
29
25
  NOT_CONNECTED = "NOT_CONNECTED",
30
26
  NOT_ALLOWED = "NOT_ALLOWED",
31
27
  CANCELED = "CANCELED"
32
28
  }
33
- export declare type Error = {
29
+ export type Error = {
34
30
  code: ResponseCodes;
35
31
  message: string;
36
32
  };
37
- export declare type ConnectReply = {
33
+ export type ConnectReply = {
38
34
  code: ResponseCodes.SUCCESS;
39
35
  address: string;
40
36
  policies: Policy[];
41
37
  };
42
- export declare type ExecuteReply = InvokeFunctionResponse & {
38
+ export type ExecuteReply = InvokeFunctionResponse & {
43
39
  code: ResponseCodes.SUCCESS;
44
40
  };
45
- export declare type ProbeReply = {
41
+ export type ProbeReply = {
46
42
  code: ResponseCodes.SUCCESS;
47
43
  address: string;
48
44
  policies: Policy[];
49
45
  };
50
46
  export interface Keychain {
51
47
  probe(): Promise<ProbeReply | Error>;
52
- connect(policies: Policy[], starterPackId?: string, chainId?: SupportedChainIds): Promise<ConnectReply | Error>;
48
+ connect(policies: Policy[], starterPackId?: string, chainId?: constants.StarknetChainId): Promise<ConnectReply | Error>;
53
49
  disconnect(): void;
54
50
  reset(): void;
55
51
  revoke(origin: string): void;
@@ -83,6 +79,9 @@ export interface Keychain {
83
79
  [key: string]: Session;
84
80
  }>;
85
81
  signMessage(typedData: typedData.TypedData, account: string): Promise<Signature | Error>;
82
+ signTransaction(transactions: Call[], transactionsDetail: InvocationsSignerDetails, abis?: Abi[]): Promise<Signature>;
83
+ signDeployAccountTransaction(transaction: DeployAccountSignerDetails): Promise<Signature>;
84
+ signDeclareTransaction(transaction: DeclareSignerDetails): Promise<Signature>;
86
85
  issueStarterPack(id: string): Promise<InvokeFunctionResponse>;
87
86
  showQuests(gameId: string): Promise<void>;
88
87
  }
package/lib/types.js CHANGED
@@ -1,16 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResponseCodes = exports.SupportedChainIds = void 0;
4
- var SupportedChainIds;
5
- (function (SupportedChainIds) {
6
- SupportedChainIds["MAINNET"] = "0x534e5f4d41494e";
7
- SupportedChainIds["TESTNET"] = "0x534e5f474f45524c49";
8
- })(SupportedChainIds = exports.SupportedChainIds || (exports.SupportedChainIds = {}));
9
- var ResponseCodes;
1
+ export var ResponseCodes;
10
2
  (function (ResponseCodes) {
11
3
  ResponseCodes["SUCCESS"] = "SUCCESS";
12
4
  ResponseCodes["NOT_CONNECTED"] = "NOT_CONNECTED";
13
5
  ResponseCodes["NOT_ALLOWED"] = "NOT_ALLOWED";
14
6
  ResponseCodes["CANCELED"] = "CANCELED";
15
- })(ResponseCodes = exports.ResponseCodes || (exports.ResponseCodes = {}));
7
+ })(ResponseCodes || (ResponseCodes = {}));
16
8
  //# sourceMappingURL=types.js.map
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAqCA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,iDAA4B,CAAA;IAC5B,qDAAgC,CAAA;AAClC,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;AACvB,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;AACvB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB"}
package/lib/utils.d.ts CHANGED
@@ -1,20 +1,19 @@
1
1
  import { Policy } from "./types";
2
- import { number, Signature, Provider } from "starknet";
3
- import BN from "bn.js";
2
+ import { RpcProvider, BigNumberish, ArraySignatureType } from "starknet";
4
3
  export declare function diff(a: Policy[], b: Policy[]): Policy[];
5
4
  export declare const computeAddress: (username: string, { x0, x1, x2 }: {
6
- x0: BN;
7
- x1: BN;
8
- x2: BN;
5
+ x0: bigint;
6
+ x1: bigint;
7
+ x2: bigint;
9
8
  }, { y0, y1, y2 }: {
10
- y0: BN;
11
- y1: BN;
12
- y2: BN;
9
+ y0: bigint;
10
+ y1: bigint;
11
+ y2: bigint;
13
12
  }, deviceKey: string) => string;
14
- export declare const verifyMessageHash: (provider: Provider, address: string, messageHash: number.BigNumberish, signature: Signature) => Promise<boolean>;
13
+ export declare const verifyMessageHash: (provider: RpcProvider, address: string, messageHash: BigNumberish, signature: ArraySignatureType) => Promise<boolean>;
15
14
  export declare const getAccounts: (addresses: string[]) => Promise<any>;
16
- export declare function split(n: BN): {
17
- x: BN;
18
- y: BN;
19
- z: BN;
15
+ export declare function split(n: bigint): {
16
+ x: bigint;
17
+ y: bigint;
18
+ z: bigint;
20
19
  };
package/lib/utils.js CHANGED
@@ -1,31 +1,15 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
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");
20
- function diff(a, b) {
21
- return a.reduce((prev, policyA) => b.some((policyB) => (0, fast_deep_equal_1.default)(policyB, policyA)) ? prev : [...prev, policyA], []);
1
+ import equal from "fast-deep-equal";
2
+ import { ec, hash, shortString, addAddressPadding, num, } from "starknet";
3
+ import { PROXY_CLASS, CLASS_HASHES } from "./constants";
4
+ import { decode } from "cbor-x";
5
+ export function diff(a, b) {
6
+ return a.reduce((prev, policyA) => b.some((policyB) => equal(policyB, policyA)) ? prev : [...prev, policyA], []);
22
7
  }
23
- exports.diff = diff;
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"),
8
+ export const computeAddress = (username, { x0, x1, x2 }, { y0, y1, y2 }, deviceKey) => hash.calculateContractAddressFromHash(shortString.encodeShortString(username), BigInt(PROXY_CLASS), [
9
+ BigInt(CLASS_HASHES["0.0.1"].account),
10
+ hash.getSelectorFromName("initialize"),
27
11
  "9",
28
- starknet_1.number.toBN(constants_1.CLASS_HASHES["0.0.1"].controller),
12
+ BigInt(CLASS_HASHES["0.0.1"].controller),
29
13
  "7",
30
14
  x0,
31
15
  x1,
@@ -33,77 +17,76 @@ const computeAddress = (username, { x0, x1, x2 }, { y0, y1, y2 }, deviceKey) =>
33
17
  y0,
34
18
  y1,
35
19
  y2,
36
- starknet_1.number.toBN(deviceKey),
20
+ BigInt(deviceKey),
37
21
  ], "0");
38
- exports.computeAddress = computeAddress;
39
- const verifyMessageHash = (provider, address, messageHash, signature) => __awaiter(void 0, void 0, void 0, function* () {
40
- var _a, _b, _c;
22
+ export const verifyMessageHash = async (provider, address, messageHash, signature) => {
41
23
  const isDeployed = !!provider.getClassHashAt(address, "latest");
42
24
  if (isDeployed) {
43
- const res = yield provider.callContract({
25
+ const res = await provider.callContract({
44
26
  contractAddress: address,
45
27
  entrypoint: "executeOnPlugin",
46
28
  calldata: [
47
- constants_1.CLASS_HASHES["0.0.1"].controller,
48
- starknet_1.hash.getSelector("is_public_key"),
29
+ CLASS_HASHES["0.0.1"].controller,
30
+ hash.getSelector("is_public_key"),
49
31
  "0x1",
50
32
  signature[0],
51
33
  ],
52
34
  });
53
- const isRegistered = (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
35
+ const isRegistered = res[0] === "0x1";
54
36
  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);
37
+ return ec.starkCurve.verify(
38
+ // @ts-expect-error TODO(#244): Adapt signature
39
+ signature, num.toHex(messageHash), signature[0]);
57
40
  }
58
41
  else {
59
- const res = yield provider.callContract({
42
+ const res = await provider.callContract({
60
43
  contractAddress: address,
61
44
  entrypoint: "isValidSignature",
62
45
  calldata: [messageHash, signature.length, ...signature],
63
46
  }, "latest");
64
- return (res === null || res === void 0 ? void 0 : res.result[0]) === "0x1";
47
+ return res[0] === "0x1";
65
48
  }
66
49
  }
67
50
  else {
68
- const res = yield (yield fetch("https://api.cartridge.gg/query", {
69
- "headers": {
51
+ const res = await (await fetch("https://api.cartridge.gg/query", {
52
+ headers: {
70
53
  "content-type": "application/json",
71
54
  },
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",
55
+ 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\":\"${addAddressPadding(address)}\"},\"operationName\":\"Account\"}`,
56
+ method: "POST",
57
+ mode: "cors",
58
+ credentials: "omit",
76
59
  })).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;
60
+ const account = res?.accounts?.edges?.[0]?.node;
78
61
  if (!account) {
79
62
  return false;
80
63
  }
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"));
64
+ const buf = Buffer.alloc(32);
65
+ buf.writeBigInt64BE(BigInt(account.credential.publicKey));
66
+ const pubKeyCbor = decode(buf)[0];
67
+ const x = BigInt("0x" + pubKeyCbor[-2].toString("hex"));
68
+ const y = BigInt("0x" + pubKeyCbor[-3].toString("hex"));
84
69
  const { x: x0, y: x1, z: x2 } = split(x);
85
70
  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]);
71
+ const computedAddress = computeAddress(account.id, { x0, x1, x2 }, { y0, y1, y2 }, signature[0]);
87
72
  if (computedAddress !== address) {
88
73
  throw new Error("invalid public key");
89
74
  }
90
- const keyPair = starknet_1.ec.getKeyPairFromPublicKey(signature[0]);
91
- return starknet_1.ec.verify(keyPair, starknet_1.number.toBN(messageHash).toString(), signature);
75
+ return ec.starkCurve.verify(signature[0], BigInt(messageHash).toString(), account.credential.publicKey);
92
76
  }
93
- });
94
- exports.verifyMessageHash = verifyMessageHash;
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),
77
+ };
78
+ export const getAccounts = async (addresses) => {
79
+ const query = addresses.map((addr) => ({
80
+ contractAddress: addAddressPadding(addr),
98
81
  }));
99
- const res = yield (yield fetch("https://api.cartridge.gg/query", {
100
- "headers": {
82
+ const res = await (await fetch("https://api.cartridge.gg/query", {
83
+ headers: {
101
84
  "content-type": "application/json",
102
85
  },
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"
86
+ 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\"}`,
87
+ method: "POST",
88
+ mode: "cors",
89
+ credentials: "omit",
107
90
  })).json();
108
91
  if (res.errors) {
109
92
  throw new Error(res.errors[0].message);
@@ -113,14 +96,12 @@ const getAccounts = (addresses) => __awaiter(void 0, void 0, void 0, function* (
113
96
  name: edge.node.id,
114
97
  profile_uri: `https://cartridge.gg/profile/${edge.node.contractAddress}`,
115
98
  }));
116
- });
117
- exports.getAccounts = getAccounts;
118
- const BASE = starknet_1.number.toBN(2).pow(starknet_1.number.toBN(86));
119
- function split(n) {
120
- const x = n.mod(BASE);
121
- const y = n.div(BASE).mod(BASE);
122
- const z = n.div(BASE).div(BASE);
99
+ };
100
+ const BASE = 2n ** 86n;
101
+ export function split(n) {
102
+ const x = n % BASE;
103
+ const y = (n / BASE) % BASE;
104
+ const z = n / BASE / BASE;
123
105
  return { x, y, z };
124
106
  }
125
- exports.split = split;
126
107
  //# sourceMappingURL=utils.js.map