@agoric/zoe 0.26.3-dev-d756c83.0.d756c83 → 0.26.3-dev-e9efaa1.0.e9efaa1
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/bundles/bundle-contractFacet-js-meta.json +213 -213
- package/package.json +16 -16
- package/src/contractFacet/types.js +251 -0
- package/src/types.js +37 -0
- package/src/zoeService/types.js +307 -0
- package/src/zoeService/{utils.test-d.ts → utils.test-d.js} +6 -6
- package/src/contractFacet/types.ts +0 -251
- package/src/types.ts +0 -37
- package/src/zoeService/types.ts +0 -307
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/zoe",
|
|
3
|
-
"version": "0.26.3-dev-
|
|
3
|
+
"version": "0.26.3-dev-e9efaa1.0.e9efaa1",
|
|
4
4
|
"description": "Zoe: the Smart Contract Framework for Offer Enforcement",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/zoeService/zoe.js",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "yarn build:bundles",
|
|
12
12
|
"build:bundles": "node scripts/build-bundles.js",
|
|
13
|
-
"prepack": "yarn run -T
|
|
14
|
-
"postpack": "
|
|
13
|
+
"prepack": "yarn run -T prepack-package",
|
|
14
|
+
"postpack": "yarn run -T postpack-package",
|
|
15
15
|
"test": "ava --verbose",
|
|
16
16
|
"test:c8": "c8 --all ${C8_OPTIONS:-} ava",
|
|
17
17
|
"test:unit": "ava 'test/unitTests' -T 1m --verbose",
|
|
@@ -43,17 +43,17 @@
|
|
|
43
43
|
},
|
|
44
44
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@agoric/base-zone": "0.1.1-dev-
|
|
47
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
48
|
-
"@agoric/internal": "0.3.3-dev-
|
|
49
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
50
|
-
"@agoric/store": "0.9.3-dev-
|
|
51
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
52
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
53
|
-
"@agoric/time": "0.3.3-dev-
|
|
54
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
55
|
-
"@agoric/vow": "0.1.1-dev-
|
|
56
|
-
"@agoric/zone": "0.2.3-dev-
|
|
46
|
+
"@agoric/base-zone": "0.1.1-dev-e9efaa1.0.e9efaa1",
|
|
47
|
+
"@agoric/ertp": "0.16.3-dev-e9efaa1.0.e9efaa1",
|
|
48
|
+
"@agoric/internal": "0.3.3-dev-e9efaa1.0.e9efaa1",
|
|
49
|
+
"@agoric/notifier": "0.6.3-dev-e9efaa1.0.e9efaa1",
|
|
50
|
+
"@agoric/store": "0.9.3-dev-e9efaa1.0.e9efaa1",
|
|
51
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-e9efaa1.0.e9efaa1",
|
|
52
|
+
"@agoric/swingset-vat": "0.32.3-dev-e9efaa1.0.e9efaa1",
|
|
53
|
+
"@agoric/time": "0.3.3-dev-e9efaa1.0.e9efaa1",
|
|
54
|
+
"@agoric/vat-data": "0.5.3-dev-e9efaa1.0.e9efaa1",
|
|
55
|
+
"@agoric/vow": "0.1.1-dev-e9efaa1.0.e9efaa1",
|
|
56
|
+
"@agoric/zone": "0.2.3-dev-e9efaa1.0.e9efaa1",
|
|
57
57
|
"@endo/bundle-source": "^4.1.2",
|
|
58
58
|
"@endo/captp": "^4.4.8",
|
|
59
59
|
"@endo/common": "^1.2.13",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"yargs-parser": "^21.1.1"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@agoric/kmarshal": "0.1.1-dev-
|
|
73
|
+
"@agoric/kmarshal": "0.1.1-dev-e9efaa1.0.e9efaa1",
|
|
74
74
|
"@endo/init": "^1.1.12",
|
|
75
75
|
"ava": "^5.3.0",
|
|
76
76
|
"c8": "^10.1.3",
|
|
@@ -100,5 +100,5 @@
|
|
|
100
100
|
"typeCoverage": {
|
|
101
101
|
"atLeast": 84.77
|
|
102
102
|
},
|
|
103
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "e9efaa12254f2c9a6faffc40ade2f1d9a70b87ae"
|
|
104
104
|
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Any passable non-thenable. Often an explanatory string.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Zoe Contract Facet
|
|
50
|
+
*
|
|
51
|
+
* The Zoe interface specific to a contract instance. The Zoe Contract
|
|
52
|
+
* Facet is an API object used by running contract instances to access
|
|
53
|
+
* the Zoe state for that instance. The Zoe Contract Facet is accessed
|
|
54
|
+
* synchronously from within the contract, and usually is referred to
|
|
55
|
+
* in code as zcf.
|
|
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
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Provide a jig object for testing purposes only.
|
|
134
|
+
*
|
|
135
|
+
* The contract code provides a callback whose return result will
|
|
136
|
+
* be made available to the test that started this contract. The
|
|
137
|
+
* supplied callback will only be called in a testing context,
|
|
138
|
+
* never in production; i.e., it is only called if `testJigSetter`
|
|
139
|
+
* was supplied.
|
|
140
|
+
*
|
|
141
|
+
* If no `testFn` is supplied, then an empty jig will be used.
|
|
142
|
+
* An additional `zcf` property set to the current ContractFacet
|
|
143
|
+
* will be appended to the returned jig object (overriding any
|
|
144
|
+
* provided by the `testFn`).
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* fail called with the reason for this failure, where reason is
|
|
175
|
+
* normally an instanceof Error.
|
|
176
|
+
*/
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* API for a contract start function.
|
|
223
|
+
*
|
|
224
|
+
* CAVEAT: assumes synchronous
|
|
225
|
+
*/
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* @deprecated use the parameterized version
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
package/src/types.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Alias for RemotableObject
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Typing this as Capitalize<string> would be more accurate but requires
|
|
10
|
+
// frequent casting. Revisit once .ts syntax is more common. Even then,
|
|
11
|
+
// may not be worth the effort since Zoe 2 probably will not have keywords.
|
|
12
|
+
/** Must start with a capital letter. */
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* - an opaque handle for an invitation
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @see {@link https://github.com/sindresorhus/type-fest/blob/main/source/is-any.d.ts}
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Zoe provides a framework for deploying and working with smart
|
|
29
|
+
* contracts. It is accessed as a long-lived and well-trusted service
|
|
30
|
+
* that enforces offer safety for the contracts that use it. Zoe has a
|
|
31
|
+
* single `invitationIssuer` for the entirety of its lifetime. By
|
|
32
|
+
* having a reference to Zoe, a user can get the `invitationIssuer`
|
|
33
|
+
* and thus validate any `invitation` they receive from someone else.
|
|
34
|
+
*
|
|
35
|
+
* Zoe has two different facets: the public Zoe service and the
|
|
36
|
+
* contract facet (ZCF). Each contract instance has a copy of ZCF
|
|
37
|
+
* within its vat. The contract and ZCF never have direct access to
|
|
38
|
+
* the users' payments or the Zoe purses.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
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
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Create an installation by safely evaluating the code and
|
|
125
|
+
* registering it with Zoe. Returns an installation.
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Create an installation from a Bundle ID. Returns an installation.
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Verify that an alleged Installation is real, and return the Bundle ID it
|
|
140
|
+
* will use for contract code.
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* To redeem an invitation, the user normally provides a proposal (their
|
|
147
|
+
* rules for the offer) as well as payments to be escrowed by Zoe. If
|
|
148
|
+
* either the proposal or payments would be empty, indicate this by
|
|
149
|
+
* omitting that argument or passing undefined, rather than passing an
|
|
150
|
+
* empty record.
|
|
151
|
+
*
|
|
152
|
+
* The proposal has three parts: `want` and `give` are used by Zoe to
|
|
153
|
+
* enforce offer safety, and `exit` is used to specify the particular
|
|
154
|
+
* payout-liveness policy that Zoe can guarantee. `want` and `give`
|
|
155
|
+
* are objects with keywords as keys and amounts as values.
|
|
156
|
+
* `paymentKeywordRecord` is a record with keywords as keys, and the
|
|
157
|
+
* values are the actual payments to be escrowed. A payment is
|
|
158
|
+
* expected for every rule under `give`.
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Zoe uses seats to access or manipulate offers. They let contracts and users
|
|
168
|
+
* interact with them. Zoe has two kinds of seats. ZCFSeats are used within
|
|
169
|
+
* contracts and with zcf methods. UserSeats represent offers external to Zoe
|
|
170
|
+
* and the contract. The party who exercises an invitation and sends the offer()
|
|
171
|
+
* message to Zoe gets a UserSeat that can check payouts' status or retrieve the
|
|
172
|
+
* result of processing the offer in the contract. This varies, but examples are
|
|
173
|
+
* a string and an invitation for another seat.
|
|
174
|
+
*
|
|
175
|
+
* Also, a UserSeat can be handed to an agent outside Zoe and the contract,
|
|
176
|
+
* letting them query or monitor the current state, access the payouts and
|
|
177
|
+
* result, and, if it's allowed for this seat, call tryExit().
|
|
178
|
+
*
|
|
179
|
+
* Since anyone can attempt to exit the seat if they have a reference to it, you
|
|
180
|
+
* should only share a UserSeat with trusted parties.
|
|
181
|
+
*
|
|
182
|
+
* UserSeat includes queries for the associated offer's current state and an
|
|
183
|
+
* operation to request that the offer exit, as follows:
|
|
184
|
+
*/
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* The keys are keywords, and the values are amounts. For example:
|
|
240
|
+
* { Asset: AmountMath.make(assetBrand, 5n), Price:
|
|
241
|
+
* AmountMath.make(priceBrand, 9n) }
|
|
242
|
+
*/
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* The possible keys are 'waived', 'onDemand', and 'afterDeadline'.
|
|
261
|
+
* `timer` and `deadline` only are used for the `afterDeadline` key.
|
|
262
|
+
* The possible records are:
|
|
263
|
+
* `{ waived: null }`
|
|
264
|
+
* `{ onDemand: null }`
|
|
265
|
+
* `{ afterDeadline: { timer :Timer<Deadline>, deadline :Deadline } }`
|
|
266
|
+
*/
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Opaque type for a JSONable source bundle
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { E } from '@endo/far';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
;
|
|
3
|
+
;
|
|
4
4
|
|
|
5
5
|
const someContractStartFn = (
|
|
6
|
-
zcf
|
|
7
|
-
privateArgs
|
|
6
|
+
zcf ,
|
|
7
|
+
privateArgs ,
|
|
8
8
|
) => ({});
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
;
|
|
11
11
|
|
|
12
|
-
const psmInstanceKit
|
|
12
|
+
const psmInstanceKit = null ;
|
|
13
13
|
|
|
14
14
|
// @ts-expect-error missing privateArgs argument
|
|
15
15
|
void E(psmInstanceKit.adminFacet).restartContract();
|