@agoric/inter-protocol 0.13.4-pismo-dev-0d5327f.0 → 0.14.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 (141) hide show
  1. package/CHANGELOG.md +287 -0
  2. package/README.md +26 -20
  3. package/bundles/bundle-auctioneer-js-meta.json +722 -0
  4. package/bundles/bundle-auctioneer.js +1 -0
  5. package/bundles/bundle-econCommitteeCharter-js-meta.json +514 -0
  6. package/bundles/bundle-econCommitteeCharter.js +1 -0
  7. package/bundles/bundle-feeDistributor-js-meta.json +458 -0
  8. package/bundles/bundle-feeDistributor.js +1 -1
  9. package/bundles/bundle-fluxAggregatorKit-js-meta.json +674 -0
  10. package/bundles/bundle-fluxAggregatorKit.js +1 -0
  11. package/bundles/bundle-psm-js-meta.json +666 -0
  12. package/bundles/bundle-psm.js +1 -1
  13. package/bundles/bundle-reserve-js-meta.json +662 -0
  14. package/bundles/bundle-reserve.js +1 -1
  15. package/bundles/bundle-scaledPriceAuthority-js-meta.json +542 -0
  16. package/bundles/bundle-scaledPriceAuthority.js +1 -1
  17. package/bundles/bundle-vaultFactory-js-meta.json +786 -0
  18. package/bundles/bundle-vaultFactory.js +1 -1
  19. package/exported.js +0 -2
  20. package/package.json +34 -31
  21. package/scripts/add-collateral-core.js +14 -4
  22. package/scripts/build-bundles.js +9 -2
  23. package/scripts/deploy-contracts.js +1 -4
  24. package/scripts/init-core.js +20 -38
  25. package/scripts/invite-committee-core.js +1 -1
  26. package/scripts/manual-price-feed.js +2 -2
  27. package/scripts/price-feed-core.js +7 -6
  28. package/scripts/start-local-chain.sh +84 -0
  29. package/src/auction/auctionBook.js +755 -0
  30. package/src/auction/auctioneer.js +720 -0
  31. package/src/auction/offerBook.js +221 -0
  32. package/src/auction/params.js +174 -0
  33. package/src/auction/scheduleMath.js +167 -0
  34. package/src/auction/scheduler.js +370 -0
  35. package/src/auction/sortedOffers.js +136 -0
  36. package/src/auction/util.js +55 -0
  37. package/src/clientSupport.js +324 -0
  38. package/src/collectFees.js +8 -14
  39. package/src/contractSupport.js +24 -68
  40. package/src/econCommitteeCharter.js +161 -77
  41. package/src/feeDistributor.js +60 -20
  42. package/src/index.js +2 -0
  43. package/src/interest-math.js +1 -4
  44. package/src/interest.js +20 -13
  45. package/src/price/README.md +57 -0
  46. package/src/price/fluxAggregatorContract.js +190 -0
  47. package/src/price/fluxAggregatorKit.js +375 -0
  48. package/src/price/priceOracleKit.js +127 -0
  49. package/src/price/roundsManager.js +726 -0
  50. package/src/proposals/addAssetToVault.js +89 -94
  51. package/src/proposals/committee-proposal.js +141 -40
  52. package/src/proposals/core-proposal.js +100 -167
  53. package/src/proposals/econ-behaviors.js +320 -564
  54. package/src/proposals/price-feed-proposal.js +175 -78
  55. package/src/proposals/startEconCommittee.js +25 -12
  56. package/src/proposals/startPSM.js +231 -211
  57. package/src/proposals/utils.js +31 -17
  58. package/src/psm/README.md +71 -0
  59. package/src/psm/psm.js +272 -160
  60. package/src/psm/types.js +2 -0
  61. package/src/reserve/assetReserve.js +56 -413
  62. package/src/reserve/assetReserveKit.js +303 -0
  63. package/src/reserve/doc.md +1 -3
  64. package/src/reserve/params.js +2 -5
  65. package/src/typeGuards.js +13 -0
  66. package/src/vaultFactory/Liquidation.md +100 -0
  67. package/src/vaultFactory/burn.js +2 -1
  68. package/src/vaultFactory/liquidation.js +270 -108
  69. package/src/vaultFactory/math.js +95 -0
  70. package/src/vaultFactory/orderedVaultStore.js +0 -1
  71. package/src/vaultFactory/params.js +133 -112
  72. package/src/vaultFactory/prioritizedVaults.js +36 -79
  73. package/src/vaultFactory/storeUtils.js +67 -9
  74. package/src/vaultFactory/type-imports.js +2 -0
  75. package/src/vaultFactory/types.js +22 -26
  76. package/src/vaultFactory/vault.js +772 -709
  77. package/src/vaultFactory/vaultDirector.js +480 -483
  78. package/src/vaultFactory/vaultFactory.js +99 -60
  79. package/src/vaultFactory/vaultHolder.js +121 -95
  80. package/src/vaultFactory/vaultKit.js +39 -31
  81. package/src/vaultFactory/vaultManager.js +1249 -868
  82. package/bundles/bundle-amm-meta.js +0 -618
  83. package/bundles/bundle-amm.js +0 -1
  84. package/bundles/bundle-feeDistributor-meta.js +0 -346
  85. package/bundles/bundle-interchainPool-meta.js +0 -534
  86. package/bundles/bundle-interchainPool.js +0 -1
  87. package/bundles/bundle-liquidateIncrementally-meta.js +0 -442
  88. package/bundles/bundle-liquidateIncrementally.js +0 -1
  89. package/bundles/bundle-liquidateMinimum-meta.js +0 -442
  90. package/bundles/bundle-liquidateMinimum.js +0 -1
  91. package/bundles/bundle-psm-meta.js +0 -538
  92. package/bundles/bundle-psmCharter-meta.js +0 -418
  93. package/bundles/bundle-psmCharter.js +0 -1
  94. package/bundles/bundle-reserve-meta.js +0 -542
  95. package/bundles/bundle-scaledPriceAuthority-meta.js +0 -442
  96. package/bundles/bundle-stakeFactory-meta.js +0 -574
  97. package/bundles/bundle-stakeFactory.js +0 -1
  98. package/bundles/bundle-vaultFactory-meta.js +0 -598
  99. package/scripts/add-initial-liquidity.js +0 -180
  100. package/src/collect.js +0 -13
  101. package/src/interchainPool.js +0 -135
  102. package/src/makeTracer.js +0 -36
  103. package/src/my-lien.js +0 -85
  104. package/src/proposals/demoIssuers.js +0 -685
  105. package/src/proposals/sim-behaviors.js +0 -40
  106. package/src/psm/psmCharter.js +0 -139
  107. package/src/stakeFactory/README.md +0 -62
  108. package/src/stakeFactory/attestation.js +0 -267
  109. package/src/stakeFactory/attestationTool.js +0 -66
  110. package/src/stakeFactory/constants.js +0 -16
  111. package/src/stakeFactory/params.js +0 -31
  112. package/src/stakeFactory/stakeFactory.js +0 -236
  113. package/src/stakeFactory/stakeFactoryKit.js +0 -455
  114. package/src/stakeFactory/stakeFactoryManager.js +0 -296
  115. package/src/stakeFactory/types.js +0 -42
  116. package/src/vaultFactory/liquidateIncrementally.js +0 -350
  117. package/src/vaultFactory/liquidateMinimum.js +0 -100
  118. package/src/vpool-xyk-amm/AttackersGuide.md +0 -89
  119. package/src/vpool-xyk-amm/addLiquidity.js +0 -222
  120. package/src/vpool-xyk-amm/addPool.js +0 -197
  121. package/src/vpool-xyk-amm/constantProduct/AMM-Trade.jpeg +0 -0
  122. package/src/vpool-xyk-amm/constantProduct/README.md +0 -204
  123. package/src/vpool-xyk-amm/constantProduct/calcFees.js +0 -99
  124. package/src/vpool-xyk-amm/constantProduct/calcSwapPrices.js +0 -85
  125. package/src/vpool-xyk-amm/constantProduct/core.js +0 -153
  126. package/src/vpool-xyk-amm/constantProduct/defaults.js +0 -5
  127. package/src/vpool-xyk-amm/constantProduct/getXY.js +0 -52
  128. package/src/vpool-xyk-amm/constantProduct/internal-types.js +0 -116
  129. package/src/vpool-xyk-amm/constantProduct/invariants.js +0 -43
  130. package/src/vpool-xyk-amm/constantProduct/swap.js +0 -272
  131. package/src/vpool-xyk-amm/constantProduct/types.js +0 -32
  132. package/src/vpool-xyk-amm/doublePool.js +0 -194
  133. package/src/vpool-xyk-amm/estimate.js +0 -155
  134. package/src/vpool-xyk-amm/multipoolMarketMaker.js +0 -520
  135. package/src/vpool-xyk-amm/params.js +0 -61
  136. package/src/vpool-xyk-amm/pool.js +0 -396
  137. package/src/vpool-xyk-amm/priceAuthority.js +0 -94
  138. package/src/vpool-xyk-amm/removeLiquidity.js +0 -31
  139. package/src/vpool-xyk-amm/singlePool.js +0 -73
  140. package/src/vpool-xyk-amm/swap.js +0 -69
  141. package/src/vpool-xyk-amm/types.js +0 -154
@@ -1,88 +1,89 @@
1
- // @ts-check
1
+ // @jessie-check
2
+
2
3
  import { Stable } from '@agoric/vats/src/tokens.js';
3
4
  import * as econBehaviors from './econ-behaviors.js';
4
5
  import { ECON_COMMITTEE_MANIFEST } from './startEconCommittee.js';
5
- import * as simBehaviors from './sim-behaviors.js';
6
6
 
7
7
  export * from './econ-behaviors.js';
8
- export * from './sim-behaviors.js';
9
8
  // @ts-expect-error Module './econ-behaviors.js' has already exported a member
10
9
  // named 'EconomyBootstrapPowers'.
11
- export * from './startPSM.js';
12
- export * from './startEconCommittee.js';
10
+ export * from './startPSM.js'; // eslint-disable-line import/export
11
+ export * from './startEconCommittee.js'; // eslint-disable-line import/export
13
12
 
14
- const SHARED_MAIN_MANIFEST = harden({
15
- [econBehaviors.setupAmm.name]: {
16
- consume: {
17
- board: 'board',
18
- chainStorage: true,
19
- chainTimerService: 'timer',
20
- zoe: 'zoe',
21
- economicCommitteeCreatorFacet: 'economicCommittee',
22
- },
23
- produce: {
24
- ammCreatorFacet: 'amm',
25
- ammInstanceWithoutReserve: 'amm',
26
- ammGovernorCreatorFacet: 'amm',
27
- },
28
- issuer: { consume: { [Stable.symbol]: 'zoe' } },
29
- brand: { consume: { [Stable.symbol]: 'zoe' } },
30
- installation: {
31
- consume: { contractGovernor: 'zoe', amm: 'zoe' },
32
- },
33
- instance: {
34
- produce: { ammGovernor: 'ammGovernor' },
35
- },
36
- },
37
- [econBehaviors.startInterchainPool.name]: {
38
- consume: { bankManager: 'bank', zoe: 'zoe', agoricNamesAdmin: true },
39
- installation: {
40
- consume: { interchainPool: 'zoe' },
41
- },
42
- brand: {
43
- consume: { [Stable.symbol]: 'zoe' },
44
- },
45
- issuer: {
46
- consume: { [Stable.symbol]: 'zoe' },
47
- },
48
- instance: {
49
- consume: { amm: 'amm' },
50
- produce: { interchainPool: 'interchainPool' },
51
- },
13
+ // XXX all the startInstance() should use startUpgradable()
14
+ // or startGovernedUpgradeable() but that would
15
+ // require updating a lot of tests. So for now, we just
16
+ // grab the kits afterward and store them.
17
+
18
+ /**
19
+ * @param {import('./econ-behaviors.js').EconomyBootstrapPowers} powers
20
+ */
21
+ export const storeInterContractStartKits = async ({
22
+ consume: {
23
+ contractKits,
24
+ governedContractKits,
25
+ econCharterKit,
26
+ economicCommitteeKit,
27
+ feeDistributorKit,
28
+ auctioneerKit,
29
+ reserveKit,
30
+ vaultFactoryKit,
52
31
  },
32
+ }) => {
33
+ /**
34
+ * @param {Promise<MapStore<string, {instance: Instance}>>} storeP
35
+ * @param {Promise<{instance: Instance}>[]} kitPs
36
+ */
37
+ const storeAll = async (storeP, kitPs) => {
38
+ const store = await storeP;
39
+ const kits = await Promise.all(kitPs);
40
+ kits.forEach(kit => store.init(kit.instance, kit));
41
+ };
42
+
43
+ await storeAll(contractKits, [
44
+ economicCommitteeKit,
45
+ econCharterKit,
46
+ feeDistributorKit,
47
+ ]);
48
+ await storeAll(governedContractKits, [
49
+ auctioneerKit,
50
+ reserveKit,
51
+ vaultFactoryKit,
52
+ ]);
53
+ };
54
+
55
+ /** @type {import('@agoric/vats/src/core/lib-boot.js').BootstrapManifest} */
56
+ const SHARED_MAIN_MANIFEST = harden({
57
+ /** @type {import('@agoric/vats/src/core/lib-boot.js').BootstrapManifestPermit} */
53
58
  [econBehaviors.startVaultFactory.name]: {
54
59
  consume: {
55
60
  board: 'board',
56
61
  chainStorage: true,
62
+ diagnostics: true,
57
63
  feeMintAccess: 'zoe',
58
64
  chainTimerService: 'timer',
59
65
  zoe: 'zoe',
60
66
  priceAuthority: 'priceAuthority',
61
67
  economicCommitteeCreatorFacet: 'economicCommittee',
62
- reserveCreatorFacet: 'reserve',
63
- },
64
- produce: {
65
- vaultFactoryCreator: 'VaultFactory',
66
- vaultFactoryGovernorCreator: 'VaultFactory',
67
- vaultFactoryVoteCreator: 'VaultFactory',
68
+ reserveKit: 'reserve',
69
+ auctioneerKit: 'auction',
68
70
  },
71
+ produce: { vaultFactoryKit: 'VaultFactory' },
69
72
  brand: { consume: { [Stable.symbol]: 'zoe' } },
70
73
  oracleBrand: { consume: { USD: true } },
71
74
  installation: {
72
75
  consume: {
73
76
  contractGovernor: 'zoe',
74
77
  VaultFactory: 'zoe',
75
- liquidate: 'zoe',
76
78
  },
77
79
  },
78
80
  instance: {
79
81
  consume: {
80
- amm: 'amm',
81
82
  reserve: 'reserve',
83
+ auctioneer: 'auction',
82
84
  },
83
85
  produce: {
84
86
  VaultFactory: 'VaultFactory',
85
- Treasury: 'VaultFactory',
86
87
  VaultFactoryGovernor: 'VaultFactoryGovernor',
87
88
  },
88
89
  },
@@ -91,61 +92,67 @@ const SHARED_MAIN_MANIFEST = harden({
91
92
  consume: {
92
93
  client: 'provisioning',
93
94
  priceAuthorityAdmin: 'priceAuthority',
94
- vaultFactoryCreator: 'VaultFactory',
95
+ vaultFactoryKit: 'VaultFactory',
95
96
  },
96
97
  },
97
98
 
98
99
  [econBehaviors.setupReserve.name]: {
99
100
  consume: {
100
- ammCreatorFacet: 'amm',
101
- ammInstanceWithoutReserve: 'amm',
102
101
  board: 'board',
103
102
  chainStorage: true,
103
+ diagnostics: true,
104
104
  feeMintAccess: 'zoe',
105
105
  chainTimerService: 'timer',
106
106
  zoe: 'zoe',
107
107
  economicCommitteeCreatorFacet: 'economicCommittee',
108
108
  },
109
- produce: {
110
- reserveCreatorFacet: 'reserve',
111
- reserveGovernorCreatorFacet: 'reserve',
112
- reservePublicFacet: 'reserve',
113
- },
109
+ produce: { reserveKit: 'reserve' },
114
110
  issuer: { consume: { [Stable.symbol]: 'zoe' } },
115
111
  brand: { consume: { [Stable.symbol]: 'zoe' } },
116
112
  installation: {
117
113
  consume: { contractGovernor: 'zoe', reserve: 'zoe' },
118
114
  },
119
115
  instance: {
120
- consume: { amm: 'amm' },
121
116
  produce: {
122
- amm: 'amm',
123
117
  reserve: 'reserve',
124
118
  reserveGovernor: 'ReserveGovernor',
125
119
  },
126
120
  },
127
121
  },
128
122
 
129
- [econBehaviors.configureVaultFactoryUI.name]: {
123
+ [econBehaviors.startAuctioneer.name]: {
130
124
  consume: {
131
- board: true,
132
- zoe: true,
125
+ zoe: 'zoe',
126
+ board: 'board',
127
+ chainTimerService: 'timer',
128
+ priceAuthority: 'priceAuthority',
129
+ chainStorage: true,
130
+ economicCommitteeCreatorFacet: 'economicCommittee',
131
+ },
132
+ produce: { auctioneerKit: 'auction' },
133
+ instance: {
134
+ produce: { auctioneer: 'auction' },
135
+ consume: { reserve: 'auction' },
133
136
  },
134
- issuer: { consume: { [Stable.symbol]: 'zoe' } },
135
- brand: { consume: { [Stable.symbol]: 'zoe' } },
136
137
  installation: {
137
- consume: {
138
- amm: 'zoe',
139
- VaultFactory: 'zoe',
140
- contractGovernor: 'zoe',
141
- binaryVoteCounter: 'zoe',
142
- liquidate: 'zoe',
143
- },
138
+ consume: { contractGovernor: 'zoe', auctioneer: 'zoe' },
144
139
  },
145
- instance: {
146
- consume: { amm: 'amm', VaultFactory: 'VaultFactory' },
140
+ issuer: {
141
+ consume: { [Stable.symbol]: 'zoe' },
142
+ },
143
+ },
144
+
145
+ [storeInterContractStartKits.name]: {
146
+ consume: {
147
+ contractKits: true,
148
+ governedContractKits: true,
149
+ econCharterKit: true,
150
+ economicCommitteeKit: true,
151
+ feeDistributorKit: true,
152
+ auctioneerKit: true,
153
+ reserveKit: true,
154
+ vaultFactoryKit: true,
147
155
  },
148
- uiConfig: { produce: { Treasury: true, VaultFactory: true } },
149
156
  },
150
157
  });
151
158
 
@@ -153,15 +160,14 @@ const REWARD_MANIFEST = harden({
153
160
  [econBehaviors.startRewardDistributor.name]: {
154
161
  consume: {
155
162
  chainTimerService: true,
163
+ diagnostics: true,
156
164
  bankManager: true,
157
- vaultFactoryCreator: true,
165
+ vaultFactoryKit: true,
158
166
  periodicFeeCollectors: true,
159
- ammCreatorFacet: true,
160
- stakeFactoryCreatorFacet: true,
161
- reservePublicFacet: true,
167
+ reserveKit: true,
162
168
  zoe: true,
163
169
  },
164
- produce: { feeDistributorCreatorFacet: true, periodicFeeCollectors: true },
170
+ produce: { feeDistributorKit: true, periodicFeeCollectors: true },
165
171
  instance: { produce: { feeDistributor: true } },
166
172
  installation: { consume: { feeDistributor: true } },
167
173
  issuer: { consume: { [Stable.symbol]: 'zoe' } },
@@ -169,75 +175,7 @@ const REWARD_MANIFEST = harden({
169
175
  },
170
176
  });
171
177
 
172
- const STAKE_FACTORY_MANIFEST = harden({
173
- [econBehaviors.startLienBridge.name]: {
174
- consume: { bridgeManager: true },
175
- produce: { lienBridge: true },
176
- brand: {
177
- consume: { BLD: 'BLD' },
178
- },
179
- },
180
- [econBehaviors.startStakeFactory.name]: {
181
- consume: {
182
- board: 'board',
183
- chainStorage: true,
184
- zoe: 'zoe',
185
- feeMintAccess: 'zoe',
186
- lienBridge: true,
187
- client: 'provisioning',
188
- chainTimerService: 'timer',
189
- economicCommitteeCreatorFacet: 'economicCommittee',
190
- },
191
- produce: {
192
- stakeFactoryCreatorFacet: 'stakeFactory',
193
- stakeFactoryGovernorCreatorFacet: 'stakeFactory',
194
- },
195
- installation: {
196
- consume: { contractGovernor: 'zoe', stakeFactory: 'zoe' },
197
- },
198
- instance: {
199
- produce: { stakeFactory: 'stakeFactory' },
200
- },
201
- brand: {
202
- consume: { BLD: 'BLD', [Stable.symbol]: 'zoe' },
203
- produce: { Attestation: 'stakeFactory' },
204
- },
205
- issuer: {
206
- consume: { BLD: 'BLD' },
207
- produce: { Attestation: 'stakeFactory' },
208
- },
209
- },
210
- });
211
-
212
- export const SIM_CHAIN_MANIFEST = harden({
213
- [simBehaviors.fundAMM.name]: {
214
- consume: {
215
- centralSupplyBundle: true,
216
- mintHolderBundle: true,
217
- chainTimerService: 'timer',
218
- bldIssuerKit: true,
219
- feeMintAccess: true,
220
- loadVat: true,
221
- mints: 'mints',
222
- priceAuthorityVat: 'priceAuthority',
223
- priceAuthorityAdmin: 'priceAuthority',
224
- vaultFactoryCreator: 'VaultFactory',
225
- zoe: true,
226
- },
227
- installation: {
228
- consume: { centralSupply: 'zoe' },
229
- },
230
- issuer: {
231
- consume: { [Stable.symbol]: 'zoe' },
232
- },
233
- brand: {
234
- consume: { [Stable.symbol]: 'zoe' },
235
- },
236
- instance: {
237
- consume: { amm: 'amm' },
238
- },
239
- },
240
- });
178
+ export const SIM_CHAIN_MANIFEST = harden({});
241
179
 
242
180
  export const getManifestForEconCommittee = (
243
181
  { restoreRef },
@@ -258,42 +196,37 @@ export const getManifestForEconCommittee = (
258
196
 
259
197
  export const getManifestForMain = (
260
198
  { restoreRef },
261
- { installKeys, vaultFactoryControllerAddress, minInitialPoolLiquidity },
199
+ {
200
+ installKeys,
201
+ vaultFactoryControllerAddress,
202
+ minInitialPoolLiquidity,
203
+ endorsedUi,
204
+ },
262
205
  ) => {
263
206
  return {
264
207
  manifest: SHARED_MAIN_MANIFEST,
265
208
  installations: {
266
- amm: restoreRef(installKeys.amm),
267
209
  VaultFactory: restoreRef(installKeys.vaultFactory),
210
+ auctioneer: restoreRef(installKeys.auctioneer),
268
211
  feeDistributor: restoreRef(installKeys.feeDistributor),
269
- liquidate: restoreRef(installKeys.liquidate),
270
212
  reserve: restoreRef(installKeys.reserve),
271
- interchainPool: restoreRef(installKeys.interchainPool),
272
213
  },
273
214
  options: {
274
215
  vaultFactoryControllerAddress,
275
216
  minInitialPoolLiquidity,
217
+ endorsedUi,
276
218
  },
277
219
  };
278
220
  };
279
221
 
280
- const roleToManifest = harden({
281
- chain: {
282
- ...REWARD_MANIFEST,
283
- ...STAKE_FACTORY_MANIFEST,
284
- },
285
- 'sim-chain': SIM_CHAIN_MANIFEST,
286
- client: {},
287
- });
288
-
289
222
  export const getManifestForInterProtocol = (
290
223
  { restoreRef },
291
224
  {
292
- ROLE = 'chain',
293
225
  econCommitteeOptions,
294
226
  installKeys,
295
227
  vaultFactoryControllerAddress,
296
228
  minInitialPoolLiquidity,
229
+ endorsedUi,
297
230
  },
298
231
  ) => {
299
232
  const econCommitteeManifest = getManifestForEconCommittee(
@@ -306,18 +239,18 @@ export const getManifestForInterProtocol = (
306
239
  installKeys,
307
240
  vaultFactoryControllerAddress,
308
241
  minInitialPoolLiquidity,
242
+ endorsedUi,
309
243
  },
310
244
  );
311
245
  return {
312
246
  manifest: {
313
247
  ...econCommitteeManifest.manifest,
314
248
  ...mainManifest.manifest,
315
- ...roleToManifest[ROLE],
249
+ ...REWARD_MANIFEST,
316
250
  },
317
251
  installations: {
318
252
  ...econCommitteeManifest.installations,
319
253
  ...mainManifest.installations,
320
- stakeFactory: restoreRef(installKeys.stakeFactory),
321
254
  },
322
255
  options: {
323
256
  ...econCommitteeManifest.options,