@agoric/vats 0.15.2-dev-e2e36cc.0 → 0.15.2-dev-e6cde48.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/vats",
3
- "version": "0.15.2-dev-e2e36cc.0+e2e36cc",
3
+ "version": "0.15.2-dev-e6cde48.0+e6cde48",
4
4
  "description": "Agoric's Vat library",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -22,19 +22,19 @@
22
22
  "author": "Agoric",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@agoric/assert": "0.6.1-dev-e2e36cc.0+e2e36cc",
26
- "@agoric/cosmic-proto": "0.4.1-dev-e2e36cc.0+e2e36cc",
27
- "@agoric/ertp": "0.16.3-dev-e2e36cc.0+e2e36cc",
28
- "@agoric/governance": "0.10.4-dev-e2e36cc.0+e2e36cc",
29
- "@agoric/internal": "0.3.3-dev-e2e36cc.0+e2e36cc",
30
- "@agoric/network": "0.1.1-dev-e2e36cc.0+e2e36cc",
31
- "@agoric/notifier": "0.6.3-dev-e2e36cc.0+e2e36cc",
32
- "@agoric/store": "0.9.3-dev-e2e36cc.0+e2e36cc",
33
- "@agoric/swingset-vat": "0.32.3-dev-e2e36cc.0+e2e36cc",
34
- "@agoric/time": "0.3.3-dev-e2e36cc.0+e2e36cc",
35
- "@agoric/vat-data": "0.5.3-dev-e2e36cc.0+e2e36cc",
36
- "@agoric/zoe": "0.26.3-dev-e2e36cc.0+e2e36cc",
37
- "@agoric/zone": "0.2.3-dev-e2e36cc.0+e2e36cc",
25
+ "@agoric/assert": "0.6.1-dev-e6cde48.0+e6cde48",
26
+ "@agoric/cosmic-proto": "0.4.1-dev-e6cde48.0+e6cde48",
27
+ "@agoric/ertp": "0.16.3-dev-e6cde48.0+e6cde48",
28
+ "@agoric/governance": "0.10.4-dev-e6cde48.0+e6cde48",
29
+ "@agoric/internal": "0.3.3-dev-e6cde48.0+e6cde48",
30
+ "@agoric/network": "0.1.1-dev-e6cde48.0+e6cde48",
31
+ "@agoric/notifier": "0.6.3-dev-e6cde48.0+e6cde48",
32
+ "@agoric/store": "0.9.3-dev-e6cde48.0+e6cde48",
33
+ "@agoric/swingset-vat": "0.32.3-dev-e6cde48.0+e6cde48",
34
+ "@agoric/time": "0.3.3-dev-e6cde48.0+e6cde48",
35
+ "@agoric/vat-data": "0.5.3-dev-e6cde48.0+e6cde48",
36
+ "@agoric/zoe": "0.26.3-dev-e6cde48.0+e6cde48",
37
+ "@agoric/zone": "0.2.3-dev-e6cde48.0+e6cde48",
38
38
  "@endo/far": "^1.1.1",
39
39
  "@endo/import-bundle": "^1.1.1",
40
40
  "@endo/marshal": "^1.4.1",
@@ -45,7 +45,7 @@
45
45
  "jessie.js": "^0.3.4"
46
46
  },
47
47
  "devDependencies": {
48
- "@agoric/swingset-liveslots": "0.10.3-dev-e2e36cc.0+e2e36cc",
48
+ "@agoric/swingset-liveslots": "0.10.3-dev-e6cde48.0+e6cde48",
49
49
  "@endo/bundle-source": "^3.2.2",
50
50
  "@endo/init": "^1.1.1",
51
51
  "ava": "^5.3.0",
@@ -78,5 +78,5 @@
78
78
  "typeCoverage": {
79
79
  "atLeast": 91.5
80
80
  },
81
- "gitHead": "e2e36cc1e1c015fc517a179019184fdc81f3e809"
81
+ "gitHead": "e6cde482e02072514bda74657b7e1a6928b1e8ec"
82
82
  }
package/src/ibc.d.ts CHANGED
@@ -10,11 +10,11 @@ export function prepareIBCConnectionHandler(zone: Zone): (args_0: {
10
10
  order: 'ORDERED' | 'UNORDERED';
11
11
  }) => import("@endo/exo").Guarded<{
12
12
  /** @type {Required<ConnectionHandler>['onOpen']} */
13
- onOpen(connection: globalThis.Remote<Connection>, localAddr: string, remoteAddr: string, c: globalThis.Remote<ConnectionHandler>): PromiseVow<void>;
13
+ onOpen(connection: Remote<Connection>, localAddr: string, remoteAddr: string, c: Remote<ConnectionHandler>): PromiseVow<void>;
14
14
  /** @type {Required<ConnectionHandler>['onReceive']} */
15
- onReceive(connection: globalThis.Remote<Connection>, ack: string, c: globalThis.Remote<ConnectionHandler>, opts?: Record<string, any> | undefined): PromiseVow<string>;
15
+ onReceive(connection: Remote<Connection>, ack: string, c: Remote<ConnectionHandler>, opts?: Record<string, any> | undefined): PromiseVow<string>;
16
16
  /** @type {Required<ConnectionHandler>['onClose']} */
17
- onClose(connection: globalThis.Remote<Connection>, reason?: any, c?: globalThis.Remote<ConnectionHandler> | undefined): PromiseVow<void>;
17
+ onClose(connection: Remote<Connection>, reason?: any, c?: Remote<ConnectionHandler> | undefined): PromiseVow<void>;
18
18
  }>;
19
19
  export function prepareIBCProtocol(zone: Zone, powers: {
20
20
  when: <T, TResult1 = import("@agoric/vow").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
@@ -29,21 +29,21 @@ export function prepareIBCProtocol(zone: Zone, powers: {
29
29
  } | {
30
30
  protocolHandler: import("@endo/exo").Guarded<{
31
31
  /** @type {Required<ProtocolHandler>['onCreate']} */
32
- onCreate(protocol: globalThis.Remote<ProtocolImpl>, p: globalThis.Remote<ProtocolHandler>): PromiseVow<void>;
32
+ onCreate(protocol: Remote<ProtocolImpl>, p: Remote<ProtocolHandler>): PromiseVow<void>;
33
33
  /** @type {Required<ProtocolHandler>['onInstantiate']} */
34
- onInstantiate(port: globalThis.Remote<Port>, localAddr: string, remote: string, p: globalThis.Remote<ProtocolHandler>): PromiseVow<string>;
34
+ onInstantiate(port: Remote<Port>, localAddr: string, remote: string, p: Remote<ProtocolHandler>): PromiseVow<string>;
35
35
  /** @type {Required<ProtocolHandler>['generatePortID']} */
36
- generatePortID(localAddr: string, p: globalThis.Remote<ProtocolHandler>): PromiseVow<string>;
36
+ generatePortID(localAddr: string, p: Remote<ProtocolHandler>): PromiseVow<string>;
37
37
  /** @type {Required<ProtocolHandler>['onBind']} */
38
- onBind(port: globalThis.Remote<Port>, localAddr: string, p: globalThis.Remote<ProtocolHandler>): PromiseVow<void>;
38
+ onBind(port: Remote<Port>, localAddr: string, p: Remote<ProtocolHandler>): PromiseVow<void>;
39
39
  /** @type {Required<ProtocolHandler>['onConnect']} */
40
- onConnect(port: globalThis.Remote<Port>, localAddr: string, remote: string, c: globalThis.Remote<ConnectionHandler>, p: globalThis.Remote<ProtocolHandler>): PromiseVow<AttemptDescription>;
40
+ onConnect(port: Remote<Port>, localAddr: string, remote: string, c: Remote<ConnectionHandler>, p: Remote<ProtocolHandler>): PromiseVow<AttemptDescription>;
41
41
  /** @type {Required<ProtocolHandler>['onListen']} */
42
- onListen(port: globalThis.Remote<Port>, localAddr: string, listenHandler: globalThis.Remote<ListenHandler>, p: globalThis.Remote<ProtocolHandler>): PromiseVow<void>;
42
+ onListen(port: Remote<Port>, localAddr: string, listenHandler: Remote<ListenHandler>, p: Remote<ProtocolHandler>): PromiseVow<void>;
43
43
  /** @type {Required<ProtocolHandler>['onListenRemove']} */
44
- onListenRemove(port: globalThis.Remote<Port>, localAddr: string, listenHandler: globalThis.Remote<ListenHandler>, p: globalThis.Remote<ProtocolHandler>): PromiseVow<void>;
44
+ onListenRemove(port: Remote<Port>, localAddr: string, listenHandler: Remote<ListenHandler>, p: Remote<ProtocolHandler>): PromiseVow<void>;
45
45
  /** @type {Required<ProtocolHandler>['onRevoke']} */
46
- onRevoke(port: globalThis.Remote<Port>, localAddr: string, p: globalThis.Remote<ProtocolHandler>): PromiseVow<void>;
46
+ onRevoke(port: Remote<Port>, localAddr: string, p: Remote<ProtocolHandler>): PromiseVow<void>;
47
47
  }>;
48
48
  bridgeHandler: import("@endo/exo").Guarded<{
49
49
  /** @param {IBCEvent<IBCBridgeEvent>} obj */
@@ -69,6 +69,7 @@ export type Outbound = Omit<ConnectingInfo, "counterparty" | "channelID" | "coun
69
69
  };
70
70
  };
71
71
  import type { Zone } from '@agoric/base-zone';
72
+ import type { Remote } from '@agoric/vow';
72
73
  import type { VowKit } from '@agoric/vow';
73
74
  import type { BridgeHandler } from './types.js';
74
75
  import type { IBCBridgeEvent } from './types.js';
package/src/ibc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AA6CO;mBAciB,GAAG;uBACC,SACvB,MAAY,EACZ,OAAa,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CACzC;wBACmB,SACxB,MAAY,EACZ,SAAe,MAAM,EAAE,OAAO,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACtD;;;YAIO,MAAM;;aAEL,MAAM;WACR,SAAS,GAAG,WAAW;;IAuBjC,oDAAoD;;IAepD,uDAAuD;;IAoBvD,qDAAqD;;GA0B1D;AAMM;;;;;;cAOS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,CAAC;;qBAOpC,eAAe;;;;QAoDjC,oDAAoD;;QAKpD,yDAAyD;;QAKzD,0DAA0D;;QAK1D,kDAAkD;;QAalD,qDAAqD;;QAiDrD,oDAAoD;;QAIpD,0DAA0D;;QAI1D,oDAAoD;;;;QAgBpD,4CAA4C;;;EAudnD;AAIM;IAOD;;;OAGG;qBAFQ,MAAM,OACN,GAAG;GAYnB;;;;;;eArxBe,QAAQ;gBACP,UAAU;kBACR;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;;0BAbf,mBAAmB;4BACc,aAAa;mCAFqI,YAAY;oCAAZ,YAAY;8BAAZ,YAAY;yCAAZ,YAAY;iCAE9J,aAAa;oCAFqI,YAAY"}
1
+ {"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AA6CO;mBAciB,GAAG;uBACC,SACvB,MAAY,EACZ,OAAa,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CACzC;wBACmB,SACxB,MAAY,EACZ,SAAe,MAAM,EAAE,OAAO,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACtD;;;YAIO,MAAM;;aAEL,MAAM;WACR,SAAS,GAAG,WAAW;;IAuBjC,oDAAoD;;IAepD,uDAAuD;;IAoBvD,qDAAqD;;GA0B1D;AAMM;;;;;;cAOS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,CAAC;;qBAOpC,eAAe;;;;QAoDjC,oDAAoD;;QAKpD,yDAAyD;;QAKzD,0DAA0D;;QAK1D,kDAAkD;;QAalD,qDAAqD;;QAiDrD,oDAAoD;;QAIpD,0DAA0D;;QAI1D,oDAAoD;;;;QAgBpD,4CAA4C;;;EAudnD;AAIM;IAOD;;;OAGG;qBAFQ,MAAM,OACN,GAAG;GAYnB;;;;;;eArxBe,QAAQ;gBACP,UAAU;kBACR;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;;0BAbf,mBAAmB;4BACc,aAAa;4BAAb,aAAa;mCAFqI,YAAY;oCAAZ,YAAY;8BAAZ,YAAY;yCAAZ,YAAY;iCAE9J,aAAa;oCAFqI,YAAY"}
@@ -0,0 +1,33 @@
1
+ export function upgradeZcfOnly({ consume: { vatStore } }: BootstrapPowers, options: {
2
+ options: {
3
+ zcfRef: VatSourceRef;
4
+ };
5
+ }): Promise<void>;
6
+ export function main({ consume: { vatStore } }: BootstrapPowers, options: {
7
+ options: {
8
+ zcfRef: VatSourceRef;
9
+ };
10
+ }): Promise<void>;
11
+ export namespace permit {
12
+ namespace consume {
13
+ let vatStore: boolean;
14
+ }
15
+ }
16
+ export const manifest: {
17
+ [x: string]: {
18
+ consume: {
19
+ vatStore: boolean;
20
+ };
21
+ };
22
+ };
23
+ export function getManifestForUpgradingZcf(_powers: any, options: any): {
24
+ manifest: {
25
+ [x: string]: {
26
+ consume: {
27
+ vatStore: boolean;
28
+ };
29
+ };
30
+ };
31
+ options: any;
32
+ };
33
+ //# sourceMappingURL=zcf-only-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcf-only-proposal.d.ts","sourceRoot":"","sources":["zcf-only-proposal.js"],"names":[],"mappings":"AAQO,0DAJI,eAAe;IAEmB,OAAO,EAAzC;QAAE,MAAM,EAAE,YAAY,CAAA;KAAE;kBAUlC;AARM,gDAJI,eAAe;IAEmB,OAAO,EAAzC;QAAE,MAAM,EAAE,YAAY,CAAA;KAAE;kBAUlC;;;;;;AAYD;;;;;;EAEE;AAEK;;;;;;;;;EAGL"}
@@ -0,0 +1,36 @@
1
+ // @ts-check
2
+ import { E } from '@endo/far';
3
+
4
+ /**
5
+ * @param {BootstrapPowers} powers
6
+ * @param {object} options
7
+ * @param {{ zcfRef: VatSourceRef }} options.options
8
+ */
9
+ export const upgradeZcfOnly = async ({ consume: { vatStore } }, options) => {
10
+ const { zcfRef } = options.options;
11
+
12
+ const { root: zoeRoot } = await E(vatStore).get('zoe');
13
+
14
+ const zoeConfigFacet = await E(zoeRoot).getZoeConfigFacet();
15
+ await E(zoeConfigFacet).updateZcfBundleId(zcfRef.bundleID);
16
+ console.log(`ZCF BUNDLE ID: `, zcfRef.bundleID);
17
+ };
18
+ harden(upgradeZcfOnly);
19
+
20
+ // main and permit are for use with rollup-plugin-core-eval.js
21
+ export const main = upgradeZcfOnly;
22
+
23
+ export const permit = {
24
+ consume: {
25
+ vatStore: true,
26
+ },
27
+ };
28
+
29
+ export const manifest = {
30
+ [upgradeZcfOnly.name]: permit,
31
+ };
32
+
33
+ export const getManifestForUpgradingZcf = (_powers, options) => ({
34
+ manifest,
35
+ options,
36
+ });
@@ -38,8 +38,117 @@ export function prepareVirtualPurse(zone: import('@agoric/zone').Zone): (vpc: ER
38
38
  brand: Brand;
39
39
  mint?: ERef<globalThis.Mint> | undefined;
40
40
  escrowPurse?: ERef<globalThis.Purse> | undefined;
41
- }) => Promise<Awaited<EOnly<Purse>>>;
42
- export type EOnly<T> = import('@endo/far').EOnly<T>;
41
+ }) => Promise<{
42
+ /**
43
+ * Get the alleged Brand for this
44
+ * Purse
45
+ */
46
+ getAllegedBrand: () => ERef<{
47
+ /**
48
+ * Should be used with `issuer.getBrand` to ensure an issuer and brand match.
49
+ */
50
+ isMyIssuer: (allegedIssuer: ERef<globalThis.Issuer>) => ERef<boolean>;
51
+ getAllegedName: () => ERef<string>;
52
+ /**
53
+ * Give information to UI on how
54
+ * to display the amount.
55
+ */
56
+ getDisplayInfo: () => ERef<globalThis.DisplayInfo<globalThis.AssetKind>>;
57
+ getAmountShape: () => any;
58
+ }>;
59
+ /**
60
+ * Get the amount contained in this
61
+ * purse.
62
+ */
63
+ getCurrentAmount: () => ERef<globalThis.Amount<globalThis.AssetKind>>;
64
+ /**
65
+ * Get a lossy
66
+ * notifier for changes to this purse's balance.
67
+ */
68
+ getCurrentAmountNotifier: () => ERef<{
69
+ /**
70
+ * Returns a promise for an update record as of an update count.
71
+ * If the `updateCount` argument is omitted or differs from the current update count,
72
+ * the promise promptly resolves to the current record.
73
+ * Otherwise, after the next state change, the promise resolves to the resulting record.
74
+ * This is an attenuated form of `subscribeAfter` whose return value stands alone and
75
+ * does not allow consumers to pin a chain of historical PublicationRecords.
76
+ * Used to make lossy ("latest") iterators.
77
+ * NOTE: Use of `number` as an `updateCount` is deprecated.
78
+ */
79
+ getUpdateSince: (updateCount?: number | bigint | undefined) => ERef<UpdateRecord<globalThis.Amount<globalThis.AssetKind>>>;
80
+ }>;
81
+ /**
82
+ * Deposit all the contents of payment into
83
+ * this purse, returning the amount. If the optional argument `optAmount` does
84
+ * not equal the amount of digital assets in the payment, throw an error.
85
+ *
86
+ * If payment is a promise, throw an error.
87
+ */
88
+ deposit: (args_0: globalThis.Payment<globalThis.AssetKind>, args_1?: any) => ERef<globalThis.Amount<globalThis.AssetKind>>;
89
+ /**
90
+ * Return an object whose
91
+ * `receive` method deposits to the current Purse.
92
+ */
93
+ getDepositFacet: () => ERef<{
94
+ /**
95
+ * Deposit all the contents of payment
96
+ * into the purse that made this facet, returning the amount. If the optional
97
+ * argument `optAmount` does not equal the amount of digital assets in the
98
+ * payment, throw an error.
99
+ *
100
+ * If payment is a promise, throw an error.
101
+ */
102
+ receive: (args_0: globalThis.Payment, args_1?: any) => ERef<globalThis.Amount>;
103
+ }>;
104
+ /**
105
+ * Withdraw amount from
106
+ * this purse into a new Payment.
107
+ */
108
+ withdraw: (amount: globalThis.Amount<globalThis.AssetKind>) => ERef<{
109
+ /**
110
+ * Get the allegedBrand, indicating
111
+ * the type of digital asset this payment purports to be, and which issuer to
112
+ * use. Because payments are not trusted, any method calls on payments should
113
+ * be treated with suspicion and verified elsewhere.
114
+ */
115
+ getAllegedBrand: () => ERef<{
116
+ /**
117
+ * Should be used with `issuer.getBrand` to ensure an issuer and brand match.
118
+ */
119
+ isMyIssuer: (allegedIssuer: ERef<globalThis.Issuer>) => ERef<boolean>;
120
+ getAllegedName: () => ERef<string>;
121
+ /**
122
+ * Give information to UI on how
123
+ * to display the amount.
124
+ */
125
+ getDisplayInfo: () => ERef<globalThis.DisplayInfo<globalThis.AssetKind>>;
126
+ getAmountShape: () => any;
127
+ }>;
128
+ }>;
129
+ /**
130
+ * The set of payments
131
+ * withdrawn from this purse that are still live. These are the payments that
132
+ * can still be recovered in emergencies by, for example, depositing into this
133
+ * purse. Such a deposit action is like canceling an outstanding check because
134
+ * you're tired of waiting for it. Once your cancellation is acknowledged, you
135
+ * can spend the assets at stake on other things. Afterwards, if the recipient
136
+ * of the original check finally gets around to depositing it, their deposit
137
+ * fails.
138
+ *
139
+ * Returns an empty set if this issuer does not support recovery sets.
140
+ */
141
+ getRecoverySet: () => ERef<import("@endo/patterns").CopySet<globalThis.Payment<globalThis.AssetKind>>>;
142
+ /**
143
+ * For use in emergencies, such as coming
144
+ * back from a traumatic crash and upgrade. This deposits all the payments in
145
+ * this purse's recovery set into the purse itself, returning the total amount
146
+ * of assets recovered.
147
+ *
148
+ * Returns an empty amount if this issuer does not support recovery sets.
149
+ */
150
+ recoverAll: () => ERef<globalThis.Amount<globalThis.AssetKind>>;
151
+ }>;
43
152
  export type Retain = (pmt: Payment, optAmountShape?: Pattern) => Promise<Amount>;
44
153
  export type Redeem = (amt: Amount) => Promise<Payment>;
45
154
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-purse.d.ts","sourceRoot":"","sources":["virtual-purse.js"],"names":[],"mappings":"AAsBO,qDAHI,OAAO,gBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6DjB;AA2LM,0CADK,OAAO,cAAc,EAAE,IAAI;;WASzB,KAAK;;;MAWJ,QAAQ,QAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,CAyB5C;uBAnOY,OAAO,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;qBAG3B,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,KAAK,QAAQ,MAAM,CAAC;qBAC3D,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,OAAO,CAAC;;;;;;;;;;;;gBAKjC,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC;;;;;;;gBAIjC,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC;;;;;iBAIjC,CAAC,KAAK,EAAE,KAAK,KAAK,YAAY,MAAM,CAAC"}
1
+ {"version":3,"file":"virtual-purse.d.ts","sourceRoot":"","sources":["virtual-purse.js"],"names":[],"mappings":"AAsBO,qDAHI,OAAO,gBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6DjB;AAwLM,0CADK,OAAO,cAAc,EAAE,IAAI;;WASzB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoClB;qBAhOa,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,KAAK,QAAQ,MAAM,CAAC;qBAC3D,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,OAAO,CAAC;;;;;;;;;;;;gBAKjC,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC;;;;;;;gBAIjC,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC;;;;;iBAIjC,CAAC,KAAK,EAAE,KAAK,KAAK,YAAY,MAAM,CAAC"}
@@ -81,10 +81,7 @@ export const makeVirtualPurseKitIKit = (
81
81
  return { VirtualPurseIKit, VirtualPurseControllerI };
82
82
  };
83
83
 
84
- /**
85
- * @template T
86
- * @typedef {import('@endo/far').EOnly<T>} EOnly
87
- */
84
+ /** @import {EOnly} from '@endo/far'; */
88
85
 
89
86
  /** @typedef {(pmt: Payment, optAmountShape?: Pattern) => Promise<Amount>} Retain */
90
87
  /** @typedef {(amt: Amount) => Promise<Payment>} Redeem */