@agoric/zoe 0.26.2 → 0.26.3-calypso-dev-84eb287.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 (274) hide show
  1. package/README.md +7 -7
  2. package/bundles/bundle-contractFacet-js-meta.json +628 -314
  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 -59
  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/evalContractCode.d.ts.map +1 -1
  11. package/src/contractFacet/evalContractCode.js +2 -2
  12. package/src/contractFacet/exit.d.ts.map +1 -1
  13. package/src/contractFacet/exit.js +1 -0
  14. package/src/contractFacet/internal-types.d.ts +2 -2
  15. package/src/contractFacet/internal-types.d.ts.map +1 -1
  16. package/src/contractFacet/internal-types.js +1 -1
  17. package/src/contractFacet/offerHandlerStorage.d.ts +4 -1
  18. package/src/contractFacet/offerHandlerStorage.d.ts.map +1 -1
  19. package/src/contractFacet/offerHandlerStorage.js +11 -3
  20. package/src/contractFacet/reallocate.d.ts +3 -0
  21. package/src/contractFacet/reallocate.d.ts.map +1 -0
  22. package/src/contractFacet/reallocate.js +94 -0
  23. package/src/contractFacet/rightsConservation.d.ts.map +1 -1
  24. package/src/contractFacet/rightsConservation.js +3 -0
  25. package/src/contractFacet/typeGuards.d.ts +8 -0
  26. package/src/contractFacet/typeGuards.d.ts.map +1 -0
  27. package/src/contractFacet/typeGuards.js +25 -0
  28. package/src/contractFacet/types-ambient.d.ts +271 -0
  29. package/src/contractFacet/types-ambient.js +1 -0
  30. package/src/contractFacet/vatRoot.d.ts +3 -3
  31. package/src/contractFacet/vatRoot.d.ts.map +1 -1
  32. package/src/contractFacet/zcfMint.d.ts +4 -2
  33. package/src/contractFacet/zcfMint.d.ts.map +1 -1
  34. package/src/contractFacet/zcfMint.js +7 -7
  35. package/src/contractFacet/zcfSeat.d.ts +4 -2
  36. package/src/contractFacet/zcfSeat.d.ts.map +1 -1
  37. package/src/contractFacet/zcfSeat.js +130 -7
  38. package/src/contractFacet/zcfZygote.d.ts +1 -2
  39. package/src/contractFacet/zcfZygote.d.ts.map +1 -1
  40. package/src/contractFacet/zcfZygote.js +102 -48
  41. package/src/contractSupport/atomicTransfer.d.ts +0 -6
  42. package/src/contractSupport/atomicTransfer.d.ts.map +1 -1
  43. package/src/contractSupport/atomicTransfer.js +5 -90
  44. package/src/contractSupport/bondingCurves.js +2 -2
  45. package/src/contractSupport/durability.d.ts +3 -3
  46. package/src/contractSupport/durability.d.ts.map +1 -1
  47. package/src/contractSupport/durability.js +5 -5
  48. package/src/contractSupport/index.d.ts +1 -0
  49. package/src/contractSupport/index.js +1 -0
  50. package/src/contractSupport/prepare-ownable.d.ts +11 -0
  51. package/src/contractSupport/prepare-ownable.d.ts.map +1 -0
  52. package/src/contractSupport/prepare-ownable.js +100 -0
  53. package/src/contractSupport/priceAuthority.d.ts +23 -15
  54. package/src/contractSupport/priceAuthority.d.ts.map +1 -1
  55. package/src/contractSupport/priceAuthority.js +33 -18
  56. package/src/contractSupport/priceAuthorityInitial.d.ts +3 -2
  57. package/src/contractSupport/priceAuthorityInitial.d.ts.map +1 -1
  58. package/src/contractSupport/priceAuthorityInitial.js +6 -3
  59. package/src/contractSupport/priceAuthorityQuoteMint.d.ts +2 -1
  60. package/src/contractSupport/priceAuthorityQuoteMint.d.ts.map +1 -1
  61. package/src/contractSupport/priceAuthorityQuoteMint.js +23 -27
  62. package/src/contractSupport/priceAuthorityTransform.d.ts +13 -11
  63. package/src/contractSupport/priceAuthorityTransform.d.ts.map +1 -1
  64. package/src/contractSupport/priceAuthorityTransform.js +10 -8
  65. package/src/contractSupport/priceQuote.d.ts +7 -5
  66. package/src/contractSupport/priceQuote.d.ts.map +1 -1
  67. package/src/contractSupport/priceQuote.js +5 -1
  68. package/src/contractSupport/ratio.d.ts +2 -2
  69. package/src/contractSupport/ratio.d.ts.map +1 -1
  70. package/src/contractSupport/ratio.js +19 -15
  71. package/src/contractSupport/recorder.d.ts +33 -119
  72. package/src/contractSupport/recorder.d.ts.map +1 -1
  73. package/src/contractSupport/recorder.js +21 -10
  74. package/src/contractSupport/safeMath.d.ts +7 -7
  75. package/src/contractSupport/safeMath.d.ts.map +1 -1
  76. package/src/contractSupport/statistics.d.ts +1 -1
  77. package/src/contractSupport/statistics.d.ts.map +1 -1
  78. package/src/contractSupport/topics.d.ts +1 -1
  79. package/src/contractSupport/topics.d.ts.map +1 -1
  80. package/src/contractSupport/{types.d.ts → types-ambient.d.ts} +4 -4
  81. package/src/contractSupport/types-ambient.d.ts.map +1 -0
  82. package/src/contractSupport/{types.js → types-ambient.js} +1 -1
  83. package/src/contractSupport/zoeHelpers.d.ts +1 -1
  84. package/src/contractSupport/zoeHelpers.d.ts.map +1 -1
  85. package/src/contractSupport/zoeHelpers.js +6 -12
  86. package/src/contracts/auction/firstPriceLogic.d.ts.map +1 -1
  87. package/src/contracts/auction/firstPriceLogic.js +5 -8
  88. package/src/contracts/auction/index.d.ts +10 -10
  89. package/src/contracts/auction/index.d.ts.map +1 -1
  90. package/src/contracts/auction/index.js +3 -3
  91. package/src/contracts/auction/secondPriceLogic.d.ts.map +1 -1
  92. package/src/contracts/auction/secondPriceLogic.js +1 -4
  93. package/src/contracts/automaticRefund.d.ts +1 -1
  94. package/src/contracts/automaticRefund.d.ts.map +1 -1
  95. package/src/contracts/autoswap.d.ts.map +1 -1
  96. package/src/contracts/autoswap.js +8 -9
  97. package/src/contracts/barterExchange.d.ts +1 -1
  98. package/src/contracts/barterExchange.d.ts.map +1 -1
  99. package/src/contracts/barterExchange.js +2 -3
  100. package/src/contracts/callSpread/calculateShares.d.ts +1 -8
  101. package/src/contracts/callSpread/calculateShares.d.ts.map +1 -1
  102. package/src/contracts/callSpread/calculateShares.js +1 -1
  103. package/src/contracts/callSpread/fundedCallSpread.d.ts +4 -0
  104. package/src/contracts/callSpread/fundedCallSpread.d.ts.map +1 -1
  105. package/src/contracts/callSpread/fundedCallSpread.js +6 -4
  106. package/src/contracts/callSpread/payoffHandler.d.ts.map +1 -1
  107. package/src/contracts/callSpread/payoffHandler.js +3 -2
  108. package/src/contracts/callSpread/percent.d.ts +2 -4
  109. package/src/contracts/callSpread/percent.d.ts.map +1 -1
  110. package/src/contracts/callSpread/position.d.ts +2 -2
  111. package/src/contracts/callSpread/pricedCallSpread.d.ts +6 -5
  112. package/src/contracts/callSpread/pricedCallSpread.d.ts.map +1 -1
  113. package/src/contracts/callSpread/pricedCallSpread.js +9 -5
  114. package/src/contracts/callSpread/{types.d.ts → types-ambient.d.ts} +3 -3
  115. package/src/contracts/callSpread/types-ambient.d.ts.map +1 -0
  116. package/src/contracts/coveredCall-durable.d.ts +2 -4
  117. package/src/contracts/coveredCall-durable.d.ts.map +1 -1
  118. package/src/contracts/exported.js +3 -3
  119. package/src/contracts/loan/borrow.d.ts.map +1 -1
  120. package/src/contracts/loan/borrow.js +7 -4
  121. package/src/contracts/loan/close.d.ts.map +1 -1
  122. package/src/contracts/loan/close.js +3 -7
  123. package/src/contracts/loan/index.d.ts +5 -1
  124. package/src/contracts/loan/index.d.ts.map +1 -1
  125. package/src/contracts/loan/index.js +4 -0
  126. package/src/contracts/loan/liquidate.d.ts +1 -12
  127. package/src/contracts/loan/liquidate.d.ts.map +1 -1
  128. package/src/contracts/loan/liquidate.js +4 -2
  129. package/src/contracts/loan/scheduleLiquidation.d.ts.map +1 -1
  130. package/src/contracts/loan/scheduleLiquidation.js +2 -1
  131. package/src/contracts/loan/{types.d.ts → types-ambient.d.ts} +16 -17
  132. package/src/contracts/loan/types-ambient.d.ts.map +1 -0
  133. package/src/contracts/loan/{types.js → types-ambient.js} +11 -18
  134. package/src/contracts/loan/updateDebt.js +1 -1
  135. package/src/contracts/mintAndSellNFT.d.ts.map +1 -1
  136. package/src/contracts/mintPayments.d.ts +14 -6
  137. package/src/contracts/mintPayments.d.ts.map +1 -1
  138. package/src/contracts/mintPayments.js +1 -1
  139. package/src/contracts/oracle.d.ts +6 -2
  140. package/src/contracts/oracle.d.ts.map +1 -1
  141. package/src/contracts/oracle.js +10 -3
  142. package/src/contracts/otcDesk.d.ts +3 -3
  143. package/src/contracts/otcDesk.d.ts.map +1 -1
  144. package/src/contracts/otcDesk.js +1 -1
  145. package/src/contracts/priceAggregator.d.ts +25 -17
  146. package/src/contracts/priceAggregator.d.ts.map +1 -1
  147. package/src/contracts/priceAggregator.js +33 -32
  148. package/src/contracts/priceAggregatorTypes.d.ts +2 -2
  149. package/src/contracts/priceAggregatorTypes.d.ts.map +1 -1
  150. package/src/contracts/scaledPriceAuthority.d.ts +3 -4
  151. package/src/contracts/scaledPriceAuthority.d.ts.map +1 -1
  152. package/src/contracts/scaledPriceAuthority.js +6 -0
  153. package/src/contracts/sellItems.d.ts +2 -2
  154. package/src/contracts/sellItems.d.ts.map +1 -1
  155. package/src/contracts/sellItems.js +3 -4
  156. package/src/contracts/simpleExchange.d.ts +3 -3
  157. package/src/contracts/{types.d.ts → types-ambient.d.ts} +1 -1
  158. package/src/contracts/types-ambient.d.ts.map +1 -0
  159. package/src/handleWarning.d.ts.map +1 -1
  160. package/src/instanceRecordStorage.d.ts +1 -1
  161. package/src/instanceRecordStorage.d.ts.map +1 -1
  162. package/src/internal-types.d.ts +21 -32
  163. package/src/internal-types.d.ts.map +1 -1
  164. package/src/internal-types.js +19 -58
  165. package/src/issuerRecord.d.ts +1 -1
  166. package/src/issuerRecord.d.ts.map +1 -1
  167. package/src/issuerStorage.d.ts +3 -3
  168. package/src/issuerStorage.d.ts.map +1 -1
  169. package/src/issuerStorage.js +12 -28
  170. package/src/makeHandle.d.ts +2 -2
  171. package/src/makeHandle.d.ts.map +1 -1
  172. package/src/makeHandle.js +1 -1
  173. package/src/typeGuards.d.ts +114 -20
  174. package/src/typeGuards.d.ts.map +1 -1
  175. package/src/typeGuards.js +19 -20
  176. package/src/types-ambient.d.ts +41 -0
  177. package/src/types-ambient.d.ts.map +1 -0
  178. package/src/{types.js → types-ambient.js} +7 -15
  179. package/src/zoeService/escrowStorage.d.ts +1 -1
  180. package/src/zoeService/escrowStorage.d.ts.map +1 -1
  181. package/src/zoeService/escrowStorage.js +20 -27
  182. package/src/zoeService/feeMint.d.ts +9 -16
  183. package/src/zoeService/feeMint.d.ts.map +1 -1
  184. package/src/zoeService/feeMint.js +21 -15
  185. package/src/zoeService/installationStorage.d.ts +5 -20
  186. package/src/zoeService/installationStorage.d.ts.map +1 -1
  187. package/src/zoeService/installationStorage.js +11 -7
  188. package/src/zoeService/instanceAdminStorage.d.ts +22 -42
  189. package/src/zoeService/instanceAdminStorage.d.ts.map +1 -1
  190. package/src/zoeService/instanceAdminStorage.js +2 -1
  191. package/src/zoeService/internal-types.d.ts +12 -12
  192. package/src/zoeService/internal-types.d.ts.map +1 -1
  193. package/src/zoeService/internal-types.js +6 -6
  194. package/src/zoeService/invitationQueries.d.ts.map +1 -1
  195. package/src/zoeService/invitationQueries.js +7 -5
  196. package/src/zoeService/makeInvitation.d.ts +3 -3
  197. package/src/zoeService/makeInvitation.d.ts.map +1 -1
  198. package/src/zoeService/makeInvitation.js +25 -21
  199. package/src/zoeService/offer/burnInvitation.d.ts.map +1 -1
  200. package/src/zoeService/offer/offer.d.ts.map +1 -1
  201. package/src/zoeService/offer/offer.js +2 -5
  202. package/src/zoeService/originalZoeSeat.d.ts +34 -0
  203. package/src/zoeService/originalZoeSeat.d.ts.map +1 -0
  204. package/src/zoeService/originalZoeSeat.js +353 -0
  205. package/src/zoeService/startInstance.d.ts +3 -3
  206. package/src/zoeService/startInstance.d.ts.map +1 -1
  207. package/src/zoeService/startInstance.js +82 -37
  208. package/src/zoeService/{types.d.ts → types-ambient.d.ts} +23 -28
  209. package/src/zoeService/types-ambient.d.ts.map +1 -0
  210. package/src/zoeService/{types.js → types-ambient.js} +19 -32
  211. package/src/zoeService/utils.d.ts +57 -58
  212. package/src/zoeService/utils.test-d.d.ts +2 -0
  213. package/src/zoeService/utils.test-d.d.ts.map +1 -0
  214. package/src/zoeService/utils.test-d.ts +33 -0
  215. package/src/zoeService/zoe.d.ts +14 -8
  216. package/src/zoeService/zoe.d.ts.map +1 -1
  217. package/src/zoeService/zoe.js +39 -11
  218. package/src/zoeService/zoeSeat.d.ts +15 -45
  219. package/src/zoeService/zoeSeat.d.ts.map +1 -1
  220. package/src/zoeService/zoeSeat.js +215 -115
  221. package/src/zoeService/zoeStorageManager.d.ts +13 -47
  222. package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
  223. package/src/zoeService/zoeStorageManager.js +13 -6
  224. package/tools/fakePriceAuthority.d.ts +9 -8
  225. package/tools/fakePriceAuthority.d.ts.map +1 -1
  226. package/tools/fakePriceAuthority.js +21 -17
  227. package/tools/fakeVatAdmin.d.ts +10 -10
  228. package/tools/manualPriceAuthority.d.ts +11 -6
  229. package/tools/manualPriceAuthority.d.ts.map +1 -1
  230. package/tools/manualPriceAuthority.js +16 -3
  231. package/tools/manualTimer.d.ts +17 -40
  232. package/tools/manualTimer.d.ts.map +1 -1
  233. package/tools/manualTimer.js +30 -16
  234. package/tools/prepare-test-env.js +1 -1
  235. package/tools/scriptedOracle.d.ts +3 -3
  236. package/tools/scriptedOracle.d.ts.map +1 -1
  237. package/tools/scriptedOracle.js +1 -1
  238. package/tools/scriptedPriceAuthority.d.ts +4 -0
  239. package/tools/scriptedPriceAuthority.d.ts.map +1 -1
  240. package/tools/scriptedPriceAuthority.js +8 -3
  241. package/tools/setup-zoe.d.ts +10 -6
  242. package/tools/setup-zoe.d.ts.map +1 -1
  243. package/tools/setup-zoe.js +16 -1
  244. package/tools/test-utils.d.ts +20 -0
  245. package/tools/test-utils.d.ts.map +1 -0
  246. package/tools/test-utils.js +26 -0
  247. package/tools/types.d.ts +21 -21
  248. package/tools/types.d.ts.map +1 -1
  249. package/tools/types.js +10 -10
  250. package/CHANGELOG.md +0 -1171
  251. package/src/contractFacet/types.d.ts +0 -191
  252. package/src/contractFacet/types.d.ts.map +0 -1
  253. package/src/contractFacet/types.js +0 -256
  254. package/src/contractSupport/types.d.ts.map +0 -1
  255. package/src/contracts/callSpread/types.d.ts.map +0 -1
  256. package/src/contracts/loan/types.d.ts.map +0 -1
  257. package/src/contracts/types.d.ts.map +0 -1
  258. package/src/objArrayConversion.d.ts +0 -5
  259. package/src/objArrayConversion.d.ts.map +0 -1
  260. package/src/objArrayConversion.js +0 -35
  261. package/src/types.d.ts +0 -45
  262. package/src/types.d.ts.map +0 -1
  263. package/src/zoeService/types.d.ts.map +0 -1
  264. package/tools/internal-types.d.ts +0 -12
  265. package/tools/internal-types.d.ts.map +0 -1
  266. package/tools/internal-types.js +0 -14
  267. package/tools/priceAuthorityRegistry.d.ts +0 -20
  268. package/tools/priceAuthorityRegistry.d.ts.map +0 -1
  269. package/tools/priceAuthorityRegistry.js +0 -209
  270. package/tools/types-ambient.d.ts +0 -142
  271. package/tools/types-ambient.d.ts.map +0 -1
  272. package/tools/types-ambient.js +0 -160
  273. /package/src/contracts/callSpread/{types.js → types-ambient.js} +0 -0
  274. /package/src/contracts/{types.js → types-ambient.js} +0 -0
@@ -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,17 +98,22 @@ 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'>,
107
+ // @ts-expect-error XXX
112
108
  privateArgs?: Parameters<SF>[1],
113
109
  label?: string,
110
+ // @ts-expect-error XXX
114
111
  ) => Promise<StartedInstanceKit<SF>>;
115
112
 
113
+ // XXX SF should extend ContractStartFunction but doing that triggers a bunch of tech debt type errors
116
114
  export type GetPublicFacet = <SF>(
117
115
  instance: Instance<SF> | PromiseLike<Instance<SF>>,
116
+ // @ts-expect-error XXX
118
117
  ) => Promise<StartResult<SF>['publicFacet']>;
119
118
 
120
119
  export type GetTerms = <SF>(instance: Instance<SF>) => Promise<
@@ -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,14 +1,13 @@
1
- export type Baggage = import('@agoric/vat-data').Baggage;
2
1
  export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
3
2
  /**
4
- * Create an durable instance of Zoe.
3
+ * Create a durable instance of Zoe.
5
4
  *
6
5
  * @param {object} options
7
6
  * @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
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,15 +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;
24
+ zoeConfigFacet: import("@endo/exo").Guarded<{
25
+ updateZcfBundleId(bundleId: any): void;
26
+ }>;
25
27
  /** @type {FeeMintAccess} */
26
28
  feeMintAccess: FeeMintAccess;
27
- 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>;
28
30
  };
29
31
  /**
30
32
  * @deprecated
@@ -36,16 +38,20 @@ export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, fee
36
38
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
37
39
  * power to create a new vat. If it's not available when makeZoe() is called, it
38
40
  * must be provided later using setVatAdminService().
39
- * @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
41
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
40
42
  * shutdown the Zoe Vat. This function needs to use the vatPowers
41
43
  * available to a vat.
42
44
  * @param {FeeIssuerConfig} [feeIssuerConfig]
43
45
  * @param {ZCFSpec} [zcfSpec] - Pointer to the contract facet bundle.
44
46
  */
45
- 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): {
46
48
  zoeService: ZoeService;
49
+ zoeConfigFacet: import("@endo/exo").Guarded<{
50
+ updateZcfBundleId(bundleId: any): void;
51
+ }>;
47
52
  /** @type {FeeMintAccess} */
48
53
  feeMintAccess: FeeMintAccess;
49
- 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>;
50
55
  };
56
+ import type { Baggage } from '@agoric/vat-data';
51
57
  //# sourceMappingURL=zoe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"sBA6Bc,OAAO,kBAAkB,EAAE,OAAO;qBAwOnC,WAAW,wBAAwB,CAAC;AApOjD;;;;;;;;;;;;;GAaG;AACH;IAV4B,UAAU,EAA3B,OAAO;IACsC,WAAW;IAG1B,cAAc;IAGlB,eAAe;IACvB,OAAO;;;IAoLhC,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,0GAVG;IAAyB,UAAU,EAA3B,OAAO;IACsC,WAAW;IAGK,cAAc;IAGjD,eAAe;IACvB,OAAO;CACnC;;;;;IA8MG,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,15 +10,15 @@
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';
20
20
  import { makeScalarBigMapStore, prepareExo } from '@agoric/vat-data';
21
+ import { M } from '@agoric/store';
21
22
 
22
23
  import { makeZoeStorageManager } from './zoeStorageManager.js';
23
24
  import { makeStartInstance } from './startInstance.js';
@@ -27,19 +28,19 @@ import { getZcfBundleCap } from './createZCFVat.js';
27
28
  import { defaultFeeIssuerConfig, prepareFeeMint } from './feeMint.js';
28
29
  import { ZoeServiceI } from '../typeGuards.js';
29
30
 
30
- /** @typedef {import('@agoric/vat-data').Baggage} Baggage */
31
+ /** @import {Baggage} from '@agoric/vat-data' */
31
32
 
32
33
  const { Fail } = assert;
33
34
 
34
35
  /**
35
- * Create an durable instance of Zoe.
36
+ * Create a durable instance of Zoe.
36
37
  *
37
38
  * @param {object} options
38
39
  * @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
39
40
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [options.vatAdminSvc] - The vatAdmin Service, which carries the
40
41
  * power to create a new vat. If it's not available when makeZoe() is called, it
41
42
  * must be provided later using setVatAdminService().
42
- * @param {ShutdownWithFailure} [options.shutdownZoeVat] - a function to
43
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [options.shutdownZoeVat] - a function to
43
44
  * shutdown the Zoe Vat. This function needs to use the vatPowers
44
45
  * available to a vat.
45
46
  * @param {FeeIssuerConfig} [options.feeIssuerConfig]
@@ -52,16 +53,22 @@ const makeDurableZoeKit = ({
52
53
  feeIssuerConfig = defaultFeeIssuerConfig,
53
54
  zcfSpec = { name: 'zcf' },
54
55
  }) => {
56
+ /** @type {BundleCap} */
55
57
  let zcfBundleCap;
56
58
 
57
59
  const saveBundleCap = () => {
58
- E.when(
60
+ void E.when(
59
61
  Promise.all([vatAdminSvc, getZcfBundleCap(zcfSpec, vatAdminSvc)]),
60
62
  ([vatAdminService, bundleCap]) => {
61
63
  zcfBundleCap = bundleCap;
62
64
 
63
- zoeBaggage.init('vatAdminSvc', vatAdminService);
64
- zoeBaggage.init('zcfBundleCap', zcfBundleCap);
65
+ if (!zoeBaggage.has('vatAdminSvc')) {
66
+ zoeBaggage.init('vatAdminSvc', vatAdminService);
67
+ zoeBaggage.init('zcfBundleCap', zcfBundleCap);
68
+ } else {
69
+ zoeBaggage.set('vatAdminSvc', vatAdminService);
70
+ zoeBaggage.set('zcfBundleCap', zcfBundleCap);
71
+ }
65
72
  },
66
73
  );
67
74
  };
@@ -168,6 +175,26 @@ const makeDurableZoeKit = ({
168
175
  });
169
176
  };
170
177
 
178
+ const ZoeConfigI = M.interface('ZoeConfigFacet', {
179
+ updateZcfBundleId: M.call(M.string()).returns(),
180
+ });
181
+
182
+ const zoeConfigFacet = prepareExo(zoeBaggage, 'ZoeConfigFacet', ZoeConfigI, {
183
+ updateZcfBundleId(bundleId) {
184
+ void E.when(
185
+ getZcfBundleCap({ id: bundleId }, vatAdminSvc),
186
+ bundleCap => {
187
+ zcfBundleCap = bundleCap;
188
+ zoeBaggage.set('zcfBundleCap', zcfBundleCap);
189
+ },
190
+ e => {
191
+ console.error('🚨 unable to update ZCF Bundle: ', e);
192
+ throw e;
193
+ },
194
+ );
195
+ },
196
+ });
197
+
171
198
  /** @type {ZoeService} */
172
199
  const zoeService = prepareExo(zoeBaggage, 'ZoeService', ZoeServiceI, {
173
200
  install(bundleId, bundleLabel) {
@@ -223,6 +250,7 @@ const makeDurableZoeKit = ({
223
250
 
224
251
  return harden({
225
252
  zoeService,
253
+ zoeConfigFacet,
226
254
  /** @type {FeeMintAccess} */
227
255
  // @ts-expect-error cast
228
256
  feeMintAccess: feeMintKit.feeMintAccess,
@@ -240,7 +268,7 @@ const makeDurableZoeKit = ({
240
268
  * @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
241
269
  * power to create a new vat. If it's not available when makeZoe() is called, it
242
270
  * must be provided later using setVatAdminService().
243
- * @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
271
+ * @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
244
272
  * shutdown the Zoe Vat. This function needs to use the vatPowers
245
273
  * available to a vat.
246
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"}