@agoric/zoe 0.26.3-upgrade-14-dev-c8f9e7b.0 → 0.26.3-upgrade-16-dev-8879538.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 (269) hide show
  1. package/README.md +7 -7
  2. package/bundles/bundle-contractFacet-js-meta.json +622 -313
  3. package/bundles/bundle-contractFacet.d.ts +3 -3
  4. package/bundles/bundle-contractFacet.js +1 -1
  5. package/exported.js +1 -12
  6. package/package.json +75 -60
  7. package/src/cleanProposal.d.ts +2 -2
  8. package/src/cleanProposal.d.ts.map +1 -1
  9. package/src/cleanProposal.js +15 -12
  10. package/src/contractFacet/exit.d.ts.map +1 -1
  11. package/src/contractFacet/exit.js +1 -0
  12. package/src/contractFacet/internal-types.d.ts +2 -2
  13. package/src/contractFacet/internal-types.d.ts.map +1 -1
  14. package/src/contractFacet/internal-types.js +1 -1
  15. package/src/contractFacet/offerHandlerStorage.d.ts +4 -1
  16. package/src/contractFacet/offerHandlerStorage.d.ts.map +1 -1
  17. package/src/contractFacet/offerHandlerStorage.js +11 -3
  18. package/src/contractFacet/reallocate.d.ts +3 -0
  19. package/src/contractFacet/reallocate.d.ts.map +1 -0
  20. package/src/contractFacet/reallocate.js +94 -0
  21. package/src/contractFacet/rightsConservation.d.ts.map +1 -1
  22. package/src/contractFacet/rightsConservation.js +3 -0
  23. package/src/contractFacet/types-ambient.d.ts +259 -0
  24. package/src/contractFacet/types-ambient.js +1 -0
  25. package/src/contractFacet/vatRoot.d.ts +4 -4
  26. package/src/contractFacet/vatRoot.d.ts.map +1 -1
  27. package/src/contractFacet/zcfMint.d.ts +5 -3
  28. package/src/contractFacet/zcfMint.d.ts.map +1 -1
  29. package/src/contractFacet/zcfMint.js +4 -4
  30. package/src/contractFacet/zcfSeat.d.ts +4 -2
  31. package/src/contractFacet/zcfSeat.d.ts.map +1 -1
  32. package/src/contractFacet/zcfSeat.js +125 -5
  33. package/src/contractFacet/zcfZygote.d.ts +1 -2
  34. package/src/contractFacet/zcfZygote.d.ts.map +1 -1
  35. package/src/contractFacet/zcfZygote.js +95 -42
  36. package/src/contractSupport/atomicTransfer.d.ts +0 -6
  37. package/src/contractSupport/atomicTransfer.d.ts.map +1 -1
  38. package/src/contractSupport/atomicTransfer.js +5 -90
  39. package/src/contractSupport/bondingCurves.js +2 -2
  40. package/src/contractSupport/durability.d.ts +3 -3
  41. package/src/contractSupport/durability.d.ts.map +1 -1
  42. package/src/contractSupport/durability.js +5 -5
  43. package/src/contractSupport/index.d.ts +1 -0
  44. package/src/contractSupport/index.js +1 -0
  45. package/src/contractSupport/prepare-ownable.d.ts +11 -0
  46. package/src/contractSupport/prepare-ownable.d.ts.map +1 -0
  47. package/src/contractSupport/prepare-ownable.js +100 -0
  48. package/src/contractSupport/priceAuthority.d.ts +23 -15
  49. package/src/contractSupport/priceAuthority.d.ts.map +1 -1
  50. package/src/contractSupport/priceAuthority.js +32 -17
  51. package/src/contractSupport/priceAuthorityInitial.d.ts +3 -2
  52. package/src/contractSupport/priceAuthorityInitial.d.ts.map +1 -1
  53. package/src/contractSupport/priceAuthorityInitial.js +5 -2
  54. package/src/contractSupport/priceAuthorityQuoteMint.d.ts +2 -1
  55. package/src/contractSupport/priceAuthorityQuoteMint.d.ts.map +1 -1
  56. package/src/contractSupport/priceAuthorityQuoteMint.js +23 -27
  57. package/src/contractSupport/priceAuthorityTransform.d.ts +14 -12
  58. package/src/contractSupport/priceAuthorityTransform.d.ts.map +1 -1
  59. package/src/contractSupport/priceAuthorityTransform.js +10 -8
  60. package/src/contractSupport/priceQuote.d.ts +7 -5
  61. package/src/contractSupport/priceQuote.d.ts.map +1 -1
  62. package/src/contractSupport/priceQuote.js +5 -1
  63. package/src/contractSupport/ratio.d.ts +2 -2
  64. package/src/contractSupport/ratio.d.ts.map +1 -1
  65. package/src/contractSupport/ratio.js +19 -15
  66. package/src/contractSupport/recorder.d.ts +31 -117
  67. package/src/contractSupport/recorder.d.ts.map +1 -1
  68. package/src/contractSupport/recorder.js +21 -10
  69. package/src/contractSupport/safeMath.d.ts +7 -7
  70. package/src/contractSupport/safeMath.d.ts.map +1 -1
  71. package/src/contractSupport/statistics.d.ts +1 -1
  72. package/src/contractSupport/statistics.d.ts.map +1 -1
  73. package/src/contractSupport/topics.d.ts +1 -1
  74. package/src/contractSupport/topics.d.ts.map +1 -1
  75. package/src/contractSupport/{types.d.ts → types-ambient.d.ts} +4 -4
  76. package/src/contractSupport/types-ambient.d.ts.map +1 -0
  77. package/src/contractSupport/{types.js → types-ambient.js} +1 -1
  78. package/src/contractSupport/zoeHelpers.d.ts +1 -1
  79. package/src/contractSupport/zoeHelpers.d.ts.map +1 -1
  80. package/src/contractSupport/zoeHelpers.js +5 -11
  81. package/src/contracts/auction/firstPriceLogic.d.ts.map +1 -1
  82. package/src/contracts/auction/firstPriceLogic.js +5 -8
  83. package/src/contracts/auction/index.d.ts +10 -10
  84. package/src/contracts/auction/index.d.ts.map +1 -1
  85. package/src/contracts/auction/index.js +2 -1
  86. package/src/contracts/auction/secondPriceLogic.d.ts.map +1 -1
  87. package/src/contracts/auction/secondPriceLogic.js +1 -4
  88. package/src/contracts/automaticRefund.d.ts +1 -1
  89. package/src/contracts/automaticRefund.d.ts.map +1 -1
  90. package/src/contracts/autoswap.d.ts.map +1 -1
  91. package/src/contracts/autoswap.js +8 -9
  92. package/src/contracts/barterExchange.d.ts +1 -1
  93. package/src/contracts/barterExchange.d.ts.map +1 -1
  94. package/src/contracts/barterExchange.js +2 -3
  95. package/src/contracts/callSpread/calculateShares.d.ts +1 -8
  96. package/src/contracts/callSpread/calculateShares.d.ts.map +1 -1
  97. package/src/contracts/callSpread/calculateShares.js +1 -1
  98. package/src/contracts/callSpread/fundedCallSpread.d.ts +4 -0
  99. package/src/contracts/callSpread/fundedCallSpread.d.ts.map +1 -1
  100. package/src/contracts/callSpread/fundedCallSpread.js +6 -4
  101. package/src/contracts/callSpread/payoffHandler.d.ts.map +1 -1
  102. package/src/contracts/callSpread/payoffHandler.js +2 -1
  103. package/src/contracts/callSpread/percent.d.ts +2 -4
  104. package/src/contracts/callSpread/percent.d.ts.map +1 -1
  105. package/src/contracts/callSpread/position.d.ts +2 -2
  106. package/src/contracts/callSpread/pricedCallSpread.d.ts +6 -5
  107. package/src/contracts/callSpread/pricedCallSpread.d.ts.map +1 -1
  108. package/src/contracts/callSpread/pricedCallSpread.js +8 -4
  109. package/src/contracts/callSpread/{types.d.ts → types-ambient.d.ts} +3 -3
  110. package/src/contracts/callSpread/types-ambient.d.ts.map +1 -0
  111. package/src/contracts/coveredCall-durable.d.ts +2 -4
  112. package/src/contracts/coveredCall-durable.d.ts.map +1 -1
  113. package/src/contracts/exported.js +3 -3
  114. package/src/contracts/loan/borrow.d.ts.map +1 -1
  115. package/src/contracts/loan/borrow.js +7 -4
  116. package/src/contracts/loan/close.d.ts.map +1 -1
  117. package/src/contracts/loan/close.js +3 -7
  118. package/src/contracts/loan/index.d.ts +5 -1
  119. package/src/contracts/loan/index.d.ts.map +1 -1
  120. package/src/contracts/loan/index.js +4 -0
  121. package/src/contracts/loan/liquidate.d.ts +1 -12
  122. package/src/contracts/loan/liquidate.d.ts.map +1 -1
  123. package/src/contracts/loan/liquidate.js +4 -2
  124. package/src/contracts/loan/scheduleLiquidation.d.ts.map +1 -1
  125. package/src/contracts/loan/scheduleLiquidation.js +1 -0
  126. package/src/contracts/loan/{types.d.ts → types-ambient.d.ts} +16 -17
  127. package/src/contracts/loan/types-ambient.d.ts.map +1 -0
  128. package/src/contracts/loan/{types.js → types-ambient.js} +11 -18
  129. package/src/contracts/loan/updateDebt.js +1 -1
  130. package/src/contracts/mintAndSellNFT.d.ts.map +1 -1
  131. package/src/contracts/mintPayments.d.ts +14 -6
  132. package/src/contracts/mintPayments.d.ts.map +1 -1
  133. package/src/contracts/mintPayments.js +1 -1
  134. package/src/contracts/oracle.d.ts +25 -3
  135. package/src/contracts/oracle.d.ts.map +1 -1
  136. package/src/contracts/oracle.js +7 -0
  137. package/src/contracts/otcDesk.d.ts +3 -3
  138. package/src/contracts/otcDesk.d.ts.map +1 -1
  139. package/src/contracts/otcDesk.js +1 -1
  140. package/src/contracts/priceAggregator.d.ts +112 -18
  141. package/src/contracts/priceAggregator.d.ts.map +1 -1
  142. package/src/contracts/priceAggregator.js +16 -18
  143. package/src/contracts/priceAggregatorTypes.d.ts +2 -2
  144. package/src/contracts/priceAggregatorTypes.d.ts.map +1 -1
  145. package/src/contracts/scaledPriceAuthority.d.ts +4 -5
  146. package/src/contracts/scaledPriceAuthority.d.ts.map +1 -1
  147. package/src/contracts/scaledPriceAuthority.js +6 -0
  148. package/src/contracts/sellItems.d.ts +2 -2
  149. package/src/contracts/sellItems.d.ts.map +1 -1
  150. package/src/contracts/sellItems.js +2 -3
  151. package/src/contracts/simpleExchange.d.ts +3 -3
  152. package/src/contracts/{types.d.ts → types-ambient.d.ts} +1 -1
  153. package/src/contracts/types-ambient.d.ts.map +1 -0
  154. package/src/handleWarning.d.ts.map +1 -1
  155. package/src/instanceRecordStorage.d.ts +1 -1
  156. package/src/instanceRecordStorage.d.ts.map +1 -1
  157. package/src/internal-types.d.ts +20 -32
  158. package/src/internal-types.d.ts.map +1 -1
  159. package/src/internal-types.js +18 -58
  160. package/src/issuerRecord.d.ts +2 -2
  161. package/src/issuerRecord.d.ts.map +1 -1
  162. package/src/issuerStorage.d.ts +4 -4
  163. package/src/issuerStorage.d.ts.map +1 -1
  164. package/src/issuerStorage.js +12 -28
  165. package/src/makeHandle.d.ts +2 -2
  166. package/src/makeHandle.d.ts.map +1 -1
  167. package/src/makeHandle.js +1 -1
  168. package/src/typeGuards.d.ts +119 -20
  169. package/src/typeGuards.d.ts.map +1 -1
  170. package/src/typeGuards.js +18 -9
  171. package/src/types-ambient.d.ts +41 -0
  172. package/src/types-ambient.d.ts.map +1 -0
  173. package/src/{types.js → types-ambient.js} +6 -14
  174. package/src/zoeService/escrowStorage.d.ts +1 -1
  175. package/src/zoeService/escrowStorage.d.ts.map +1 -1
  176. package/src/zoeService/escrowStorage.js +20 -27
  177. package/src/zoeService/feeMint.d.ts +9 -16
  178. package/src/zoeService/feeMint.d.ts.map +1 -1
  179. package/src/zoeService/feeMint.js +21 -15
  180. package/src/zoeService/installationStorage.d.ts +5 -20
  181. package/src/zoeService/installationStorage.d.ts.map +1 -1
  182. package/src/zoeService/installationStorage.js +11 -7
  183. package/src/zoeService/instanceAdminStorage.d.ts +22 -42
  184. package/src/zoeService/instanceAdminStorage.d.ts.map +1 -1
  185. package/src/zoeService/instanceAdminStorage.js +1 -0
  186. package/src/zoeService/internal-types.d.ts +16 -16
  187. package/src/zoeService/internal-types.d.ts.map +1 -1
  188. package/src/zoeService/internal-types.js +6 -6
  189. package/src/zoeService/invitationQueries.d.ts.map +1 -1
  190. package/src/zoeService/invitationQueries.js +7 -5
  191. package/src/zoeService/makeInvitation.d.ts +3 -3
  192. package/src/zoeService/makeInvitation.d.ts.map +1 -1
  193. package/src/zoeService/makeInvitation.js +25 -21
  194. package/src/zoeService/offer/burnInvitation.d.ts.map +1 -1
  195. package/src/zoeService/offer/offer.d.ts.map +1 -1
  196. package/src/zoeService/offer/offer.js +2 -5
  197. package/src/zoeService/originalZoeSeat.d.ts +34 -0
  198. package/src/zoeService/originalZoeSeat.d.ts.map +1 -0
  199. package/src/zoeService/originalZoeSeat.js +353 -0
  200. package/src/zoeService/startInstance.d.ts +3 -3
  201. package/src/zoeService/startInstance.d.ts.map +1 -1
  202. package/src/zoeService/startInstance.js +17 -11
  203. package/src/zoeService/{types.d.ts → types-ambient.d.ts} +26 -31
  204. package/src/zoeService/types-ambient.d.ts.map +1 -0
  205. package/src/zoeService/{types.js → types-ambient.js} +19 -32
  206. package/src/zoeService/utils.d.ts +54 -58
  207. package/src/zoeService/utils.test-d.d.ts +2 -0
  208. package/src/zoeService/utils.test-d.d.ts.map +1 -0
  209. package/src/zoeService/utils.test-d.ts +33 -0
  210. package/src/zoeService/zoe.d.ts +9 -13
  211. package/src/zoeService/zoe.d.ts.map +1 -1
  212. package/src/zoeService/zoe.js +7 -7
  213. package/src/zoeService/zoeSeat.d.ts +15 -45
  214. package/src/zoeService/zoeSeat.d.ts.map +1 -1
  215. package/src/zoeService/zoeSeat.js +214 -114
  216. package/src/zoeService/zoeStorageManager.d.ts +9 -43
  217. package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
  218. package/src/zoeService/zoeStorageManager.js +8 -6
  219. package/tools/fakePriceAuthority.d.ts +9 -8
  220. package/tools/fakePriceAuthority.d.ts.map +1 -1
  221. package/tools/fakePriceAuthority.js +21 -17
  222. package/tools/fakeVatAdmin.d.ts +10 -10
  223. package/tools/manualPriceAuthority.d.ts +11 -6
  224. package/tools/manualPriceAuthority.d.ts.map +1 -1
  225. package/tools/manualPriceAuthority.js +15 -2
  226. package/tools/manualTimer.d.ts +21 -40
  227. package/tools/manualTimer.d.ts.map +1 -1
  228. package/tools/manualTimer.js +30 -16
  229. package/tools/prepare-test-env.js +1 -1
  230. package/tools/scriptedOracle.d.ts +3 -3
  231. package/tools/scriptedOracle.d.ts.map +1 -1
  232. package/tools/scriptedOracle.js +1 -1
  233. package/tools/scriptedPriceAuthority.d.ts +4 -0
  234. package/tools/scriptedPriceAuthority.d.ts.map +1 -1
  235. package/tools/scriptedPriceAuthority.js +6 -1
  236. package/tools/setup-zoe.d.ts +8 -9
  237. package/tools/setup-zoe.d.ts.map +1 -1
  238. package/tools/setup-zoe.js +16 -1
  239. package/tools/test-utils.d.ts +20 -0
  240. package/tools/test-utils.d.ts.map +1 -0
  241. package/tools/test-utils.js +26 -0
  242. package/tools/types.d.ts +21 -21
  243. package/tools/types.d.ts.map +1 -1
  244. package/tools/types.js +10 -10
  245. package/CHANGELOG.md +0 -1203
  246. package/src/contractFacet/types.d.ts +0 -191
  247. package/src/contractFacet/types.d.ts.map +0 -1
  248. package/src/contractFacet/types.js +0 -256
  249. package/src/contractSupport/types.d.ts.map +0 -1
  250. package/src/contracts/callSpread/types.d.ts.map +0 -1
  251. package/src/contracts/loan/types.d.ts.map +0 -1
  252. package/src/contracts/types.d.ts.map +0 -1
  253. package/src/objArrayConversion.d.ts +0 -5
  254. package/src/objArrayConversion.d.ts.map +0 -1
  255. package/src/objArrayConversion.js +0 -35
  256. package/src/types.d.ts +0 -45
  257. package/src/types.d.ts.map +0 -1
  258. package/src/zoeService/types.d.ts.map +0 -1
  259. package/tools/internal-types.d.ts +0 -12
  260. package/tools/internal-types.d.ts.map +0 -1
  261. package/tools/internal-types.js +0 -14
  262. package/tools/priceAuthorityRegistry.d.ts +0 -20
  263. package/tools/priceAuthorityRegistry.d.ts.map +0 -1
  264. package/tools/priceAuthorityRegistry.js +0 -209
  265. package/tools/types-ambient.d.ts +0 -142
  266. package/tools/types-ambient.d.ts.map +0 -1
  267. package/tools/types-ambient.js +0 -160
  268. /package/src/contracts/callSpread/{types.js → types-ambient.js} +0 -0
  269. /package/src/contracts/{types.js → types-ambient.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  // @jessie-check
2
2
 
3
- /// <reference types="ses"/>
3
+ /// <reference types="ses" />
4
4
 
5
5
  /**
6
6
  * @typedef {object} ZoeService
@@ -28,12 +28,12 @@
28
28
  *
29
29
  * @property {InstallBundle} install
30
30
  * @property {InstallBundleID} installBundleID
31
- * @property {import('./utils').StartInstance} startInstance
31
+ * @property {import('./utils.js').StartInstance} startInstance
32
32
  * @property {Offer} offer
33
- * @property {import('./utils').GetPublicFacet} getPublicFacet
33
+ * @property {import('./utils.js').GetPublicFacet} getPublicFacet
34
34
  * @property {GetIssuers} getIssuers
35
35
  * @property {GetBrands} getBrands
36
- * @property {import('./utils').GetTerms} getTerms
36
+ * @property {import('./utils.js').GetTerms} getTerms
37
37
  * @property {GetOfferFilter} getOfferFilter
38
38
  * @property {GetInstallationForInstance} getInstallationForInstance
39
39
  * @property {GetInstance} getInstance
@@ -49,7 +49,7 @@
49
49
 
50
50
  /**
51
51
  * @callback GetInvitationIssuer
52
- * @returns {Promise<Issuer<'set'>>}
52
+ * @returns {Promise<Issuer<'set', InvitationDetails>>}
53
53
  */
54
54
 
55
55
  /**
@@ -66,19 +66,19 @@
66
66
 
67
67
  /**
68
68
  * @callback GetIssuers
69
- * @param {import('./utils').Instance<any>} instance
69
+ * @param {import('./utils.js').Instance<any>} instance
70
70
  * @returns {Promise<IssuerKeywordRecord>}
71
71
  */
72
72
 
73
73
  /**
74
74
  * @callback GetBrands
75
- * @param {import('./utils').Instance<any>} instance
75
+ * @param {import('./utils.js').Instance<any>} instance
76
76
  * @returns {Promise<BrandKeywordRecord>}
77
77
  */
78
78
 
79
79
  /**
80
80
  * @callback GetOfferFilter
81
- * @param {import('./utils').Instance<any>} instance
81
+ * @param {import('./utils.js').Instance<any>} instance
82
82
  * @returns {string[]}
83
83
  */
84
84
 
@@ -90,14 +90,14 @@
90
90
 
91
91
  /**
92
92
  * @callback GetInstallationForInstance
93
- * @param {import('./utils').Instance<any>} instance
93
+ * @param {import('./utils.js').Instance<any>} instance
94
94
  * @returns {Promise<Installation>}
95
95
  */
96
96
 
97
97
  /**
98
98
  * @callback GetInstance
99
99
  * @param {ERef<Invitation>} invitation
100
- * @returns {Promise<import('./utils').Instance<any>>}
100
+ * @returns {Promise<import('./utils.js').Instance<any>>}
101
101
  */
102
102
 
103
103
  /**
@@ -108,7 +108,7 @@
108
108
 
109
109
  /**
110
110
  * @callback GetInvitationDetails
111
- * @param {ERef<Invitation>} invitation
111
+ * @param {ERef<Invitation<any, any>>} invitation
112
112
  * @returns {Promise<InvitationDetails>}
113
113
  */
114
114
 
@@ -148,7 +148,7 @@
148
148
  */
149
149
 
150
150
  /**
151
- * @typedef {<Args, Result>(
151
+ * @typedef {<Result, Args = undefined>(
152
152
  * invitation: ERef<Invitation<Result, Args>>,
153
153
  * proposal?: Proposal,
154
154
  * paymentKeywordRecord?: PaymentPKeywordRecord,
@@ -232,7 +232,7 @@
232
232
  */
233
233
 
234
234
  /**
235
- * @typedef {Record<Keyword, Amount<any>>} AmountKeywordRecord
235
+ * @typedef {Record<Keyword, import('@agoric/ertp/src/types.js').AnyAmount>} AmountKeywordRecord
236
236
  *
237
237
  * The keys are keywords, and the values are amounts. For example:
238
238
  * { Asset: AmountMath.make(assetBrand, 5n), Price:
@@ -244,15 +244,6 @@
244
244
  * @property {() => void} wake
245
245
  */
246
246
 
247
- /**
248
- * @typedef {import('@agoric/time/src/types').Timestamp} Deadline
249
- */
250
-
251
- /**
252
- * @typedef {object} Timer
253
- * @property {(deadline: Deadline, wakerP: ERef<Waker>) => void} setWakeup
254
- */
255
-
256
247
  /**
257
248
  * @typedef {object} OnDemandExitRule
258
249
  * @property {null} onDemand
@@ -265,7 +256,7 @@
265
256
 
266
257
  /**
267
258
  * @typedef {object} AfterDeadlineExitRule
268
- * @property {{timer:Timer, deadline:Deadline}} afterDeadline
259
+ * @property {{timer: import('@agoric/time').TimerService, deadline: import('@agoric/time').Timestamp}} afterDeadline
269
260
  */
270
261
 
271
262
  /**
@@ -276,15 +267,11 @@
276
267
  * The possible records are:
277
268
  * `{ waived: null }`
278
269
  * `{ onDemand: null }`
279
- * `{ afterDeadline: { timer :Timer<Deadline>, deadline :Deadline } }
280
- */
281
-
282
- /**
283
- * @typedef {import('./utils').Instance<any>} Instance
270
+ * `{ afterDeadline: { timer :Timer<Deadline>, deadline :Deadline } }`
284
271
  */
285
272
 
286
273
  /**
287
- * @typedef {import('@agoric/swingset-vat').VatAdminSvc} VatAdminSvc
274
+ * @typedef {import('./utils.js').Instance<any>} Instance
288
275
  */
289
276
 
290
277
  /**
@@ -304,7 +291,7 @@
304
291
  /**
305
292
  * @typedef {object} InvitationDetails
306
293
  * @property {Installation} installation
307
- * @property {import('./utils').Instance<any>} instance
294
+ * @property {import('./utils.js').Instance<any>} instance
308
295
  * @property {InvitationHandle} handle
309
296
  * @property {string} description
310
297
  * @property {Record<string, any>} [customDetails]
@@ -312,12 +299,12 @@
312
299
 
313
300
  /**
314
301
  * @template [SF=any] contract start function
315
- * @typedef {import('./utils').Installation<SF>} Installation
302
+ * @typedef {import('./utils.js').Installation<SF>} Installation
316
303
  */
317
304
 
318
305
  /**
319
306
  * @template {Installation} I
320
- * @typedef {import('./utils').InstallationStart<I>} InstallationStart
307
+ * @typedef {import('./utils.js').InstallationStart<I>} InstallationStart
321
308
  */
322
309
 
323
310
  /**
@@ -1,84 +1,78 @@
1
- import type { Callable } from '@agoric/internal/src/utils.js';
2
- import { VatUpgradeResults } from '@agoric/swingset-vat';
3
- import { Baggage } from '@agoric/vat-data';
1
+ // Ambient types
2
+ import '../types-ambient.js';
3
+ import '../contractFacet/types-ambient.js';
4
4
 
5
- import type { IssuerKeywordRecord, Payment } from './types.js';
5
+ import type { Issuer } from '@agoric/ertp/src/types.js';
6
+ import type { TagContainer } from '@agoric/internal/src/tagged.js';
7
+ import type { Baggage } from '@agoric/swingset-liveslots';
8
+ import type { VatUpgradeResults } from '@agoric/swingset-vat';
9
+ import type { RemotableObject } from '@endo/marshal';
6
10
 
7
11
  // XXX https://github.com/Agoric/agoric-sdk/issues/4565
8
12
  type SourceBundle = Record<string, any>;
9
13
 
10
- type ContractFacet<T extends {} = {}> = {
11
- readonly [P in keyof T]: T[P] extends Callable ? T[P] : never;
12
- };
13
-
14
- export type AdminFacet = {
15
- // Completion, which is currently any
16
- getVatShutdownPromise: () => Promise<any>;
17
- upgradeContract: (
18
- contractBundleId: string,
19
- newPrivateArgs?: any,
20
- ) => Promise<VatUpgradeResults>;
21
- restartContract: (newPrivateArgs?: any) => Promise<VatUpgradeResults>;
22
- };
23
-
24
14
  /**
25
15
  * Installation of a contract, typed by its start function.
26
16
  */
27
- declare const StartFunction: unique symbol;
28
- export type Installation<SF> = {
29
- getBundle: () => SourceBundle;
30
- getBundleLabel: () => string;
31
- // because TS is structural, without this the generic is ignored
32
- [StartFunction]: SF;
33
- };
34
- export type Instance<SF> = Handle<'Instance'> & {
35
- // because TS is structural, without this the generic is ignored
36
- [StartFunction]: SF;
37
- };
17
+ export type Installation<SF extends ContractStartFunction | unknown> =
18
+ TagContainer<SF> &
19
+ RemotableObject & {
20
+ getBundle: () => SourceBundle;
21
+ getBundleLabel: () => string;
22
+ };
38
23
 
39
- export type InstallationStart<I> = I extends Installation<infer SF>
40
- ? SF
41
- : never;
24
+ export type Instance<SF extends ContractStartFunction | unknown> =
25
+ TagContainer<SF> & RemotableObject & Handle<'Instance'>;
26
+
27
+ export type InstallationStart<I> =
28
+ I extends Installation<infer SF> ? SF : never;
42
29
 
43
- type ContractStartFunction = (
30
+ export type ContractStartFunction = (
44
31
  zcf?: ZCF,
45
32
  privateArgs?: {},
46
33
  baggage?: Baggage,
47
34
  ) => ERef<{ creatorFacet?: {}; publicFacet?: {} }>;
48
35
 
49
- type StartParams<SF> = SF extends ContractStartFunction
50
- ? {
51
- terms: ReturnType<Parameters<SF>[0]['getTerms']>;
52
- privateArgs: Parameters<SF>[1];
53
- }
36
+ export type AdminFacet<SF extends ContractStartFunction> = RemotableObject & {
37
+ // Completion, which is currently any
38
+ getVatShutdownPromise: () => Promise<any>;
39
+ upgradeContract: Parameters<SF>[1] extends undefined
40
+ ? (contractBundleId: string) => Promise<VatUpgradeResults>
41
+ : (
42
+ contractBundleId: string,
43
+ newPrivateArgs: Parameters<SF>[1],
44
+ ) => Promise<VatUpgradeResults>;
45
+ restartContract: Parameters<SF>[1] extends undefined
46
+ ? () => Promise<VatUpgradeResults>
47
+ : (newPrivateArgs: Parameters<SF>[1]) => Promise<VatUpgradeResults>;
48
+ };
49
+
50
+ export type StartParams<SF> = SF extends ContractStartFunction
51
+ ? Parameters<SF>[1] extends undefined
52
+ ? {
53
+ terms: ReturnType<ZcfOf<SF>['getTerms']>;
54
+ }
55
+ : {
56
+ terms: ReturnType<ZcfOf<SF>['getTerms']>;
57
+ privateArgs: Parameters<SF>[1];
58
+ }
54
59
  : never;
55
60
 
56
- type StartResult<S> = S extends (...args: any) => Promise<infer U>
57
- ? U
58
- : ReturnType<S>;
61
+ type StartResult<S extends (...args: any) => any> = Awaited<ReturnType<S>>;
62
+ type ZcfOf<SF extends ContractStartFunction> = Parameters<SF>[0] extends ZCF
63
+ ? Parameters<SF>[0]
64
+ : ZCF<any>;
59
65
 
60
66
  /**
61
67
  * Convenience record for contract start function, merging its result with params.
62
68
  */
63
- export type ContractOf<S> = StartParams<S> & StartResult<S>;
64
-
65
- type StartContractInstance<C> = (
66
- installation: Installation<C>,
67
- issuerKeywordRecord?: IssuerKeywordRecord,
68
- terms?: object,
69
- privateArgs?: object,
70
- ) => Promise<{
71
- creatorFacet: C['creatorFacet'];
72
- publicFacet: C['publicFacet'];
73
- instance: Instance;
74
- creatorInvitation: C['creatorInvitation'];
75
- adminFacet: AdminFacet;
76
- }>;
69
+ export type ContractOf<S extends (...args: any) => any> = StartParams<S> &
70
+ StartResult<S>;
77
71
 
78
72
  /** The result of `startInstance` */
79
- export type StartedInstanceKit<SF> = {
73
+ export type StartedInstanceKit<SF extends ContractStartFunction> = {
80
74
  instance: Instance<SF>;
81
- adminFacet: AdminFacet;
75
+ adminFacet: AdminFacet<SF>;
82
76
  // theses are empty by default. the return type will override
83
77
  creatorFacet: {};
84
78
  publicFacet: {};
@@ -104,15 +98,17 @@ export type StartedInstanceKit<SF> = {
104
98
  * the creator facet, public facet, and creator invitation as defined
105
99
  * by the contract.
106
100
  */
101
+ // XXX SF should extend ContractStartFunction but doing that triggers a bunch of tech debt type errors
107
102
  export type StartInstance = <SF>(
108
103
  installation: Installation<SF> | PromiseLike<Installation<SF>>,
109
- issuerKeywordRecord?: IssuerKeywordRecord,
104
+ issuerKeywordRecord?: Record<Keyword, Issuer<any>>,
110
105
  // 'brands' and 'issuers' need not be passed in; Zoe provides them as StandardTerms
111
106
  terms?: Omit<StartParams<SF>['terms'], 'brands' | 'issuers'>,
112
107
  privateArgs?: Parameters<SF>[1],
113
108
  label?: string,
114
109
  ) => Promise<StartedInstanceKit<SF>>;
115
110
 
111
+ // XXX SF should extend ContractStartFunction but doing that triggers a bunch of tech debt type errors
116
112
  export type GetPublicFacet = <SF>(
117
113
  instance: Instance<SF> | PromiseLike<Instance<SF>>,
118
114
  ) => Promise<StartResult<SF>['publicFacet']>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test-d.d.ts","sourceRoot":"","sources":["utils.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { StartedInstanceKit } from './utils';
2
+
3
+ const someContractStartFn = (
4
+ zcf: ZCF,
5
+ privateArgs: { someNumber: number; someString: string },
6
+ ) => ({});
7
+
8
+ type PsmInstanceKit = StartedInstanceKit<typeof someContractStartFn>;
9
+
10
+ const psmInstanceKit: PsmInstanceKit = null as any;
11
+
12
+ // @ts-expect-error missing privateArgs argument
13
+ void psmInstanceKit.adminFacet.restartContract();
14
+
15
+ const partial = {
16
+ someNumber: 1,
17
+ };
18
+ // @ts-expect-error missing member of privateArgs argument
19
+ void psmInstanceKit.adminFacet.restartContract(partial);
20
+
21
+ // valid privateArgs now with 'marshaller'
22
+ void psmInstanceKit.adminFacet.restartContract({
23
+ ...partial,
24
+ someString: 'str',
25
+ });
26
+
27
+ // @ts-expect-error missing member of privateArgs argument
28
+ void psmInstanceKit.adminFacet.upgradeContract('whatever', partial);
29
+ // valid privateArgs now with 'marshaller'
30
+ void psmInstanceKit.adminFacet.upgradeContract('whatever', {
31
+ ...partial,
32
+ someString: 'str',
33
+ });
@@ -1,4 +1,3 @@
1
- export type Baggage = import('@agoric/vat-data').Baggage;
2
1
  export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
3
2
  /**
4
3
  * Create a durable instance of Zoe.
@@ -8,7 +7,7 @@ export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
8
7
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [options.vatAdminSvc] - The vatAdmin Service, which carries the
9
8
  * power to create a new vat. If it's not available when makeZoe() is called, it
10
9
  * must be provided later using setVatAdminService().
11
- * @param {ShutdownWithFailure} [options.shutdownZoeVat] - a function to
10
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [options.shutdownZoeVat] - a function to
12
11
  * shutdown the Zoe Vat. This function needs to use the vatPowers
13
12
  * available to a vat.
14
13
  * @param {FeeIssuerConfig} [options.feeIssuerConfig]
@@ -16,20 +15,18 @@ export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
16
15
  */
17
16
  export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, feeIssuerConfig, zcfSpec, }: {
18
17
  zoeBaggage: Baggage;
19
- vatAdminSvc?: import("@agoric/swingset-vat").VatAdminSvc | Promise<import("@agoric/swingset-vat").VatAdminSvc> | undefined;
18
+ vatAdminSvc?: VatAdminSvc | Promise<VatAdminSvc> | undefined;
20
19
  shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined;
21
20
  feeIssuerConfig?: FeeIssuerConfig | undefined;
22
21
  zcfSpec?: ZCFSpec | undefined;
23
22
  }): {
24
23
  zoeService: ZoeService;
25
- zoeConfigFacet: {
26
- updateZcfBundleId(bundleId: any): void;
27
- } & import("@endo/eventual-send").RemotableBrand<{}, {
24
+ zoeConfigFacet: import("@endo/exo").Guarded<{
28
25
  updateZcfBundleId(bundleId: any): void;
29
26
  }>;
30
27
  /** @type {FeeMintAccess} */
31
28
  feeMintAccess: FeeMintAccess;
32
- setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
29
+ setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/marshal").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
33
30
  };
34
31
  /**
35
32
  * @deprecated
@@ -41,21 +38,20 @@ export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, fee
41
38
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
42
39
  * power to create a new vat. If it's not available when makeZoe() is called, it
43
40
  * must be provided later using setVatAdminService().
44
- * @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
41
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
45
42
  * shutdown the Zoe Vat. This function needs to use the vatPowers
46
43
  * available to a vat.
47
44
  * @param {FeeIssuerConfig} [feeIssuerConfig]
48
45
  * @param {ZCFSpec} [zcfSpec] - Pointer to the contract facet bundle.
49
46
  */
50
- export function makeZoeKit(vatAdminSvc?: import("@agoric/swingset-vat").VatAdminSvc | Promise<import("@agoric/swingset-vat").VatAdminSvc> | undefined, shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined, feeIssuerConfig?: FeeIssuerConfig | undefined, zcfSpec?: ZCFSpec | undefined): {
47
+ export function makeZoeKit(vatAdminSvc?: VatAdminSvc | Promise<VatAdminSvc> | undefined, shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined, feeIssuerConfig?: FeeIssuerConfig | undefined, zcfSpec?: ZCFSpec | undefined): {
51
48
  zoeService: ZoeService;
52
- zoeConfigFacet: {
53
- updateZcfBundleId(bundleId: any): void;
54
- } & import("@endo/eventual-send").RemotableBrand<{}, {
49
+ zoeConfigFacet: import("@endo/exo").Guarded<{
55
50
  updateZcfBundleId(bundleId: any): void;
56
51
  }>;
57
52
  /** @type {FeeMintAccess} */
58
53
  feeMintAccess: FeeMintAccess;
59
- setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
54
+ setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/marshal").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
60
55
  };
56
+ import type { Baggage } from '@agoric/vat-data';
61
57
  //# sourceMappingURL=zoe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"sBA8Bc,OAAO,kBAAkB,EAAE,OAAO;qBAmQnC,WAAW,wBAAwB,CAAC;AA/PjD;;;;;;;;;;;;;GAaG;AACH;IAV4B,UAAU,EAA3B,OAAO;IACsC,WAAW;IAG1B,cAAc;IAGlB,eAAe;IACvB,OAAO;;;;;;;;IA+MhC,4BAA4B;mBAAjB,aAAa;;EAK3B;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;IAvBI,4BAA4B;mBAAjB,aAAa;;EA8BxB"}
1
+ {"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"qBAiSa,UAAU,CAAC,OAAO,iBAAiB,CAAC;AA/PjD;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;IA6MI,4BAA4B;mBAAjB,aAAa;;EAK3B;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;IAvBI,4BAA4B;mBAAjB,aAAa;;EA8BxB;6BA7PuB,kBAAkB"}
@@ -1,4 +1,5 @@
1
1
  // @jessie-check
2
+ /* eslint @typescript-eslint/no-floating-promises: "warn" */
2
3
 
3
4
  /**
4
5
  * Zoe uses ERTP, the Electronic Rights Transfer Protocol
@@ -9,11 +10,10 @@
9
10
  * currently. When the brand has an assetKind itself, AmountMath will
10
11
  * validate that.
11
12
  */
12
- // Ambient types. https://github.com/Agoric/agoric-sdk/issues/6512
13
- import '@agoric/ertp/exported.js';
14
- import '@agoric/store/exported.js';
15
13
 
16
- import '../internal-types.js';
14
+ /// <reference types="@agoric/internal/exported" />
15
+ /// <reference types="@agoric/notifier/exported.js" />
16
+ /// <reference path="../internal-types.js" />
17
17
 
18
18
  import { E } from '@endo/eventual-send';
19
19
  import { Far } from '@endo/marshal';
@@ -28,7 +28,7 @@ import { getZcfBundleCap } from './createZCFVat.js';
28
28
  import { defaultFeeIssuerConfig, prepareFeeMint } from './feeMint.js';
29
29
  import { ZoeServiceI } from '../typeGuards.js';
30
30
 
31
- /** @typedef {import('@agoric/vat-data').Baggage} Baggage */
31
+ /** @import {Baggage} from '@agoric/vat-data' */
32
32
 
33
33
  const { Fail } = assert;
34
34
 
@@ -40,7 +40,7 @@ const { Fail } = assert;
40
40
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [options.vatAdminSvc] - The vatAdmin Service, which carries the
41
41
  * power to create a new vat. If it's not available when makeZoe() is called, it
42
42
  * must be provided later using setVatAdminService().
43
- * @param {ShutdownWithFailure} [options.shutdownZoeVat] - a function to
43
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [options.shutdownZoeVat] - a function to
44
44
  * shutdown the Zoe Vat. This function needs to use the vatPowers
45
45
  * available to a vat.
46
46
  * @param {FeeIssuerConfig} [options.feeIssuerConfig]
@@ -268,7 +268,7 @@ const makeDurableZoeKit = ({
268
268
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
269
269
  * power to create a new vat. If it's not available when makeZoe() is called, it
270
270
  * must be provided later using setVatAdminService().
271
- * @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
271
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
272
272
  * shutdown the Zoe Vat. This function needs to use the vatPowers
273
273
  * available to a vat.
274
274
  * @param {FeeIssuerConfig} [feeIssuerConfig]
@@ -1,56 +1,26 @@
1
- export function makeZoeSeatAdminFactory(baggage: MapStore<string, unknown>): (initialAllocation: AmountKeywordRecord, proposal: ProposalRecord, instanceAdminHelper: InstanceAdminHelper, withdrawFacet: WithdrawFacet, exitObj?: ERef<ExitObj> | undefined, offerResultIsUndefined?: boolean | undefined) => {
2
- zoeSeatAdmin: {
3
- replaceAllocation(replacementAllocation: any): void;
4
- exit(completion: any): void;
5
- fail(reason: any): void;
6
- /** @param {HandleOfferResult} result */
7
- resolveExitAndResult({ offerResultPromise, exitObj }: HandleOfferResult): void;
8
- getExitSubscriber(): {
9
- subscribeAfter(publishCount?: bigint): Promise<any>;
10
- getUpdateSince(updateCount: any): any;
11
- };
12
- finalPayouts(payments: any): Promise<void>;
13
- };
14
- userSeat: {
15
- getProposal(): Promise<ProposalRecord>;
16
- getPayouts(): Promise<{}>;
1
+ export function makeZoeSeatAdminFactory(baggage: import("@agoric/vat-data").Baggage): (initialAllocation: Allocation, proposal: ProposalRecord, instanceAdminHelper: InstanceAdminHelper, withdrawFacet: WithdrawFacet, exitObj?: globalThis.ERef<ExitObj> | undefined, offerResultIsUndefined?: boolean | undefined) => {
2
+ userSeat: import("@endo/exo").Guarded<{
3
+ getProposal(): Promise<any>;
4
+ getPayouts(): Promise<any>;
17
5
  getPayout(keyword: any): Promise<any>;
18
6
  getOfferResult(): Promise<any>;
19
- hasExited(): Promise<boolean>;
20
- tryExit(): Promise<void>;
21
- numWantsSatisfied(): Promise<0 | 1>;
22
- getExitSubscriber(): {
23
- subscribeAfter(publishCount?: bigint): Promise<any>;
24
- getUpdateSince(updateCount: any): any;
25
- };
26
- getFinalAllocation(): Promise<AmountKeywordRecord>;
27
- };
28
- } & import("@endo/eventual-send").RemotableBrand<{}, {
29
- zoeSeatAdmin: {
7
+ hasExited(): Promise<any>;
8
+ tryExit(): Promise<any>;
9
+ numWantsSatisfied(): Promise<any>;
10
+ getExitSubscriber(): any;
11
+ getFinalAllocation(): any;
12
+ }>;
13
+ zoeSeatAdmin: import("@endo/exo").Guarded<{
30
14
  replaceAllocation(replacementAllocation: any): void;
31
15
  exit(completion: any): void;
32
16
  fail(reason: any): void;
33
17
  /** @param {HandleOfferResult} result */
34
18
  resolveExitAndResult({ offerResultPromise, exitObj }: HandleOfferResult): void;
35
- getExitSubscriber(): {
19
+ getExitSubscriber(): import("@endo/exo").Guarded<{
36
20
  subscribeAfter(publishCount?: bigint): Promise<any>;
37
21
  getUpdateSince(updateCount: any): any;
38
- };
22
+ }>;
39
23
  finalPayouts(payments: any): Promise<void>;
40
- };
41
- userSeat: {
42
- getProposal(): Promise<ProposalRecord>;
43
- getPayouts(): Promise<{}>;
44
- getPayout(keyword: any): Promise<any>;
45
- getOfferResult(): Promise<any>;
46
- hasExited(): Promise<boolean>;
47
- tryExit(): Promise<void>;
48
- numWantsSatisfied(): Promise<0 | 1>;
49
- getExitSubscriber(): {
50
- subscribeAfter(publishCount?: bigint): Promise<any>;
51
- getUpdateSince(updateCount: any): any;
52
- };
53
- getFinalAllocation(): Promise<AmountKeywordRecord>;
54
- };
55
- }>;
24
+ }>;
25
+ };
56
26
  //# sourceMappingURL=zoeSeat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoeSeat.d.ts","sourceRoot":"","sources":["zoeSeat.js"],"names":[],"mappings":"AAiEO;;;;;QAgIC,wCAAwC;8DAA5B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7B,wCAAwC;8DAA5B,iBAAiB;;;;;;;;;;;;;;;;;;;;;GAmJpC"}
1
+ {"version":3,"file":"zoeSeat.d.ts","sourceRoot":"","sources":["zoeSeat.js"],"names":[],"mappings":"AAoDO,iDAFI,OAAO,kBAAkB,EAAE,OAAO,uBAwWhC,UAAU,YACV,cAAc,uBACd,mBAAmB,iBACnB,aAAa;;;;;;;;;;;;;;;;QAzIlB,wCAAwC;8DAA5B,iBAAiB;;;;;;;EAoKpC"}