@agoric/ertp 0.16.3-u18a.0 → 0.16.3-u19.1

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/ertp",
3
- "version": "0.16.3-u18a.0",
3
+ "version": "0.16.3-u19.1",
4
4
  "description": "Electronic Rights Transfer Protocol (ERTP). A smart contract framework for exchanging electronic rights",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -39,21 +39,21 @@
39
39
  },
40
40
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
41
41
  "dependencies": {
42
- "@agoric/notifier": "^0.7.0-u18a.0",
43
- "@agoric/store": "^0.9.3-u18.1",
44
- "@agoric/vat-data": "^0.5.3-u18a.0",
45
- "@agoric/zone": "^0.3.0-u18a.0",
46
- "@endo/errors": "^1.2.8",
47
- "@endo/eventual-send": "^1.2.8",
48
- "@endo/far": "^1.1.9",
49
- "@endo/marshal": "^1.6.2",
50
- "@endo/nat": "^5.0.13",
51
- "@endo/patterns": "^1.4.7",
52
- "@endo/promise-kit": "^1.1.8"
42
+ "@agoric/notifier": "^0.7.0-u19.1",
43
+ "@agoric/store": "^0.9.3-u19.0",
44
+ "@agoric/vat-data": "^0.5.3-u19.1",
45
+ "@agoric/zone": "^0.3.0-u19.1",
46
+ "@endo/errors": "^1.2.9",
47
+ "@endo/eventual-send": "^1.3.0",
48
+ "@endo/far": "^1.1.10",
49
+ "@endo/marshal": "^1.6.3",
50
+ "@endo/nat": "^5.0.14",
51
+ "@endo/patterns": "^1.4.8",
52
+ "@endo/promise-kit": "^1.1.9"
53
53
  },
54
54
  "devDependencies": {
55
- "@agoric/swingset-vat": "^0.33.0-u18a.0",
56
- "@endo/bundle-source": "^3.5.0",
55
+ "@agoric/swingset-vat": "^0.33.0-u19.1",
56
+ "@endo/bundle-source": "^3.5.1",
57
57
  "@fast-check/ava": "^1.1.5",
58
58
  "ava": "^5.3.0",
59
59
  "tsd": "^0.31.1"
@@ -79,5 +79,5 @@
79
79
  "typeCoverage": {
80
80
  "atLeast": 91.77
81
81
  },
82
- "gitHead": "4e4d2b4dedc5a268178712fc6beb89496518480a"
82
+ "gitHead": "a04d2bf43a9753d123954b52c6ba8d35083a3c8f"
83
83
  }
@@ -1,8 +1,8 @@
1
1
  export function upgradeIssuerKit<K extends AssetKind>(issuerBaggage: import("@agoric/vat-data").Baggage, optShutdownWithFailure?: ShutdownWithFailure, recoverySetsOption?: RecoverySetsOption): IssuerKit<K>;
2
2
  export function hasIssuer(baggage: import("@agoric/vat-data").Baggage): boolean;
3
3
  export function makeDurableIssuerKit<K extends AssetKind>(issuerBaggage: import("@agoric/vat-data").Baggage, name: string, assetKind?: K, displayInfo?: AdditionalDisplayInfo, optShutdownWithFailure?: ShutdownWithFailure, { elementShape, recoverySetsOption }?: IssuerOptionsRecord): IssuerKit<K>;
4
- export function prepareIssuerKit<K extends AssetKind>(issuerBaggage: import("@agoric/vat-data").Baggage, name: string, assetKind?: K, displayInfo?: AdditionalDisplayInfo, optShutdownWithFailure?: ShutdownWithFailure, options?: IssuerOptionsRecord): IssuerKit<K>;
5
- export function makeIssuerKit<K extends AssetKind = "nat">(name: string, assetKind?: K, displayInfo?: AdditionalDisplayInfo, optShutdownWithFailure?: ShutdownWithFailure, { elementShape, recoverySetsOption }?: IssuerOptionsRecord): IssuerKit<K, any>;
4
+ export function prepareIssuerKit<O extends IssuerOptionsRecord, K extends AssetKind>(issuerBaggage: import("@agoric/vat-data").Baggage, name: string, assetKind?: K, displayInfo?: AdditionalDisplayInfo, optShutdownWithFailure?: ShutdownWithFailure, options?: O): O["elementShape"] extends TypedPattern<infer T> ? IssuerKit<K, T> : IssuerKit<K>;
5
+ export function makeIssuerKit<K extends AssetKind = "nat", O extends IssuerOptionsRecord = {}>(name: string, assetKind?: K, displayInfo?: AdditionalDisplayInfo, optShutdownWithFailure?: ShutdownWithFailure, { elementShape, recoverySetsOption }?: O): O["elementShape"] extends TypedPattern<infer T> ? IssuerKit<K, T> : IssuerKit<K>;
6
6
  export type IssuerRecord<K extends AssetKind> = {
7
7
  name: string;
8
8
  assetKind: K;
@@ -32,4 +32,5 @@ import type { ShutdownWithFailure } from '@agoric/swingset-vat';
32
32
  import type { RecoverySetsOption } from './types.js';
33
33
  import type { IssuerKit } from './types.js';
34
34
  import type { AdditionalDisplayInfo } from './types.js';
35
+ import type { TypedPattern } from '@agoric/internal';
35
36
  //# sourceMappingURL=issuerKit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issuerKit.d.ts","sourceRoot":"","sources":["issuerKit.js"],"names":[],"mappings":"AA4GO,iCAbkB,CAAC,SAAZ,SAAU,iBACb,OAAO,kBAAkB,EAAE,OAAO,2BAClC,mBAAmB,uBAOnB,kBAAkB,GAEhB,UAAU,CAAC,CAAC,CA4BxB;AAQM,mCAFI,OAAO,kBAAkB,EAAE,OAAO,WAEgB;AAoDtD,qCA1BkB,CAAC,SAAZ,SAAU,iBAYb,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,cACN,CAAC,gBACD,qBAAqB,2BACrB,mBAAmB,yCAOnB,mBAAmB,GACjB,UAAU,CAAC,CAAC,CA2BxB;AAiCM,iCA1BkB,CAAC,SAAZ,SAAU,iBAYb,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,cACN,CAAC,gBACD,qBAAqB,2BACrB,mBAAmB,YAOnB,mBAAmB,GACjB,UAAU,CAAC,CAAC,CAuCxB;AAqCM,8BAzBmB,CAAC,SAAb,SAAU,gBAYb,MAAM,cACN,CAAC,gBACD,qBAAqB,2BACrB,mBAAmB,yCAOnB,mBAAmB,GACjB,UAAU,CAAC,EAAE,GAAG,CAAC,CAiB3B;yBAtUsB,CAAC,SAAZ,SAAU;UAEV,MAAM;eACN,CAAC;iBACD,qBAAqB;kBACrB,OAAO;;;;;;;;;;;;;;;;kCA0IR,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;0BA1JsC,iBAAiB;yCAKrB,sBAAsB;wCAD0B,YAAY;+BAAZ,YAAY;2CAAZ,YAAY"}
1
+ {"version":3,"file":"issuerKit.d.ts","sourceRoot":"","sources":["issuerKit.js"],"names":[],"mappings":"AA+GO,iCAbkB,CAAC,SAAZ,SAAU,iBACb,OAAO,kBAAkB,EAAE,OAAO,2BAClC,mBAAmB,uBAOnB,kBAAkB,GAEhB,UAAU,CAAC,CAAC,CA4BxB;AAQM,mCAFI,OAAO,kBAAkB,EAAE,OAAO,WAEgB;AAoDtD,qCA1BkB,CAAC,SAAZ,SAAU,iBAYb,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,cACN,CAAC,gBACD,qBAAqB,2BACrB,mBAAmB,yCAOnB,mBAAmB,GACjB,UAAU,CAAC,CAAC,CA2BxB;AAoCM,iCA7B4B,CAAC,SAAtB,mBAAoB,EACT,CAAC,SAAZ,SAAU,iBAYb,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,cACN,CAAC,gBACD,qBAAqB,2BACrB,mBAAmB,YAOnB,CAAC,GACC,CAAC,CAAC,cAAc,CAAC,SAAS,aAAa,MAAM,CAAC,CAAC,GACnD,UAAU,CAAC,EAAE,CAAC,CAAC,GACf,UAAU,CAAC,CAAC,CAyCpB;AAqCM,8BAzBmB,CAAC,SAAb,SAAU,UACY,CAAC,SAAvB,mBAAoB,aACvB,MAAM,cAMN,CAAC,gBAGD,qBAAqB,2BAErB,mBAAmB,yCAOnB,CAAC,GACC,CAAC,CAAC,cAAc,CAAC,SAAS,aAAa,MAAM,CAAC,CAAC,GACnD,UAAU,CAAC,EAAE,CAAC,CAAC,GACf,UAAU,CAAC,CAAC,CAmBlB;yBA7UsB,CAAC,SAAZ,SAAU;UAEV,MAAM;eACN,CAAC;iBACD,qBAAqB;kBACrB,OAAO;;;;;;;;;;;;;;;;kCA0IR,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;0BA7JsC,iBAAiB;yCAMtB,sBAAsB;wCAD0B,YAAY;+BAAZ,YAAY;2CAAZ,YAAY;kCAEnE,kBAAkB"}
package/src/issuerKit.js CHANGED
@@ -9,8 +9,11 @@ import { AssetKind, assertAssetKind } from './amountMath.js';
9
9
  import { coerceDisplayInfo } from './displayInfo.js';
10
10
  import { preparePaymentLedger } from './paymentLedger.js';
11
11
 
12
- /** @import {AdditionalDisplayInfo, RecoverySetsOption, IssuerKit, PaymentLedger} from './types.js' */
13
- /** @import {ShutdownWithFailure} from '@agoric/swingset-vat' */
12
+ /**
13
+ * @import {AdditionalDisplayInfo, RecoverySetsOption, IssuerKit, PaymentLedger} from './types.js';
14
+ * @import {ShutdownWithFailure} from '@agoric/swingset-vat';
15
+ * @import {TypedPattern} from '@agoric/internal';
16
+ */
14
17
 
15
18
  /**
16
19
  * @template {AssetKind} K
@@ -224,6 +227,7 @@ harden(makeDurableIssuerKit);
224
227
  * Used to either revive a predecessor issuerKit, or to make a new durable one
225
228
  * if it is absent, and to place it in baggage for the next successor.
226
229
  *
230
+ * @template {IssuerOptionsRecord} O
227
231
  * @template {AssetKind} K The name becomes part of the brand in asset
228
232
  * descriptions. The name is useful for debugging and double-checking
229
233
  * assumptions, but should not be trusted wrt any external namespace. For
@@ -247,8 +251,10 @@ harden(makeDurableIssuerKit);
247
251
  * unit of computation, like the enclosing vat, can be shutdown before
248
252
  * anything else is corrupted by that corrupted state. See
249
253
  * https://github.com/Agoric/agoric-sdk/issues/3434
250
- * @param {IssuerOptionsRecord} [options]
251
- * @returns {IssuerKit<K>}
254
+ * @param {O} [options]
255
+ * @returns {O['elementShape'] extends TypedPattern<infer T>
256
+ * ? IssuerKit<K, T>
257
+ * : IssuerKit<K>}
252
258
  */
253
259
  export const prepareIssuerKit = (
254
260
  issuerBaggage,
@@ -257,6 +263,7 @@ export const prepareIssuerKit = (
257
263
  assetKind = AssetKind.NAT,
258
264
  displayInfo = harden({}),
259
265
  optShutdownWithFailure = undefined,
266
+ // @ts-expect-error could have a different subtype of IssuerOptionsRecord
260
267
  options = {},
261
268
  ) => {
262
269
  if (hasIssuer(issuerBaggage)) {
@@ -285,6 +292,7 @@ export const prepareIssuerKit = (
285
292
  optShutdownWithFailure,
286
293
  options,
287
294
  );
295
+ // @ts-expect-error cast to the type parameter
288
296
  return issuerKit;
289
297
  }
290
298
  };
@@ -299,21 +307,19 @@ harden(prepareIssuerKit);
299
307
  * Currently used for testing only. Should probably continue to be used for
300
308
  * testing only.
301
309
  *
302
- * @template {AssetKind} [K='nat'] The name becomes part of the brand in asset
310
+ * @template {AssetKind} [K='nat']
311
+ * @template {IssuerOptionsRecord} [O={}]
312
+ * @param {string} name The name becomes part of the brand in asset
303
313
  * descriptions. The name is useful for debugging and double-checking
304
314
  * assumptions, but should not be trusted wrt any external namespace. For
305
315
  * example, anyone could create a new issuer kit with name 'BTC', but it is
306
316
  * not bitcoin or even related. It is only the name according to that issuer
307
317
  * and brand.
308
- *
309
- * The assetKind will be used to import a specific mathHelpers from the
310
- * mathHelpers library. For example, natMathHelpers, the default, is used for
311
- * basic fungible tokens.
312
- *
313
- * `displayInfo` gives information to the UI on how to display the amount.
314
- * @param {string} name
315
- * @param {K} [assetKind]
316
- * @param {AdditionalDisplayInfo} [displayInfo]
318
+ * @param {K} [assetKind] The assetKind will be used to import a specific
319
+ * mathHelpers from the mathHelpers library. For example, natMathHelpers, the
320
+ * default, is used for basic fungible tokens.
321
+ * @param {AdditionalDisplayInfo} [displayInfo] `displayInfo` gives information
322
+ * to the UI on how to display the amount.
317
323
  * @param {ShutdownWithFailure} [optShutdownWithFailure] If this issuer fails in
318
324
  * the middle of an atomic action (which btw should never happen), it
319
325
  * potentially leaves its ledger in a corrupted state. If this function was
@@ -321,8 +327,10 @@ harden(prepareIssuerKit);
321
327
  * unit of computation, like the enclosing vat, can be shutdown before
322
328
  * anything else is corrupted by that corrupted state. See
323
329
  * https://github.com/Agoric/agoric-sdk/issues/3434
324
- * @param {IssuerOptionsRecord} [options]
325
- * @returns {IssuerKit<K, any>}
330
+ * @param {O} [options]
331
+ * @returns {O['elementShape'] extends TypedPattern<infer T>
332
+ * ? IssuerKit<K, T>
333
+ * : IssuerKit<K>}
326
334
  */
327
335
  export const makeIssuerKit = (
328
336
  name,
@@ -330,8 +338,10 @@ export const makeIssuerKit = (
330
338
  assetKind = AssetKind.NAT,
331
339
  displayInfo = harden({}),
332
340
  optShutdownWithFailure = undefined,
341
+ // @ts-expect-error O could be instantiated with a different subtype
333
342
  { elementShape = undefined, recoverySetsOption = undefined } = {},
334
343
  ) =>
344
+ // @ts-expect-error cast
335
345
  makeDurableIssuerKit(
336
346
  makeScalarBigMapStore('dropped issuer kit', { durable: true }),
337
347
  name,
@@ -1,10 +1,11 @@
1
- export function claim<P extends Payment>(recoveryPurse: ERef<Purse>, srcPaymentP: ERef<P>, optAmountShape?: Pattern): Promise<P>;
2
- export function combine<K extends AssetKind>(recoveryPurse: ERef<Purse<K>>, srcPaymentsPs: ERef<Payment<K>>[], optTotalAmount?: Pattern): Promise<Payment<K>>;
1
+ export function claim<K extends AssetKind, T extends Key>(recoveryPurse: ERef<Purse<K, T>>, srcPaymentP: ERef<Payment<K, T>>, optAmountShape?: Pattern): Promise<Payment<K, T>>;
2
+ export function combine<K extends AssetKind, T extends Key>(recoveryPurse: ERef<Purse<K, T>>, srcPaymentsPs: ERef<Payment<K, T>>[], optTotalAmount?: Pattern): Promise<Payment<K, T>>;
3
3
  export function split<K extends AssetKind>(recoveryPurse: ERef<Purse<K>>, srcPaymentP: ERef<Payment<K>>, paymentAmountA: Amount<K>): Promise<Payment<K>[]>;
4
4
  export function splitMany<K extends AssetKind>(recoveryPurse: ERef<Purse<K>>, srcPaymentP: ERef<Payment<K>>, amounts: Amount<K>[]): Promise<Payment[]>;
5
- import type { Payment } from './types.js';
5
+ import type { AssetKind } from './types.js';
6
+ import type { Key } from '@endo/patterns';
6
7
  import type { Purse } from './types.js';
7
8
  import type { ERef } from '@endo/far';
8
- import type { AssetKind } from './types.js';
9
+ import type { Payment } from './types.js';
9
10
  import type { Amount } from './types.js';
10
11
  //# sourceMappingURL=legacy-payment-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-payment-helpers.d.ts","sourceRoot":"","sources":["legacy-payment-helpers.js"],"names":[],"mappings":"AAiCO,sBANgB,CAAC,SAAX,OAAS,iBACX,KAAK,KAAK,CAAC,eACX,KAAK,CAAC,CAAC,mBACP,OAAO,GACL,OAAO,CAAC,CAAC,CAAC,CAYtB;AAiBM,wBANkB,CAAC,SAAb,SAAW,iBACb,KAAK,MAAM,CAAC,CAAC,CAAC,iBACd,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAClB,OAAO,GACL,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CA0B/B;AAgBM,sBANkB,CAAC,SAAb,SAAW,iBACb,KAAK,MAAM,CAAC,CAAC,CAAC,eACd,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAChB,OAAO,CAAC,CAAC,GACP,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAYjC;AAgBM,0BANkB,CAAC,SAAb,SAAW,iBACb,KAAK,MAAM,CAAC,CAAC,CAAC,eACd,KAAK,QAAQ,CAAC,CAAC,CAAC,WAChB,OAAO,CAAC,CAAC,EAAE,GACT,OAAO,CAAC,OAAO,EAAE,CAAC,CAoB9B;6BAvImD,YAAY;2BAAZ,YAAY;0BADzC,WAAW;+BACkB,YAAY;4BAAZ,YAAY"}
1
+ {"version":3,"file":"legacy-payment-helpers.d.ts","sourceRoot":"","sources":["legacy-payment-helpers.js"],"names":[],"mappings":"AAmCO,sBAPkB,CAAC,SAAb,SAAW,EACL,CAAC,SAAP,GAAK,iBACP,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,eACjB,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,mBACnB,OAAO,GACL,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAWlC;AAkBM,wBAPkB,CAAC,SAAb,SAAW,EACL,CAAC,SAAP,GAAK,iBACP,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,iBACjB,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBACrB,OAAO,GACL,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CA8BlC;AAgBM,sBANkB,CAAC,SAAb,SAAW,iBACb,KAAK,MAAM,CAAC,CAAC,CAAC,eACd,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAChB,OAAO,CAAC,CAAC,GACP,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAYjC;AAgBM,0BANkB,CAAC,SAAb,SAAW,iBACb,KAAK,MAAM,CAAC,CAAC,CAAC,eACd,KAAK,QAAQ,CAAC,CAAC,CAAC,WAChB,OAAO,CAAC,CAAC,EAAE,GACT,OAAO,CAAC,OAAO,EAAE,CAAC,CAoB9B;+BA5ImD,YAAY;yBAD1C,gBAAgB;2BACc,YAAY;0BAFzC,WAAW;6BAEkB,YAAY;4BAAZ,YAAY"}
@@ -7,6 +7,7 @@ import { AmountMath } from './amountMath.js';
7
7
 
8
8
  /**
9
9
  * @import {ERef} from '@endo/far';
10
+ * @import {Key} from '@endo/patterns';
10
11
  * @import {Amount, AssetKind, Payment, Purse} from './types.js';
11
12
  */
12
13
 
@@ -25,11 +26,12 @@ import { AmountMath } from './amountMath.js';
25
26
  */
26
27
 
27
28
  /**
28
- * @template {Payment} P
29
- * @param {ERef<Purse>} recoveryPurse
30
- * @param {ERef<P>} srcPaymentP
29
+ * @template {AssetKind} K
30
+ * @template {Key} T type of values in set-like kind
31
+ * @param {ERef<Purse<K, T>>} recoveryPurse
32
+ * @param {ERef<Payment<K, T>>} srcPaymentP
31
33
  * @param {Pattern} [optAmountShape]
32
- * @returns {Promise<P>}
34
+ * @returns {Promise<Payment<K, T>>}
33
35
  */
34
36
  export const claim = async (
35
37
  recoveryPurse,
@@ -37,7 +39,6 @@ export const claim = async (
37
39
  optAmountShape = undefined,
38
40
  ) => {
39
41
  const srcPayment = await srcPaymentP;
40
- // @ts-expect-error XXX could be instantiated with a different subtype
41
42
  return E.when(E(recoveryPurse).deposit(srcPayment, optAmountShape), amount =>
42
43
  E(recoveryPurse).withdraw(amount),
43
44
  );
@@ -53,10 +54,11 @@ harden(claim);
53
54
  * origin.
54
55
  *
55
56
  * @template {AssetKind} K
56
- * @param {ERef<Purse<K>>} recoveryPurse
57
- * @param {ERef<Payment<K>>[]} srcPaymentsPs
57
+ * @template {Key} T type of values in set-like kind
58
+ * @param {ERef<Purse<K, T>>} recoveryPurse
59
+ * @param {ERef<Payment<K, T>>[]} srcPaymentsPs
58
60
  * @param {Pattern} [optTotalAmount]
59
- * @returns {Promise<Payment<K>>}
61
+ * @returns {Promise<Payment<K, T>>}
60
62
  */
61
63
  export const combine = async (
62
64
  recoveryPurse,
@@ -69,7 +71,11 @@ export const combine = async (
69
71
  E(brandP).getDisplayInfo(),
70
72
  ...srcPaymentsPs,
71
73
  ]);
72
- const emptyAmount = AmountMath.makeEmpty(brand, displayInfo.assetKind);
74
+
75
+ // XXX Brand lacks M
76
+ const emptyAmount = /** @type {Amount<K, T>} */ (
77
+ AmountMath.makeEmpty(brand, displayInfo.assetKind)
78
+ );
73
79
  const amountPs = srcPayments.map(srcPayment =>
74
80
  E(recoveryPurse).deposit(srcPayment),
75
81
  );
package/src/payment.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export function preparePaymentKind<K extends AssetKind>(issuerZone: import("@agoric/zone").Zone, name: string, brand: Brand<K>, PaymentI: import("@endo/patterns").InterfaceGuard<any>): () => Payment<K>;
1
+ export function preparePaymentKind<K extends AssetKind>(issuerZone: import("@agoric/zone").Zone, name: string, brand: Brand<K>, PaymentI: import("@endo/patterns").InterfaceGuard<any>): () => Payment<K, any>;
2
2
  import type { AssetKind } from './types.js';
3
3
  import type { Brand } from './types.js';
4
4
  import type { Payment } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["payment.js"],"names":[],"mappings":"AAeO,mCAPkB,CAAC,SAAb,SAAW,cACb,OAAO,cAAc,EAAE,IAAI,QAC3B,MAAM,SACN,MAAM,CAAC,CAAC,YACR,OAAO,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,GAC1C,MAAM,QAAQ,CAAC,CAAC,CAc5B;+BAvB4C,YAAY;2BAAZ,YAAY;6BAAZ,YAAY"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["payment.js"],"names":[],"mappings":"AAeO,mCAPkB,CAAC,SAAb,SAAW,cACb,OAAO,cAAc,EAAE,IAAI,QAC3B,MAAM,SACN,MAAM,CAAC,CAAC,YACR,OAAO,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,GAC1C,MAAM,QAAQ,CAAC,EAAE,GAAG,CAAC,CAejC;+BAxB4C,YAAY;2BAAZ,YAAY;6BAAZ,YAAY"}
package/src/payment.js CHANGED
@@ -11,7 +11,7 @@ import { initEmpty } from '@agoric/store';
11
11
  * @param {string} name
12
12
  * @param {Brand<K>} brand
13
13
  * @param {import('@endo/patterns').InterfaceGuard<any>} PaymentI
14
- * @returns {() => Payment<K>}
14
+ * @returns {() => Payment<K, any>}
15
15
  */
16
16
  export const preparePaymentKind = (issuerZone, name, brand, PaymentI) => {
17
17
  const makePayment = issuerZone.exoClass(
@@ -24,6 +24,7 @@ export const preparePaymentKind = (issuerZone, name, brand, PaymentI) => {
24
24
  },
25
25
  },
26
26
  );
27
+ // @ts-expect-error [tag] for tagged type not defined in runtime
27
28
  return makePayment;
28
29
  };
29
30
  harden(preparePaymentKind);
package/src/types.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { LatestTopic } from '@agoric/notifier';
2
2
  import type { ERef } from '@endo/far';
3
3
  import type { RemotableObject } from '@endo/pass-style';
4
4
  import type { CopyBag, CopySet, Key, Pattern } from '@endo/patterns';
5
+ import type { TypeTag } from '@agoric/internal/src/tagged.js';
5
6
  import type { AssetKind } from './amountMath.js';
6
7
  export type { AssetKind } from './amountMath.js';
7
8
  export type NatAmount = {
@@ -346,8 +347,7 @@ export type PurseMethods<K extends AssetKind = AssetKind, M extends Key = Key> =
346
347
  * `issuer.makeEmptyPurse()` to create a purse, then
347
348
  * `purse.deposit(payment)`.
348
349
  */
349
- export type Payment<K extends AssetKind = AssetKind, M extends Key = Key> = RemotableObject & PaymentMethods<K>;
350
- export type PaymentMethods<K extends AssetKind = AssetKind> = {
350
+ export type Payment<K extends AssetKind = AssetKind, M extends Key = Key> = RemotableObject & TypeTag<{
351
351
  /**
352
352
  * Get the allegedBrand, indicating
353
353
  * the type of digital asset this payment purports to be, and which issuer to
@@ -355,7 +355,7 @@ export type PaymentMethods<K extends AssetKind = AssetKind> = {
355
355
  * be treated with suspicion and verified elsewhere.
356
356
  */
357
357
  getAllegedBrand: () => Brand<K>;
358
- };
358
+ }, 'Set-like value type', M>;
359
359
  /**
360
360
  * All of the difference in how digital asset
361
361
  * amount are manipulated can be reduced to the behavior of the math on
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
package/src/types.ts CHANGED
@@ -2,6 +2,7 @@ import type { LatestTopic } from '@agoric/notifier';
2
2
  import type { ERef } from '@endo/far';
3
3
  import type { RemotableObject } from '@endo/pass-style';
4
4
  import type { CopyBag, CopySet, Key, Pattern } from '@endo/patterns';
5
+ import type { TypeTag } from '@agoric/internal/src/tagged.js';
5
6
  import type { AssetKind } from './amountMath.js';
6
7
 
7
8
  export type { AssetKind } from './amountMath.js';
@@ -405,16 +406,21 @@ export type PurseMethods<
405
406
  export type Payment<
406
407
  K extends AssetKind = AssetKind,
407
408
  M extends Key = Key,
408
- > = RemotableObject & PaymentMethods<K>;
409
- export type PaymentMethods<K extends AssetKind = AssetKind> = {
410
- /**
411
- * Get the allegedBrand, indicating
412
- * the type of digital asset this payment purports to be, and which issuer to
413
- * use. Because payments are not trusted, any method calls on payments should
414
- * be treated with suspicion and verified elsewhere.
415
- */
416
- getAllegedBrand: () => Brand<K>;
417
- };
409
+ > = RemotableObject &
410
+ TypeTag<
411
+ {
412
+ /**
413
+ * Get the allegedBrand, indicating
414
+ * the type of digital asset this payment purports to be, and which issuer to
415
+ * use. Because payments are not trusted, any method calls on payments should
416
+ * be treated with suspicion and verified elsewhere.
417
+ */
418
+ getAllegedBrand: () => Brand<K>;
419
+ },
420
+ 'Set-like value type',
421
+ M
422
+ >;
423
+
418
424
  /**
419
425
  * All of the difference in how digital asset
420
426
  * amount are manipulated can be reduced to the behavior of the math on