@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 +4 -1
- package/lib/device.js +2 -25
- package/lib/device.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.js +8 -7
- package/lib/index.js.map +1 -1
- package/lib/inject.d.ts +69 -0
- package/lib/inject.js +84 -0
- package/lib/inject.js.map +1 -0
- package/lib/signer.d.ts +2 -17
- package/lib/signer.js +0 -31
- package/lib/signer.js.map +1 -1
- package/lib/types.d.ts +17 -10
- package/package.json +1 -1
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
|
|
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=
|
|
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":";;;;;;;;;;;;;;AAAA,uCAckB;AAClB,gEAA8B;AAK9B,qCAAkC;
|
|
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
|
-
|
|
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 |
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA8B;AAC9B,uCAAoD;AACpD,8CAAmF;AAEnF,sDAAqC;AAErC,uDAAgE;AAEhE,MAAM,UAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/inject.d.ts
ADDED
|
@@ -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 {
|
|
1
|
+
import { Signature, typedData } from "starknet";
|
|
2
2
|
import { Keychain } from "./types";
|
|
3
3
|
import { AsyncMethodReturns } from "@cartridge/penpal";
|
|
4
|
-
export declare class Signer
|
|
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":";;;;;;;;;;;;;;;
|
|
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,
|
|
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 =
|
|
5
|
-
|
|
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
|
|
30
|
-
|
|
31
|
-
|
|
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
|
}
|