@agoric/ertp 0.16.3-dev-f1638f9.0 → 0.16.3-dev-a477bee.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.
Files changed (51) hide show
  1. package/exported.d.ts +39 -0
  2. package/exported.js +1 -1
  3. package/package.json +12 -11
  4. package/src/amountMath.d.ts +61 -0
  5. package/src/amountMath.d.ts.map +1 -0
  6. package/src/amountMath.js +2 -0
  7. package/src/amountStore.d.ts +9 -0
  8. package/src/amountStore.d.ts.map +1 -0
  9. package/src/amountStore.js +2 -0
  10. package/src/displayInfo.d.ts +5 -0
  11. package/src/displayInfo.d.ts.map +1 -0
  12. package/src/displayInfo.js +2 -0
  13. package/src/index.d.ts +4 -0
  14. package/src/index.d.ts.map +1 -0
  15. package/src/issuerKit.d.ts +43 -0
  16. package/src/issuerKit.d.ts.map +1 -0
  17. package/src/issuerKit.js +3 -2
  18. package/src/legacy-payment-helpers.d.ts +9 -0
  19. package/src/legacy-payment-helpers.d.ts.map +1 -0
  20. package/src/legacy-payment-helpers.js +2 -0
  21. package/src/mathHelpers/copyBagMathHelpers.d.ts +4 -0
  22. package/src/mathHelpers/copyBagMathHelpers.d.ts.map +1 -0
  23. package/src/mathHelpers/copyBagMathHelpers.js +2 -1
  24. package/src/mathHelpers/copySetMathHelpers.d.ts +5 -0
  25. package/src/mathHelpers/copySetMathHelpers.d.ts.map +1 -0
  26. package/src/mathHelpers/copySetMathHelpers.js +5 -1
  27. package/src/mathHelpers/natMathHelpers.d.ts +14 -0
  28. package/src/mathHelpers/natMathHelpers.d.ts.map +1 -0
  29. package/src/mathHelpers/natMathHelpers.js +1 -1
  30. package/src/mathHelpers/setMathHelpers.d.ts +8 -0
  31. package/src/mathHelpers/setMathHelpers.d.ts.map +1 -0
  32. package/src/mathHelpers/setMathHelpers.js +2 -1
  33. package/src/payment.d.ts +5 -0
  34. package/src/payment.d.ts.map +1 -0
  35. package/src/payment.js +2 -0
  36. package/src/paymentLedger.d.ts +7 -0
  37. package/src/paymentLedger.d.ts.map +1 -0
  38. package/src/paymentLedger.js +5 -0
  39. package/src/purse.d.ts +24 -0
  40. package/src/purse.d.ts.map +1 -0
  41. package/src/purse.js +2 -0
  42. package/src/transientNotifier.d.ts +5 -0
  43. package/src/transientNotifier.d.ts.map +1 -0
  44. package/src/transientNotifier.js +2 -0
  45. package/src/typeGuards.d.ts +74 -0
  46. package/src/typeGuards.d.ts.map +1 -0
  47. package/src/typeGuards.js +1 -0
  48. package/src/types.d.ts +382 -0
  49. package/src/types.d.ts.map +1 -0
  50. package/src/types.js +3 -3
  51. package/src/types-ambient.js +0 -367
package/src/types.d.ts ADDED
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Amounts are descriptions of digital assets,
3
+ * answering the questions "how much" and "of what kind". Amounts are values
4
+ * labeled with a brand. AmountMath executes the logic of how amounts are
5
+ * changed when digital assets are merged, separated, or otherwise
6
+ * manipulated. For example, a deposit of 2 bucks into a purse that already
7
+ * has 3 bucks gives a new purse balance of 5 bucks. An empty purse has 0
8
+ * bucks. AmountMath relies heavily on polymorphic MathHelpers, which
9
+ * manipulate the unbranded portion.
10
+ */
11
+ export type Amount<K extends AssetKind = AssetKind> = {
12
+ brand: Brand<K>;
13
+ value: AssetValueForKind<K>;
14
+ };
15
+ /**
16
+ * An `AmountValue` describes a set or quantity of assets that can be owned or
17
+ * shared.
18
+ *
19
+ * A fungible `AmountValue` uses a non-negative bigint to represent a quantity
20
+ * of that many assets.
21
+ *
22
+ * A non-fungible `AmountValue` uses an array or CopySet of `Key`s to represent
23
+ * a set of whatever asset each key represents. A `Key` is a passable value
24
+ * that can be used as an element in a set (SetStore or CopySet) or as the key
25
+ * in a map (MapStore or CopyMap).
26
+ *
27
+ * `SetValue` is for the deprecated set representation, using an array directly
28
+ * to represent the array of its elements. `CopySet` is the proper
29
+ * representation using a CopySet.
30
+ *
31
+ * A semi-fungible `CopyBag` is represented as a `CopyBag` of `Key` objects.
32
+ * "Bag" is synonymous with MultiSet, where an element of a bag can be present
33
+ * once or more times, i.e., some positive bigint number of times,
34
+ * representing that quantity of the asset represented by that key.
35
+ */
36
+ export type AmountValue = bigint | SetValue | CopySet | import("@endo/patterns").CopyBag<any>;
37
+ /**
38
+ * See doc-comment
39
+ * for `AmountValue`.
40
+ */
41
+ export type AssetKind = 'nat' | 'set' | 'copySet' | 'copyBag';
42
+ export type AssetValueForKind<K extends AssetKind> = K extends "nat" ? bigint : K extends "set" ? SetValue : K extends "copySet" ? CopySet : K extends "copyBag" ? import("@endo/patterns").CopyBag<any> : never;
43
+ export type AssetKindForValue<V extends AmountValue> = V extends bigint ? "nat" : V extends SetValue ? "set" : V extends CopySet ? "copySet" : V extends import("@endo/patterns").CopyBag<any> ? "copyBag" : never;
44
+ export type DisplayInfo<K extends AssetKind = AssetKind> = {
45
+ /**
46
+ * Tells the display software how many
47
+ * decimal places to move the decimal over to the left, or in other words,
48
+ * which position corresponds to whole numbers. We require fungible digital
49
+ * assets to be represented in integers, in the smallest unit (i.e. USD might
50
+ * be represented in mill, a thousandth of a dollar. In that case,
51
+ * `decimalPlaces` would be 3.) This property is optional, and for
52
+ * non-fungible digital assets, should not be specified. The decimalPlaces
53
+ * property should be used for _display purposes only_. Any other use is an
54
+ * anti-pattern.
55
+ */
56
+ decimalPlaces?: number | undefined;
57
+ /**
58
+ * - the kind of asset, either AssetKind.NAT (fungible)
59
+ * or AssetKind.SET or AssetKind.COPY_SET (non-fungible)
60
+ */
61
+ assetKind: K;
62
+ };
63
+ /**
64
+ * The brand identifies the kind of issuer, and has a
65
+ * function to get the alleged name for the kind of asset described. The
66
+ * alleged name (such as 'BTC' or 'moola') is provided by the maker of the
67
+ * issuer and should not be trusted as accurate.
68
+ *
69
+ * Every amount created by a particular AmountMath will share the same brand,
70
+ * but recipients cannot rely on the brand to verify that a purported amount
71
+ * represents the issuer they intended, since the same brand can be reused by
72
+ * a misbehaving issuer.
73
+ */
74
+ export type Brand<K extends AssetKind = AssetKind> = {
75
+ /**
76
+ * Should be used with `issuer.getBrand` to ensure an issuer and brand match.
77
+ */
78
+ isMyIssuer: (allegedIssuer: ERef<Issuer<AssetKind>>) => Promise<boolean>;
79
+ getAllegedName: () => string;
80
+ /**
81
+ * Give information to UI on how
82
+ * to display the amount.
83
+ */
84
+ getDisplayInfo: () => DisplayInfo<K>;
85
+ getAmountShape: () => Pattern;
86
+ };
87
+ /**
88
+ * Return true if the payment continues to exist.
89
+ *
90
+ * If the payment is a promise, the operation will proceed upon fulfillment.
91
+ */
92
+ export type IssuerIsLive = (payment: ERef<Payment<AssetKind>>) => Promise<boolean>;
93
+ /**
94
+ * Get the amount of digital assets in the payment.
95
+ * Because the payment is not trusted, we cannot call a method on it directly,
96
+ * and must use the issuer instead.
97
+ *
98
+ * If the payment is a promise, the operation will proceed upon fulfillment.
99
+ */
100
+ export type IssuerGetAmountOf<K extends AssetKind> = (payment: ERef<Payment<AssetKind>>) => Promise<Amount<K>>;
101
+ /**
102
+ * Burn all of the digital assets in the payment.
103
+ * `optAmountShape` is optional. If the `optAmountShape` pattern is present,
104
+ * the amount of the digital assets in the payment must match
105
+ * `optAmountShape`, to prevent sending the wrong payment and other
106
+ * confusion.
107
+ *
108
+ * If the payment is a promise, the operation will proceed upon fulfillment.
109
+ *
110
+ * As always with optional `Pattern` arguments, keep in mind that technically
111
+ * the value `undefined` itself is a valid `Key` and therefore a valid
112
+ * `Pattern`. But in optional pattern position, a top level `undefined` will
113
+ * be interpreted as absence. If you want to express a `Pattern` that will
114
+ * match only `undefined`, use `M.undefined()` instead.
115
+ */
116
+ export type IssuerBurn = (payment: ERef<Payment<AssetKind>>, optAmountShape?: Pattern) => Promise<Amount>;
117
+ /**
118
+ * The issuer cannot mint a new amount, but it can
119
+ * create empty purses and payments. The issuer can also transform payments
120
+ * (splitting payments, combining payments, burning payments, and claiming
121
+ * payments exclusively). The issuer should be gotten from a trusted source
122
+ * and then relied upon as the decider of whether an untrusted payment is
123
+ * valid.
124
+ */
125
+ export type Issuer<K extends AssetKind = AssetKind> = {
126
+ /**
127
+ * Get the Brand for this Issuer. The Brand
128
+ * indicates the type of digital asset and is shared by the mint, the issuer,
129
+ * and any purses and payments of this particular kind. The brand is not
130
+ * closely held, so this function should not be trusted to identify an issuer
131
+ * alone. Fake digital assets and amount can use another issuer's brand.
132
+ */
133
+ getBrand: () => Brand<K>;
134
+ /**
135
+ * Get the allegedName for this
136
+ * mint/issuer
137
+ */
138
+ getAllegedName: () => string;
139
+ /**
140
+ * Get the kind of MathHelpers used by
141
+ * this Issuer.
142
+ */
143
+ getAssetKind: () => AssetKind;
144
+ /**
145
+ * Give information to UI on how
146
+ * to display amounts for this issuer.
147
+ */
148
+ getDisplayInfo: () => DisplayInfo<K>;
149
+ /**
150
+ * Make an empty purse of this brand.
151
+ */
152
+ makeEmptyPurse: () => Purse<K>;
153
+ isLive: IssuerIsLive;
154
+ getAmountOf: IssuerGetAmountOf<K>;
155
+ burn: IssuerBurn;
156
+ };
157
+ export type PaymentLedger<K extends AssetKind = AssetKind> = {
158
+ mint: Mint<K>;
159
+ /**
160
+ * Externally useful only if this issuer
161
+ * uses recovery sets. Can be used to get the recovery set associated with
162
+ * minted payments that are still live.
163
+ */
164
+ mintRecoveryPurse: Purse<K>;
165
+ issuer: Issuer<K>;
166
+ brand: Brand<K>;
167
+ };
168
+ export type IssuerKit<K extends AssetKind = AssetKind> = {
169
+ mint: Mint<K>;
170
+ /**
171
+ * Externally useful only if this issuer
172
+ * uses recovery sets. Can be used to get the recovery set associated with
173
+ * minted payments that are still live.
174
+ */
175
+ mintRecoveryPurse: Purse<K>;
176
+ issuer: Issuer<K>;
177
+ brand: Brand<K>;
178
+ displayInfo: DisplayInfo;
179
+ };
180
+ export type AdditionalDisplayInfo = {
181
+ /**
182
+ * Tells the display software how many
183
+ * decimal places to move the decimal over to the left, or in other words,
184
+ * which position corresponds to whole numbers. We require fungible digital
185
+ * assets to be represented in integers, in the smallest unit (i.e. USD might
186
+ * be represented in mill, a thousandth of a dollar. In that case,
187
+ * `decimalPlaces` would be 3.) This property is optional, and for
188
+ * non-fungible digital assets, should not be specified. The decimalPlaces
189
+ * property should be used for _display purposes only_. Any other use is an
190
+ * anti-pattern.
191
+ */
192
+ decimalPlaces?: number | undefined;
193
+ assetKind?: AssetKind | undefined;
194
+ };
195
+ /**
196
+ * Holding a Mint carries the right to issue new digital
197
+ * assets. These assets all have the same kind, which is called a Brand.
198
+ */
199
+ export type Mint<K extends AssetKind = AssetKind> = {
200
+ /**
201
+ * Gets the Issuer for this mint.
202
+ */
203
+ getIssuer: () => Issuer<K>;
204
+ /**
205
+ * Creates a new
206
+ * Payment containing newly minted amount.
207
+ */
208
+ mintPayment: (newAmount: Amount<K>) => Payment<K>;
209
+ };
210
+ /**
211
+ * Issuers first became durable with mandatory recovery sets. Later they were
212
+ * made optional, but there is no support for converting from one state to the
213
+ * other. Thus, absence of a `RecoverySetsOption` state is equivalent to
214
+ * `'hasRecoverySets'`. In the absence of a `recoverySetsOption` parameter,
215
+ * upgradeIssuerKit defaults to the predecessor's `RecoverySetsOption` state, or
216
+ * `'hasRecoverySets'` if none.
217
+ *
218
+ * At this time, issuers started in one of the states (`'noRecoverySets'`, or
219
+ * `'hasRecoverySets'`) cannot be converted to the other on upgrade. If this
220
+ * transition is needed, it can likely be supported in a future upgrade. File an
221
+ * issue on github and explain what you need and why.
222
+ */
223
+ export type RecoverySetsOption = 'hasRecoverySets' | 'noRecoverySets';
224
+ export type DepositFacetReceive = (payment: Payment, optAmountShape?: Pattern) => Amount;
225
+ export type DepositFacet = {
226
+ /**
227
+ * Deposit all the contents of payment
228
+ * into the purse that made this facet, returning the amount. If the optional
229
+ * argument `optAmount` does not equal the amount of digital assets in the
230
+ * payment, throw an error.
231
+ *
232
+ * If payment is a promise, throw an error.
233
+ */
234
+ receive: DepositFacetReceive;
235
+ };
236
+ export type PurseDeposit<K extends AssetKind> = (payment: Payment<K>, optAmountShape?: Pattern) => Amount<K>;
237
+ /**
238
+ * Purses hold amount of digital assets of the same
239
+ * brand, but unlike Payments, they are not meant to be sent to others. To
240
+ * transfer digital assets, a Payment should be withdrawn from a Purse. The
241
+ * amount of digital assets in a purse can change through the action of
242
+ * deposit() and withdraw().
243
+ *
244
+ * The primary use for Purses and Payments is for currency-like and goods-like
245
+ * digital assets, but they can also be used to represent other kinds of
246
+ * rights, such as the right to participate in a particular contract.
247
+ */
248
+ export type Purse<K extends AssetKind = AssetKind> = {
249
+ /**
250
+ * Get the alleged Brand for this
251
+ * Purse
252
+ */
253
+ getAllegedBrand: () => Brand<K>;
254
+ /**
255
+ * Get the amount contained in this
256
+ * purse.
257
+ */
258
+ getCurrentAmount: () => Amount<K>;
259
+ /**
260
+ * Get a lossy
261
+ * notifier for changes to this purse's balance.
262
+ */
263
+ getCurrentAmountNotifier: () => LatestTopic<Amount<K>>;
264
+ /**
265
+ * Deposit all the contents of payment into
266
+ * this purse, returning the amount. If the optional argument `optAmount` does
267
+ * not equal the amount of digital assets in the payment, throw an error.
268
+ *
269
+ * If payment is a promise, throw an error.
270
+ */
271
+ deposit: PurseDeposit<K>;
272
+ /**
273
+ * Return an object whose
274
+ * `receive` method deposits to the current Purse.
275
+ */
276
+ getDepositFacet: () => DepositFacet;
277
+ /**
278
+ * Withdraw amount from
279
+ * this purse into a new Payment.
280
+ */
281
+ withdraw: (amount: Amount<K>) => Payment<K>;
282
+ /**
283
+ * The set of payments
284
+ * withdrawn from this purse that are still live. These are the payments that
285
+ * can still be recovered in emergencies by, for example, depositing into this
286
+ * purse. Such a deposit action is like canceling an outstanding check because
287
+ * you're tired of waiting for it. Once your cancellation is acknowledged, you
288
+ * can spend the assets at stake on other things. Afterwards, if the recipient
289
+ * of the original check finally gets around to depositing it, their deposit
290
+ * fails.
291
+ *
292
+ * Returns an empty set if this issuer does not support recovery sets.
293
+ */
294
+ getRecoverySet: () => CopySet<Payment<K>>;
295
+ /**
296
+ * For use in emergencies, such as coming
297
+ * back from a traumatic crash and upgrade. This deposits all the payments in
298
+ * this purse's recovery set into the purse itself, returning the total amount
299
+ * of assets recovered.
300
+ *
301
+ * Returns an empty amount if this issuer does not support recovery sets.
302
+ */
303
+ recoverAll: () => Amount<K>;
304
+ };
305
+ /**
306
+ * Payments hold amount of digital assets of the same
307
+ * brand in transit. Payments can be deposited in purses, split into multiple
308
+ * payments, combined, and claimed (getting an exclusive payment). Payments
309
+ * are linear, meaning that either a payment has the same amount of digital
310
+ * assets it started with, or it is used up entirely. It is impossible to
311
+ * partially use a payment.
312
+ *
313
+ * Payments are often received from other actors and therefore should not be
314
+ * trusted themselves. To get the amount of digital assets in a payment, use
315
+ * the trusted issuer: issuer.getAmountOf(payment),
316
+ *
317
+ * Payments can be converted to Purses by getting a trusted issuer and calling
318
+ * `issuer.makeEmptyPurse()` to create a purse, then
319
+ * `purse.deposit(payment)`.
320
+ */
321
+ export type Payment<K extends AssetKind = AssetKind> = {
322
+ /**
323
+ * Get the allegedBrand, indicating
324
+ * the type of digital asset this payment purports to be, and which issuer to
325
+ * use. Because payments are not trusted, any method calls on payments should
326
+ * be treated with suspicion and verified elsewhere.
327
+ */
328
+ getAllegedBrand: () => Brand<K>;
329
+ };
330
+ /**
331
+ * All of the difference in how digital asset
332
+ * amount are manipulated can be reduced to the behavior of the math on
333
+ * values. We extract this custom logic into mathHelpers. MathHelpers are
334
+ * about value arithmetic, whereas AmountMath is about amounts, which are the
335
+ * values labeled with a brand. AmountMath use mathHelpers to do their value
336
+ * arithmetic, and then brand the results, making a new amount.
337
+ *
338
+ * The MathHelpers are designed to be called only from AmountMath, and so all
339
+ * methods but coerce can assume their inputs are valid. They only need to do
340
+ * output validation, and only when there is a possibility of invalid output.
341
+ */
342
+ export type MathHelpers<V extends AmountValue> = {
343
+ /**
344
+ * Check the kind of this value and
345
+ * throw if it is not the expected kind.
346
+ */
347
+ doCoerce: (allegedValue: V) => V;
348
+ /**
349
+ * Get the representation for the identity
350
+ * element (often 0 or an empty array)
351
+ */
352
+ doMakeEmpty: () => V;
353
+ /**
354
+ * Is the value the identity
355
+ * element?
356
+ */
357
+ doIsEmpty: (value: V) => boolean;
358
+ /**
359
+ * Is the left greater than
360
+ * or equal to the right?
361
+ */
362
+ doIsGTE: (left: V, right: V) => boolean;
363
+ /**
364
+ * Does left equal right?
365
+ */
366
+ doIsEqual: (left: V, right: V) => boolean;
367
+ /**
368
+ * Return the left combined with the
369
+ * right.
370
+ */
371
+ doAdd: (left: V, right: V) => V;
372
+ /**
373
+ * Return what remains after
374
+ * removing the right from the left. If something in the right was not in the
375
+ * left, we throw an error.
376
+ */
377
+ doSubtract: (left: V, right: V) => V;
378
+ };
379
+ export type NatValue = bigint;
380
+ export type SetValue = any[];
381
+ import type { CopySet } from '@endo/patterns';
382
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;;;;;;;;;;WAqBc,MAAM,CAAC,CAAC;WACR,kBAAkB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BrB,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;eA0CpC,CAAC;;;;;;;;;;;;;;;;;4DAegC,QAAQ,OAAO,CAAC;oBAEjD,MAAM,MAAM;;;;;oBACZ,MAAM,YAAY,CAAC,CAAC;oBAEpB,MAAM,OAAO;;;;;;;kEAUd,QAAQ,OAAO,CAAC;;;;;;;;4FAUhB,QAAQ,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;8EAkBpB,OAAO,KACL,QAAQ,MAAM,CAAC;;;;;;;;;;;;;;;;;cAWd,MAAM,MAAM,CAAC,CAAC;;;;;oBAKd,MAAM,MAAM;;;;;kBAEZ,MAAM,SAAS;;;;;oBAEf,MAAM,YAAY,CAAC,CAAC;;;;oBAEpB,MAAM,MAAM,CAAC,CAAC;YACd,YAAY;iBACZ,kBAAkB,CAAC,CAAC;UACpB,UAAU;;;UAMV,KAAK,CAAC,CAAC;;;;;;uBACP,MAAM,CAAC,CAAC;YAGR,OAAO,CAAC,CAAC;WACT,MAAM,CAAC,CAAC;;;UAMR,KAAK,CAAC,CAAC;;;;;;uBACP,MAAM,CAAC,CAAC;YAGR,OAAO,CAAC,CAAC;WACT,MAAM,CAAC,CAAC;iBACR,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;eAqBX,MAAM,OAAO,CAAC,CAAC;;;;;iBACf,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;iCAmBrC,iBAAiB,GAAG,gBAAgB;4CAOtC,OAAO,mBACP,OAAO,KACL,MAAM;;;;;;;;;;aAKL,mBAAmB;;0DAWtB,QAAQ,CAAC,CAAC,mBACV,OAAO,KACL,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;qBAcR,MAAM,MAAM,CAAC,CAAC;;;;;sBAEd,MAAM,OAAO,CAAC,CAAC;;;;;8BAEf,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC;;;;;;;;aAE5B,aAAa,CAAC,CAAC;;;;;qBAKf,MAAM,YAAY;;;;;cAElB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAYjC,MAAM,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;qBAwBf,MAAM,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;;cAoBd,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;;;;;iBAEtB,MAAM,CAAC;;;;;eAEP,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO;;;;;aAErB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO;;;;eAE9B,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO;;;;;WAC9B,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC;;;;;;gBAExB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC;;uBAKxB,MAAM;;6BArWW,gBAAgB"}
package/src/types.js CHANGED
@@ -1,6 +1,8 @@
1
- export {};
2
1
  // @jessie-check
3
2
 
3
+ // Ensure this is a module.
4
+ export {};
5
+
4
6
  /// <reference types="ses"/>
5
7
  /**
6
8
  * @import {Passable} from '@endo/pass-style')
@@ -211,8 +213,6 @@ export {};
211
213
  * @property {AssetKind} [assetKind]
212
214
  */
213
215
 
214
- /** @import {ShutdownWithFailure} from '@agoric/swingset-vat') */
215
-
216
216
  /**
217
217
  * @template {AssetKind} [K=AssetKind]
218
218
  * @typedef {object} Mint Holding a Mint carries the right to issue new digital