@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/zoe",
3
- "version": "0.26.3-dev-d756c83.0.d756c83",
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 tsc --build tsconfig.build.json",
14
- "postpack": "git clean -f '*.d.*ts*' '*.tsbuildinfo'",
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-d756c83.0.d756c83",
47
- "@agoric/ertp": "0.16.3-dev-d756c83.0.d756c83",
48
- "@agoric/internal": "0.3.3-dev-d756c83.0.d756c83",
49
- "@agoric/notifier": "0.6.3-dev-d756c83.0.d756c83",
50
- "@agoric/store": "0.9.3-dev-d756c83.0.d756c83",
51
- "@agoric/swingset-liveslots": "0.10.3-dev-d756c83.0.d756c83",
52
- "@agoric/swingset-vat": "0.32.3-dev-d756c83.0.d756c83",
53
- "@agoric/time": "0.3.3-dev-d756c83.0.d756c83",
54
- "@agoric/vat-data": "0.5.3-dev-d756c83.0.d756c83",
55
- "@agoric/vow": "0.1.1-dev-d756c83.0.d756c83",
56
- "@agoric/zone": "0.2.3-dev-d756c83.0.d756c83",
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-d756c83.0.d756c83",
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": "d756c838c7eb3e3cec4a8bdf5c24b97f942b754e"
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
- import type { StartedInstanceKit } from './utils.js';
3
- import type { ZCF } from '../types-index.js';
2
+ ;
3
+ ;
4
4
 
5
5
  const someContractStartFn = (
6
- zcf: ZCF,
7
- privateArgs: { someNumber: number; someString: string },
6
+ zcf ,
7
+ privateArgs ,
8
8
  ) => ({});
9
9
 
10
- type PsmInstanceKit = StartedInstanceKit<typeof someContractStartFn>;
10
+ ;
11
11
 
12
- const psmInstanceKit: PsmInstanceKit = null as any;
12
+ const psmInstanceKit = null ;
13
13
 
14
14
  // @ts-expect-error missing privateArgs argument
15
15
  void E(psmInstanceKit.adminFacet).restartContract();