@cartridge/controller 0.5.0-alpha.8 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$deps.log +115 -116
- package/dist/account.d.ts +1 -1
- package/dist/account.js +13 -10
- package/dist/account.js.map +1 -1
- package/dist/controller.d.ts +2 -1
- package/dist/controller.js +33 -11
- package/dist/controller.js.map +1 -1
- package/dist/iframe/base.d.ts +1 -1
- package/dist/iframe/index.d.ts +1 -1
- package/dist/iframe/keychain.d.ts +1 -1
- package/dist/iframe/profile.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -11
- package/dist/index.js.map +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/session/account.d.ts +1 -1
- package/dist/session/account.js.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/provider.d.ts +1 -1
- package/dist/{types-4W1md4rs.d.ts → types-BkXOAuzX.d.ts} +3 -2
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -4
- package/src/account.ts +17 -11
- package/src/controller.ts +18 -0
- package/src/types.ts +6 -1
|
@@ -1,116 +1,115 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[34mCLI[39m
|
|
7
|
-
[34mCLI[39m
|
|
8
|
-
[34mCLI[39m tsup
|
|
9
|
-
[34mCLI[39m
|
|
10
|
-
[34mCLI[39m
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[32mESM[39m [1mdist/
|
|
14
|
-
[32mESM[39m [1mdist/
|
|
15
|
-
[32mESM[39m [1mdist/
|
|
16
|
-
[32mESM[39m [1mdist/
|
|
17
|
-
[32mESM[39m [1mdist/
|
|
18
|
-
[32mESM[39m [1mdist/
|
|
19
|
-
[32mESM[39m [1mdist/
|
|
20
|
-
[32mESM[39m [1mdist/
|
|
21
|
-
[32mESM[39m [1mdist/
|
|
22
|
-
[32mESM[39m [1mdist/
|
|
23
|
-
[32mESM[39m [1mdist/
|
|
24
|
-
[32mESM[39m [1mdist/
|
|
25
|
-
[32mESM[39m [1mdist/
|
|
26
|
-
[32mESM[39m [1mdist/
|
|
27
|
-
[32mESM[39m [1mdist/iframe/
|
|
28
|
-
[32mESM[39m [1mdist/
|
|
29
|
-
[32mESM[39m [1mdist/
|
|
30
|
-
[32mESM[39m [1mdist/
|
|
31
|
-
[32mESM[39m [1mdist/telegram/provider.js [22m[32m23.14 KB[39m
|
|
32
|
-
[32mESM[39m [1mdist/
|
|
33
|
-
[32mESM[39m [1mdist/
|
|
34
|
-
[32mESM[39m [1mdist/
|
|
35
|
-
[32mESM[39m [1mdist/
|
|
36
|
-
[32mESM[39m [1mdist/
|
|
37
|
-
[32mESM[39m [1mdist/
|
|
38
|
-
[32mESM[39m [1mdist/
|
|
39
|
-
[32mESM[39m [1mdist/
|
|
40
|
-
[32mESM[39m [1mdist/
|
|
41
|
-
[32mESM[39m [1mdist/presets.js.map [22m[32m6.45 KB[39m
|
|
42
|
-
[32mESM[39m [1mdist/
|
|
43
|
-
[32mESM[39m [1mdist/
|
|
44
|
-
[32mESM[39m [1mdist/
|
|
45
|
-
[32mESM[39m [1mdist/iframe/index.js.map [22m[32m16.17 KB[39m
|
|
46
|
-
[32mESM[39m [1mdist/
|
|
47
|
-
[32mESM[39m [1mdist/iframe/
|
|
48
|
-
[32mESM[39m [1mdist/session/backend.js.map [22m[32m2.88 KB[39m
|
|
49
|
-
[32mESM[39m [1mdist/
|
|
50
|
-
[32mESM[39m [1mdist/
|
|
51
|
-
[32mESM[39m [1mdist/
|
|
52
|
-
[32mESM[39m
|
|
53
|
-
[
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
[32mDTS[39m
|
|
96
|
-
[32mDTS[39m [1mdist/index.d.ts
|
|
97
|
-
[32mDTS[39m [1mdist/
|
|
98
|
-
[32mDTS[39m [1mdist/
|
|
99
|
-
[32mDTS[39m [1mdist/
|
|
100
|
-
[32mDTS[39m [1mdist/
|
|
101
|
-
[32mDTS[39m [1mdist/
|
|
102
|
-
[32mDTS[39m [1mdist/
|
|
103
|
-
[32mDTS[39m [1mdist/session/
|
|
104
|
-
[32mDTS[39m [1mdist/
|
|
105
|
-
[32mDTS[39m [1mdist/
|
|
106
|
-
[32mDTS[39m [1mdist/
|
|
107
|
-
[32mDTS[39m [1mdist/
|
|
108
|
-
[32mDTS[39m [1mdist/
|
|
109
|
-
[32mDTS[39m [1mdist/telegram/
|
|
110
|
-
[32mDTS[39m [1mdist/
|
|
111
|
-
[32mDTS[39m [1mdist/iframe/
|
|
112
|
-
[32mDTS[39m [1mdist/iframe/
|
|
113
|
-
[32mDTS[39m [1mdist/iframe/
|
|
114
|
-
[32mDTS[39m [1mdist/
|
|
115
|
-
[32mDTS[39m [1mdist/types.d.ts
|
|
116
|
-
[32mDTS[39m [1mdist/types-4W1md4rs.d.ts [22m[32m6.42 KB[39m
|
|
1
|
+
|
|
2
|
+
> @cartridge/controller@0.5.0 build:deps /home/runner/work/controller/controller/packages/controller
|
|
3
|
+
> tsup --dts-resolve
|
|
4
|
+
|
|
5
|
+
[34mCLI[39m Building entry: src/account.ts, src/constants.ts, src/controller.ts, src/errors.ts, src/icon.ts, src/index.ts, src/presets.ts, src/provider.ts, src/types.ts, src/utils.ts, src/iframe/base.ts, src/iframe/index.ts, src/iframe/keychain.ts, src/iframe/profile.ts, src/session/account.ts, src/session/backend.ts, src/session/index.ts, src/session/provider.ts, src/telegram/backend.ts, src/telegram/provider.ts
|
|
6
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
7
|
+
[34mCLI[39m tsup v8.3.0
|
|
8
|
+
[34mCLI[39m Using tsup config: /home/runner/work/controller/controller/packages/controller/package.json
|
|
9
|
+
[34mCLI[39m Target: es2020
|
|
10
|
+
[34mCLI[39m Cleaning output folder
|
|
11
|
+
[34mESM[39m Build start
|
|
12
|
+
[32mESM[39m [1mdist/account.js [22m[32m2.61 KB[39m
|
|
13
|
+
[32mESM[39m [1mdist/iframe/base.js [22m[32m7.17 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/session/account.js [22m[32m5.81 KB[39m
|
|
15
|
+
[32mESM[39m [1mdist/telegram/backend.js [22m[32m1.27 KB[39m
|
|
16
|
+
[32mESM[39m [1mdist/constants.js [22m[32m194.00 B[39m
|
|
17
|
+
[32mESM[39m [1mdist/errors.js [22m[32m271.00 B[39m
|
|
18
|
+
[32mESM[39m [1mdist/controller.js [22m[32m35.81 KB[39m
|
|
19
|
+
[32mESM[39m [1mdist/icon.js [22m[32m15.15 KB[39m
|
|
20
|
+
[32mESM[39m [1mdist/index.js [22m[32m36.25 KB[39m
|
|
21
|
+
[32mESM[39m [1mdist/presets.js [22m[32m3.71 KB[39m
|
|
22
|
+
[32mESM[39m [1mdist/provider.js [22m[32m19.16 KB[39m
|
|
23
|
+
[32mESM[39m [1mdist/types.js [22m[32m437.00 B[39m
|
|
24
|
+
[32mESM[39m [1mdist/utils.js [22m[32m406.00 B[39m
|
|
25
|
+
[32mESM[39m [1mdist/iframe/index.js [22m[32m8.51 KB[39m
|
|
26
|
+
[32mESM[39m [1mdist/iframe/profile.js [22m[32m8.04 KB[39m
|
|
27
|
+
[32mESM[39m [1mdist/iframe/keychain.js [22m[32m7.64 KB[39m
|
|
28
|
+
[32mESM[39m [1mdist/session/backend.js [22m[32m1.18 KB[39m
|
|
29
|
+
[32mESM[39m [1mdist/session/index.js [22m[32m27.85 KB[39m
|
|
30
|
+
[32mESM[39m [1mdist/session/provider.js [22m[32m23.58 KB[39m
|
|
31
|
+
[32mESM[39m [1mdist/telegram/provider.js [22m[32m23.14 KB[39m
|
|
32
|
+
[32mESM[39m [1mdist/account.js.map [22m[32m5.08 KB[39m
|
|
33
|
+
[32mESM[39m [1mdist/iframe/base.js.map [22m[32m13.18 KB[39m
|
|
34
|
+
[32mESM[39m [1mdist/session/account.js.map [22m[32m14.59 KB[39m
|
|
35
|
+
[32mESM[39m [1mdist/telegram/backend.js.map [22m[32m1.98 KB[39m
|
|
36
|
+
[32mESM[39m [1mdist/constants.js.map [22m[32m245.00 B[39m
|
|
37
|
+
[32mESM[39m [1mdist/errors.js.map [22m[32m385.00 B[39m
|
|
38
|
+
[32mESM[39m [1mdist/controller.js.map [22m[32m54.82 KB[39m
|
|
39
|
+
[32mESM[39m [1mdist/icon.js.map [22m[32m15.20 KB[39m
|
|
40
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m59.77 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/presets.js.map [22m[32m6.45 KB[39m
|
|
42
|
+
[32mESM[39m [1mdist/provider.js.map [22m[32m22.49 KB[39m
|
|
43
|
+
[32mESM[39m [1mdist/types.js.map [22m[32m5.02 KB[39m
|
|
44
|
+
[32mESM[39m [1mdist/utils.js.map [22m[32m707.00 B[39m
|
|
45
|
+
[32mESM[39m [1mdist/iframe/index.js.map [22m[32m16.17 KB[39m
|
|
46
|
+
[32mESM[39m [1mdist/iframe/keychain.js.map [22m[32m14.32 KB[39m
|
|
47
|
+
[32mESM[39m [1mdist/iframe/profile.js.map [22m[32m15.17 KB[39m
|
|
48
|
+
[32mESM[39m [1mdist/session/backend.js.map [22m[32m2.88 KB[39m
|
|
49
|
+
[32mESM[39m [1mdist/session/index.js.map [22m[32m42.93 KB[39m
|
|
50
|
+
[32mESM[39m [1mdist/session/provider.js.map [22m[32m31.27 KB[39m
|
|
51
|
+
[32mESM[39m [1mdist/telegram/provider.js.map [22m[32m30.45 KB[39m
|
|
52
|
+
[32mESM[39m ⚡️ Build success in 57ms
|
|
53
|
+
[34mDTS[39m Build start
|
|
54
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
55
|
+
|
|
56
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
57
|
+
|
|
58
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
59
|
+
|
|
60
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
61
|
+
|
|
62
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
63
|
+
|
|
64
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
65
|
+
|
|
66
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
67
|
+
|
|
68
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
69
|
+
|
|
70
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
71
|
+
|
|
72
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
73
|
+
|
|
74
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
75
|
+
|
|
76
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
77
|
+
|
|
78
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
79
|
+
|
|
80
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
81
|
+
|
|
82
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
83
|
+
|
|
84
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
85
|
+
|
|
86
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
87
|
+
|
|
88
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
89
|
+
|
|
90
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
91
|
+
|
|
92
|
+
../tsconfig/base.json(6,25): error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'.
|
|
93
|
+
|
|
94
|
+
[32mDTS[39m ⚡️ Build success in 5317ms
|
|
95
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m891.00 B[39m
|
|
96
|
+
[32mDTS[39m [1mdist/session/index.d.ts [22m[32m909.00 B[39m
|
|
97
|
+
[32mDTS[39m [1mdist/account.d.ts [22m[32m1.64 KB[39m
|
|
98
|
+
[32mDTS[39m [1mdist/constants.d.ts [22m[32m154.00 B[39m
|
|
99
|
+
[32mDTS[39m [1mdist/icon.d.ts [22m[32m15.11 KB[39m
|
|
100
|
+
[32mDTS[39m [1mdist/controller.d.ts [22m[32m1.08 KB[39m
|
|
101
|
+
[32mDTS[39m [1mdist/utils.d.ts [22m[32m251.00 B[39m
|
|
102
|
+
[32mDTS[39m [1mdist/session/account.d.ts [22m[32m2.00 KB[39m
|
|
103
|
+
[32mDTS[39m [1mdist/session/backend.d.ts [22m[32m2.29 KB[39m
|
|
104
|
+
[32mDTS[39m [1mdist/errors.d.ts [22m[32m100.00 B[39m
|
|
105
|
+
[32mDTS[39m [1mdist/presets.d.ts [22m[32m274.00 B[39m
|
|
106
|
+
[32mDTS[39m [1mdist/session/provider.d.ts [22m[32m969.00 B[39m
|
|
107
|
+
[32mDTS[39m [1mdist/provider.d.ts [22m[32m788.00 B[39m
|
|
108
|
+
[32mDTS[39m [1mdist/telegram/backend.d.ts [22m[32m1.27 KB[39m
|
|
109
|
+
[32mDTS[39m [1mdist/telegram/provider.d.ts [22m[32m706.00 B[39m
|
|
110
|
+
[32mDTS[39m [1mdist/iframe/base.d.ts [22m[32m196.00 B[39m
|
|
111
|
+
[32mDTS[39m [1mdist/iframe/keychain.d.ts [22m[32m184.00 B[39m
|
|
112
|
+
[32mDTS[39m [1mdist/iframe/profile.d.ts [22m[32m210.00 B[39m
|
|
113
|
+
[32mDTS[39m [1mdist/iframe/index.d.ts [22m[32m264.00 B[39m
|
|
114
|
+
[32mDTS[39m [1mdist/types.d.ts [22m[32m728.00 B[39m
|
|
115
|
+
[32mDTS[39m [1mdist/types-BkXOAuzX.d.ts [22m[32m6.47 KB[39m
|
package/dist/account.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WalletAccount, AllowArray, Call, InvokeFunctionResponse, TypedData } from 'starknet';
|
|
2
2
|
import { SPEC } from '@starknet-io/types-js';
|
|
3
|
-
import { K as Keychain, i as KeychainOptions, M as Modal } from './types-
|
|
3
|
+
import { K as Keychain, i as KeychainOptions, M as Modal } from './types-BkXOAuzX.js';
|
|
4
4
|
import { AsyncMethodReturns } from '@cartridge/penpal';
|
|
5
5
|
import BaseProvider from './provider.js';
|
|
6
6
|
import '@cartridge/account-wasm/controller';
|
package/dist/account.js
CHANGED
|
@@ -65,18 +65,21 @@ var ControllerAccount = class extends WalletAccount {
|
|
|
65
65
|
* @throws {Error} if the JSON object is not a valid JSON
|
|
66
66
|
*/
|
|
67
67
|
async signMessage(typedData) {
|
|
68
|
-
|
|
68
|
+
return new Promise(async (resolve, reject) => {
|
|
69
|
+
const sessionSign = await this.keychain.signMessage(typedData, "", true);
|
|
70
|
+
if (!("code" in sessionSign)) {
|
|
71
|
+
resolve(sessionSign);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
69
74
|
this.modal.open();
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
const manualSign = await this.keychain.signMessage(typedData, "", false);
|
|
76
|
+
if (!("code" in manualSign)) {
|
|
77
|
+
resolve(manualSign);
|
|
78
|
+
} else {
|
|
79
|
+
reject(manualSign.error);
|
|
74
80
|
}
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
console.error(e);
|
|
78
|
-
throw e;
|
|
79
|
-
}
|
|
81
|
+
this.modal.close();
|
|
82
|
+
});
|
|
80
83
|
}
|
|
81
84
|
};
|
|
82
85
|
var account_default = ControllerAccount;
|
package/dist/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/account.ts"],"sourcesContent":["import {\n InvokeFunctionResponse,\n TypedData,\n WalletAccount,\n Call,\n AllowArray,\n} from \"starknet\";\n\nimport { SPEC } from \"@starknet-io/types-js\";\n\nimport {\n ConnectError,\n Keychain,\n KeychainOptions,\n Modal,\n ResponseCodes,\n} from \"./types\";\nimport { AsyncMethodReturns } from \"@cartridge/penpal\";\nimport BaseProvider from \"./provider\";\n\nclass ControllerAccount extends WalletAccount {\n address: string;\n private keychain: AsyncMethodReturns<Keychain>;\n private modal: Modal;\n private options?: KeychainOptions;\n\n constructor(\n provider: BaseProvider,\n address: string,\n keychain: AsyncMethodReturns<Keychain>,\n options: KeychainOptions,\n modal: Modal,\n ) {\n super({ nodeUrl: provider.rpc.toString() }, provider);\n\n this.address = address;\n this.keychain = keychain;\n this.options = options;\n this.modal = modal;\n }\n\n /**\n * Invoke execute function in account contract\n *\n * @param calls the invocation object or an array of them, containing:\n * - contractAddress - the address of the contract\n * - entrypoint - the entrypoint of the contract\n * - calldata - (defaults to []) the calldata\n * - signature - (defaults to []) the signature\n * @param abis (optional) the abi of the contract for better displaying\n *\n * @returns response from addTransaction\n */\n async execute(calls: AllowArray<Call>): Promise<InvokeFunctionResponse> {\n calls = Array.isArray(calls) ? calls : [calls];\n\n return new Promise(async (resolve, reject) => {\n const sessionExecute = await this.keychain.execute(\n calls,\n undefined,\n undefined,\n false,\n );\n\n // Session call succeeded\n if (sessionExecute.code === ResponseCodes.SUCCESS) {\n resolve(sessionExecute as InvokeFunctionResponse);\n return;\n }\n\n // Propagates session txn error back to caller\n if (this.options?.propagateSessionErrors) {\n reject((sessionExecute as ConnectError).error);\n return;\n }\n\n // Session call or Paymaster flow failed.\n // Session not avaialble, manual flow fallback\n this.modal.open();\n const manualExecute = await this.keychain.execute(\n calls,\n undefined,\n undefined,\n true,\n (sessionExecute as ConnectError).error,\n );\n\n // Manual call succeeded\n if (manualExecute.code === ResponseCodes.SUCCESS) {\n resolve(manualExecute as InvokeFunctionResponse);\n this.modal.close();\n return;\n }\n\n reject((manualExecute as ConnectError).error);\n return;\n });\n }\n\n /**\n * Sign an JSON object for off-chain usage with the starknet private key and return the signature\n * This adds a message prefix so it cant be interchanged with transactions\n *\n * @param json - JSON object to be signed\n * @returns the signature of the JSON object\n * @throws {Error} if the JSON object is not a valid JSON\n */\n async signMessage(typedData: TypedData): Promise<SPEC.SIGNATURE> {\n
|
|
1
|
+
{"version":3,"sources":["../src/account.ts"],"sourcesContent":["import {\n InvokeFunctionResponse,\n TypedData,\n WalletAccount,\n Call,\n AllowArray,\n} from \"starknet\";\n\nimport { SPEC } from \"@starknet-io/types-js\";\n\nimport {\n ConnectError,\n Keychain,\n KeychainOptions,\n Modal,\n ResponseCodes,\n} from \"./types\";\nimport { AsyncMethodReturns } from \"@cartridge/penpal\";\nimport BaseProvider from \"./provider\";\n\nclass ControllerAccount extends WalletAccount {\n address: string;\n private keychain: AsyncMethodReturns<Keychain>;\n private modal: Modal;\n private options?: KeychainOptions;\n\n constructor(\n provider: BaseProvider,\n address: string,\n keychain: AsyncMethodReturns<Keychain>,\n options: KeychainOptions,\n modal: Modal,\n ) {\n super({ nodeUrl: provider.rpc.toString() }, provider);\n\n this.address = address;\n this.keychain = keychain;\n this.options = options;\n this.modal = modal;\n }\n\n /**\n * Invoke execute function in account contract\n *\n * @param calls the invocation object or an array of them, containing:\n * - contractAddress - the address of the contract\n * - entrypoint - the entrypoint of the contract\n * - calldata - (defaults to []) the calldata\n * - signature - (defaults to []) the signature\n * @param abis (optional) the abi of the contract for better displaying\n *\n * @returns response from addTransaction\n */\n async execute(calls: AllowArray<Call>): Promise<InvokeFunctionResponse> {\n calls = Array.isArray(calls) ? calls : [calls];\n\n return new Promise(async (resolve, reject) => {\n const sessionExecute = await this.keychain.execute(\n calls,\n undefined,\n undefined,\n false,\n );\n\n // Session call succeeded\n if (sessionExecute.code === ResponseCodes.SUCCESS) {\n resolve(sessionExecute as InvokeFunctionResponse);\n return;\n }\n\n // Propagates session txn error back to caller\n if (this.options?.propagateSessionErrors) {\n reject((sessionExecute as ConnectError).error);\n return;\n }\n\n // Session call or Paymaster flow failed.\n // Session not avaialble, manual flow fallback\n this.modal.open();\n const manualExecute = await this.keychain.execute(\n calls,\n undefined,\n undefined,\n true,\n (sessionExecute as ConnectError).error,\n );\n\n // Manual call succeeded\n if (manualExecute.code === ResponseCodes.SUCCESS) {\n resolve(manualExecute as InvokeFunctionResponse);\n this.modal.close();\n return;\n }\n\n reject((manualExecute as ConnectError).error);\n return;\n });\n }\n\n /**\n * Sign an JSON object for off-chain usage with the starknet private key and return the signature\n * This adds a message prefix so it cant be interchanged with transactions\n *\n * @param json - JSON object to be signed\n * @returns the signature of the JSON object\n * @throws {Error} if the JSON object is not a valid JSON\n */\n async signMessage(typedData: TypedData): Promise<SPEC.SIGNATURE> {\n return new Promise(async (resolve, reject) => {\n const sessionSign = await this.keychain.signMessage(typedData, \"\", true);\n\n // Session sign succeeded\n if (!(\"code\" in sessionSign)) {\n resolve(sessionSign as SPEC.SIGNATURE);\n return;\n }\n\n // Session not avaialble, manual flow fallback\n this.modal.open();\n const manualSign = await this.keychain.signMessage(typedData, \"\", false);\n\n if (!(\"code\" in manualSign)) {\n resolve(manualSign as SPEC.SIGNATURE);\n } else {\n reject((manualSign as ConnectError).error);\n }\n this.modal.close();\n });\n }\n}\n\nexport default ControllerAccount;\n"],"mappings":";AAAA;AAAA,EAGE;AAAA,OAGK;AAcP,IAAM,oBAAN,cAAgC,cAAc;AAAA,EAM5C,YACE,UACA,SACA,UACA,SACA,OACA;AACA,UAAM,EAAE,SAAS,SAAS,IAAI,SAAS,EAAE,GAAG,QAAQ;AAEpD,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,QAAQ;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,QAAQ,OAA0D;AACtE,YAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAE7C,WAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;AAC5C,YAAM,iBAAiB,MAAM,KAAK,SAAS;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAGA,UAAI,eAAe,kCAAgC;AACjD,gBAAQ,cAAwC;AAChD;AAAA,MACF;AAGA,UAAI,KAAK,SAAS,wBAAwB;AACxC,eAAQ,eAAgC,KAAK;AAC7C;AAAA,MACF;AAIA,WAAK,MAAM,KAAK;AAChB,YAAM,gBAAgB,MAAM,KAAK,SAAS;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,eAAgC;AAAA,MACnC;AAGA,UAAI,cAAc,kCAAgC;AAChD,gBAAQ,aAAuC;AAC/C,aAAK,MAAM,MAAM;AACjB;AAAA,MACF;AAEA,aAAQ,cAA+B,KAAK;AAC5C;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,YAAY,WAA+C;AAC/D,WAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;AAC5C,YAAM,cAAc,MAAM,KAAK,SAAS,YAAY,WAAW,IAAI,IAAI;AAGvE,UAAI,EAAE,UAAU,cAAc;AAC5B,gBAAQ,WAA6B;AACrC;AAAA,MACF;AAGA,WAAK,MAAM,KAAK;AAChB,YAAM,aAAa,MAAM,KAAK,SAAS,YAAY,WAAW,IAAI,KAAK;AAEvE,UAAI,EAAE,UAAU,aAAa;AAC3B,gBAAQ,UAA4B;AAAA,MACtC,OAAO;AACL,eAAQ,WAA4B,KAAK;AAAA,MAC3C;AACA,WAAK,MAAM,MAAM;AAAA,IACnB,CAAC;AAAA,EACH;AACF;AAEA,IAAO,kBAAQ;","names":[]}
|
package/dist/controller.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as ControllerOptions, k as ProfileContextTypeVariant, P as Policy } from './types-
|
|
1
|
+
import { f as ControllerOptions, k as ProfileContextTypeVariant, P as Policy } from './types-BkXOAuzX.js';
|
|
2
2
|
import BaseProvider from './provider.js';
|
|
3
3
|
import { WalletAccount } from 'starknet';
|
|
4
4
|
import '@starknet-io/types-js';
|
|
@@ -20,6 +20,7 @@ declare class ControllerProvider extends BaseProvider {
|
|
|
20
20
|
username(): Promise<string> | undefined;
|
|
21
21
|
fetchControllers(contractAddresses: string[]): Promise<Record<string, string>>;
|
|
22
22
|
openPurchaseCredits(): void;
|
|
23
|
+
private openExecute;
|
|
23
24
|
delegateAccount(): Promise<string | null>;
|
|
24
25
|
private waitForKeychain;
|
|
25
26
|
}
|
package/dist/controller.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// src/controller.ts
|
|
2
|
+
import { normalize } from "@cartridge/utils";
|
|
3
|
+
|
|
1
4
|
// src/account.ts
|
|
2
5
|
import {
|
|
3
6
|
WalletAccount
|
|
@@ -65,18 +68,21 @@ var ControllerAccount = class extends WalletAccount {
|
|
|
65
68
|
* @throws {Error} if the JSON object is not a valid JSON
|
|
66
69
|
*/
|
|
67
70
|
async signMessage(typedData) {
|
|
68
|
-
|
|
71
|
+
return new Promise(async (resolve, reject) => {
|
|
72
|
+
const sessionSign = await this.keychain.signMessage(typedData, "", true);
|
|
73
|
+
if (!("code" in sessionSign)) {
|
|
74
|
+
resolve(sessionSign);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
69
77
|
this.modal.open();
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
const manualSign = await this.keychain.signMessage(typedData, "", false);
|
|
79
|
+
if (!("code" in manualSign)) {
|
|
80
|
+
resolve(manualSign);
|
|
81
|
+
} else {
|
|
82
|
+
reject(manualSign.error);
|
|
74
83
|
}
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
console.error(e);
|
|
78
|
-
throw e;
|
|
79
|
-
}
|
|
84
|
+
this.modal.close();
|
|
85
|
+
});
|
|
80
86
|
}
|
|
81
87
|
};
|
|
82
88
|
var account_default = ControllerAccount;
|
|
@@ -608,7 +614,9 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
608
614
|
this.profile = profile;
|
|
609
615
|
},
|
|
610
616
|
methods: {
|
|
611
|
-
|
|
617
|
+
openSettings: this.openSettings.bind(this),
|
|
618
|
+
openPurchaseCredits: this.openPurchaseCredits.bind(this),
|
|
619
|
+
openExecute: normalize(() => this.openExecute.bind(this))
|
|
612
620
|
},
|
|
613
621
|
rpcUrl: this.rpc.toString(),
|
|
614
622
|
username
|
|
@@ -685,6 +693,7 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
685
693
|
console.error(new NotReadyToConnect().message);
|
|
686
694
|
return null;
|
|
687
695
|
}
|
|
696
|
+
this.iframes.profile?.close();
|
|
688
697
|
this.iframes.keychain.open();
|
|
689
698
|
const res = await this.keychain.openSettings();
|
|
690
699
|
this.iframes.keychain.close();
|
|
@@ -726,6 +735,19 @@ var ControllerProvider = class extends BaseProvider {
|
|
|
726
735
|
this.iframes.keychain.open();
|
|
727
736
|
this.keychain.openPurchaseCredits();
|
|
728
737
|
}
|
|
738
|
+
openExecute(calls) {
|
|
739
|
+
if (!this.keychain || !this.iframes.keychain) {
|
|
740
|
+
console.error(new NotReadyToConnect().message);
|
|
741
|
+
return;
|
|
742
|
+
}
|
|
743
|
+
if (!this.iframes.profile) {
|
|
744
|
+
console.error("Profile is not ready");
|
|
745
|
+
return;
|
|
746
|
+
}
|
|
747
|
+
this.iframes.profile.close();
|
|
748
|
+
this.iframes.keychain.open();
|
|
749
|
+
this.keychain.execute(calls);
|
|
750
|
+
}
|
|
729
751
|
async delegateAccount() {
|
|
730
752
|
if (!this.keychain) {
|
|
731
753
|
console.error(new NotReadyToConnect().message);
|