@agoric/smart-wallet 0.5.4-upgrade-16-dev-8879538.0 → 0.5.4-upgrade-16-dev-24665a9.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/smart-wallet",
3
- "version": "0.5.4-upgrade-16-dev-8879538.0+8879538",
3
+ "version": "0.5.4-upgrade-16-dev-24665a9.0+24665a9",
4
4
  "description": "Wallet contract",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -16,9 +16,9 @@
16
16
  "lint:eslint": "eslint ."
17
17
  },
18
18
  "devDependencies": {
19
- "@agoric/cosmic-proto": "0.4.1-upgrade-16-dev-8879538.0+8879538",
20
- "@agoric/swingset-vat": "0.32.3-upgrade-16-dev-8879538.0+8879538",
21
- "@agoric/zone": "0.2.3-upgrade-16-dev-8879538.0+8879538",
19
+ "@agoric/cosmic-proto": "0.4.1-upgrade-16-dev-24665a9.0+24665a9",
20
+ "@agoric/swingset-vat": "0.32.3-upgrade-16-dev-24665a9.0+24665a9",
21
+ "@agoric/zone": "0.2.3-upgrade-16-dev-24665a9.0+24665a9",
22
22
  "@endo/bundle-source": "^3.2.3",
23
23
  "@endo/captp": "^4.2.0",
24
24
  "@endo/init": "^1.1.2",
@@ -26,15 +26,15 @@
26
26
  "import-meta-resolve": "^2.2.1"
27
27
  },
28
28
  "dependencies": {
29
- "@agoric/assert": "0.6.1-upgrade-16-dev-8879538.0+8879538",
30
- "@agoric/casting": "0.4.3-upgrade-16-dev-8879538.0+8879538",
31
- "@agoric/ertp": "0.16.3-upgrade-16-dev-8879538.0+8879538",
32
- "@agoric/internal": "0.3.3-upgrade-16-dev-8879538.0+8879538",
33
- "@agoric/notifier": "0.6.3-upgrade-16-dev-8879538.0+8879538",
34
- "@agoric/store": "0.9.3-upgrade-16-dev-8879538.0+8879538",
35
- "@agoric/vat-data": "0.5.3-upgrade-16-dev-8879538.0+8879538",
36
- "@agoric/vats": "0.15.2-upgrade-16-dev-8879538.0+8879538",
37
- "@agoric/zoe": "0.26.3-upgrade-16-dev-8879538.0+8879538",
29
+ "@agoric/assert": "0.6.1-upgrade-16-dev-24665a9.0+24665a9",
30
+ "@agoric/casting": "0.4.3-upgrade-16-dev-24665a9.0+24665a9",
31
+ "@agoric/ertp": "0.16.3-upgrade-16-dev-24665a9.0+24665a9",
32
+ "@agoric/internal": "0.3.3-upgrade-16-dev-24665a9.0+24665a9",
33
+ "@agoric/notifier": "0.6.3-upgrade-16-dev-24665a9.0+24665a9",
34
+ "@agoric/store": "0.9.3-upgrade-16-dev-24665a9.0+24665a9",
35
+ "@agoric/vat-data": "0.5.3-upgrade-16-dev-24665a9.0+24665a9",
36
+ "@agoric/vats": "0.15.2-upgrade-16-dev-24665a9.0+24665a9",
37
+ "@agoric/zoe": "0.26.3-upgrade-16-dev-24665a9.0+24665a9",
38
38
  "@endo/eventual-send": "^1.2.2",
39
39
  "@endo/far": "^1.1.2",
40
40
  "@endo/marshal": "^1.5.0",
@@ -68,7 +68,7 @@
68
68
  "access": "public"
69
69
  },
70
70
  "typeCoverage": {
71
- "atLeast": 94.35
71
+ "atLeast": 94.36
72
72
  },
73
- "gitHead": "8879538cd1d125a08346f02dd5701d0d70c90bb8"
73
+ "gitHead": "24665a97248b854fcb01185d360429301470ed57"
74
74
  }
@@ -5,6 +5,7 @@ export function makeInvitationsHelper(zoe: ERef<ZoeService>, agoricNames: ERef<i
5
5
  export type InvitationSpec = AgoricContractInvitationSpec | ContractInvitationSpec | PurseInvitationSpec | ContinuingInvitationSpec;
6
6
  /**
7
7
  * source of invitation is a chain of calls starting with an agoricName
8
+ *
8
9
  * - the start of the pipe is a lookup of instancePath within agoricNames
9
10
  * - each entry in the callPipe executes a call on the preceding result
10
11
  * - the end of the pipe is expected to return an Invitation
@@ -12,7 +13,7 @@ export type InvitationSpec = AgoricContractInvitationSpec | ContractInvitationSp
12
13
  export type AgoricContractInvitationSpec = {
13
14
  source: "agoricContract";
14
15
  instancePath: string[];
15
- callPipe: Array<[methodName: string, methodArgs?: any[]]>;
16
+ callPipe: [methodName: string, methodArgs?: any[]][];
16
17
  };
17
18
  /**
18
19
  * source is a contract (in which case this takes an Instance to look up in zoe)
@@ -24,7 +25,9 @@ export type ContractInvitationSpec = {
24
25
  invitationArgs?: any[];
25
26
  };
26
27
  /**
27
- * the invitation is already in your Zoe "invitation" purse so we need to query it
28
+ * the invitation is already in your Zoe "invitation" purse so we need to query
29
+ * it
30
+ *
28
31
  * - use the find/query invitation by kvs thing
29
32
  */
30
33
  export type PurseInvitationSpec = {
@@ -33,7 +36,8 @@ export type PurseInvitationSpec = {
33
36
  description: string;
34
37
  };
35
38
  /**
36
- * continuing invitation in which the offer result from a previous invitation had an `invitationMakers` property
39
+ * continuing invitation in which the offer result from a previous invitation
40
+ * had an `invitationMakers` property
37
41
  */
38
42
  export type ContinuingInvitationSpec = {
39
43
  source: "continuing";
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["invitations.js"],"names":[],"mappings":"AA+DO,2CANI,IAAI,CAAC,UAAU,CAAC,eAChB,IAAI,CAAC,OAAO,cAAc,EAAE,OAAO,CAAC,mBACpC,KAAK,CAAC,KAAK,CAAC,oBACZ,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,6BAC/B,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,YAAY,EAAE,gBAAgB,UAoFrD,cAAc,KAAK,IAAI,CAAC,UAAU,CAAC,CAgBtD;;;;6BArJY,4BAA4B,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,wBAAwB;;;;;;;2CAKtG;IACZ,MAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAU,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CACzD;;;;qCAMS;IACZ,MAAQ,EAAE,UAAU,CAAC;IACrB,QAAU,EAAE,QAAQ,CAAC;IACrB,qBAAuB,EAAE,MAAM,CAAC;IAChC,cAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB;;;;;kCAGS;IACZ,MAAQ,EAAE,OAAO,CAAC;IAClB,QAAU,EAAE,QAAQ,CAAC;IACrB,WAAa,EAAE,MAAM,CAAC;CACnB;;;;uCAIS;IACZ,MAAQ,EAAE,YAAY,CAAC;IACvB,aAAe,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;IAC/C,mBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB;oCAKS,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["invitations.js"],"names":[],"mappings":"AAwEO,2CANI,IAAI,CAAC,UAAU,CAAC,eAChB,IAAI,CAAC,OAAO,cAAc,EAAE,OAAO,CAAC,mBACpC,KAAK,CAAC,KAAK,CAAC,oBACZ,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,6BAC/B,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,YAAY,EAAE,gBAAgB,UAoFrD,cAAc,KAAK,IAAI,CAAC,UAAU,CAAC,CAgBtD;;;;6BA9JY,4BAA4B,GAClC,sBAAsB,GACtB,mBAAmB,GACnB,wBAAwB;;;;;;;;2CAKlB;IACZ,MAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;CACtD;;;;qCAQS;IACZ,MAAU,EAAE,UAAU,CAAC;IACvB,QAAY,EAAE,QAAQ,CAAC;IACvB,qBAAyB,EAAE,MAAM,CAAC;IAClC,cAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;CACxB;;;;;;;kCAGS;IACZ,MAAU,EAAE,OAAO,CAAC;IACpB,QAAY,EAAE,QAAQ,CAAC;IACvB,WAAe,EAAE,MAAM,CAAC;CACrB;;;;;uCAOS;IACZ,MAAU,EAAE,YAAY,CAAC;IACzB,aAAiB,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;IACjD,mBAAuB,EAAE,MAAM,CAAC;IAChC,cAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;CACxB;oCAMS,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,UAAU,CAAC"}
@@ -10,44 +10,53 @@ const { Fail } = assert;
10
10
  const MAX_PIPE_LENGTH = 2;
11
11
 
12
12
  /**
13
- * @typedef {AgoricContractInvitationSpec | ContractInvitationSpec | PurseInvitationSpec | ContinuingInvitationSpec} InvitationSpec
14
- * Specify how to produce an invitation. See each type in the union for details.
13
+ * @typedef {AgoricContractInvitationSpec
14
+ * | ContractInvitationSpec
15
+ * | PurseInvitationSpec
16
+ * | ContinuingInvitationSpec} InvitationSpec
17
+ * Specify how to produce an invitation. See each type in the union for details.
15
18
  */
16
19
 
17
20
  /**
18
21
  * @typedef {{
19
- * source: 'agoricContract',
20
- * instancePath: string[],
21
- * callPipe: Array<[methodName: string, methodArgs?: any[]]>,
22
+ * source: 'agoricContract';
23
+ * instancePath: string[];
24
+ * callPipe: [methodName: string, methodArgs?: any[]][];
22
25
  * }} AgoricContractInvitationSpec
23
- * source of invitation is a chain of calls starting with an agoricName
26
+ * source of invitation is a chain of calls starting with an agoricName
27
+ *
24
28
  * - the start of the pipe is a lookup of instancePath within agoricNames
25
29
  * - each entry in the callPipe executes a call on the preceding result
26
30
  * - the end of the pipe is expected to return an Invitation
27
31
  *
32
+ *
28
33
  * @typedef {{
29
- * source: 'contract',
30
- * instance: Instance,
31
- * publicInvitationMaker: string,
32
- * invitationArgs?: any[],
34
+ * source: 'contract';
35
+ * instance: Instance;
36
+ * publicInvitationMaker: string;
37
+ * invitationArgs?: any[];
33
38
  * }} ContractInvitationSpec
34
- * source is a contract (in which case this takes an Instance to look up in zoe)
39
+ * source is a contract (in which case this takes an Instance to look up in zoe)
35
40
  *
36
41
  * @typedef {{
37
- * source: 'purse',
38
- * instance: Instance,
39
- * description: string,
42
+ * source: 'purse';
43
+ * instance: Instance;
44
+ * description: string;
40
45
  * }} PurseInvitationSpec
41
- * the invitation is already in your Zoe "invitation" purse so we need to query it
46
+ * the invitation is already in your Zoe "invitation" purse so we need to query
47
+ * it
48
+ *
42
49
  * - use the find/query invitation by kvs thing
43
50
  *
51
+ *
44
52
  * @typedef {{
45
- * source: 'continuing',
46
- * previousOffer: import('./offers.js').OfferId,
47
- * invitationMakerName: string,
48
- * invitationArgs?: any[],
53
+ * source: 'continuing';
54
+ * previousOffer: import('./offers.js').OfferId;
55
+ * invitationMakerName: string;
56
+ * invitationArgs?: any[];
49
57
  * }} ContinuingInvitationSpec
50
- * continuing invitation in which the offer result from a previous invitation had an `invitationMakers` property
58
+ * continuing invitation in which the offer result from a previous invitation
59
+ * had an `invitationMakers` property
51
60
  */
52
61
 
53
62
  /**
@@ -58,8 +58,7 @@ export function makeImportContext(makePresence?: ((iface: string) => PassableCap
58
58
  };
59
59
  export function makeLoggingPresence(iface: string, log: (parts: unknown[]) => void): any;
60
60
  /**
61
- * When marshaling a purse, payment, etc. we partition the slots
62
- * using prefixes.
61
+ * When marshaling a purse, payment, etc. we partition the slots using prefixes.
63
62
  */
64
63
  export type WalletSlot<T extends Record<string, IdTable<any, any>>> = `${string & keyof T}:${Digits}`;
65
64
  /**
@@ -67,14 +66,13 @@ export type WalletSlot<T extends Record<string, IdTable<any, any>>> = `${string
67
66
  */
68
67
  export type KindSlot<K extends string> = `${K}:${Digits}`;
69
68
  /**
70
- * Since KindSlots always include a colon and BoardIds never do,
71
- * we an mix them without confusion.
69
+ * Since KindSlots always include a colon and BoardIds never do, we an mix them
70
+ * without confusion.
72
71
  */
73
72
  export type MixedSlot<T extends Record<string, IdTable<any, any>>> = string;
74
73
  /**
75
- * - 1 or more digits.
76
- * NOTE: the typescript definition here is more restrictive than
77
- * actual usage.
74
+ * - 1 or more digits. NOTE: the typescript
75
+ * definition here is more restrictive than actual usage.
78
76
  */
79
77
  export type Digits = `1` | `12` | `123`;
80
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"marshal-contexts.d.ts","sourceRoot":"","sources":["marshal-contexts.js"],"names":[],"mappings":"AAuHO;;;;;;;IAqFH;;;OAGG;sBAFQ,MAAM,SACN,KAAK;;IAMhB;;;OAGG;;IAIH;;;OAGG;;EAUN;AAcM,0DAFY,MAAM;IA8FrB;;;OAGG;;IAIH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;EAWN;AAwBM,2CAHI,MAAM,OACN,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAapC;;;;;uBA7W8B,CAAC,8CAAnB,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE;;;;qBAI5B,CAAC,mBAAJ,GAAG,CAAC,IAAI,MAAM,EAAE;;;;;sBA2CL,CAAC;;;;;;qBAGZ,GAAG,GAAG,IAAI,GAAG,KAAK;;;;oBAWL,IAAI,cAAT,GAAG,wBAFX;IACZ,MAAU,EAAE,QAAQ,CACK,IAAI,AADJ,EACL,GAAG,AADO,CAAC,CAAC;IAChC,KAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;CAC5B;4BA8IU,UAAU,CAAC,OAAO,iBAAiB,CAAC;4BA+HpC,UAAU,CAAC,OAAO,iBAAiB,CAAC;qCA/VH,eAAe;iCAAf,eAAe;yBACxC,gBAAgB"}
1
+ {"version":3,"file":"marshal-contexts.d.ts","sourceRoot":"","sources":["marshal-contexts.js"],"names":[],"mappings":"AAuHO;;;;;;;IAoFH;;;OAGG;sBAFQ,MAAM,SACN,KAAK;;IAMhB;;;OAGG;;IAIH;;;OAGG;;EAUN;AAcM,0DAFY,MAAM;IA8FrB;;;OAGG;;IAIH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;EAWN;AA4BM,2CAHI,MAAM,OACN,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAapC;;;;uBAjX8B,CAAC,8CAAnB,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE;;;;qBAI5B,CAAC,mBAAJ,GAAG,CAAC,IAAI,MAAM,EAAE;;;;;sBA2CL,CAAC;;;;;qBAGZ,GAAG,GAAG,IAAI,GAAG,KAAK;;;;oBASL,IAAI,cAAT,GAAG,wBAFX;IACZ,MAAU,EAAE,QAAQ,CACK,IAAI,AADJ,EACL,GAAG,AADO,CAAC,CAAC;IAChC,KAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;CAC5B;4BAgJU,UAAU,CAAC,OAAO,iBAAiB,CAAC;4BA+HpC,UAAU,CAAC,OAAO,iBAAiB,CAAC;qCA9VH,eAAe;iCAAf,eAAe;yBACxC,gBAAgB"}
@@ -23,10 +23,9 @@ const isDefaultBoardId = specimen => {
23
23
  };
24
24
 
25
25
  /**
26
- * When marshaling a purse, payment, etc. we partition the slots
27
- * using prefixes.
26
+ * When marshaling a purse, payment, etc. we partition the slots using prefixes.
28
27
  *
29
- * @template {Record<string, IdTable<*,*>>} T
28
+ * @template {Record<string, IdTable<any, any>>} T
30
29
  * @typedef {`${string & keyof T}:${Digits}`} WalletSlot
31
30
  */
32
31
  /**
@@ -35,7 +34,7 @@ const isDefaultBoardId = specimen => {
35
34
  */
36
35
 
37
36
  /**
38
- * @template {Record<string, IdTable<*,*>>} T
37
+ * @template {Record<string, IdTable<any, any>>} T
39
38
  * @param {T} _tables
40
39
  * @param {string & keyof T} kind
41
40
  * @param {number} id
@@ -47,10 +46,10 @@ const makeWalletSlot = (_tables, kind, id) => {
47
46
  };
48
47
 
49
48
  /**
50
- * @template {Record<string, IdTable<*,*>>} T
49
+ * @template {Record<string, IdTable<any, any>>} T
51
50
  * @param {T} record
52
51
  * @param {(value: string, index: number, obj: string[]) => boolean} predicate
53
- * @returns {string & keyof T | undefined}
52
+ * @returns {(string & keyof T) | undefined}
54
53
  */
55
54
  const findKey = (record, predicate) => {
56
55
  const key = Object.keys(record).find(predicate);
@@ -58,10 +57,10 @@ const findKey = (record, predicate) => {
58
57
  };
59
58
 
60
59
  /**
61
- * @template {Record<string, IdTable<*,*>>} T
60
+ * @template {Record<string, IdTable<any, any>>} T
62
61
  * @param {T} tables
63
62
  * @param {string} slot
64
- * @returns {{ kind: undefined | string & keyof T, id: number }}
63
+ * @returns {{ kind: undefined | (string & keyof T); id: number }}
65
64
  */
66
65
  const parseWalletSlot = (tables, slot) => {
67
66
  const kind = findKey(tables, k => slot.startsWith(`${k}:`));
@@ -70,25 +69,23 @@ const parseWalletSlot = (tables, slot) => {
70
69
  };
71
70
 
72
71
  /**
73
- * Since KindSlots always include a colon and BoardIds never do,
74
- * we an mix them without confusion.
72
+ * Since KindSlots always include a colon and BoardIds never do, we an mix them
73
+ * without confusion.
75
74
  *
76
- * @template {Record<string, IdTable<*,*>>} T
75
+ * @template {Record<string, IdTable<any, any>>} T
77
76
  * @typedef {WalletSlot<T> | BoardId} MixedSlot
78
77
  */
79
78
  /**
80
- * @typedef {`1` | `12` | `123`} Digits - 1 or more digits.
81
- * NOTE: the typescript definition here is more restrictive than
82
- * actual usage.
79
+ * @typedef {`1` | `12` | `123`} Digits - 1 or more digits. NOTE: the typescript
80
+ * definition here is more restrictive than actual usage.
83
81
  */
84
82
 
85
83
  /**
86
84
  * @template {Key} Slot
87
85
  * @template {PassableCap} Val
88
- *
89
86
  * @typedef {{
90
- * bySlot: MapStore<Slot, Val>,
91
- * byVal: MapStore<Val, Slot>,
87
+ * bySlot: MapStore<Slot, Val>;
88
+ * byVal: MapStore<Val, Slot>;
92
89
  * }} IdTable<Value>
93
90
  */
94
91
 
@@ -105,17 +102,20 @@ const initSlotVal = (table, slot, val) => {
105
102
  };
106
103
 
107
104
  /**
108
- * Make context for exporting wallet data where brands etc. can be recognized by boardId.
109
- * Export for use outside the smart wallet.
105
+ * Make context for exporting wallet data where brands etc. can be recognized by
106
+ * boardId. Export for use outside the smart wallet.
110
107
  *
111
108
  * When serializing wallet state for, there's a tension between
112
109
  *
113
- * - keeping purses etc. closely held
114
- * - recognizing identity of brands also referenced in the state of contracts such as the AMM
110
+ * - keeping purses etc. closely held
111
+ * - recognizing identity of brands also referenced in the state of contracts such
112
+ * as the AMM
113
+ *
114
+ * `makeMarshal()` is parameterized by the type of slots. Here we use a disjoint
115
+ * union of
115
116
  *
116
- * `makeMarshal()` is parameterized by the type of slots. Here we use a disjoint union of
117
- * - board ids for widely shared objects
118
- * - kind:seq ids for closely held objects; for example purse:123
117
+ * - board ids for widely shared objects
118
+ * - kind:seq ids for closely held objects; for example purse:123
119
119
  */
120
120
  export const makeExportContext = () => {
121
121
  const walletObjects = {
@@ -143,14 +143,13 @@ export const makeExportContext = () => {
143
143
  };
144
144
 
145
145
  /**
146
- * Look up the slot in mappings from published data
147
- * else try walletObjects that we have seen.
148
- *
149
- * @throws if not found (a slotToVal function typically
150
- * conjures a new identity)
146
+ * Look up the slot in mappings from published data else try walletObjects
147
+ * that we have seen.
151
148
  *
152
149
  * @param {MixedSlot<typeof walletObjects>} slot
153
150
  * @param {string} _iface
151
+ * @throws if not found (a slotToVal function typically conjures a new
152
+ * identity)
154
153
  */
155
154
  const slotToVal = (slot, _iface) => {
156
155
  if (isDefaultBoardId(slot) && boardObjects.bySlot.has(slot)) {
@@ -239,8 +238,8 @@ const defaultMakePresence = iface => {
239
238
  };
240
239
 
241
240
  /**
242
- * Make context for marshalling wallet or board data.
243
- * To be imported into the client, which never exports objects.
241
+ * Make context for marshalling wallet or board data. To be imported into the
242
+ * client, which never exports objects.
244
243
  *
245
244
  * @param {(iface: string) => PassableCap} [makePresence]
246
245
  */
@@ -363,8 +362,12 @@ export const makeImportContext = (makePresence = defaultMakePresence) => {
363
362
  /**
364
363
  * @param {string} iface
365
364
  * @param {{
366
- * applyMethod: (target: unknown, method: string | symbol, args: unknown[]) => void,
367
- * applyFunction: (target: unknown, args: unknown[]) => void,
365
+ * applyMethod: (
366
+ * target: unknown,
367
+ * method: string | symbol,
368
+ * args: unknown[],
369
+ * ) => void;
370
+ * applyFunction: (target: unknown, args: unknown[]) => void;
368
371
  * }} handler
369
372
  */
370
373
  const makePresence = (iface, handler) => {
@@ -7,17 +7,18 @@ export function prepareOfferWatcher(baggage: import("@agoric/vat-data").Baggage)
7
7
  updateStatus(offerStatusUpdates: Record<string, unknown>): void;
8
8
  /**
9
9
  * @param {string} offerId
10
- * @param {Amount<"set">} invitationAmount
10
+ * @param {Amount<'set'>} invitationAmount
11
11
  * @param {import('./types.js').InvitationMakers} invitationMakers
12
- * @param {import("./types.js").PublicSubscribers} publicSubscribers
12
+ * @param {import('./types.js').PublicSubscribers} publicSubscribers
13
13
  */
14
14
  onNewContinuingOffer(offerId: string, invitationAmount: Amount<"set">, invitationMakers: import("./types.js").InvitationMakers, publicSubscribers: import("./types.js").PublicSubscribers): void;
15
- /** @param {unknown} result */
16
- publishResult(result: unknown): void;
15
+ /** @param {Passable | ContinuingOfferResult} result */
16
+ publishResult(result: Passable | ContinuingOfferResult): void;
17
17
  /**
18
18
  * Called when the offer result promise rejects. The other two watchers
19
- * are waiting for particular values out of Zoe but they settle at the same time
20
- * and don't need their own error handling.
19
+ * are waiting for particular values out of Zoe but they settle at the
20
+ * same time and don't need their own error handling.
21
+ *
21
22
  * @param {Error} err
22
23
  */
23
24
  handleError(err: Error): void;
@@ -37,11 +38,13 @@ export type OfferPromiseWatcher<T extends unknown> = {
37
38
  onRejected?: ((reason: unknown, args_0: UserSeat<unknown>) => void) | undefined;
38
39
  };
39
40
  export type OutcomeWatchers = {
40
- resultWatcher: OfferPromiseWatcher<unknown>;
41
+ resultWatcher: OfferPromiseWatcher<Passable>;
41
42
  numWantsWatcher: OfferPromiseWatcher<number>;
42
43
  paymentWatcher: OfferPromiseWatcher<PaymentPKeywordRecord>;
43
44
  };
44
45
  export type MakeOfferWatcher = ReturnType<typeof prepareOfferWatcher>;
45
46
  export type OfferWatcher = ReturnType<MakeOfferWatcher>;
46
47
  import type { OfferSpec } from "./offers.js";
48
+ import type { Passable } from '@endo/pass-style';
49
+ import type { ContinuingOfferResult } from "./types.js";
47
50
  //# sourceMappingURL=offerWatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offerWatcher.d.ts","sourceRoot":"","sources":["offerWatcher.js"],"names":[],"mappings":"AAgEO,6CAHI,eAAe,QACf,QAAQ,oDAQlB;AAkCM,6CAFI,OAAO,kBAAkB,EAAE,OAAO;;QA0BrC;;WAEG;yCADQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAQlC;;;;;WAKG;sCAJQ,MAAM,oBACN,MAAM,CAAC,KAAK,CAAC,oBACb,OAAO,YAAY,EAAE,gBAAgB,qBACrC,OAAO,YAAY,EAAE,iBAAiB;QAkBjD,8BAA8B;8BAAlB,OAAO;QAqCnB;;;;;WAKG;yBADQ,KAAK;;IAclB,gDAAgD;oBAArC,eAAe,CAAC,gBAAgB,CAAC;IA6B5C,+CAA+C;mBAApC,eAAe,CAAC,eAAe,CAAC;IAsB3C,iDAAiD;qBAAtC,eAAe,CAAC,iBAAiB,CAAC;GA0BlD;;;;gCAhR2B,CAAC;;;;8BAIhB;IACZ,aAAe,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,eAAiB,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,cAAgB,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;CAC1D;+BA2QU,UAAU,CAAC,OAAO,mBAAmB,CAAC;2BACtC,UAAU,CAAC,gBAAgB,CAAC;+BAzRb,aAAa"}
1
+ {"version":3,"file":"offerWatcher.d.ts","sourceRoot":"","sources":["offerWatcher.js"],"names":[],"mappings":"AAoEO,6CAHI,eAAe,QACf,QAAQ,oDAQlB;AAkCM,6CAFI,OAAO,kBAAkB,EAAE,OAAO;;QAyBrC;;WAEG;yCADQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAQlC;;;;;WAKG;sCAJQ,MAAM,oBACN,MAAM,CAAC,KAAK,CAAC,oBACb,OAAO,YAAY,EAAE,gBAAgB,qBACrC,OAAO,YAAY,EAAE,iBAAiB;QAkBjD,uDAAuD;;QAoCvD;;;;;;WAMG;yBADQ,KAAK;;IAclB,gDAAgD;oBAArC,eAAe,CAAC,gBAAgB,CAAC;IA+B5C,+CAA+C;mBAApC,eAAe,CAAC,eAAe,CAAC;IAwB3C,iDAAiD;qBAAtC,eAAe,CAAC,iBAAiB,CAAC;GA2BlD;;;;gCApR2B,CAAC;;;;;;qBAMP,mBAAmB,CAAC,MAAM,CAAC;oBAC5B,mBAAmB,CAAC,qBAAqB,CAAC;;+BAgRjD,UAAU,CAAC,OAAO,mBAAmB,CAAC;2BACtC,UAAU,CAAC,gBAAgB,CAAC;+BAhSd,aAAa;8BAEd,kBAAkB;2CADL,YAAY"}
@@ -12,8 +12,12 @@ import { deeplyFulfilledObject, objectMap } from '@agoric/internal';
12
12
 
13
13
  import { UNPUBLISHED_RESULT } from './offers.js';
14
14
 
15
- /** @import {OfferSpec} from "./offers.js" */
16
- /** @import {PromiseWatcher} from '@agoric/swingset-liveslots' */
15
+ /**
16
+ * @import {OfferSpec} from "./offers.js";
17
+ * @import {ContinuingOfferResult} from "./types.js";
18
+ * @import {Passable} from '@endo/pass-style';
19
+ * @import {PromiseWatcher} from '@agoric/swingset-liveslots';
20
+ */
17
21
 
18
22
  /**
19
23
  * @template {any} T
@@ -22,9 +26,9 @@ import { UNPUBLISHED_RESULT } from './offers.js';
22
26
 
23
27
  /**
24
28
  * @typedef {{
25
- * resultWatcher: OfferPromiseWatcher<unknown>,
26
- * numWantsWatcher: OfferPromiseWatcher<number>,
27
- * paymentWatcher: OfferPromiseWatcher<PaymentPKeywordRecord>,
29
+ * resultWatcher: OfferPromiseWatcher<Passable>;
30
+ * numWantsWatcher: OfferPromiseWatcher<number>;
31
+ * paymentWatcher: OfferPromiseWatcher<PaymentPKeywordRecord>;
28
32
  * }} OutcomeWatchers
29
33
  */
30
34
 
@@ -108,9 +112,8 @@ export const prepareOfferWatcher = baggage => {
108
112
  'OfferWatcher',
109
113
  offerWatcherGuard,
110
114
  /**
111
- *
112
- * @param {*} walletHelper
113
- * @param {*} deposit
115
+ * @param {any} walletHelper
116
+ * @param {any} deposit
114
117
  * @param {OfferSpec} offerSpec
115
118
  * @param {string} address
116
119
  * @param {Amount<'set'>} invitationAmount
@@ -137,9 +140,9 @@ export const prepareOfferWatcher = baggage => {
137
140
  },
138
141
  /**
139
142
  * @param {string} offerId
140
- * @param {Amount<"set">} invitationAmount
143
+ * @param {Amount<'set'>} invitationAmount
141
144
  * @param {import('./types.js').InvitationMakers} invitationMakers
142
- * @param {import("./types.js").PublicSubscribers} publicSubscribers
145
+ * @param {import('./types.js').PublicSubscribers} publicSubscribers
143
146
  */
144
147
  onNewContinuingOffer(
145
148
  offerId,
@@ -157,7 +160,7 @@ export const prepareOfferWatcher = baggage => {
157
160
  );
158
161
  },
159
162
 
160
- /** @param {unknown} result */
163
+ /** @param {Passable | ContinuingOfferResult} result */
161
164
  publishResult(result) {
162
165
  const { state, facets } = this;
163
166
 
@@ -183,7 +186,6 @@ export const prepareOfferWatcher = baggage => {
183
186
  state.invitationAmount,
184
187
  // @ts-expect-error narrowed by passStyle
185
188
  result.invitationMakers,
186
- // @ts-expect-error narrowed by passStyle
187
189
  result.publicSubscribers,
188
190
  );
189
191
  }
@@ -196,8 +198,9 @@ export const prepareOfferWatcher = baggage => {
196
198
  },
197
199
  /**
198
200
  * Called when the offer result promise rejects. The other two watchers
199
- * are waiting for particular values out of Zoe but they settle at the same time
200
- * and don't need their own error handling.
201
+ * are waiting for particular values out of Zoe but they settle at the
202
+ * same time and don't need their own error handling.
203
+ *
201
204
  * @param {Error} err
202
205
  */
203
206
  handleError(err) {
@@ -226,9 +229,11 @@ export const prepareOfferWatcher = baggage => {
226
229
  facets.helper.updateStatus({ payouts: amounts });
227
230
  },
228
231
  /**
229
- * If promise disconnected, watch again. Or if there's an Error, handle it.
232
+ * If promise disconnected, watch again. Or if there's an Error, handle
233
+ * it.
230
234
  *
231
- * @param {Error | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
235
+ * @param {Error
236
+ * | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
232
237
  * @param {UserSeat} seat
233
238
  */
234
239
  onRejected(reason, seat) {
@@ -248,9 +253,11 @@ export const prepareOfferWatcher = baggage => {
248
253
  facets.helper.publishResult(result);
249
254
  },
250
255
  /**
251
- * If promise disconnected, watch again. Or if there's an Error, handle it.
256
+ * If promise disconnected, watch again. Or if there's an Error, handle
257
+ * it.
252
258
  *
253
- * @param {Error | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
259
+ * @param {Error
260
+ * | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
254
261
  * @param {UserSeat} seat
255
262
  */
256
263
  onRejected(reason, seat) {
@@ -277,7 +284,8 @@ export const prepareOfferWatcher = baggage => {
277
284
  * and getPayouts() settle the same (they await the same promise and
278
285
  * then synchronously return a local value).
279
286
  *
280
- * @param {Error | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
287
+ * @param {Error
288
+ * | import('@agoric/internal/src/upgrade-api.js').UpgradeDisconnection} reason
281
289
  * @param {UserSeat} seat
282
290
  */
283
291
  onRejected(reason, seat) {
package/src/offers.d.ts CHANGED
@@ -3,10 +3,10 @@
3
3
  */
4
4
  /**
5
5
  * @typedef {{
6
- * id: OfferId,
7
- * invitationSpec: import('./invitations.js').InvitationSpec,
8
- * proposal: Proposal,
9
- * offerArgs?: any
6
+ * id: OfferId;
7
+ * invitationSpec: import('./invitations.js').InvitationSpec;
8
+ * proposal: Proposal;
9
+ * offerArgs?: any;
10
10
  * }} OfferSpec
11
11
  */
12
12
  /** Value for "result" field when the result can't be published */
@@ -1 +1 @@
1
- {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["offers.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AAEH,kEAAkE;AAClE,+CAAgD;sBAbnC,MAAM,GAAG,MAAM;wBAIf;IACZ,EAAM,EAAE,OAAO,CAAC;IAChB,cAAkB,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC9D,QAAY,EAAE,QAAQ,CAAC;IACvB,SAAa,CAAC,EAAE,GAAG,CAAA;CAChB;0BAOS,SAAS,GAAG;IACxB,KAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,kBAAkB,CAAC;IAC/C,OAAS,CAAC,EAAE,mBAAmB,CAAC;CAC7B"}
1
+ {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["offers.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AAEH,kEAAkE;AAClE,+CAAgD;sBAbnC,MAAM,GAAG,MAAM;wBAIf;IACZ,EAAM,EAAE,OAAO,CAAC;IAChB,cAAkB,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC9D,QAAY,EAAE,QAAQ,CAAC;IACvB,SAAa,CAAC,EAAE,GAAG,CAAC;CACjB;0BAOS,SAAS,GAAG;IACxB,KAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAU,CAAC,EAAE,OAAO,GAAG,OAAO,kBAAkB,CAAC;IACjD,OAAW,CAAC,EAAE,mBAAmB,CAAC;CAC/B"}
package/src/offers.js CHANGED
@@ -4,10 +4,10 @@
4
4
 
5
5
  /**
6
6
  * @typedef {{
7
- * id: OfferId,
8
- * invitationSpec: import('./invitations.js').InvitationSpec,
9
- * proposal: Proposal,
10
- * offerArgs?: any
7
+ * id: OfferId;
8
+ * invitationSpec: import('./invitations.js').InvitationSpec;
9
+ * proposal: Proposal;
10
+ * offerArgs?: any;
11
11
  * }} OfferSpec
12
12
  */
13
13
 
@@ -16,9 +16,9 @@ export const UNPUBLISHED_RESULT = 'UNPUBLISHED';
16
16
 
17
17
  /**
18
18
  * @typedef {OfferSpec & {
19
- * error?: string,
20
- * numWantsSatisfied?: number
21
- * result?: unknown | typeof UNPUBLISHED_RESULT,
22
- * payouts?: AmountKeywordRecord,
19
+ * error?: string;
20
+ * numWantsSatisfied?: number;
21
+ * result?: unknown | typeof UNPUBLISHED_RESULT;
22
+ * payouts?: AmountKeywordRecord;
23
23
  * }} OfferStatus
24
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-walletFactory-proposal.d.ts","sourceRoot":"","sources":["upgrade-walletFactory-proposal.js"],"names":[],"mappings":"AAqBO,yOALK,eAAe;IAGkD,OAAO,EAAzE;QAAE,gBAAgB,EAAE,YAAY,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;kBAkDnE;AAMM,mGAFK,eAAe,iBAwB1B;AAyBM;;;;;;;EAKN"}
1
+ {"version":3,"file":"upgrade-walletFactory-proposal.d.ts","sourceRoot":"","sources":["upgrade-walletFactory-proposal.js"],"names":[],"mappings":"AAoBO,yOAJI,eAAe;IAEmD,OAAO,EAAzE;QAAE,gBAAgB,EAAE,YAAY,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;kBAkDnE;AAMM,mGAFI,eAAe,iBAwBzB;AAyBM;;;;;;;EAKN"}
@@ -14,8 +14,7 @@ const BOARD_AUX = 'boardAux';
14
14
  const marshalData = makeMarshal(_val => Fail`data only`);
15
15
 
16
16
  /**
17
- * @param { BootstrapPowers } powers
18
- *
17
+ * @param {BootstrapPowers} powers
19
18
  * @param {object} config
20
19
  * @param {{ walletFactoryRef: VatSourceRef & { bundleID: string } }} config.options
21
20
  */
@@ -71,7 +70,7 @@ export const upgradeWalletFactory = async (
71
70
  harden(upgradeWalletFactory);
72
71
 
73
72
  /**
74
- * @param { BootstrapPowers } powers
73
+ * @param {BootstrapPowers} powers
75
74
  */
76
75
  export const publishAgoricBrandsDisplayInfo = async ({
77
76
  consume: { agoricNames, board, chainStorage },
@@ -98,7 +97,7 @@ export const publishAgoricBrandsDisplayInfo = async ({
98
97
  };
99
98
  harden(publishAgoricBrandsDisplayInfo);
100
99
 
101
- /** @type { import("@agoric/vats/src/core/lib-boot").BootstrapManifest } */
100
+ /** @type {import('@agoric/vats/src/core/lib-boot').BootstrapManifest} */
102
101
  const manifest = {
103
102
  [upgradeWalletFactory.name]: {
104
103
  // include rationale for closely-held, high authority capabilities