@cartridge/controller 0.3.18 → 0.3.20
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/LICENSE +16 -0
- package/{lib → dist}/constants.d.ts +1 -7
- package/dist/constants.js +25 -0
- package/dist/constants.js.map +1 -0
- package/{lib → dist}/device.d.ts +3 -3
- package/dist/device.js +92 -0
- package/dist/device.js.map +1 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/{lib → dist}/index.d.ts +12 -12
- package/dist/index.js +221 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/inject.d.ts +13 -12
- package/{lib → dist}/inject.js +15 -51
- package/dist/inject.js.map +1 -0
- package/{lib → dist}/modal.js +3 -7
- package/dist/modal.js.map +1 -0
- package/{lib → dist}/signer.d.ts +6 -3
- package/dist/signer.js +48 -0
- package/dist/signer.js.map +1 -0
- package/{lib → dist}/types.d.ts +14 -15
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +19 -0
- package/dist/utils.js +107 -0
- package/dist/utils.js.map +1 -0
- package/package.json +17 -21
- package/lib/constants.js +0 -35
- package/lib/constants.js.map +0 -1
- package/lib/device.js +0 -103
- package/lib/device.js.map +0 -1
- package/lib/errors.js +0 -13
- package/lib/errors.js.map +0 -1
- package/lib/index.js +0 -278
- package/lib/index.js.map +0 -1
- package/lib/inject.js.map +0 -1
- package/lib/modal.js.map +0 -1
- package/lib/signer.js +0 -45
- package/lib/signer.js.map +0 -1
- package/lib/types.js +0 -16
- package/lib/types.js.map +0 -1
- package/lib/utils.d.ts +0 -20
- package/lib/utils.js +0 -126
- package/lib/utils.js.map +0 -1
- /package/{lib → dist}/errors.d.ts +0 -0
- /package/{lib → dist}/modal.d.ts +0 -0
package/{lib → dist}/inject.js
RENAMED
|
@@ -1,69 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 {
|
|
39
4
|
constructor(policies, options) {
|
|
40
5
|
this.id = "Cartridge";
|
|
41
6
|
this.name = "Cartridge";
|
|
42
7
|
this.version = "0.0.1";
|
|
43
8
|
this.icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjkiIGhlaWdodD0iNTciIHZpZXdCb3g9IjAgMCA2OSA1NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy41NTEzIDAuMDM5MDYyNUg0NC42Mjc4TDQ0LjcwMTIgMC4wNDE3NTc4QzQ2LjI2MjQgMC4wOTkwOTkyIDQ3Ljc5NDggMC40NzQ3OTUgNDkuMjA0OSAxLjE0NTA5TDYzLjUyMjcgNy4xODc5NUw2My42NTIyIDcuMjU0MDRDNjUuMDExOCA3Ljk0ODEyIDY2LjE0NzggOS4wMTA3NyA2Ni45MzE2IDEwLjMxOTNDNjcuNzA4MSAxMS42MTU3IDY4LjEwODUgMTMuMTAyMSA2OC4wODg5IDE0LjYxMjFWMzguNjg0QzY4LjA4ODkgMzguNzEgNjguMDg5IDM4LjczNzYgNjguMDg5MSAzOC43NjY2QzY4LjA5MTQgMzkuNjQwOSA2OC4wOTc0IDQxLjgzNTYgNjYuMTY5NyA0My43NjgxTDYxLjY2MjYgNDguMjg2NUM2MC44OTEzIDQ5LjA1OTggNTkuOTY3IDQ5LjY3NDkgNTguODA3IDQ5Ljk4NDlDNTcuOTIxNyA1MC4yMjE1IDU3LjA1MzUgNTAuMjE3IDU2LjY2MyA1MC4yMTVDNTYuNjMxMSA1MC4yMTQ4IDU2LjYwMjQgNTAuMjE0NyA1Ni41NzcxIDUwLjIxNDdMNTAuMzM4NSA1MC4yMDk5TDUwLjMzNjIgNTYuMjM1M0gxNy45MjkzVjUwLjIxNDdIMTEuNjA0QzExLjU3ODggNTAuMjE0NyAxMS41NTAxIDUwLjIxNDggMTEuNTE4MiA1MC4yMTVDMTEuMTI3NiA1MC4yMTcgMTAuMjU5NSA1MC4yMjE1IDkuMzc0MTYgNDkuOTg0OUM4LjIxNDUgNDkuNjc0OSA3LjI5MDQgNDkuMDYwMiA2LjUxOTEyIDQ4LjI4NzFMMi4wMTAxMSA0My43Njg3QzAuMDgyNDUwMyA0MS44MzYyIDAuMDg3Nzg0NCAzOS42NDA5IDAuMDkwMTUyNCAzOC43NjY2QzAuMDkwMjMwOSAzOC43Mzc2IDAuMDkwMzA1NSAzOC43MSAwLjA5MDMwNTUgMzguNjg0VjE0LjYxMjdDMC4wNzA0MyAxMy4xMDI1IDAuNDcwNjMgMTEuNjE1NyAxLjI0NzI5IDEwLjMxOTJDMi4wMzEzOSA5LjAxMDE4IDMuMTY3OTIgNy45NDczOCA0LjUyODExIDcuMjUzNUw0LjY1Njk3IDcuMTg3NzZMMTguOTcyOCAxLjE0NDg5QzIwLjM4MzUgMC40NzQ4MDggMjEuOTE2MiAwLjA5OTE5NTUgMjMuNDc3OCAwLjA0MTc2NUwyMy41NTEzIDAuMDM5MDYyNVoiIGZpbGw9IiMwRjE0MTAiLz4KPHBhdGggZD0iTTIyLjI4NjMgMjIuOTcyOUg0NS42NDdWMTcuMDcxN0gyMi4yOTIyQzIyLjI5MjIgMTcuNjc0NiAyMi4yODYzIDIyLjk3MjkgMjIuMjg2MyAyMi45NzI5WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8cGF0aCBkPSJNNjEuODMzNCAxMC44MTY3TDQ3LjU1OTEgNC43OTIxM0M0Ni42MjA4IDQuMzMzODggNDUuNTk3NCA0LjA3NzM3IDQ0LjU1NDQgNC4wMzkwNkgyMy42MjQ4QzIyLjU4MTIgNC4wNzc0NCAyMS41NTcxIDQuMzMzOTQgMjAuNjE4MiA0Ljc5MjEzTDYuMzQ1NzkgMTAuODE2N0M1LjY1NTMgMTEuMTY4OSA1LjA3NzYxIDExLjcwODggNC42Nzg3NiAxMi4zNzQ3QzQuMjc5OSAxMy4wNDA1IDQuMDc1OTggMTMuODA1NCA0LjA5MDMxIDE0LjU4MlYzOC42ODRDNC4wOTAzMSAzOS40MzcxIDQuMDkwMyA0MC4xOTAxIDQuODQxNDggNDAuOTQzMkw5LjM1MDQ5IDQ1LjQ2MTZDMTAuMTAxNyA0Ni4yMTQ3IDEwLjY2NTUgNDYuMjE0NyAxMS42MDQgNDYuMjE0N0gyMS45MjkzQzIxLjkyOTMgNDYuODYyMSAyMS45MjkzIDUyLjIzNTMgMjEuOTI5MyA1Mi4yMzUzSDQ2LjMzNzdWNDYuMjA2OUgyMS45NDg4VjQwLjE5MDFIMTAuODUyOEMxMC4xMDE3IDQwLjE5MDEgMTAuMTAxNyAzOS40MzcxIDEwLjEwMTcgMzkuNDM3MVYxMC44MTY3QzEwLjEwMTcgMTAuODE2NyAxMC4xMDE3IDEwLjA2MzYgMTAuODUyOCAxMC4wNjM2SDU3LjMyODNDNTguMDc5NSAxMC4wNjM2IDU4LjA3OTUgMTAuODE2NyA1OC4wNzk1IDEwLjgxNjdWMzkuNDM3MUM1OC4wNzk1IDM5LjQzNzEgNTguMDc5NSA0MC4xOTAxIDU3LjMyODMgNDAuMTkwMUg0Ni4zNDM2TDQ2LjMzNzcgNDYuMjA2OUw1Ni41NzcxIDQ2LjIxNDdDNTcuNTE1NiA0Ni4yMTQ3IDU4LjA3OTUgNDYuMjE0NyA1OC44MzA3IDQ1LjQ2MTZMNjMuMzM3NyA0MC45NDMyQzY0LjA4ODkgNDAuMTkwMSA2NC4wODg5IDM5LjQzNzEgNjQuMDg4OSAzOC42ODRWMTQuNTgyQzY0LjEwMyAxMy44MDU1IDYzLjg5OSAxMy4wNDA2IDYzLjUwMDEgMTIuMzc0OEM2My4xMDEzIDExLjcwOSA2Mi41MjM4IDExLjE2OTEgNjEuODMzNCAxMC44MTY3WiIgZmlsbD0iI0ZCQ0I0QSIvPgo8L3N2Zz4K";
|
|
44
|
-
this.provider =
|
|
9
|
+
this.provider = providers[constants.StarknetChainId.SN_MAIN];
|
|
45
10
|
this.isConnected = false;
|
|
46
11
|
this.subscriptions = [];
|
|
47
|
-
this.request = (
|
|
12
|
+
this.request = (_call) => {
|
|
48
13
|
throw Error("Not implemented");
|
|
49
14
|
};
|
|
50
|
-
this.enable = () =>
|
|
51
|
-
this.account =
|
|
15
|
+
this.enable = async () => {
|
|
16
|
+
this.account = await this.controller.connect();
|
|
52
17
|
if (!this.account) {
|
|
53
18
|
return [];
|
|
54
19
|
}
|
|
55
|
-
this.provider =
|
|
20
|
+
this.provider = providers[this.controller.chainId];
|
|
56
21
|
this.isConnected = true;
|
|
57
22
|
return [this.account.address];
|
|
58
|
-
}
|
|
59
|
-
this.isPreauthorized = () =>
|
|
23
|
+
};
|
|
24
|
+
this.isPreauthorized = async () => {
|
|
60
25
|
return this.controller
|
|
61
26
|
.ready()
|
|
62
27
|
.then(() => {
|
|
63
28
|
return this.controller.probe();
|
|
64
29
|
})
|
|
65
30
|
.then((connected) => !!connected);
|
|
66
|
-
}
|
|
31
|
+
};
|
|
67
32
|
this.on = (type, handler) => {
|
|
68
33
|
if (type === "accountsChanged") {
|
|
69
34
|
this.subscriptions.push({
|
|
@@ -90,20 +55,19 @@ class InjectedController {
|
|
|
90
55
|
this.subscriptions.splice(idx, 1);
|
|
91
56
|
}
|
|
92
57
|
};
|
|
93
|
-
this.controller = new
|
|
94
|
-
this.controller.ready().then(isConnected => {
|
|
58
|
+
this.controller = new Controller(policies, options);
|
|
59
|
+
this.controller.ready().then((isConnected) => {
|
|
95
60
|
this.isConnected = !!isConnected;
|
|
96
61
|
if (this.controller.account) {
|
|
97
62
|
this.account = this.controller.account;
|
|
98
|
-
this.provider =
|
|
63
|
+
this.provider = providers[this.controller.chainId];
|
|
99
64
|
this.selectedAddress = this.account.address;
|
|
100
65
|
}
|
|
101
66
|
});
|
|
102
67
|
}
|
|
103
68
|
}
|
|
104
|
-
exports.InjectedController = InjectedController;
|
|
105
69
|
function injectController(policies, options) {
|
|
106
70
|
window.starknet_cartridge = new InjectedController(policies, options);
|
|
107
71
|
}
|
|
108
|
-
|
|
72
|
+
export { injectController };
|
|
109
73
|
//# 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 → dist}/modal.js
RENAMED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
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.
|
|
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 <
|
|
50
|
+
if (window.innerWidth < 768) {
|
|
55
51
|
el.style.height = "100%";
|
|
56
52
|
el.style.width = "100%";
|
|
57
53
|
el.style.borderRadius = "0";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../src/modal.ts"],"names":[],"mappings":"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"}
|
package/{lib → dist}/signer.d.ts
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Signature,
|
|
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);
|
|
@@ -20,5 +20,8 @@ export declare class Signer {
|
|
|
20
20
|
* @returns the signature of the JSON object
|
|
21
21
|
* @throws {Error} if the JSON object is not a valid JSON
|
|
22
22
|
*/
|
|
23
|
-
signMessage(typedData:
|
|
23
|
+
signMessage(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/dist/signer.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export class Signer {
|
|
2
|
+
constructor(keychain, modal) {
|
|
3
|
+
this.keychain = keychain;
|
|
4
|
+
this.modal = modal;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Method to get the public key of the signer
|
|
8
|
+
*
|
|
9
|
+
* @returns public key of signer as hex string with 0x prefix
|
|
10
|
+
*/
|
|
11
|
+
getPubKey() {
|
|
12
|
+
return Promise.resolve("");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sign an JSON object for off-chain usage with the starknet private key and return the signature
|
|
16
|
+
* This adds a message prefix so it cant be interchanged with transactions
|
|
17
|
+
*
|
|
18
|
+
* @param typedData - JSON object to be signed
|
|
19
|
+
* @param accountAddress - account
|
|
20
|
+
* @returns the signature of the JSON object
|
|
21
|
+
* @throws {Error} if the JSON object is not a valid JSON
|
|
22
|
+
*/
|
|
23
|
+
async signMessage(typedData, account) {
|
|
24
|
+
this.modal.open();
|
|
25
|
+
const res = await this.keychain.signMessage(typedData, account);
|
|
26
|
+
this.modal.close();
|
|
27
|
+
return res;
|
|
28
|
+
}
|
|
29
|
+
async signTransaction(transactions, transactionsDetail, abis) {
|
|
30
|
+
this.modal.open();
|
|
31
|
+
const res = await this.keychain.signTransaction(transactions, transactionsDetail, abis);
|
|
32
|
+
this.modal.close();
|
|
33
|
+
return res;
|
|
34
|
+
}
|
|
35
|
+
async signDeployAccountTransaction(transaction) {
|
|
36
|
+
this.modal.open();
|
|
37
|
+
const res = await this.keychain.signDeployAccountTransaction(transaction);
|
|
38
|
+
this.modal.close();
|
|
39
|
+
return res;
|
|
40
|
+
}
|
|
41
|
+
async signDeclareTransaction(transaction) {
|
|
42
|
+
this.modal.open();
|
|
43
|
+
const res = await this.keychain.signDeclareTransaction(transaction);
|
|
44
|
+
this.modal.close();
|
|
45
|
+
return res;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,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;IACI,KAAK,CAAC,WAAW,CACtB,SAAoB,EACpB,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 → dist}/types.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { constants,
|
|
3
|
-
export
|
|
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
|
|
14
|
+
export type Session = {
|
|
15
15
|
chainId: constants.StarknetChainId;
|
|
16
16
|
policies: Policy[];
|
|
17
|
-
maxFee:
|
|
17
|
+
maxFee: BigNumberish;
|
|
18
18
|
};
|
|
19
|
-
export
|
|
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
|
|
29
|
+
export type Error = {
|
|
34
30
|
code: ResponseCodes;
|
|
35
31
|
message: string;
|
|
36
32
|
};
|
|
37
|
-
export
|
|
33
|
+
export type ConnectReply = {
|
|
38
34
|
code: ResponseCodes.SUCCESS;
|
|
39
35
|
address: string;
|
|
40
36
|
policies: Policy[];
|
|
41
37
|
};
|
|
42
|
-
export
|
|
38
|
+
export type ExecuteReply = InvokeFunctionResponse & {
|
|
43
39
|
code: ResponseCodes.SUCCESS;
|
|
44
40
|
};
|
|
45
|
-
export
|
|
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?:
|
|
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;
|
|
@@ -82,7 +78,10 @@ export interface Keychain {
|
|
|
82
78
|
sessions(): Promise<{
|
|
83
79
|
[key: string]: Session;
|
|
84
80
|
}>;
|
|
85
|
-
signMessage(typedData:
|
|
81
|
+
signMessage(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/dist/types.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var ResponseCodes;
|
|
2
|
+
(function (ResponseCodes) {
|
|
3
|
+
ResponseCodes["SUCCESS"] = "SUCCESS";
|
|
4
|
+
ResponseCodes["NOT_CONNECTED"] = "NOT_CONNECTED";
|
|
5
|
+
ResponseCodes["NOT_ALLOWED"] = "NOT_ALLOWED";
|
|
6
|
+
ResponseCodes["CANCELED"] = "CANCELED";
|
|
7
|
+
})(ResponseCodes || (ResponseCodes = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Policy } from "./types";
|
|
2
|
+
import { RpcProvider, BigNumberish, ArraySignatureType } from "starknet";
|
|
3
|
+
export declare function diff(a: Policy[], b: Policy[]): Policy[];
|
|
4
|
+
export declare const computeAddress: (username: string, { x0, x1, x2 }: {
|
|
5
|
+
x0: bigint;
|
|
6
|
+
x1: bigint;
|
|
7
|
+
x2: bigint;
|
|
8
|
+
}, { y0, y1, y2 }: {
|
|
9
|
+
y0: bigint;
|
|
10
|
+
y1: bigint;
|
|
11
|
+
y2: bigint;
|
|
12
|
+
}, deviceKey: string) => string;
|
|
13
|
+
export declare const verifyMessageHash: (provider: RpcProvider, address: string, messageHash: BigNumberish, signature: ArraySignatureType) => Promise<boolean>;
|
|
14
|
+
export declare const getAccounts: (addresses: string[]) => Promise<any>;
|
|
15
|
+
export declare function split(n: bigint): {
|
|
16
|
+
x: bigint;
|
|
17
|
+
y: bigint;
|
|
18
|
+
z: bigint;
|
|
19
|
+
};
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
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], []);
|
|
7
|
+
}
|
|
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"),
|
|
11
|
+
"9",
|
|
12
|
+
BigInt(CLASS_HASHES["0.0.1"].controller),
|
|
13
|
+
"7",
|
|
14
|
+
x0,
|
|
15
|
+
x1,
|
|
16
|
+
x2,
|
|
17
|
+
y0,
|
|
18
|
+
y1,
|
|
19
|
+
y2,
|
|
20
|
+
BigInt(deviceKey),
|
|
21
|
+
], "0");
|
|
22
|
+
export const verifyMessageHash = async (provider, address, messageHash, signature) => {
|
|
23
|
+
const isDeployed = !!provider.getClassHashAt(address, "latest");
|
|
24
|
+
if (isDeployed) {
|
|
25
|
+
const res = await provider.callContract({
|
|
26
|
+
contractAddress: address,
|
|
27
|
+
entrypoint: "executeOnPlugin",
|
|
28
|
+
calldata: [
|
|
29
|
+
CLASS_HASHES["0.0.1"].controller,
|
|
30
|
+
hash.getSelector("is_public_key"),
|
|
31
|
+
"0x1",
|
|
32
|
+
signature[0],
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
const isRegistered = res[0] === "0x1";
|
|
36
|
+
if (isRegistered) {
|
|
37
|
+
return ec.starkCurve.verify(
|
|
38
|
+
// @ts-expect-error TODO(#244): Adapt signature
|
|
39
|
+
signature, num.toHex(messageHash), signature[0]);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const res = await provider.callContract({
|
|
43
|
+
contractAddress: address,
|
|
44
|
+
entrypoint: "isValidSignature",
|
|
45
|
+
calldata: [messageHash, signature.length, ...signature],
|
|
46
|
+
}, "latest");
|
|
47
|
+
return res[0] === "0x1";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const res = await (await fetch("https://api.cartridge.gg/query", {
|
|
52
|
+
headers: {
|
|
53
|
+
"content-type": "application/json",
|
|
54
|
+
},
|
|
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",
|
|
59
|
+
})).json();
|
|
60
|
+
const account = res?.accounts?.edges?.[0]?.node;
|
|
61
|
+
if (!account) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
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"));
|
|
69
|
+
const { x: x0, y: x1, z: x2 } = split(x);
|
|
70
|
+
const { x: y0, y: y1, z: y2 } = split(y);
|
|
71
|
+
const computedAddress = computeAddress(account.id, { x0, x1, x2 }, { y0, y1, y2 }, signature[0]);
|
|
72
|
+
if (computedAddress !== address) {
|
|
73
|
+
throw new Error("invalid public key");
|
|
74
|
+
}
|
|
75
|
+
return ec.starkCurve.verify(signature[0], BigInt(messageHash).toString(), account.credential.publicKey);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
export const getAccounts = async (addresses) => {
|
|
79
|
+
const query = addresses.map((addr) => ({
|
|
80
|
+
contractAddress: addAddressPadding(addr),
|
|
81
|
+
}));
|
|
82
|
+
const res = await (await fetch("https://api.cartridge.gg/query", {
|
|
83
|
+
headers: {
|
|
84
|
+
"content-type": "application/json",
|
|
85
|
+
},
|
|
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",
|
|
90
|
+
})).json();
|
|
91
|
+
if (res.errors) {
|
|
92
|
+
throw new Error(res.errors[0].message);
|
|
93
|
+
}
|
|
94
|
+
return res.accounts.edges.map((edge) => ({
|
|
95
|
+
id: edge.node.id,
|
|
96
|
+
name: edge.node.id,
|
|
97
|
+
profile_uri: `https://cartridge.gg/profile/${edge.node.contractAddress}`,
|
|
98
|
+
}));
|
|
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;
|
|
105
|
+
return { x, y, z };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cartridge/controller",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"description": "Cartridge Controller",
|
|
5
|
-
"
|
|
6
|
-
"types": "
|
|
7
|
-
"
|
|
8
|
-
"build": "tsc --build tsconfig.json",
|
|
9
|
-
"dev": "tsc --watch",
|
|
10
|
-
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\""
|
|
11
|
-
},
|
|
5
|
+
"module": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
12
8
|
"files": [
|
|
13
|
-
"
|
|
9
|
+
"dist"
|
|
14
10
|
],
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@types/jest": "^26.0.18",
|
|
17
|
-
"@types/node": "^17.0.23",
|
|
18
|
-
"jest": "^26.6.3",
|
|
19
|
-
"ts-jest": "^26.5.1",
|
|
20
|
-
"ts-node": "^10.4.0",
|
|
21
|
-
"tslib": "^2.3.1",
|
|
22
|
-
"typescript": "4.8.2"
|
|
23
|
-
},
|
|
24
11
|
"dependencies": {
|
|
25
12
|
"@cartridge/penpal": "^6.2.3",
|
|
26
13
|
"base64url": "^3.0.1",
|
|
27
|
-
"bn.js": "^5.2.1",
|
|
28
14
|
"cbor-x": "^1.5.0",
|
|
29
15
|
"fast-deep-equal": "^3.1.3",
|
|
30
16
|
"query-string": "^7.1.1",
|
|
31
|
-
"starknet": "^
|
|
17
|
+
"starknet": "^6.6.0"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^20.6.0",
|
|
21
|
+
"typescript": "^5.4.5",
|
|
22
|
+
"@cartridge/tsconfig": "^0.0.1"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"dev": "tsc",
|
|
27
|
+
"format": "prettier --write \"src/**/*.ts\""
|
|
32
28
|
}
|
|
33
|
-
}
|
|
29
|
+
}
|
package/lib/constants.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NamedChainId = exports.CLASS_HASHES = exports.PROXY_CLASS = exports.CONTRACT_NFF_BRIDGE = exports.CONTRACT_UPGRADE_IMPLEMENTATION = exports.CONTRACT_ACHIEVEMENTS = exports.CONTRACT_ARGENT_CLASS = exports.CONTRACT_CONTROLLER_CLASS = exports.CONTRACT_AVATAR = exports.CONTRACT_POINTS = exports.CONTRACT_ETH = exports.ETH_RPC_GOERLI = exports.ETH_RPC_MAINNET = exports.GATEWAY_GOERLI = exports.GATEWAY_MAINNET = void 0;
|
|
4
|
-
const starknet_1 = require("starknet");
|
|
5
|
-
exports.GATEWAY_MAINNET = "https://alpha-mainnet.starknet.io/feeder_gateway";
|
|
6
|
-
exports.GATEWAY_GOERLI = "https://alpha4.starknet.io/feeder_gateway";
|
|
7
|
-
exports.ETH_RPC_MAINNET = "https://eth-mainnet.g.alchemy.com/v2/OGPRMquXP3K7oTkLrmVZpjCd1DswtYz3";
|
|
8
|
-
exports.ETH_RPC_GOERLI = "https://eth-goerli.g.alchemy.com/v2/RMPbO9CyB-lVmkbpXCyg8W482pZDDht_";
|
|
9
|
-
exports.CONTRACT_ETH = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
|
|
10
|
-
exports.CONTRACT_POINTS = "0x00c62540e9a10c47a4b7d8abaff468192c66f2d1e979f6bade6e44bf73995982";
|
|
11
|
-
exports.CONTRACT_AVATAR = "0x002e02ab50ad223a4de99d7591cbbb565705893ad5b8522a9bde011d20e99926";
|
|
12
|
-
exports.CONTRACT_CONTROLLER_CLASS = "0x077007d85dd2466b2b29e626bac27ee017d7586f62511f4585dd596f33337ccf";
|
|
13
|
-
exports.CONTRACT_ARGENT_CLASS = "0x025ec026985a3bf9d0cc1fe17326b245dfdc3ff89b8fde106542a3ea56c5a918";
|
|
14
|
-
exports.CONTRACT_ACHIEVEMENTS = "0x00f6883b55c1ed7814e5df15fa8fa4bdbad4d4778662a62413c1e58fce10f4f0";
|
|
15
|
-
exports.CONTRACT_UPGRADE_IMPLEMENTATION = "0x07e28fb0161d10d1cf7fe1f13e7ca57bce062731a3bd04494dfd2d0412699727";
|
|
16
|
-
// L1 Contract
|
|
17
|
-
exports.CONTRACT_NFF_BRIDGE = "0xbd701502203B21307BEa2d4078E69dd0c9C0703C";
|
|
18
|
-
exports.PROXY_CLASS = "0x04be79b3904b4e2775fd706fa037610b41d8f8708ce298aac3a470badf68176d";
|
|
19
|
-
exports.CLASS_HASHES = {
|
|
20
|
-
["0.0.1"]: {
|
|
21
|
-
account: "0x079507b6068846a05500331e0b54f7b539f067c2003de1f4635fc9885a267144",
|
|
22
|
-
controller: "0x0286a2ea79ee08506efcbc330efd2ae34e2f22b79ecd2fb9b86ce26d6a1dbece",
|
|
23
|
-
legacyController: "0x58e648a242085d5ff1e8f92a6b91057826639a82b23798998d40b61a27bca85",
|
|
24
|
-
},
|
|
25
|
-
["latest"]: {
|
|
26
|
-
account: "0x627850d612539b1258f64f8d76b0392944bb2886ed891b93e2bff9223317a91",
|
|
27
|
-
controller: "0x6bcb2ecc68f478bd0546c451a0820ce19e2d562e3cfcb5906eede15aa81cc42",
|
|
28
|
-
legacyController: "0x58e648a242085d5ff1e8f92a6b91057826639a82b23798998d40b61a27bca85",
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
exports.NamedChainId = {
|
|
32
|
-
[starknet_1.constants.StarknetChainId.MAINNET]: "SN_MAIN",
|
|
33
|
-
[starknet_1.constants.StarknetChainId.TESTNET]: "SN_GOERLI",
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=constants.js.map
|
package/lib/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAExB,QAAA,eAAe,GAAG,kDAAkD,CAAC;AACrE,QAAA,cAAc,GAAG,2CAA2C,CAAC;AAE7D,QAAA,eAAe,GAAG,uEAAuE,CAAC;AAC1F,QAAA,cAAc,GAAG,sEAAsE,CAAC;AAExF,QAAA,YAAY,GACvB,oEAAoE,CAAC;AAC1D,QAAA,eAAe,GAC1B,oEAAoE,CAAC;AAC1D,QAAA,eAAe,GAC1B,oEAAoE,CAAC;AAE1D,QAAA,yBAAyB,GACpC,oEAAoE,CAAC;AAC1D,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAC1D,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAC1D,QAAA,+BAA+B,GAC1C,oEAAoE,CAAC;AAEvE,cAAc;AACD,QAAA,mBAAmB,GAAG,4CAA4C,CAAC;AAEnE,QAAA,WAAW,GACtB,oEAAoE,CAAC;AAE1D,QAAA,YAAY,GAAG;IAC1B,CAAC,OAAO,CAAC,EAAE;QACT,OAAO,EACL,oEAAoE;QACtE,UAAU,EACR,oEAAoE;QACtE,gBAAgB,EACd,mEAAmE;KACtE;IACD,CAAC,QAAQ,CAAC,EAAE;QACV,OAAO,EACL,mEAAmE;QACrE,UAAU,EACR,mEAAmE;QACrE,gBAAgB,EACd,mEAAmE;KACtE;CACF,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9C,CAAC,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW;CACjD,CAAC"}
|
package/lib/device.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
const starknet_1 = require("starknet");
|
|
13
|
-
const types_1 = require("./types");
|
|
14
|
-
const signer_1 = require("./signer");
|
|
15
|
-
class DeviceAccount extends starknet_1.Account {
|
|
16
|
-
constructor(provider, address, keychain, modal) {
|
|
17
|
-
super(provider, address, new signer_1.Signer(keychain, modal));
|
|
18
|
-
this.address = address;
|
|
19
|
-
this.keychain = keychain;
|
|
20
|
-
this.modal = modal;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Estimate Fee for a method on starknet
|
|
24
|
-
*
|
|
25
|
-
* @param calls the invocation object containing:
|
|
26
|
-
* - contractAddress - the address of the contract
|
|
27
|
-
* - entrypoint - the entrypoint of the contract
|
|
28
|
-
* - calldata - (defaults to []) the calldata
|
|
29
|
-
* - signature - (defaults to []) the signature
|
|
30
|
-
*
|
|
31
|
-
* @returns response from addTransaction
|
|
32
|
-
*/
|
|
33
|
-
estimateInvokeFee(calls, details) {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
return this.keychain.estimateInvokeFee(calls, Object.assign(Object.assign({}, details), { chainId: this.chainId }));
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
estimateDeclareFee(payload, details) {
|
|
39
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
return this.keychain.estimateDeclareFee(payload, Object.assign(Object.assign({}, details), { chainId: this.chainId }));
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Invoke execute function in account contract
|
|
45
|
-
*
|
|
46
|
-
* @param calls the invocation object or an array of them, containing:
|
|
47
|
-
* - contractAddress - the address of the contract
|
|
48
|
-
* - entrypoint - the entrypoint of the contract
|
|
49
|
-
* - calldata - (defaults to []) the calldata
|
|
50
|
-
* - signature - (defaults to []) the signature
|
|
51
|
-
* @param abis (optional) the abi of the contract for better displaying
|
|
52
|
-
*
|
|
53
|
-
* @returns response from addTransaction
|
|
54
|
-
*/
|
|
55
|
-
execute(calls, abis, transactionsDetail) {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
if (!transactionsDetail) {
|
|
58
|
-
transactionsDetail = {};
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
const res = yield this.keychain.execute(calls, abis, transactionsDetail);
|
|
62
|
-
if (res.code === types_1.ResponseCodes.SUCCESS) {
|
|
63
|
-
return res;
|
|
64
|
-
}
|
|
65
|
-
this.modal.open();
|
|
66
|
-
const res2 = yield this.keychain.execute(calls, abis, transactionsDetail, true);
|
|
67
|
-
this.modal.close();
|
|
68
|
-
if (res2.code !== types_1.ResponseCodes.SUCCESS) {
|
|
69
|
-
throw new Error(res2.message);
|
|
70
|
-
}
|
|
71
|
-
return res2;
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
console.error(e);
|
|
75
|
-
throw e;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Sign an JSON object for off-chain usage with the starknet private key and return the signature
|
|
81
|
-
* This adds a message prefix so it cant be interchanged with transactions
|
|
82
|
-
*
|
|
83
|
-
* @param json - JSON object to be signed
|
|
84
|
-
* @returns the signature of the JSON object
|
|
85
|
-
* @throws {Error} if the JSON object is not a valid JSON
|
|
86
|
-
*/
|
|
87
|
-
signMessage(typedData) {
|
|
88
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
try {
|
|
90
|
-
this.modal.open();
|
|
91
|
-
const res = yield this.keychain.signMessage(typedData, this.address);
|
|
92
|
-
this.modal.close();
|
|
93
|
-
return res;
|
|
94
|
-
}
|
|
95
|
-
catch (e) {
|
|
96
|
-
console.error(e);
|
|
97
|
-
throw e;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.default = DeviceAccount;
|
|
103
|
-
//# sourceMappingURL=device.js.map
|