@agoric/inter-protocol 0.16.1 → 0.16.2-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 (192) hide show
  1. package/README.md +6 -6
  2. package/package.json +41 -36
  3. package/scripts/build-bundles.js +5 -21
  4. package/src/auction/auctionBook.d.ts +147 -0
  5. package/src/auction/auctionBook.d.ts.map +1 -0
  6. package/src/auction/auctionBook.js +135 -103
  7. package/src/auction/auctioneer.d.ts +69 -0
  8. package/src/auction/auctioneer.d.ts.map +1 -0
  9. package/src/auction/auctioneer.js +63 -49
  10. package/src/auction/offerBook.d.ts +45 -0
  11. package/src/auction/offerBook.d.ts.map +1 -0
  12. package/src/auction/offerBook.js +13 -12
  13. package/src/auction/params.d.ts +144 -0
  14. package/src/auction/params.d.ts.map +1 -0
  15. package/src/auction/params.js +10 -9
  16. package/src/auction/scheduleMath.d.ts +5 -0
  17. package/src/auction/scheduleMath.d.ts.map +1 -0
  18. package/src/auction/scheduleMath.js +17 -15
  19. package/src/auction/scheduler.d.ts +49 -0
  20. package/src/auction/scheduler.d.ts.map +1 -0
  21. package/src/auction/scheduler.js +51 -43
  22. package/src/auction/sortedOffers.d.ts +8 -0
  23. package/src/auction/sortedOffers.d.ts.map +1 -0
  24. package/src/auction/sortedOffers.js +9 -7
  25. package/src/auction/util.d.ts +32 -0
  26. package/src/auction/util.d.ts.map +1 -0
  27. package/src/auction/util.js +6 -4
  28. package/src/clientSupport.d.ts +167 -0
  29. package/src/clientSupport.d.ts.map +1 -0
  30. package/src/clientSupport.js +154 -96
  31. package/src/collectFees.d.ts +2 -0
  32. package/src/collectFees.d.ts.map +1 -0
  33. package/src/contractSupport.d.ts +28 -0
  34. package/src/contractSupport.d.ts.map +1 -0
  35. package/src/contractSupport.js +14 -12
  36. package/src/econCommitteeCharter.d.ts +39 -0
  37. package/src/econCommitteeCharter.d.ts.map +1 -0
  38. package/src/econCommitteeCharter.js +21 -20
  39. package/src/feeDistributor.d.ts +224 -0
  40. package/src/feeDistributor.d.ts.map +1 -0
  41. package/src/feeDistributor.js +37 -33
  42. package/src/index.d.ts +2 -0
  43. package/src/index.d.ts.map +1 -0
  44. package/src/index.js +1 -0
  45. package/src/interest-math.d.ts +3 -0
  46. package/src/interest-math.d.ts.map +1 -0
  47. package/src/interest.d.ts +28 -0
  48. package/src/interest.d.ts.map +1 -0
  49. package/src/interest.js +21 -16
  50. package/src/price/README.md +13 -0
  51. package/src/price/fluxAggregatorContract.d.ts +70 -0
  52. package/src/price/fluxAggregatorContract.d.ts.map +1 -0
  53. package/src/price/fluxAggregatorContract.js +62 -55
  54. package/src/price/fluxAggregatorKit.d.ts +103 -0
  55. package/src/price/fluxAggregatorKit.d.ts.map +1 -0
  56. package/src/price/fluxAggregatorKit.js +50 -37
  57. package/src/price/priceOracleKit.d.ts +38 -0
  58. package/src/price/priceOracleKit.d.ts.map +1 -0
  59. package/src/price/priceOracleKit.js +11 -13
  60. package/src/price/roundsManager.d.ts +204 -0
  61. package/src/price/roundsManager.d.ts.map +1 -0
  62. package/src/price/roundsManager.js +79 -82
  63. package/src/proposals/README.md +2 -3
  64. package/src/proposals/add-auction.d.ts +69 -0
  65. package/src/proposals/add-auction.d.ts.map +1 -0
  66. package/src/proposals/add-auction.js +180 -0
  67. package/src/proposals/addAssetToVault.d.ts +160 -0
  68. package/src/proposals/addAssetToVault.d.ts.map +1 -0
  69. package/src/proposals/addAssetToVault.js +172 -38
  70. package/src/proposals/committee-proposal.d.ts +113 -0
  71. package/src/proposals/committee-proposal.d.ts.map +1 -0
  72. package/src/proposals/committee-proposal.js +25 -31
  73. package/src/proposals/core-proposal.d.ts +149 -0
  74. package/src/proposals/core-proposal.d.ts.map +1 -0
  75. package/src/proposals/core-proposal.js +9 -11
  76. package/src/proposals/econ-behaviors.d.ts +539 -0
  77. package/src/proposals/econ-behaviors.d.ts.map +1 -0
  78. package/src/proposals/econ-behaviors.js +64 -45
  79. package/src/proposals/price-feed-proposal.d.ts +84 -0
  80. package/src/proposals/price-feed-proposal.d.ts.map +1 -0
  81. package/src/proposals/price-feed-proposal.js +108 -51
  82. package/src/proposals/startEconCommittee.d.ts +34 -0
  83. package/src/proposals/startEconCommittee.d.ts.map +1 -0
  84. package/src/proposals/startEconCommittee.js +2 -2
  85. package/src/proposals/startPSM.d.ts +59 -0
  86. package/src/proposals/startPSM.d.ts.map +1 -0
  87. package/src/proposals/startPSM.js +38 -27
  88. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts +24 -0
  89. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts.map +1 -0
  90. package/src/proposals/upgrade-scaledPriceAuthorities.js +78 -0
  91. package/src/proposals/upgrade-vaults.d.ts +35 -0
  92. package/src/proposals/upgrade-vaults.d.ts.map +1 -0
  93. package/src/proposals/upgrade-vaults.js +235 -0
  94. package/src/proposals/utils.d.ts +17 -0
  95. package/src/proposals/utils.d.ts.map +1 -0
  96. package/src/proposals/utils.js +34 -7
  97. package/src/provisionPool.d.ts +167 -0
  98. package/src/provisionPool.d.ts.map +1 -0
  99. package/src/provisionPool.js +122 -0
  100. package/src/provisionPoolKit.d.ts +367 -0
  101. package/src/provisionPoolKit.d.ts.map +1 -0
  102. package/src/provisionPoolKit.js +522 -0
  103. package/src/psm/psm.d.ts +122 -0
  104. package/src/psm/psm.d.ts.map +1 -0
  105. package/src/psm/psm.js +73 -69
  106. package/src/psm/types-ambient.d.ts +2 -0
  107. package/src/psm/types-ambient.d.ts.map +1 -0
  108. package/src/psm/types-ambient.js +3 -0
  109. package/src/reserve/assetReserve.d.ts +47 -0
  110. package/src/reserve/assetReserve.d.ts.map +1 -0
  111. package/src/reserve/assetReserve.js +28 -19
  112. package/src/reserve/assetReserveKit.d.ts +74 -0
  113. package/src/reserve/assetReserveKit.d.ts.map +1 -0
  114. package/src/reserve/assetReserveKit.js +18 -24
  115. package/src/reserve/params.d.ts +10 -0
  116. package/src/reserve/params.d.ts.map +1 -0
  117. package/src/tokens.d.ts +3 -0
  118. package/src/tokens.d.ts.map +1 -0
  119. package/src/tokens.js +5 -0
  120. package/src/vaultFactory/burn.d.ts +2 -0
  121. package/src/vaultFactory/burn.d.ts.map +1 -0
  122. package/src/vaultFactory/burn.js +1 -1
  123. package/src/vaultFactory/liquidation.d.ts +23 -0
  124. package/src/vaultFactory/liquidation.d.ts.map +1 -0
  125. package/src/vaultFactory/liquidation.js +36 -22
  126. package/src/vaultFactory/math.d.ts +11 -0
  127. package/src/vaultFactory/math.d.ts.map +1 -0
  128. package/src/vaultFactory/math.js +10 -9
  129. package/src/vaultFactory/orderedVaultStore.d.ts +93 -0
  130. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -0
  131. package/src/vaultFactory/orderedVaultStore.js +8 -11
  132. package/src/vaultFactory/params.d.ts +140 -0
  133. package/src/vaultFactory/params.d.ts.map +1 -0
  134. package/src/vaultFactory/params.js +52 -24
  135. package/src/vaultFactory/prioritizedVaults.d.ts +279 -0
  136. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -0
  137. package/src/vaultFactory/prioritizedVaults.js +4 -4
  138. package/src/vaultFactory/proceeds.d.ts +35 -0
  139. package/src/vaultFactory/proceeds.d.ts.map +1 -0
  140. package/src/vaultFactory/proceeds.js +26 -18
  141. package/src/vaultFactory/storeUtils.d.ts +25 -0
  142. package/src/vaultFactory/storeUtils.d.ts.map +1 -0
  143. package/src/vaultFactory/storeUtils.js +10 -12
  144. package/src/vaultFactory/types-ambient.d.ts +137 -0
  145. package/src/vaultFactory/types-ambient.d.ts.map +1 -0
  146. package/src/vaultFactory/{types.js → types-ambient.js} +42 -42
  147. package/src/vaultFactory/vault.d.ts +332 -0
  148. package/src/vaultFactory/vault.d.ts.map +1 -0
  149. package/src/vaultFactory/vault.js +99 -93
  150. package/src/vaultFactory/vaultDirector.d.ts +340 -0
  151. package/src/vaultFactory/vaultDirector.d.ts.map +1 -0
  152. package/src/vaultFactory/vaultDirector.js +63 -50
  153. package/src/vaultFactory/vaultFactory.d.ts +201 -0
  154. package/src/vaultFactory/vaultFactory.d.ts.map +1 -0
  155. package/src/vaultFactory/vaultFactory.js +49 -32
  156. package/src/vaultFactory/vaultHolder.d.ts +126 -0
  157. package/src/vaultFactory/vaultHolder.d.ts.map +1 -0
  158. package/src/vaultFactory/vaultHolder.js +10 -14
  159. package/src/vaultFactory/vaultKit.d.ts +32 -0
  160. package/src/vaultFactory/vaultKit.d.ts.map +1 -0
  161. package/src/vaultFactory/vaultKit.js +5 -4
  162. package/src/vaultFactory/vaultManager.d.ts +674 -0
  163. package/src/vaultFactory/vaultManager.d.ts.map +1 -0
  164. package/src/vaultFactory/vaultManager.js +249 -151
  165. package/CHANGELOG.md +0 -1033
  166. package/bundles/bundle-auctioneer-js-meta.json +0 -722
  167. package/bundles/bundle-auctioneer.js +0 -1
  168. package/bundles/bundle-econCommitteeCharter-js-meta.json +0 -514
  169. package/bundles/bundle-econCommitteeCharter.js +0 -1
  170. package/bundles/bundle-feeDistributor-js-meta.json +0 -458
  171. package/bundles/bundle-feeDistributor.js +0 -1
  172. package/bundles/bundle-fluxAggregatorKit-js-meta.json +0 -674
  173. package/bundles/bundle-fluxAggregatorKit.js +0 -1
  174. package/bundles/bundle-psm-js-meta.json +0 -666
  175. package/bundles/bundle-psm.js +0 -1
  176. package/bundles/bundle-reserve-js-meta.json +0 -662
  177. package/bundles/bundle-reserve.js +0 -1
  178. package/bundles/bundle-scaledPriceAuthority-js-meta.json +0 -542
  179. package/bundles/bundle-scaledPriceAuthority.js +0 -1
  180. package/bundles/bundle-vaultFactory-js-meta.json +0 -790
  181. package/bundles/bundle-vaultFactory.js +0 -1
  182. package/exported.js +0 -2
  183. package/scripts/add-collateral-core.js +0 -112
  184. package/scripts/deploy-contracts.js +0 -100
  185. package/scripts/init-core.js +0 -198
  186. package/scripts/invite-committee-core.js +0 -42
  187. package/scripts/manual-price-feed.js +0 -117
  188. package/scripts/price-feed-core.js +0 -104
  189. package/scripts/start-local-chain.sh +0 -84
  190. package/src/psm/types.js +0 -3
  191. package/src/typeGuards.js +0 -13
  192. package/src/vaultFactory/type-imports.js +0 -4
@@ -0,0 +1,201 @@
1
+ /**
2
+ * @typedef {ZCF<
3
+ * GovernanceTerms<import('./params').VaultDirectorParams> & {
4
+ * priceAuthority: ERef<PriceAuthority>;
5
+ * reservePublicFacet: AssetReservePublicFacet;
6
+ * timerService: import('@agoric/time').TimerService;
7
+ * }
8
+ * >} VaultFactoryZCF
9
+ */
10
+ /** @type {ContractMeta} */
11
+ export const meta: ContractMeta;
12
+ export function start(zcf: VaultFactoryZCF, privateArgs: {
13
+ feeMintAccess: FeeMintAccess;
14
+ initialPoserInvitation: Invitation;
15
+ initialShortfallInvitation: Invitation;
16
+ storageNode: ERef<StorageNode>;
17
+ marshaller: ERef<Marshaller>;
18
+ auctioneerInstance: Instance;
19
+ managerParams: Record<string, import("./params.js").VaultManagerParamOverrides>;
20
+ }, baggage: import("@agoric/swingset-liveslots").Baggage): Promise<{
21
+ creatorFacet: import("@endo/exo").Guarded<{
22
+ getParamMgrRetriever: () => {
23
+ get: (paramPath?: VaultFactoryParamPath) => import("./vaultDirector.js").VaultDirectorParamManager | import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
24
+ DebtLimit: "amount";
25
+ InterestRate: "ratio";
26
+ LiquidationPadding: "ratio";
27
+ LiquidationMargin: "ratio";
28
+ LiquidationPenalty: "ratio";
29
+ MintFee: "ratio";
30
+ }>;
31
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
32
+ get: (paramPath?: VaultFactoryParamPath) => import("./vaultDirector.js").VaultDirectorParamManager | import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
33
+ DebtLimit: "amount";
34
+ InterestRate: "ratio";
35
+ LiquidationPadding: "ratio";
36
+ LiquidationMargin: "ratio";
37
+ LiquidationPenalty: "ratio";
38
+ MintFee: "ratio";
39
+ }>;
40
+ }>;
41
+ getInvitation(name: string): Promise<Invitation<unknown, undefined>>;
42
+ getLimitedCreatorFacet(): import("@endo/exo").Guarded<{
43
+ addVaultType(collateralIssuer: Issuer<"nat">, collateralKeyword: Keyword, initialParamValues: VaultManagerParamValues): Promise<import("@endo/exo").Guarded<{
44
+ getGovernedParams(): import("./vaultManager.js").GovernedParamGetters;
45
+ makeVaultKit(seat: ZCFSeat): Promise<{
46
+ publicSubscribers: {
47
+ vault: {
48
+ description: string;
49
+ subscriber: globalThis.Subscriber<VaultNotification>;
50
+ storagePath: Promise<string>;
51
+ };
52
+ };
53
+ invitationMakers: import("@endo/exo").Guarded<{
54
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
55
+ CloseVault(): Promise<Invitation<string, undefined>>;
56
+ TransferVault(): Promise<Invitation<any, undefined>>;
57
+ }>;
58
+ vault: import("@endo/exo").Guarded<{
59
+ getPublicTopics(): {
60
+ vault: {
61
+ description: string;
62
+ subscriber: globalThis.Subscriber<VaultNotification>;
63
+ storagePath: Promise<string>;
64
+ };
65
+ };
66
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
67
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
68
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
69
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
70
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
71
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
72
+ }>;
73
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
74
+ }>;
75
+ getCollateralQuote(): PriceQuote;
76
+ getPublicFacet(): import("@endo/exo").Guarded<{
77
+ makeVaultInvitation(): Promise<Invitation<{
78
+ publicSubscribers: {
79
+ vault: {
80
+ description: string;
81
+ subscriber: globalThis.Subscriber<VaultNotification>;
82
+ storagePath: Promise<string>;
83
+ };
84
+ };
85
+ invitationMakers: import("@endo/exo").Guarded<{
86
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
87
+ CloseVault(): Promise<Invitation<string, undefined>>;
88
+ TransferVault(): Promise<Invitation<any, undefined>>;
89
+ }>;
90
+ vault: import("@endo/exo").Guarded<{
91
+ getPublicTopics(): {
92
+ vault: {
93
+ description: string;
94
+ subscriber: globalThis.Subscriber<VaultNotification>;
95
+ storagePath: Promise<string>;
96
+ };
97
+ };
98
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
99
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
100
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
101
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
102
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
103
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
104
+ }>;
105
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
106
+ }, undefined>>;
107
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
108
+ getCompoundedInterest(): Ratio;
109
+ getPublicTopics(): {
110
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").AssetState>;
111
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").MetricsNotification>;
112
+ };
113
+ }>;
114
+ lockOraclePrices(): PriceQuote;
115
+ liquidateVaults(auctionPF: ERef<AuctioneerPublicFacet>): Promise<void>;
116
+ }>>;
117
+ makeCollectFeesInvitation(): Promise<Invitation<string, undefined>>;
118
+ getRewardAllocation(): Allocation;
119
+ makeLiquidationWaker(): {
120
+ wake: (timestamp: any) => any;
121
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
122
+ wake: (timestamp: any) => any;
123
+ }>;
124
+ makeReschedulerWaker(): {
125
+ wake: (timestamp: any) => any;
126
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
127
+ wake: (timestamp: any) => any;
128
+ }>;
129
+ makePriceLockWaker(): {
130
+ wake: (timestamp: any) => any;
131
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
132
+ wake: (timestamp: any) => any;
133
+ }>;
134
+ setShortfallReporter(newInvitation: any): Promise<void>;
135
+ }>;
136
+ getGovernedApis(): ERef<GovernedApis>;
137
+ getGovernedApiNames(): never[];
138
+ setOfferFilter: (strings: any) => Promise<void>;
139
+ }>;
140
+ publicFacet: import("@endo/exo").Guarded<{
141
+ getCollateralManager(brandIn: Brand): import("@endo/exo").Guarded<{
142
+ makeVaultInvitation(): Promise<Invitation<{
143
+ publicSubscribers: {
144
+ vault: {
145
+ description: string;
146
+ subscriber: globalThis.Subscriber<VaultNotification>;
147
+ storagePath: Promise<string>;
148
+ };
149
+ };
150
+ invitationMakers: import("@endo/exo").Guarded<{
151
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
152
+ CloseVault(): Promise<Invitation<string, undefined>>;
153
+ TransferVault(): Promise<Invitation<any, undefined>>;
154
+ }>;
155
+ vault: import("@endo/exo").Guarded<{
156
+ getPublicTopics(): {
157
+ vault: {
158
+ description: string;
159
+ subscriber: globalThis.Subscriber<VaultNotification>;
160
+ storagePath: Promise<string>;
161
+ };
162
+ };
163
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
164
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
165
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
166
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
167
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
168
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
169
+ }>;
170
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
171
+ }, undefined>>;
172
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
173
+ getCompoundedInterest(): Ratio;
174
+ getPublicTopics(): {
175
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").AssetState>;
176
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").MetricsNotification>;
177
+ };
178
+ }>;
179
+ getDebtIssuer(): globalThis.Issuer<"nat", import("@endo/patterns").Key>;
180
+ getSubscription({ collateralBrand }: {
181
+ collateralBrand: Brand;
182
+ }): globalThis.StoredSubscription<globalThis.GovernanceSubscriptionState>;
183
+ getPublicTopics(): {
184
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultDirector.js").MetricsNotification>;
185
+ };
186
+ getElectorateSubscription(): globalThis.StoredSubscription<globalThis.GovernanceSubscriptionState>;
187
+ getGovernedParams({ collateralBrand }: {
188
+ collateralBrand: Brand;
189
+ }): globalThis.ERef<globalThis.ParamStateRecord>;
190
+ getInvitationAmount(name: string): import("@agoric/ertp/src/types.js").SetAmount<InvitationDetails>;
191
+ }>;
192
+ }>;
193
+ export type VaultFactoryZCF = ZCF<GovernanceTerms<import("./params").VaultDirectorParams> & {
194
+ priceAuthority: ERef<PriceAuthority>;
195
+ reservePublicFacet: AssetReservePublicFacet;
196
+ timerService: import("@agoric/time").TimerService;
197
+ }>;
198
+ export type VaultFactoryContract = ContractOf<typeof start>;
199
+ import type { PriceQuote } from '@agoric/zoe/tools/types.js';
200
+ import type { PriceAuthority } from '@agoric/zoe/tools/types.js';
201
+ //# sourceMappingURL=vaultFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultFactory.d.ts","sourceRoot":"","sources":["vaultFactory.js"],"names":[],"mappings":"AAmCA;;;;;;;;GAQG;AAEH,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAmBK,2BAfI,eAAe,eACf;IACV,aAAiB,EAAE,aAAa,CAAC;IACjC,sBAA0B,EAAE,UAAU,CAAC;IACvC,0BAA8B,EAAE,UAAU,CAAC;IAC3C,WAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,UAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,kBAAsB,EAAE,QAAQ,CAAC;IACjC,aAAiB,EAAE,MAAM,CACzB,MAAY,EACZ,OAAa,aAAa,EAAE,0BAA0B,CACjD,CAAC;CACH,WACO,OAAO,4BAA4B,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFtD;8BA9HY,GAAG,CACf,eAAmB,CAAC,OAAO,UAAU,EAAE,mBAAmB,CAAC,GAAG;IAC9D,cAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3C,kBAAwB,EAAE,uBAAuB,CAAC;IAClD,YAAkB,EAAE,OAAO,cAAc,EAAE,YAAY,CAAC;CACnD,CACF;mCA2HU,UAAU,CAAC,OAAO,KAAK,CAAC;gCAtIwD,4BAA4B;oCAA5B,4BAA4B"}
@@ -1,8 +1,6 @@
1
1
  // @jessie-check
2
-
3
- import '@agoric/governance/exported.js';
4
- import '@agoric/zoe/exported.js';
5
- import '@agoric/zoe/src/contracts/exported.js';
2
+ /// <reference types="@agoric/governance/exported" />
3
+ /// <reference types="@agoric/zoe/exported" />
6
4
 
7
5
  // The vaultFactory owns a number of VaultManagers and a mint for Minted.
8
6
  //
@@ -31,49 +29,63 @@ import { InvitationShape } from '../auction/params.js';
31
29
  import { SHORTFALL_INVITATION_KEY, vaultDirectorParamTypes } from './params.js';
32
30
  import { provideDirector } from './vaultDirector.js';
33
31
 
32
+ /** @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js'; */
33
+
34
34
  const trace = makeTracer('VF', true);
35
35
 
36
36
  /**
37
- * @typedef {ZCF<GovernanceTerms<import('./params').VaultDirectorParams> & {
38
- * auctioneerPublicFacet: import('../auction/auctioneer.js').AuctioneerPublicFacet,
39
- * priceAuthority: ERef<PriceAuthority>,
40
- * reservePublicFacet: AssetReservePublicFacet,
41
- * timerService: import('@agoric/time/src/types').TimerService,
42
- * }>} VaultFactoryZCF
37
+ * @typedef {ZCF<
38
+ * GovernanceTerms<import('./params').VaultDirectorParams> & {
39
+ * priceAuthority: ERef<PriceAuthority>;
40
+ * reservePublicFacet: AssetReservePublicFacet;
41
+ * timerService: import('@agoric/time').TimerService;
42
+ * }
43
+ * >} VaultFactoryZCF
43
44
  */
44
45
 
45
- export const privateArgsShape = M.splitRecord(
46
- harden({
47
- marshaller: M.remotable('Marshaller'),
48
- storageNode: StorageNodeShape,
49
- }),
50
- harden({
51
- // only necessary on first invocation, not subsequent
52
- feeMintAccess: FeeMintAccessShape,
53
- initialPoserInvitation: InvitationShape,
54
- initialShortfallInvitation: InvitationShape,
55
- }),
56
- );
57
- harden(privateArgsShape);
46
+ /** @type {ContractMeta} */
47
+ export const meta = {
48
+ privateArgsShape: M.splitRecord(
49
+ {
50
+ marshaller: M.remotable('Marshaller'),
51
+ storageNode: StorageNodeShape,
52
+ },
53
+ {
54
+ // only necessary on first invocation, not subsequent
55
+ feeMintAccess: FeeMintAccessShape,
56
+ initialPoserInvitation: InvitationShape,
57
+ initialShortfallInvitation: InvitationShape,
58
+ },
59
+ ),
60
+ upgradability: 'canUpgrade',
61
+ };
62
+ harden(meta);
58
63
 
59
64
  /**
60
65
  * @param {VaultFactoryZCF} zcf
61
66
  * @param {{
62
- * feeMintAccess: FeeMintAccess,
63
- * initialPoserInvitation: Invitation,
64
- * initialShortfallInvitation: Invitation,
65
- * storageNode: ERef<StorageNode>,
66
- * marshaller: ERef<Marshaller>,
67
+ * feeMintAccess: FeeMintAccess;
68
+ * initialPoserInvitation: Invitation;
69
+ * initialShortfallInvitation: Invitation;
70
+ * storageNode: ERef<StorageNode>;
71
+ * marshaller: ERef<Marshaller>;
72
+ * auctioneerInstance: Instance;
73
+ * managerParams: Record<
74
+ * string,
75
+ * import('./params.js').VaultManagerParamOverrides
76
+ * >;
67
77
  * }} privateArgs
68
- * @param {import('@agoric/ertp').Baggage} baggage
78
+ * @param {import('@agoric/swingset-liveslots').Baggage} baggage
69
79
  */
70
- export const prepare = async (zcf, privateArgs, baggage) => {
80
+ export const start = async (zcf, privateArgs, baggage) => {
71
81
  trace('prepare start', privateArgs, [...baggage.keys()]);
72
82
  const {
73
83
  initialPoserInvitation,
74
84
  initialShortfallInvitation,
75
85
  marshaller,
76
86
  storageNode,
87
+ auctioneerInstance,
88
+ managerParams,
77
89
  } = privateArgs;
78
90
 
79
91
  trace('awaiting debtMint');
@@ -85,7 +97,10 @@ export const prepare = async (zcf, privateArgs, baggage) => {
85
97
  mintedIssuerRecord: debtMint.getIssuerRecord(),
86
98
  }));
87
99
 
88
- const { timerService, auctioneerPublicFacet } = zcf.getTerms();
100
+ const { timerService } = zcf.getTerms();
101
+
102
+ const zoe = zcf.getZoeService();
103
+ const auctioneerPublicFacet = E(zoe).getPublicFacet(auctioneerInstance);
89
104
 
90
105
  const { makeRecorderKit, makeERecorderKit } = prepareRecorderKitMakers(
91
106
  baggage,
@@ -128,6 +143,7 @@ export const prepare = async (zcf, privateArgs, baggage) => {
128
143
  marshaller,
129
144
  makeRecorderKit,
130
145
  makeERecorderKit,
146
+ managerParams,
131
147
  );
132
148
 
133
149
  // cannot await because it would make remote calls during vat restart
@@ -145,5 +161,6 @@ export const prepare = async (zcf, privateArgs, baggage) => {
145
161
  publicFacet: director.public,
146
162
  });
147
163
  };
164
+ harden(start);
148
165
 
149
- /** @typedef {ContractOf<typeof prepare>} VaultFactoryContract */
166
+ /** @typedef {ContractOf<typeof start>} VaultFactoryContract */
@@ -0,0 +1,126 @@
1
+ export function prepareVaultHolder(baggage: import("@agoric/swingset-liveslots").Baggage, makeRecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").MakeRecorderKit): (vault: import("@endo/exo").Guarded<{
2
+ getVaultSeat(): ZCFSeat;
3
+ initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
4
+ publicSubscribers: {
5
+ vault: {
6
+ description: string;
7
+ subscriber: globalThis.Subscriber<VaultNotification>;
8
+ storagePath: Promise<string>;
9
+ };
10
+ };
11
+ invitationMakers: import("@endo/exo").Guarded<{
12
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
13
+ CloseVault(): Promise<Invitation<string, undefined>>;
14
+ TransferVault(): Promise<Invitation<any, undefined>>;
15
+ }>;
16
+ vault: import("@endo/exo").Guarded<{
17
+ getPublicTopics(): {
18
+ vault: {
19
+ description: string;
20
+ subscriber: globalThis.Subscriber<VaultNotification>;
21
+ storagePath: Promise<string>;
22
+ };
23
+ };
24
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
25
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
26
+ /**
27
+ * Starting a transfer revokes the vault holder. The associated updater
28
+ * will get a special notification that the vault is being transferred.
29
+ */
30
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
31
+ getCollateralAmount(): import("@agoric/ertp/src/types").NatAmount;
32
+ getCurrentDebt(): import("@agoric/ertp/src/types").NatAmount;
33
+ getNormalizedDebt(): import("./storeUtils").NormalizedDebt;
34
+ }>;
35
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
36
+ }>;
37
+ liquidating(): void;
38
+ liquidated(): void;
39
+ abortLiquidation(): string;
40
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
41
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
42
+ makeTransferInvitation(): Promise<Invitation<VaultKit>>;
43
+ getCollateralAmount(): Amount<"nat">;
44
+ getCurrentDebt(): Amount<"nat">;
45
+ getNormalizedDebt(): import("./storeUtils").NormalizedDebt;
46
+ }>, storageNode: globalThis.StorageNode) => import("@endo/exo").GuardedKit<{
47
+ helper: {
48
+ /** @throws if this holder no longer owns the vault */
49
+ owned(): import("@endo/exo").Guarded<{
50
+ getVaultSeat(): ZCFSeat;
51
+ initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
52
+ publicSubscribers: {
53
+ vault: {
54
+ description: string;
55
+ subscriber: globalThis.Subscriber<VaultNotification>;
56
+ storagePath: Promise<string>;
57
+ };
58
+ };
59
+ invitationMakers: import("@endo/exo").Guarded<{
60
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
61
+ CloseVault(): Promise<Invitation<string, undefined>>;
62
+ TransferVault(): Promise<Invitation<any, undefined>>;
63
+ }>;
64
+ vault: import("@endo/exo").Guarded<{
65
+ getPublicTopics(): {
66
+ vault: {
67
+ description: string;
68
+ subscriber: globalThis.Subscriber<VaultNotification>;
69
+ storagePath: Promise<string>;
70
+ };
71
+ };
72
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
73
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
74
+ /**
75
+ * Starting a transfer revokes the vault holder. The associated updater
76
+ * will get a special notification that the vault is being transferred.
77
+ */
78
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
79
+ getCollateralAmount(): import("@agoric/ertp/src/types").NatAmount;
80
+ getCurrentDebt(): import("@agoric/ertp/src/types").NatAmount;
81
+ getNormalizedDebt(): import("./storeUtils").NormalizedDebt;
82
+ }>;
83
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
84
+ }>;
85
+ liquidating(): void;
86
+ liquidated(): void;
87
+ abortLiquidation(): string;
88
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
89
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
90
+ makeTransferInvitation(): Promise<Invitation<VaultKit>>;
91
+ getCollateralAmount(): Amount<"nat">;
92
+ getCurrentDebt(): Amount<"nat">;
93
+ getNormalizedDebt(): import("./storeUtils").NormalizedDebt;
94
+ }>;
95
+ getUpdater(): import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
96
+ };
97
+ invitationMakers: {
98
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
99
+ CloseVault(): Promise<Invitation<string, undefined>>;
100
+ TransferVault(): Promise<Invitation<any, undefined>>;
101
+ };
102
+ holder: {
103
+ getPublicTopics(): {
104
+ vault: {
105
+ description: string;
106
+ subscriber: globalThis.Subscriber<VaultNotification>;
107
+ storagePath: Promise<string>;
108
+ };
109
+ };
110
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
111
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
112
+ /**
113
+ * Starting a transfer revokes the vault holder. The associated updater
114
+ * will get a special notification that the vault is being transferred.
115
+ */
116
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
117
+ getCollateralAmount(): import("@agoric/ertp/src/types").NatAmount;
118
+ getCurrentDebt(): import("@agoric/ertp/src/types").NatAmount;
119
+ getNormalizedDebt(): import("./storeUtils").NormalizedDebt;
120
+ };
121
+ }>;
122
+ export type State = {
123
+ topicKit: import("@agoric/zoe/src/contractSupport/recorder.js").RecorderKit<VaultNotification>;
124
+ vault: Vault | null;
125
+ };
126
+ //# sourceMappingURL=vaultHolder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultHolder.d.ts","sourceRoot":"","sources":["vaultHolder.js"],"names":[],"mappings":"AAkCO,4CAHI,OAAO,4BAA4B,EAAE,OAAO,mBAC5C,OAAO,6CAA6C,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;YAqExE;;;eAGG;;;;;;;;;;;;;;;;gCAqBu0wB,cAAiB;mDAAzjrB,WAAW;;QAhE7yF,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;oBAwCtD;;;uBAGG;;;;;;;;;;;;;;;;wCAqBu0wB,cAAiB;;;;;;;;;;;;;;;;;;;QAxB31wB;;;WAGG;;;;;;GAoBV;oBAnHY;IACZ,QAAY,EAAE,OAAO,6CAA6C,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACnG,KAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB"}
@@ -1,17 +1,15 @@
1
- /**
2
- * @file Use-object for the owner of a vault
3
- */
1
+ /** @file Use-object for the owner of a vault */
4
2
  import { AmountShape } from '@agoric/ertp';
5
3
  import { M, prepareExoClassKit } from '@agoric/vat-data';
6
4
  import { TopicsRecordShape } from '@agoric/zoe/src/contractSupport/index.js';
7
- import { UnguardedHelperI } from '../typeGuards.js';
5
+ import { UnguardedHelperI } from '@agoric/internal/src/typeGuards.js';
8
6
 
9
7
  const { Fail } = assert;
10
8
 
11
9
  /**
12
10
  * @typedef {{
13
- * topicKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<VaultNotification>,
14
- * vault: Vault | null,
11
+ * topicKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<VaultNotification>;
12
+ * vault: Vault | null;
15
13
  * }} State
16
14
  */
17
15
 
@@ -25,13 +23,13 @@ const HolderI = M.interface('holder', {
25
23
  makeTransferInvitation: M.call().returns(M.promise()),
26
24
  });
27
25
 
28
- /** @type {{ [name: string]: [ description: string, valueShape: Pattern ] }} */
26
+ /** @type {{ [name: string]: [description: string, valueShape: Pattern] }} */
29
27
  const PUBLIC_TOPICS = {
30
28
  vault: ['Vault holder status', M.any()],
31
29
  };
32
30
 
33
31
  /**
34
- * @param {import('@agoric/ertp').Baggage} baggage
32
+ * @param {import('@agoric/swingset-liveslots').Baggage} baggage
35
33
  * @param {import('@agoric/zoe/src/contractSupport/recorder.js').MakeRecorderKit} makeRecorderKit
36
34
  */
37
35
  export const prepareVaultHolder = (baggage, makeRecorderKit) => {
@@ -48,22 +46,20 @@ export const prepareVaultHolder = (baggage, makeRecorderKit) => {
48
46
  }),
49
47
  },
50
48
  /**
51
- *
52
49
  * @param {Vault} vault
53
50
  * @param {StorageNode} storageNode
54
51
  * @returns {State}
55
52
  */
56
53
  (vault, storageNode) => {
57
54
  // must be the fully synchronous maker because the kit is held in durable state
55
+ // @ts-expect-error XXX Patterns
58
56
  const topicKit = makeRecorderKit(storageNode, PUBLIC_TOPICS.vault[1]);
59
57
 
60
58
  return { topicKit, vault };
61
59
  },
62
60
  {
63
61
  helper: {
64
- /**
65
- * @throws if this holder no longer owns the vault
66
- */
62
+ /** @throws if this holder no longer owns the vault */
67
63
  owned() {
68
64
  const { vault } = this.state;
69
65
  if (!vault) {
@@ -104,8 +100,8 @@ export const prepareVaultHolder = (baggage, makeRecorderKit) => {
104
100
  return this.facets.helper.owned().makeCloseInvitation();
105
101
  },
106
102
  /**
107
- * Starting a transfer revokes the vault holder. The associated updater will
108
- * get a special notification that the vault is being transferred.
103
+ * Starting a transfer revokes the vault holder. The associated updater
104
+ * will get a special notification that the vault is being transferred.
109
105
  */
110
106
  makeTransferInvitation() {
111
107
  const vault = this.facets.helper.owned();
@@ -0,0 +1,32 @@
1
+ export function prepareVaultKit(baggage: import("@agoric/swingset-liveslots").Baggage, makeRecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").MakeRecorderKit): (vault: Vault, storageNode: StorageNode) => {
2
+ publicSubscribers: {
3
+ vault: {
4
+ description: string;
5
+ subscriber: globalThis.Subscriber<VaultNotification>;
6
+ storagePath: Promise<string>;
7
+ };
8
+ };
9
+ invitationMakers: import("@endo/exo").Guarded<{
10
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
11
+ CloseVault(): Promise<Invitation<string, undefined>>;
12
+ TransferVault(): Promise<Invitation<any, undefined>>;
13
+ }>;
14
+ vault: import("@endo/exo").Guarded<{
15
+ getPublicTopics(): {
16
+ vault: {
17
+ description: string;
18
+ subscriber: globalThis.Subscriber<VaultNotification>;
19
+ storagePath: Promise<string>;
20
+ };
21
+ };
22
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
23
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
24
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
25
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
26
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
27
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
28
+ }>;
29
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
30
+ };
31
+ export type VaultKit = ReturnType<ReturnType<typeof prepareVaultKit>>;
32
+ //# sourceMappingURL=vaultKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultKit.d.ts","sourceRoot":"","sources":["vaultKit.js"],"names":[],"mappings":"AAgBO,yCAHI,OAAO,4BAA4B,EAAE,OAAO,mBAC5C,OAAO,6CAA6C,EAAE,eAAe,WASnE,KAAK,eACL,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvB;uBAEa,UAAU,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // @jessie-check
2
2
 
3
- import '@agoric/zoe/exported.js';
3
+ /// <reference types="@agoric/zoe/exported" />
4
4
 
5
5
  import { makeTracer } from '@agoric/internal';
6
6
  import { prepareVaultHolder } from './vaultHolder.js';
@@ -8,9 +8,10 @@ import { prepareVaultHolder } from './vaultHolder.js';
8
8
  const trace = makeTracer('VK', true);
9
9
 
10
10
  /**
11
- * Wrap the VaultHolder duration object in a record suitable for the result of an invitation.
11
+ * Wrap the VaultHolder duration object in a record suitable for the result of
12
+ * an invitation.
12
13
  *
13
- * @param {import('@agoric/ertp').Baggage} baggage
14
+ * @param {import('@agoric/swingset-liveslots').Baggage} baggage
14
15
  * @param {import('@agoric/zoe/src/contractSupport/recorder.js').MakeRecorderKit} makeRecorderKit
15
16
  */
16
17
  export const prepareVaultKit = (baggage, makeRecorderKit) => {
@@ -43,4 +44,4 @@ export const prepareVaultKit = (baggage, makeRecorderKit) => {
43
44
  return makeVaultKit;
44
45
  };
45
46
 
46
- /** @typedef {(ReturnType<ReturnType<typeof prepareVaultKit>>)} VaultKit */
47
+ /** @typedef {ReturnType<ReturnType<typeof prepareVaultKit>>} VaultKit */