@cartridge/controller 0.1.57 → 0.1.59
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 +2 -1
- package/lib/index.js +13 -28
- package/lib/index.js.map +1 -1
- package/lib/signer.d.ts +4 -4
- package/lib/signer.js +4 -4
- package/lib/signer.js.map +1 -1
- package/lib/types.d.ts +8 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -21,7 +21,8 @@ declare class Controller {
|
|
|
21
21
|
address: string;
|
|
22
22
|
deviceKey: string;
|
|
23
23
|
} | null>;
|
|
24
|
-
login(address: string, credentialId: string
|
|
24
|
+
login(address: string, credentialId: string): Promise<null | undefined>;
|
|
25
|
+
provision(address: string): Promise<string | null>;
|
|
25
26
|
connect(): Promise<AccountInterface | null>;
|
|
26
27
|
disconnect(): Promise<void | null>;
|
|
27
28
|
}
|
package/lib/index.js
CHANGED
|
@@ -32,13 +32,7 @@ const starknet_1 = require("starknet");
|
|
|
32
32
|
const penpal_1 = require("@cartridge/penpal");
|
|
33
33
|
const device_1 = __importDefault(require("./device"));
|
|
34
34
|
const number_1 = require("starknet/utils/number");
|
|
35
|
-
const hash_1 = require("starknet/utils/hash");
|
|
36
|
-
const shortString_1 = require("starknet/utils/shortString");
|
|
37
35
|
const webauthn_1 = __importDefault(require("./webauthn"));
|
|
38
|
-
const PROXY_CLASS = "0x793a374a266432184f68b29546d14fedfdcbe6346bc51bd34ad730e6ff914f3";
|
|
39
|
-
const ACCOUNT_CLASS = "0x21a58754bd7658d29f70e1e5dbebf84ae393a5ef704c4f5a763cc8a61cb3414";
|
|
40
|
-
const CONTROLLER_CLASS = "0x10baeb4233aae14d72f1c2f60d8c46be61436fb06631c835df93b3a9f566351";
|
|
41
|
-
const ACCOUNT_ADDRESS = "0x07d7bbf672edd77578b8864c3e2900ac9194698220adb1b1ecdc45f9222ca291";
|
|
42
36
|
class Controller {
|
|
43
37
|
constructor(scopes, options) {
|
|
44
38
|
this.selector = "cartridge-messenger";
|
|
@@ -110,35 +104,17 @@ class Controller {
|
|
|
110
104
|
console.error("not ready for connect");
|
|
111
105
|
return null;
|
|
112
106
|
}
|
|
113
|
-
|
|
114
|
-
const { x: y0, y: y1, z: y2 } = split((0, number_1.toBN)(credential.y));
|
|
115
|
-
const deviceKey = yield this.keychain.provision();
|
|
116
|
-
const address = (0, hash_1.calculateContractAddressFromHash)((0, shortString_1.encodeShortString)(username), (0, number_1.toBN)(PROXY_CLASS), [
|
|
117
|
-
(0, number_1.toBN)(ACCOUNT_CLASS),
|
|
118
|
-
(0, hash_1.getSelectorFromName)("initialize"),
|
|
119
|
-
"9",
|
|
120
|
-
(0, number_1.toBN)(CONTROLLER_CLASS),
|
|
121
|
-
"7",
|
|
122
|
-
x0,
|
|
123
|
-
x1,
|
|
124
|
-
x2,
|
|
125
|
-
y0,
|
|
126
|
-
y1,
|
|
127
|
-
y2,
|
|
128
|
-
(0, number_1.toBN)(deviceKey),
|
|
129
|
-
"12",
|
|
130
|
-
], (0, number_1.toBN)(ACCOUNT_ADDRESS));
|
|
131
|
-
return { address, deviceKey };
|
|
107
|
+
return yield this.keychain.register(username, credential);
|
|
132
108
|
});
|
|
133
109
|
}
|
|
134
|
-
login(address, credentialId
|
|
110
|
+
login(address, credentialId) {
|
|
135
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
136
112
|
if (!this.keychain) {
|
|
137
113
|
console.error("not ready for connect");
|
|
138
114
|
return null;
|
|
139
115
|
}
|
|
140
|
-
const
|
|
141
|
-
const
|
|
116
|
+
const deviceKey = yield this.keychain.provision(address);
|
|
117
|
+
const account = new webauthn_1.default(address, credentialId, deviceKey);
|
|
142
118
|
const calls = [
|
|
143
119
|
{
|
|
144
120
|
contractAddress: address,
|
|
@@ -149,6 +125,15 @@ class Controller {
|
|
|
149
125
|
yield account.execute(calls);
|
|
150
126
|
});
|
|
151
127
|
}
|
|
128
|
+
provision(address) {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
if (!this.keychain) {
|
|
131
|
+
console.error("not ready for connect");
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
return this.keychain.provision(address);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
152
137
|
connect() {
|
|
153
138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
139
|
if (this.account) {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA8B;AAC9B,uCAA0D;AAC1D,8CAAmF;AAEnF,sDAAqC;AAErC,kDAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/signer.d.ts
CHANGED
|
@@ -8,10 +8,10 @@ export declare class Signer implements SignerInterface {
|
|
|
8
8
|
url?: string;
|
|
9
9
|
});
|
|
10
10
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
* Method to get the public key of the signer
|
|
12
|
+
*
|
|
13
|
+
* @returns public key of signer as hex string with 0x prefix
|
|
14
|
+
*/
|
|
15
15
|
getPubKey(): Promise<string>;
|
|
16
16
|
/**
|
|
17
17
|
* Sign an JSON object for off-chain usage with the starknet private key and return the signature
|
package/lib/signer.js
CHANGED
|
@@ -23,10 +23,10 @@ class Signer {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
* Method to get the public key of the signer
|
|
27
|
+
*
|
|
28
|
+
* @returns public key of signer as hex string with 0x prefix
|
|
29
|
+
*/
|
|
30
30
|
getPubKey() {
|
|
31
31
|
return Promise.resolve("");
|
|
32
32
|
}
|
package/lib/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA,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;;;;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA,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;CACJ;AAzED,wBAyEC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -20,7 +20,14 @@ export interface Keychain {
|
|
|
20
20
|
disconnect(): void;
|
|
21
21
|
estimateFee(calls: Call | Call[], estimateFeeDetails?: EstimateFeeDetails): Promise<EstimateFee>;
|
|
22
22
|
execute(calls: Call | Call[], abis?: Abi[], transactionsDetail?: InvocationsDetails, sync?: boolean): Promise<InvokeFunctionResponse>;
|
|
23
|
-
provision(): Promise<string>;
|
|
23
|
+
provision(address: string): Promise<string>;
|
|
24
|
+
register(username: string, credential: {
|
|
25
|
+
x: string;
|
|
26
|
+
y: string;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
address: string;
|
|
29
|
+
deviceKey: string;
|
|
30
|
+
}>;
|
|
24
31
|
signMessage(typedData: typedData.TypedData, account: string): Promise<Signature>;
|
|
25
32
|
signTransaction(transactions: Call[], transactionsDetail: InvocationsSignerDetails, abis?: Abi[]): Promise<Signature>;
|
|
26
33
|
}
|