@cartridge/connector 0.4.0 → 0.5.0-alpha.0

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @cartridge/connector@0.4.0 build:deps /home/runner/work/controller/controller/packages/connector
2
+ > @cartridge/connector@0.5.0-alpha.0 build:deps /home/runner/work/controller/controller/packages/connector
3
3
  > tsc
4
4
 
@@ -1,29 +1,8 @@
1
- import { Connector } from "@starknet-react/core";
2
- import Controller, { ControllerOptions } from "@cartridge/controller";
3
- import { AccountInterface } from "starknet";
4
- export default class ControllerConnector extends Connector {
5
- controller: Controller;
6
- private _account;
7
- constructor(options?: ControllerOptions);
8
- readonly id = "controller";
9
- readonly name = "Controller";
10
- readonly icon: {
11
- dark: string;
12
- light: string;
13
- };
14
- chainId(): Promise<bigint>;
15
- available(): boolean;
16
- ready(): Promise<boolean>;
17
- connect(): Promise<{
18
- account: string;
19
- chainId: bigint;
20
- }>;
21
- disconnect(): Promise<void>;
22
- account(): Promise<AccountInterface>;
1
+ import ControllerProvider, { ControllerOptions } from "@cartridge/controller";
2
+ import { InjectedConnector } from "@starknet-react/core";
3
+ export default class ControllerConnector extends InjectedConnector {
4
+ controller: ControllerProvider;
5
+ constructor(options: ControllerOptions);
23
6
  username(): Promise<string> | undefined;
24
7
  delegateAccount(): Promise<string | null>;
25
- /**
26
- * @deprecated Use controller.openSettings() instead.
27
- */
28
- openMenu(): Promise<boolean | null>;
29
8
  }
@@ -1,48 +1,15 @@
1
- import { Connector } from "@starknet-react/core";
2
- import Controller from "@cartridge/controller";
3
- import { icon } from "./icon";
4
- export default class ControllerConnector extends Connector {
1
+ import ControllerProvider from "@cartridge/controller";
2
+ import { InjectedConnector } from "@starknet-react/core";
3
+ export default class ControllerConnector extends InjectedConnector {
5
4
  constructor(options) {
6
- super();
7
- this.id = "controller";
8
- this.name = "Controller";
9
- this.icon = {
10
- dark: icon,
11
- light: icon,
12
- };
13
- this.controller = new Controller(options);
14
- }
15
- async chainId() {
16
- if (!this._account) {
17
- return Promise.reject("Account is not connected");
18
- }
19
- const val = await this._account.getChainId();
20
- return Promise.resolve(BigInt(val));
21
- }
22
- available() {
23
- return true;
24
- }
25
- ready() {
26
- return this.controller.ready();
27
- }
28
- async connect() {
29
- this._account = await this.controller.connect();
30
- if (!this._account) {
31
- return Promise.reject("account not found");
32
- }
33
- return {
34
- account: this._account.address,
35
- chainId: await this.chainId(),
36
- };
37
- }
38
- disconnect() {
39
- return this.controller.disconnect();
40
- }
41
- account() {
42
- if (!this._account) {
43
- return Promise.reject("account not found");
44
- }
45
- return Promise.resolve(this._account);
5
+ const controller = new ControllerProvider(options);
6
+ super({
7
+ options: {
8
+ id: controller.id,
9
+ name: controller.name,
10
+ },
11
+ });
12
+ this.controller = controller;
46
13
  }
47
14
  username() {
48
15
  return this.controller.username();
@@ -50,12 +17,5 @@ export default class ControllerConnector extends Connector {
50
17
  async delegateAccount() {
51
18
  return await this.controller.delegateAccount();
52
19
  }
53
- /**
54
- * @deprecated Use controller.openSettings() instead.
55
- */
56
- async openMenu() {
57
- console.warn("openMenu() is deprecated. Please use controller.openSettings() instead.");
58
- return await this.controller.openSettings();
59
- }
60
20
  }
61
21
  //# sourceMappingURL=controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,UAAiC,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,SAAS;IAIxD,YAAY,OAA2B;QACrC,KAAK,EAAE,CAAC;QAID,OAAE,GAAG,YAAY,CAAC;QAElB,SAAI,GAAG,YAAY,CAAC;QAEpB,SAAI,GAAG;YACd,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;SACZ,CAAC;QAVA,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAWD,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAEhD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,IAAI,CACV,yEAAyE,CAC1E,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAyC,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,iBAAiB;IAGhE,YAAY,OAA0B;QACpC,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEnD,KAAK,CAAC;YACJ,OAAO,EAAE;gBACP,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1 @@
1
1
  export { default as ControllerConnector } from "./controller";
2
- export { default as SessionConnector } from "./session";
3
- export { default as TelegramConnector } from "./telegram";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default as ControllerConnector } from "./controller";
2
- export { default as SessionConnector } from "./session";
3
- export { default as TelegramConnector } from "./telegram";
2
+ // export { default as SessionConnector } from "./session";
3
+ // export { default as TelegramConnector } from "./telegram";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9D,2DAA2D;AAC3D,6DAA6D"}
package/dist/session.d.ts CHANGED
@@ -1,66 +1,6 @@
1
- import { Connector } from "@starknet-react/core";
2
- import { Policy } from "@cartridge/controller";
3
- import SessionAccount from "@cartridge/controller/dist/session";
4
- /**
5
- * Represents a unified backend for storage operations and link handling.
6
- */
7
- interface UnifiedBackend {
8
- /**
9
- * Retrieves the value associated with the specified key.
10
- * @param key - The key to look up in the storage.
11
- * @returns A promise that resolves to the stored value as a string, or null if the key doesn't exist.
12
- */
13
- get: (key: string) => Promise<string | null>;
14
- /**
15
- * Stores a key-value pair in the storage.
16
- * @param key - The key under which to store the value.
17
- * @param value - The value to be stored.
18
- * @returns A promise that resolves when the value has been successfully stored.
19
- */
20
- set: (key: string, value: string) => Promise<void>;
21
- /**
22
- * Removes the key-value pair associated with the specified key from the storage.
23
- * @param key - The key of the item to be removed.
24
- * @returns A promise that resolves when the item has been successfully removed.
25
- */
26
- delete: (key: string) => Promise<void>;
27
- /**
28
- * Opens the specified URL.
29
- * @param url - The URL to open.
30
- */
31
- openLink: (url: string) => void;
1
+ import SessionProvider, { SessionOptions } from "@cartridge/controller/session";
2
+ import { InjectedConnector } from "@starknet-react/core";
3
+ export default class ControllerConnector extends InjectedConnector {
4
+ controller: SessionProvider;
5
+ constructor(options: SessionOptions);
32
6
  }
33
- export default class SessionConnector extends Connector {
34
- private _chainId;
35
- private _backend;
36
- private _rpcUrl;
37
- private _policies;
38
- private _username?;
39
- private _redirectUrl;
40
- private _account?;
41
- constructor({ rpcUrl, chainId, policies, backend, redirectUrl, }: {
42
- rpcUrl: string;
43
- chainId: string;
44
- policies: Policy[];
45
- redirectUrl: string;
46
- backend: UnifiedBackend;
47
- });
48
- readonly id = "session";
49
- readonly name = "Session";
50
- readonly icon: {
51
- dark: string;
52
- light: string;
53
- };
54
- chainId(): Promise<bigint>;
55
- available(): boolean;
56
- ready(): Promise<boolean>;
57
- username(): Promise<string | undefined>;
58
- connect(): Promise<{
59
- account: string;
60
- chainId: bigint;
61
- }>;
62
- disconnect(): Promise<void>;
63
- account(): Promise<SessionAccount>;
64
- tryRetrieveFromQueryOrStorage(): Promise<SessionAccount | undefined>;
65
- }
66
- export {};
package/dist/session.js CHANGED
@@ -1,110 +1,15 @@
1
- import { Connector } from "@starknet-react/core";
2
- import { icon } from "./icon";
3
- import { ec, stark } from "starknet";
4
- import SessionAccount from "@cartridge/controller/dist/session";
5
- import { KEYCHAIN_URL } from "./constants";
6
- export default class SessionConnector extends Connector {
7
- constructor({ rpcUrl, chainId, policies, backend, redirectUrl, }) {
8
- super();
9
- this.id = "session";
10
- this.name = "Session";
11
- this.icon = {
12
- dark: icon,
13
- light: icon,
14
- };
15
- this._rpcUrl = rpcUrl;
16
- this._policies = policies;
17
- this._backend = backend;
18
- this._chainId = chainId;
19
- this._redirectUrl = redirectUrl;
20
- }
21
- async chainId() {
22
- return Promise.resolve(BigInt(this._chainId));
23
- }
24
- available() {
25
- return true;
26
- }
27
- ready() {
28
- return Promise.resolve(true);
29
- }
30
- async username() {
31
- await this.tryRetrieveFromQueryOrStorage();
32
- return this._username;
33
- }
34
- async connect() {
35
- await this.tryRetrieveFromQueryOrStorage();
36
- if (this._account) {
37
- return {
38
- account: this._account.address,
39
- chainId: await this.chainId(),
40
- };
41
- }
42
- // Generate a random local key pair
43
- const pk = stark.randomAddress();
44
- const publicKey = ec.starkCurve.getStarkKey(pk);
45
- this._backend.set("sessionSigner", JSON.stringify({
46
- privKey: pk,
47
- pubKey: publicKey,
48
- }));
49
- const url = `${KEYCHAIN_URL}/session?public_key=${publicKey}&redirect_uri=${this._redirectUrl}&redirect_query_name=startapp&policies=${JSON.stringify(this._policies)}&rpc_url=${this._rpcUrl}`;
50
- localStorage.setItem("lastUsedConnector", this.id);
51
- this._backend.openLink(url);
52
- return {
53
- account: "",
54
- chainId: await this.chainId(),
55
- };
56
- }
57
- disconnect() {
58
- this._backend.delete("sessionSigner");
59
- this._backend.delete("session");
60
- this._account = undefined;
61
- this._username = undefined;
62
- return Promise.resolve();
63
- }
64
- async account() {
65
- await this.tryRetrieveFromQueryOrStorage();
66
- if (!this._account) {
67
- return Promise.reject("Session not registered");
68
- }
69
- return this._account;
70
- }
71
- async tryRetrieveFromQueryOrStorage() {
72
- const signer = JSON.parse((await this._backend.get("sessionSigner")));
73
- let sessionRegistration = null;
74
- if (window.location.search.includes("startapp")) {
75
- const params = new URLSearchParams(window.location.search);
76
- const session = params.get("startapp");
77
- if (session) {
78
- sessionRegistration = JSON.parse(atob(session));
79
- this._backend.set("session", JSON.stringify(sessionRegistration));
80
- // Remove the session query parameter
81
- params.delete("startapp");
82
- const newUrl = window.location.pathname +
83
- (params.toString() ? `?${params.toString()}` : "") +
84
- window.location.hash;
85
- window.history.replaceState({}, document.title, newUrl);
86
- }
87
- }
88
- if (!sessionRegistration) {
89
- const session = await this._backend.get("session");
90
- if (session) {
91
- sessionRegistration = JSON.parse(session);
92
- }
93
- }
94
- if (!sessionRegistration) {
95
- return;
96
- }
97
- this._username = sessionRegistration.username;
98
- this._account = new SessionAccount({
99
- rpcUrl: this._rpcUrl,
100
- privateKey: signer.privKey,
101
- address: sessionRegistration.address,
102
- ownerGuid: sessionRegistration.ownerGuid,
103
- chainId: this._chainId,
104
- expiresAt: parseInt(sessionRegistration.expiresAt),
105
- policies: this._policies,
1
+ import SessionProvider from "@cartridge/controller/session";
2
+ import { InjectedConnector } from "@starknet-react/core";
3
+ export default class ControllerConnector extends InjectedConnector {
4
+ constructor(options) {
5
+ const controller = new SessionProvider(options);
6
+ super({
7
+ options: {
8
+ id: controller.id,
9
+ name: controller.name,
10
+ },
106
11
  });
107
- return this._account;
12
+ this.controller = controller;
108
13
  }
109
14
  }
110
15
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,eAAmC,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,iBAAiB;IAGhE,YAAY,OAAuB;QACjC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhD,KAAK,CAAC;YACJ,OAAO,EAAE;gBACP,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartridge/connector",
3
- "version": "0.4.0",
3
+ "version": "0.5.0-alpha.0",
4
4
  "description": "Cartridge Controler Connector",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,14 +25,13 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@starknet-react/core": "^2.1.5",
29
- "@telegram-apps/sdk": "^2.4.0",
28
+ "@starknet-react/core": "^3.0.2",
30
29
  "starknet": "^6.11.0",
31
- "@cartridge/controller": "^0.4.0"
30
+ "@cartridge/controller": "^0.5.0-alpha.0"
32
31
  },
33
32
  "devDependencies": {
34
33
  "typescript": "^5.4.5",
35
- "@cartridge/tsconfig": "^0.4.0"
34
+ "@cartridge/tsconfig": "^0.5.0-alpha.0"
36
35
  },
37
36
  "scripts": {
38
37
  "build:deps": "tsc",
package/src/controller.ts CHANGED
@@ -1,64 +1,20 @@
1
- import { Connector } from "@starknet-react/core";
2
- import Controller, { ControllerOptions } from "@cartridge/controller";
3
- import { AccountInterface } from "starknet";
4
- import { icon } from "./icon";
1
+ import ControllerProvider, { ControllerOptions } from "@cartridge/controller";
2
+ import { InjectedConnector } from "@starknet-react/core";
5
3
 
6
- export default class ControllerConnector extends Connector {
7
- public controller: Controller;
8
- private _account: AccountInterface | undefined;
4
+ export default class ControllerConnector extends InjectedConnector {
5
+ public controller: ControllerProvider;
9
6
 
10
- constructor(options?: ControllerOptions) {
11
- super();
12
- this.controller = new Controller(options);
13
- }
14
-
15
- readonly id = "controller";
16
-
17
- readonly name = "Controller";
7
+ constructor(options: ControllerOptions) {
8
+ const controller = new ControllerProvider(options);
18
9
 
19
- readonly icon = {
20
- dark: icon,
21
- light: icon,
22
- };
23
-
24
- async chainId() {
25
- if (!this._account) {
26
- return Promise.reject("Account is not connected");
27
- }
28
- const val = await this._account.getChainId();
29
- return Promise.resolve(BigInt(val));
30
- }
10
+ super({
11
+ options: {
12
+ id: controller.id,
13
+ name: controller.name,
14
+ },
15
+ });
31
16
 
32
- available(): boolean {
33
- return true;
34
- }
35
-
36
- ready() {
37
- return this.controller.ready();
38
- }
39
-
40
- async connect() {
41
- this._account = await this.controller.connect();
42
-
43
- if (!this._account) {
44
- return Promise.reject("account not found");
45
- }
46
-
47
- return {
48
- account: this._account.address,
49
- chainId: await this.chainId(),
50
- };
51
- }
52
-
53
- disconnect(): Promise<void> {
54
- return this.controller.disconnect();
55
- }
56
-
57
- account() {
58
- if (!this._account) {
59
- return Promise.reject("account not found");
60
- }
61
- return Promise.resolve(this._account);
17
+ this.controller = controller;
62
18
  }
63
19
 
64
20
  username() {
@@ -68,14 +24,4 @@ export default class ControllerConnector extends Connector {
68
24
  async delegateAccount() {
69
25
  return await this.controller.delegateAccount();
70
26
  }
71
-
72
- /**
73
- * @deprecated Use controller.openSettings() instead.
74
- */
75
- async openMenu() {
76
- console.warn(
77
- "openMenu() is deprecated. Please use controller.openSettings() instead.",
78
- );
79
- return await this.controller.openSettings();
80
- }
81
27
  }
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { default as ControllerConnector } from "./controller";
2
- export { default as SessionConnector } from "./session";
3
- export { default as TelegramConnector } from "./telegram";
2
+ // export { default as SessionConnector } from "./session";
3
+ // export { default as TelegramConnector } from "./telegram";