@cartridge/controller 0.1.75 → 0.2.3

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/device.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Account, DeployContractPayload, Abi, Call, EstimateFeeDetails, DeployContractResponse as StarknetDeployContractResponse, InvocationsDetails, Signature, typedData, InvokeFunctionResponse, EstimateFee, DeclareContractPayload } from "starknet";
2
2
  import { Keychain } from "./types";
3
3
  import { AsyncMethodReturns } from "@cartridge/penpal";
4
+ import { StarknetChainId } from "starknet/dist/constants";
4
5
  declare class DeviceAccount extends Account {
5
6
  address: string;
6
7
  private keychain;
@@ -44,7 +45,9 @@ declare class DeviceAccount extends Account {
44
45
  *
45
46
  * @returns response from addTransaction
46
47
  */
47
- execute(calls: Call | Call[], abis?: Abi[], transactionsDetail?: InvocationsDetails): Promise<InvokeFunctionResponse>;
48
+ execute(calls: Call | Call[], abis?: Abi[], transactionsDetail?: InvocationsDetails & {
49
+ chainId?: StarknetChainId;
50
+ }): Promise<InvokeFunctionResponse>;
48
51
  /**
49
52
  * Sign an JSON object for off-chain usage with the starknet private key and return the signature
50
53
  * This adds a message prefix so it cant be interchanged with transactions
package/lib/device.js CHANGED
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const starknet_1 = require("starknet");
16
16
  const query_string_1 = __importDefault(require("query-string"));
17
17
  const signer_1 = require("./signer");
18
- const constants_1 = require("starknet/dist/constants");
19
18
  class DeviceAccount extends starknet_1.Account {
20
19
  constructor(address, keychain, options) {
21
20
  super(starknet_1.defaultProvider, address, new signer_1.Signer(keychain, options));
@@ -79,21 +78,6 @@ class DeviceAccount extends starknet_1.Account {
79
78
  if (!transactionsDetail) {
80
79
  transactionsDetail = {};
81
80
  }
82
- if (!transactionsDetail.nonce) {
83
- transactionsDetail.nonce = 0; //await this.getNonce();
84
- }
85
- if (!transactionsDetail.version) {
86
- transactionsDetail.version = 1;
87
- }
88
- if (!transactionsDetail.maxFee) {
89
- try {
90
- transactionsDetail.maxFee = "100"; // (await this.estimateFee(calls, { nonce: transactionsDetail.nonce })).suggestedMaxFee
91
- }
92
- catch (e) {
93
- console.error(e);
94
- throw e;
95
- }
96
- }
97
81
  try {
98
82
  return yield this.keychain.execute(calls, abis, transactionsDetail);
99
83
  }
@@ -103,14 +87,7 @@ class DeviceAccount extends starknet_1.Account {
103
87
  throw e;
104
88
  }
105
89
  }
106
- window.open(`${this.url}/execute?${query_string_1.default.stringify({
107
- origin: window.origin,
108
- calls: JSON.stringify(calls),
109
- nonce: transactionsDetail.nonce,
110
- version: transactionsDetail.version,
111
- maxFee: transactionsDetail.maxFee,
112
- chainId: constants_1.StarknetChainId.TESTNET,
113
- })}`, "_blank", "height=650,width=400");
90
+ window.open(`${this.url}/execute?${query_string_1.default.stringify(Object.assign(Object.assign({}, transactionsDetail), { origin: window.origin, calls: JSON.stringify(calls) }))}`, "_blank", "height=650,width=450");
114
91
  return this.keychain.execute(calls, abis, transactionsDetail, true);
115
92
  });
116
93
  }
@@ -126,7 +103,7 @@ class DeviceAccount extends starknet_1.Account {
126
103
  return __awaiter(this, void 0, void 0, function* () {
127
104
  window.open(`${this.url}/sign?${query_string_1.default.stringify({
128
105
  typedData: JSON.stringify(typedData),
129
- })}`, "_blank", "height=650,width=400");
106
+ })}`, "_blank", "height=650,width=450");
130
107
  return this.keychain.signMessage(typedData, this.address);
131
108
  });
132
109
  }
package/lib/device.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAckB;AAClB,gEAA8B;AAK9B,qCAAkC;AAIlC,MAAM,aAAc,SAAQ,kBAAO;IAKjC,YACE,OAAe,EACf,QAAsC,EACtC,OAEC;QAED,KAAK,CAAC,0BAAe,EAAE,OAAO,EAAE,IAAI,eAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QATzD,QAAG,GAAW,wBAAwB,CAAC;QAU7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;SACxB;IACH,CAAC;IAED;;;;;;;;;OASG;IACG,cAAc,CAClB,OAA8B,EAC9B,GAAS;;YAET,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;KAAA;IAED;;;;;;;;;;SAUK;IACC,iBAAiB,CAAC,KAAoB,EAAE,OAA4B;;YACxE,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACxD,CAAC;KAAA;IAEK,kBAAkB,CAAC,OAA+B,EAAE,OAA4B;;YACpF,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACG,OAAO,CACX,KAAoB,EACpB,IAAY,EACZ,kBAEC;;YAED,IAAI,CAAC,kBAAkB,EAAE;gBACvB,kBAAkB,GAAG,EAAE,CAAA;aACxB;YAED,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAA;aACpE;YAAC,OAAO,CAAC,EAAE;gBACV,IAAK,CAAW,CAAC,OAAO,KAAK,kBAAkB,EAAE;oBAC/C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAChB,MAAM,CAAC,CAAA;iBACR;aACF;YAED,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,YAAY,sBAAE,CAAC,SAAS,iCAC9B,kBAAkB,KACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAC5B,EAAE,EACJ,QAAQ,EACR,sBAAsB,CACvB,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;KAAA;IAED;;;;;;;OAOG;IACG,WAAW,CAAC,SAA8B;;YAC9C,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,SAAS,sBAAE,CAAC,SAAS,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACrC,CAAC,EAAE,EACJ,QAAQ,EACR,sBAAsB,CACvB,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;KAAA;CACF;AAED,kBAAe,aAAa,CAAC"}
package/lib/index.d.ts CHANGED
@@ -9,14 +9,14 @@ declare class Controller {
9
9
  keychain?: AsyncMethodReturns<Keychain>;
10
10
  private policies;
11
11
  private url;
12
- private account;
12
+ account?: AccountInterface;
13
13
  constructor(policies?: Policy[], options?: {
14
14
  url?: string;
15
15
  origin?: string;
16
16
  });
17
17
  ready(): Promise<boolean | undefined>;
18
18
  probe(): Promise<boolean | null>;
19
- register(username: string, credential: {
19
+ register(username: string, credentialId: string, credential: {
20
20
  x: string;
21
21
  y: string;
22
22
  }): Promise<{
@@ -28,10 +28,9 @@ declare class Controller {
28
28
  challengeExt?: Buffer;
29
29
  }): Promise<{
30
30
  assertion: import("./types").Assertion;
31
- transactionHash: string;
32
31
  } | null>;
33
- provision(address: string): Promise<string | null>;
34
- connect(): Promise<AccountInterface | null>;
32
+ provision(address: string, credentialId: string): Promise<string | null>;
33
+ connect(): Promise<AccountInterface | undefined>;
35
34
  disconnect(): Promise<void | null>;
36
35
  revoke(origin: string, policy: Policy[]): Promise<void> | null;
37
36
  approvals(origin: string): Promise<Session | undefined>;
@@ -43,4 +42,5 @@ export declare function split(n: BigNumberish): {
43
42
  };
44
43
  export * from "./types";
45
44
  export * from "./errors";
45
+ export { injectController } from "./inject";
46
46
  export default Controller;
package/lib/index.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.split = void 0;
29
+ exports.injectController = exports.split = void 0;
30
30
  const query_string_1 = __importDefault(require("query-string"));
31
31
  const starknet_1 = require("starknet");
32
32
  const penpal_1 = require("@cartridge/penpal");
@@ -69,7 +69,6 @@ class Controller {
69
69
  }
70
70
  this.connection = (0, penpal_1.connectToChild)({
71
71
  iframe,
72
- debug: true,
73
72
  });
74
73
  this.connection.promise.then((keychain) => this.keychain = keychain).then(() => this.probe());
75
74
  }
@@ -98,13 +97,13 @@ class Controller {
98
97
  });
99
98
  }
100
99
  // Register a new device key.
101
- register(username, credential) {
100
+ register(username, credentialId, credential) {
102
101
  return __awaiter(this, void 0, void 0, function* () {
103
102
  if (!this.keychain) {
104
103
  console.error("not ready for connect");
105
104
  return null;
106
105
  }
107
- return yield this.keychain.register(username, credential);
106
+ return yield this.keychain.register(username, credentialId, credential);
108
107
  });
109
108
  }
110
109
  login(address, credentialId, options) {
@@ -116,13 +115,13 @@ class Controller {
116
115
  return this.keychain.login(address, credentialId, options);
117
116
  });
118
117
  }
119
- provision(address) {
118
+ provision(address, credentialId) {
120
119
  return __awaiter(this, void 0, void 0, function* () {
121
120
  if (!this.keychain) {
122
121
  console.error("not ready for connect");
123
122
  return null;
124
123
  }
125
- return this.keychain.provision(address);
124
+ return this.keychain.provision(address, credentialId);
126
125
  });
127
126
  }
128
127
  connect() {
@@ -132,7 +131,7 @@ class Controller {
132
131
  }
133
132
  if (!this.keychain) {
134
133
  console.error("not ready for connect");
135
- return null;
134
+ return;
136
135
  }
137
136
  if (!!document.hasStorageAccess) {
138
137
  const ok = yield document.hasStorageAccess();
@@ -193,5 +192,7 @@ function split(n) {
193
192
  exports.split = split;
194
193
  __exportStar(require("./types"), exports);
195
194
  __exportStar(require("./errors"), exports);
195
+ var inject_1 = require("./inject");
196
+ Object.defineProperty(exports, "injectController", { enumerable: true, get: function () { return inject_1.injectController; } });
196
197
  exports.default = Controller;
197
198
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { AccountInterface, ProviderInterface } from "starknet";
2
+ export declare type EventType = "accountsChanged" | "networkChanged";
3
+ export declare type EventHandler = (data: any) => void;
4
+ interface WatchAssetParameters {
5
+ type: string;
6
+ options: {
7
+ address: string;
8
+ symbol?: string;
9
+ decimals?: number;
10
+ image?: string;
11
+ name?: string;
12
+ };
13
+ }
14
+ export declare type RpcMessage = {
15
+ type: "wallet_watchAsset";
16
+ params: WatchAssetParameters;
17
+ result: boolean;
18
+ } | {
19
+ type: string;
20
+ params: unknown;
21
+ result: never;
22
+ };
23
+ export declare type AccountChangeEventHandler = (accounts: string[]) => void;
24
+ export declare type NetworkChangeEventHandler = (network?: string) => void;
25
+ export declare type WalletEventHandlers = AccountChangeEventHandler | NetworkChangeEventHandler;
26
+ export declare type WalletEvents = {
27
+ type: "accountsChanged";
28
+ handler: AccountChangeEventHandler;
29
+ } | {
30
+ type: "networkChanged";
31
+ handler: NetworkChangeEventHandler;
32
+ };
33
+ export interface IStarknetWindowObject {
34
+ request: <T extends RpcMessage>(call: Omit<T, "result">) => Promise<T["result"]>;
35
+ enable: (options?: {
36
+ showModal?: boolean;
37
+ }) => Promise<string[]>;
38
+ isPreauthorized: () => Promise<boolean>;
39
+ on: (event: EventType, handleEvent: EventHandler) => void;
40
+ off: (event: EventType, handleEvent: EventHandler) => void;
41
+ id: string;
42
+ name: string;
43
+ version: string;
44
+ icon: string;
45
+ provider: ProviderInterface;
46
+ isConnected: boolean;
47
+ account?: AccountInterface;
48
+ selectedAddress?: string;
49
+ }
50
+ export declare class InjectedController implements IStarknetWindowObject {
51
+ id: string;
52
+ name: string;
53
+ version: string;
54
+ icon: string;
55
+ provider: import("starknet").Provider;
56
+ isConnected: boolean;
57
+ account?: AccountInterface | undefined;
58
+ selectedAddress?: string;
59
+ subscriptions: WalletEvents[];
60
+ private controller;
61
+ constructor();
62
+ request: (call: Omit<RpcMessage, "result">) => Promise<RpcMessage["result"]>;
63
+ enable: () => Promise<string[]>;
64
+ isPreauthorized: () => Promise<boolean>;
65
+ on: (type: EventType, handler: EventHandler) => void;
66
+ off: (type: EventType, handler: EventHandler) => void;
67
+ }
68
+ declare function injectController(): void;
69
+ export { injectController };
package/lib/inject.js ADDED
@@ -0,0 +1,84 @@
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.injectController = exports.InjectedController = void 0;
16
+ const starknet_1 = require("starknet");
17
+ const _1 = __importDefault(require("."));
18
+ class InjectedController {
19
+ constructor() {
20
+ this.id = "Cartridge";
21
+ this.name = "Cartridge";
22
+ this.version = "0.0.1";
23
+ this.icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjkiIGhlaWdodD0iNTciIHZpZXdCb3g9IjAgMCA2OSA1NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy41NTEzIDAuMDM5MDYyNUg0NC42Mjc4TDQ0LjcwMTIgMC4wNDE3NTc4QzQ2LjI2MjQgMC4wOTkwOTkyIDQ3Ljc5NDggMC40NzQ3OTUgNDkuMjA0OSAxLjE0NTA5TDYzLjUyMjcgNy4xODc5NUw2My42NTIyIDcuMjU0MDRDNjUuMDExOCA3Ljk0ODEyIDY2LjE0NzggOS4wMTA3NyA2Ni45MzE2IDEwLjMxOTNDNjcuNzA4MSAxMS42MTU3IDY4LjEwODUgMTMuMTAyMSA2OC4wODg5IDE0LjYxMjFWMzguNjg0QzY4LjA4ODkgMzguNzEgNjguMDg5IDM4LjczNzYgNjguMDg5MSAzOC43NjY2QzY4LjA5MTQgMzkuNjQwOSA2OC4wOTc0IDQxLjgzNTYgNjYuMTY5NyA0My43NjgxTDYxLjY2MjYgNDguMjg2NUM2MC44OTEzIDQ5LjA1OTggNTkuOTY3IDQ5LjY3NDkgNTguODA3IDQ5Ljk4NDlDNTcuOTIxNyA1MC4yMjE1IDU3LjA1MzUgNTAuMjE3IDU2LjY2MyA1MC4yMTVDNTYuNjMxMSA1MC4yMTQ4IDU2LjYwMjQgNTAuMjE0NyA1Ni41NzcxIDUwLjIxNDdMNTAuMzM4NSA1MC4yMDk5TDUwLjMzNjIgNTYuMjM1M0gxNy45MjkzVjUwLjIxNDdIMTEuNjA0QzExLjU3ODggNTAuMjE0NyAxMS41NTAxIDUwLjIxNDggMTEuNTE4MiA1MC4yMTVDMTEuMTI3NiA1MC4yMTcgMTAuMjU5NSA1MC4yMjE1IDkuMzc0MTYgNDkuOTg0OUM4LjIxNDUgNDkuNjc0OSA3LjI5MDQgNDkuMDYwMiA2LjUxOTEyIDQ4LjI4NzFMMi4wMTAxMSA0My43Njg3QzAuMDgyNDUwMyA0MS44MzYyIDAuMDg3Nzg0NCAzOS42NDA5IDAuMDkwMTUyNCAzOC43NjY2QzAuMDkwMjMwOSAzOC43Mzc2IDAuMDkwMzA1NSAzOC43MSAwLjA5MDMwNTUgMzguNjg0VjE0LjYxMjdDMC4wNzA0MyAxMy4xMDI1IDAuNDcwNjMgMTEuNjE1NyAxLjI0NzI5IDEwLjMxOTJDMi4wMzEzOSA5LjAxMDE4IDMuMTY3OTIgNy45NDczOCA0LjUyODExIDcuMjUzNUw0LjY1Njk3IDcuMTg3NzZMMTguOTcyOCAxLjE0NDg5QzIwLjM4MzUgMC40NzQ4MDggMjEuOTE2MiAwLjA5OTE5NTUgMjMuNDc3OCAwLjA0MTc2NUwyMy41NTEzIDAuMDM5MDYyNVoiIGZpbGw9IiMwRjE0MTAiLz4KPHBhdGggZD0iTTIyLjI4NjMgMjIuOTcyOUg0NS42NDdWMTcuMDcxN0gyMi4yOTIyQzIyLjI5MjIgMTcuNjc0NiAyMi4yODYzIDIyLjk3MjkgMjIuMjg2MyAyMi45NzI5WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8cGF0aCBkPSJNNjEuODMzNCAxMC44MTY3TDQ3LjU1OTEgNC43OTIxM0M0Ni42MjA4IDQuMzMzODggNDUuNTk3NCA0LjA3NzM3IDQ0LjU1NDQgNC4wMzkwNkgyMy42MjQ4QzIyLjU4MTIgNC4wNzc0NCAyMS41NTcxIDQuMzMzOTQgMjAuNjE4MiA0Ljc5MjEzTDYuMzQ1NzkgMTAuODE2N0M1LjY1NTMgMTEuMTY4OSA1LjA3NzYxIDExLjcwODggNC42Nzg3NiAxMi4zNzQ3QzQuMjc5OSAxMy4wNDA1IDQuMDc1OTggMTMuODA1NCA0LjA5MDMxIDE0LjU4MlYzOC42ODRDNC4wOTAzMSAzOS40MzcxIDQuMDkwMyA0MC4xOTAxIDQuODQxNDggNDAuOTQzMkw5LjM1MDQ5IDQ1LjQ2MTZDMTAuMTAxNyA0Ni4yMTQ3IDEwLjY2NTUgNDYuMjE0NyAxMS42MDQgNDYuMjE0N0gyMS45MjkzQzIxLjkyOTMgNDYuODYyMSAyMS45MjkzIDUyLjIzNTMgMjEuOTI5MyA1Mi4yMzUzSDQ2LjMzNzdWNDYuMjA2OUgyMS45NDg4VjQwLjE5MDFIMTAuODUyOEMxMC4xMDE3IDQwLjE5MDEgMTAuMTAxNyAzOS40MzcxIDEwLjEwMTcgMzkuNDM3MVYxMC44MTY3QzEwLjEwMTcgMTAuODE2NyAxMC4xMDE3IDEwLjA2MzYgMTAuODUyOCAxMC4wNjM2SDU3LjMyODNDNTguMDc5NSAxMC4wNjM2IDU4LjA3OTUgMTAuODE2NyA1OC4wNzk1IDEwLjgxNjdWMzkuNDM3MUM1OC4wNzk1IDM5LjQzNzEgNTguMDc5NSA0MC4xOTAxIDU3LjMyODMgNDAuMTkwMUg0Ni4zNDM2TDQ2LjMzNzcgNDYuMjA2OUw1Ni41NzcxIDQ2LjIxNDdDNTcuNTE1NiA0Ni4yMTQ3IDU4LjA3OTUgNDYuMjE0NyA1OC44MzA3IDQ1LjQ2MTZMNjMuMzM3NyA0MC45NDMyQzY0LjA4ODkgNDAuMTkwMSA2NC4wODg5IDM5LjQzNzEgNjQuMDg4OSAzOC42ODRWMTQuNTgyQzY0LjEwMyAxMy44MDU1IDYzLjg5OSAxMy4wNDA2IDYzLjUwMDEgMTIuMzc0OEM2My4xMDEzIDExLjcwOSA2Mi41MjM4IDExLjE2OTEgNjEuODMzNCAxMC44MTY3WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8L3N2Zz4K";
24
+ this.provider = starknet_1.defaultProvider;
25
+ this.isConnected = false;
26
+ this.subscriptions = [];
27
+ this.request = (call) => {
28
+ throw Error("Not implemented");
29
+ };
30
+ this.enable = () => __awaiter(this, void 0, void 0, function* () {
31
+ this.account = yield this.controller.connect();
32
+ if (!this.account) {
33
+ return [];
34
+ }
35
+ this.isConnected = true;
36
+ return [this.account.address];
37
+ });
38
+ this.isPreauthorized = () => __awaiter(this, void 0, void 0, function* () {
39
+ return this.controller.ready().then(() => {
40
+ return this.controller.probe();
41
+ }).then(connected => !!connected);
42
+ });
43
+ this.on = (type, handler) => {
44
+ if (type === "accountsChanged") {
45
+ this.subscriptions.push({
46
+ type,
47
+ handler,
48
+ });
49
+ }
50
+ else if (type === "networkChanged") {
51
+ this.subscriptions.push({
52
+ type,
53
+ handler,
54
+ });
55
+ }
56
+ else {
57
+ throw new Error(`Unknwown event: ${type}`);
58
+ }
59
+ };
60
+ this.off = (type, handler) => {
61
+ if (type !== "accountsChanged" && type !== "networkChanged") {
62
+ throw new Error(`Unknwown event: ${type}`);
63
+ }
64
+ const idx = this.subscriptions.findIndex((userEvent) => userEvent.type === type && userEvent.handler === handler);
65
+ if (idx >= 0) {
66
+ this.subscriptions.splice(idx, 1);
67
+ }
68
+ };
69
+ this.controller = new _1.default();
70
+ this.controller.ready().then(isConnected => {
71
+ this.isConnected = !!isConnected;
72
+ if (this.controller.account) {
73
+ this.account = this.controller.account;
74
+ this.selectedAddress = this.account.address;
75
+ }
76
+ });
77
+ }
78
+ }
79
+ exports.InjectedController = InjectedController;
80
+ function injectController() {
81
+ window.starknet_cartridge = new InjectedController();
82
+ }
83
+ exports.injectController = injectController;
84
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
package/lib/signer.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Abi, InvocationsSignerDetails, SignerInterface, Signature, typedData, Call, DeclareSignerDetails, DeployAccountSignerDetails } from "starknet";
1
+ import { Signature, typedData } from "starknet";
2
2
  import { Keychain } from "./types";
3
3
  import { AsyncMethodReturns } from "@cartridge/penpal";
4
- export declare class Signer implements SignerInterface {
4
+ export declare class Signer {
5
5
  private keychain;
6
6
  private url;
7
7
  constructor(keychain: AsyncMethodReturns<Keychain>, options?: {
@@ -23,19 +23,4 @@ export declare class Signer implements SignerInterface {
23
23
  * @throws {Error} if the JSON object is not a valid JSON
24
24
  */
25
25
  signMessage(typedData: typedData.TypedData, account: string): Promise<Signature>;
26
- /**
27
- * Signs a transaction with the starknet private key and returns the signature
28
- *
29
- * @param invocation the invocation object containing:
30
- * - contractAddress - the address of the contract
31
- * - entrypoint - the entrypoint of the contract
32
- * - calldata - (defaults to []) the calldata
33
- * - signature - (defaults to []) the signature
34
- * @param abi (optional) the abi of the contract for better displaying
35
- *
36
- * @returns signature
37
- */
38
- signTransaction(calls: Call[], transactionsDetail: InvocationsSignerDetails, abis?: Abi[]): Promise<Signature>;
39
- signDeclareTransaction(details: DeclareSignerDetails): Promise<Signature>;
40
- signDeployAccountTransaction(transaction: DeployAccountSignerDetails): Promise<Signature>;
41
26
  }
package/lib/signer.js CHANGED
@@ -48,37 +48,6 @@ class Signer {
48
48
  return this.keychain.signMessage(typedData, account);
49
49
  });
50
50
  }
51
- /**
52
- * Signs a transaction with the starknet private key and returns the signature
53
- *
54
- * @param invocation the invocation object containing:
55
- * - contractAddress - the address of the contract
56
- * - entrypoint - the entrypoint of the contract
57
- * - calldata - (defaults to []) the calldata
58
- * - signature - (defaults to []) the signature
59
- * @param abi (optional) the abi of the contract for better displaying
60
- *
61
- * @returns signature
62
- */
63
- signTransaction(calls, transactionsDetail, abis) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- window.open(`${this.url}/sign?${query_string_1.default.stringify({
66
- origin: window.origin,
67
- calls: JSON.stringify(calls),
68
- })}`, "_blank", "height=650,width=400");
69
- return this.keychain.signTransaction(calls, transactionsDetail, abis);
70
- });
71
- }
72
- signDeclareTransaction(details) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- return this.keychain.signDeclareTransaction(details);
75
- });
76
- }
77
- signDeployAccountTransaction(transaction) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- return this.keychain.signDeployAccountTransaction(transaction);
80
- });
81
- }
82
51
  }
83
52
  exports.Signer = Signer;
84
53
  //# 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":";;;;;;;;;;;;;;;AAUA,gEAA8B;AAK9B,MAAa,MAAM;IAIf,YAAY,QAAsC,EAAE,OAEnD;QAJO,QAAG,GAAW,sBAAsB,CAAC;QAKzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;YACd,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;SAC1B;IACL,CAAC;IAED;;;;OAIG;IACI,SAAS;QACZ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACU,WAAW,CAAC,SAA8B,EAAE,OAAe;;YACpE,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,GAAG,SAAS,sBAAE,CAAC,SAAS,CAAC;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;aAC7C,CAAC,EAAE,EACJ,QAAQ,EACR,sBAAsB,CACzB,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACU,eAAe,CACxB,KAAa,EACb,kBAA4C,EAC5C,IAAY;;YAEZ,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,GAAG,SAAS,sBAAE,CAAC,SAAS,CAAC;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC/B,CAAC,EAAE,EACJ,QAAQ,EACR,sBAAsB,CACzB,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;KAAA;IAEY,sBAAsB,CAAC,OAA6B;;YAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;IAEY,4BAA4B,CAAC,WAAuC;;YAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;KAAA;CACJ;AAjFD,wBAiFC"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,gEAA8B;AAK9B,MAAa,MAAM;IAIf,YAAY,QAAsC,EAAE,OAEnD;QAJO,QAAG,GAAW,sBAAsB,CAAC;QAKzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;YACd,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;SAC1B;IACL,CAAC;IAED;;;;OAIG;IACI,SAAS;QACZ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACU,WAAW,CAAC,SAA8B,EAAE,OAAe;;YACpE,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,GAAG,SAAS,sBAAE,CAAC,SAAS,CAAC;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;aAC7C,CAAC,EAAE,EACJ,QAAQ,EACR,sBAAsB,CACzB,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;CACJ;AA5CD,wBA4CC"}
package/lib/types.d.ts CHANGED
@@ -1,8 +1,17 @@
1
1
  /// <reference types="node" />
2
- import { Abi, Call, InvocationsDetails, typedData, InvokeFunctionResponse, Signature, InvocationsSignerDetails, EstimateFeeDetails, EstimateFee, DeclareSignerDetails, DeclareContractPayload, DeployAccountSignerDetails } from "starknet";
2
+ import { Abi, Call, InvocationsDetails, typedData, InvokeFunctionResponse, Signature, EstimateFeeDetails, EstimateFee, DeclareContractPayload } from "starknet";
3
+ import { StarknetChainId } from "starknet/dist/constants";
3
4
  import { BigNumberish } from "starknet/dist/utils/number";
4
- export declare type Assertion = PublicKeyCredential & {
5
- response: AuthenticatorAssertionResponse;
5
+ export declare type Assertion = {
6
+ id: string;
7
+ type: string;
8
+ rawId: string;
9
+ clientExtensionResults: AuthenticationExtensionsClientOutputs;
10
+ response: {
11
+ authenticatorData: string;
12
+ clientDataJSON: string;
13
+ signature: string;
14
+ };
6
15
  };
7
16
  export declare type Session = {
8
17
  policies: Policy[];
@@ -26,9 +35,11 @@ export interface Keychain {
26
35
  approvals(origin: string): Promise<Session | undefined>;
27
36
  estimateDeclareFee(payload: DeclareContractPayload, details?: EstimateFeeDetails): Promise<EstimateFee>;
28
37
  estimateInvokeFee(calls: Call | Call[], estimateFeeDetails?: EstimateFeeDetails): Promise<EstimateFee>;
29
- execute(calls: Call | Call[], abis?: Abi[], transactionsDetail?: InvocationsDetails, sync?: boolean): Promise<InvokeFunctionResponse>;
30
- provision(address: string): Promise<string>;
31
- register(username: string, credential: {
38
+ execute(calls: Call | Call[], abis?: Abi[], transactionsDetail?: InvocationsDetails & {
39
+ chainId?: StarknetChainId;
40
+ }, sync?: boolean): Promise<InvokeFunctionResponse>;
41
+ provision(address: string, credentialId: string): Promise<string>;
42
+ register(username: string, credentialId: string, credential: {
32
43
  x: string;
33
44
  y: string;
34
45
  }): Promise<{
@@ -40,7 +51,6 @@ export interface Keychain {
40
51
  challengeExt?: Buffer;
41
52
  }): Promise<{
42
53
  assertion: Assertion;
43
- transactionHash: string;
44
54
  }>;
45
55
  logout(): Promise<void>;
46
56
  session(): Promise<Session>;
@@ -48,7 +58,4 @@ export interface Keychain {
48
58
  [key: string]: Session;
49
59
  }>;
50
60
  signMessage(typedData: typedData.TypedData, account: string): Promise<Signature>;
51
- signTransaction(transactions: Call[], transactionsDetail: InvocationsSignerDetails, abis?: Abi[]): Promise<Signature>;
52
- signDeclareTransaction(details: DeclareSignerDetails): Promise<Signature>;
53
- signDeployAccountTransaction(transaction: DeployAccountSignerDetails): Promise<Signature>;
54
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartridge/controller",
3
- "version": "0.1.75",
3
+ "version": "0.2.3",
4
4
  "description": "Cartridge Controller",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",