@agoric/inter-protocol 0.17.0-u19.2 → 0.17.0-u21.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 (83) hide show
  1. package/package.json +33 -32
  2. package/src/auction/auctionBook.d.ts +2 -2
  3. package/src/auction/auctioneer.d.ts +5 -4
  4. package/src/auction/auctioneer.d.ts.map +1 -1
  5. package/src/auction/auctioneer.js +2 -0
  6. package/src/auction/offerBook.d.ts +3 -2
  7. package/src/auction/offerBook.d.ts.map +1 -1
  8. package/src/auction/offerBook.js +5 -1
  9. package/src/auction/params.d.ts +2 -1
  10. package/src/auction/params.d.ts.map +1 -1
  11. package/src/auction/params.js +1 -0
  12. package/src/auction/scheduler.d.ts +1 -1
  13. package/src/auction/util.d.ts +2 -1
  14. package/src/auction/util.d.ts.map +1 -1
  15. package/src/auction/util.js +4 -1
  16. package/src/clientSupport.d.ts +1 -0
  17. package/src/clientSupport.d.ts.map +1 -1
  18. package/src/clientSupport.js +6 -1
  19. package/src/contractSupport.d.ts +1 -1
  20. package/src/contractSupport.d.ts.map +1 -1
  21. package/src/econCommitteeCharter.d.ts +4 -4
  22. package/src/feeDistributor.d.ts +17 -17
  23. package/src/interest-math.js +1 -1
  24. package/src/interest.d.ts +3 -1
  25. package/src/interest.d.ts.map +1 -1
  26. package/src/interest.js +2 -5
  27. package/src/price/fluxAggregatorContract.d.ts +6 -6
  28. package/src/price/fluxAggregatorContract.d.ts.map +1 -1
  29. package/src/price/fluxAggregatorKit.d.ts +4 -4
  30. package/src/price/roundsManager.d.ts +1 -1
  31. package/src/proposals/addAssetToVault.js +1 -1
  32. package/src/proposals/econ-behaviors.js +17 -3
  33. package/src/proposals/upgrade-vaults.js +1 -2
  34. package/src/provisionPool.d.ts +17 -5
  35. package/src/provisionPool.d.ts.map +1 -1
  36. package/src/provisionPool.js +17 -11
  37. package/src/provisionPoolKit.d.ts +26 -11
  38. package/src/provisionPoolKit.d.ts.map +1 -1
  39. package/src/provisionPoolKit.js +111 -51
  40. package/src/psm/psm.d.ts +10 -6
  41. package/src/psm/psm.d.ts.map +1 -1
  42. package/src/psm/psm.js +1 -0
  43. package/src/reserve/assetReserve.d.ts +12 -2
  44. package/src/reserve/assetReserve.d.ts.map +1 -1
  45. package/src/reserve/assetReserve.js +4 -0
  46. package/src/reserve/assetReserveKit.d.ts +30 -2
  47. package/src/reserve/assetReserveKit.d.ts.map +1 -1
  48. package/src/reserve/assetReserveKit.js +108 -1
  49. package/src/reserve/params.d.ts +5 -1
  50. package/src/reserve/params.d.ts.map +1 -1
  51. package/src/reserve/params.js +4 -0
  52. package/src/vaultFactory/liquidation.d.ts +2 -0
  53. package/src/vaultFactory/liquidation.d.ts.map +1 -1
  54. package/src/vaultFactory/liquidation.js +5 -5
  55. package/src/vaultFactory/math.js +1 -1
  56. package/src/vaultFactory/orderedVaultStore.d.ts +19 -18
  57. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -1
  58. package/src/vaultFactory/orderedVaultStore.js +4 -2
  59. package/src/vaultFactory/params.d.ts +5 -2
  60. package/src/vaultFactory/params.d.ts.map +1 -1
  61. package/src/vaultFactory/params.js +5 -2
  62. package/src/vaultFactory/prioritizedVaults.d.ts +58 -57
  63. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -1
  64. package/src/vaultFactory/prioritizedVaults.js +5 -2
  65. package/src/vaultFactory/storeUtils.d.ts +2 -2
  66. package/src/vaultFactory/storeUtils.d.ts.map +1 -1
  67. package/src/vaultFactory/types-ambient.d.ts +2 -2
  68. package/src/vaultFactory/types-ambient.d.ts.map +1 -1
  69. package/src/vaultFactory/types-ambient.js +5 -2
  70. package/src/vaultFactory/vault.d.ts +9 -9
  71. package/src/vaultFactory/vaultDirector.d.ts +46 -44
  72. package/src/vaultFactory/vaultDirector.d.ts.map +1 -1
  73. package/src/vaultFactory/vaultDirector.js +2 -0
  74. package/src/vaultFactory/vaultFactory.d.ts +62 -15
  75. package/src/vaultFactory/vaultFactory.d.ts.map +1 -1
  76. package/src/vaultFactory/vaultFactory.js +6 -2
  77. package/src/vaultFactory/vaultHolder.d.ts +32 -32
  78. package/src/vaultFactory/vaultHolder.d.ts.map +1 -1
  79. package/src/vaultFactory/vaultHolder.js +4 -0
  80. package/src/vaultFactory/vaultKit.d.ts +6 -6
  81. package/src/vaultFactory/vaultManager.d.ts +61 -58
  82. package/src/vaultFactory/vaultManager.d.ts.map +1 -1
  83. package/src/vaultFactory/vaultManager.js +4 -2
package/src/psm/psm.js CHANGED
@@ -45,6 +45,7 @@ import { makeNatAmountShape } from '../contractSupport.js';
45
45
 
46
46
  /**
47
47
  * @import {EReturn} from '@endo/far';
48
+ * @import {ContractMeta, FeeMintAccess, Installation} from '@agoric/zoe';
48
49
  */
49
50
 
50
51
  /**
@@ -12,14 +12,19 @@ export function start(zcf: ZCF<GovernanceTerms<{}> & {
12
12
  creatorFacet: GovernedCreatorFacet<import("@endo/exo").Guarded<{
13
13
  addIssuer(issuer: Issuer, keyword: string): Promise<void>;
14
14
  getAllocations(): Allocation;
15
- makeShortfallReportingInvitation(): Promise<Invitation<import("@endo/exo").Guarded<{
15
+ makeShortfallReportingInvitation(): Promise<globalThis.Invitation<import("@endo/exo").Guarded<{
16
16
  increaseLiquidationShortfall(shortfall: Amount<"nat">): void;
17
17
  reduceLiquidationShortfall(reduction: Amount<"nat">): void;
18
18
  }>, undefined>>;
19
+ makeSingleWithdrawalInvitation(): Promise<globalThis.Invitation<any, undefined>>;
20
+ makeRepeatableWithdrawalInvitation(): Promise<globalThis.Invitation<{
21
+ invitationMakers: Partial<any>;
22
+ }, undefined>>;
23
+ revokeOutstandingWithdrawalInvitations(): void;
19
24
  }>>;
20
25
  /** @type {GovernedPublicFacet<typeof assetReserveKit.public>} */
21
26
  publicFacet: GovernedPublicFacet<import("@endo/exo").Guarded<{
22
- makeAddCollateralInvitation(): Promise<Invitation<string, never>>;
27
+ makeAddCollateralInvitation(): Promise<globalThis.Invitation<string, never>>;
23
28
  getPublicTopics(): {
24
29
  metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./assetReserveKit.js").MetricsNotification>;
25
30
  };
@@ -43,6 +48,11 @@ export type AssetReservePublicFacet = EReturn<typeof start>["publicFacet"];
43
48
  * the creator facet for the governor
44
49
  */
45
50
  export type AssetReserveCreatorFacet = EReturn<typeof start>["creatorFacet"];
51
+ export type ReserveContract = ContractOf<typeof start>;
52
+ import type { ContractMeta } from '@agoric/zoe';
53
+ import type { FeeMintAccess } from '@agoric/zoe';
46
54
  import type { Baggage } from '@agoric/vat-data';
55
+ import type { Allocation } from '@agoric/zoe';
47
56
  import type { EReturn } from '@endo/far';
57
+ import type { ContractOf } from '@agoric/zoe/src/zoeService/utils.js';
48
58
  //# sourceMappingURL=assetReserve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assetReserve.d.ts","sourceRoot":"","sources":["assetReserve.js"],"names":[],"mappings":"AAgBA,yCAAyC;AACzC,mBADW,YAAY,CAAC,OAAO,KAAK,CAAC,CAGnC;AAgCK,2BAbI,GAAG,CACT,eAAe,CAAC,EAAE,CAAC,GAAG;IACpB,YAAY,EAAE,CAAC,2BAA2B,CAAC,CAAC;CAC7C,CACF,eACO;IACN,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,EAAE,UAAU,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;CAChC,WACO,OAAO;IAoDd,mEAAmE;kBAAxD,oBAAoB;;;;;;;OAAgC;IAE/D,iEAAiE;iBAAtD,mBAAmB;;;;;OAA+B;GAKhE;sCArFY;IACR,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;;kCAuFU,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;gCAC3B,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;;;eAK3B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI;oBACrC,MAAM,UAAU;sCAChB,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;;sCAG5C,QAAQ,OAAO,KAAK,CAAb,CAAe,aAAa,CAAC;;;;uCAErC,QAAQ,OAAO,KAAK,CAAb,CAAe,cAAc,CAAC;6BAjGvB,kBAAkB;6BAlBnB,WAAW"}
1
+ {"version":3,"file":"assetReserve.d.ts","sourceRoot":"","sources":["assetReserve.js"],"names":[],"mappings":"AAkBA,yCAAyC;AACzC,mBADW,aAAa,OAAO,KAAK,CAAC,CAGnC;AAgCK,2BAbI,GAAG,CACT,eAAe,CAAC,EAAE,CAAC,GAAG;IACpB,YAAY,EAAE,CAAC,2BAA2B,CAAC,CAAC;CAC7C,CACF,eACO;IACN,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,EAAE,UAAU,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;CAChC,WACO,OAAO;IAoDd,mEAAmE;kBAAxD,oBAAoB;;;;;;;;;;;;OAAgC;IAE/D,iEAAiE;iBAAtD,mBAAmB;;;;;OAA+B;GAKhE;sCArFY;IACR,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;;kCAuFU,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;gCAC3B,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;;;eAK3B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI;oBACrC,MAAM,UAAU;sCAChB,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;;sCAG5C,QAAQ,OAAO,KAAK,CAAb,CAAe,aAAa,CAAC;;;;uCAErC,QAAQ,OAAO,KAAK,CAAb,CAAe,cAAc,CAAC;8BAIpC,WAAW,OAAO,KAAK,CAAC;kCAvHkC,aAAa;mCAAb,aAAa;6BAkB1D,kBAAkB;gCAlB2B,aAAa;6BAF3D,WAAW;gCACR,qCAAqC"}
@@ -10,6 +10,8 @@ import { prepareAssetReserveKit } from './assetReserveKit.js';
10
10
 
11
11
  /**
12
12
  * @import {EReturn} from '@endo/far';
13
+ * @import {ContractOf} from '@agoric/zoe/src/zoeService/utils.js';
14
+ * @import {Allocation, ContractMeta, FeeMintAccess, Installation} from '@agoric/zoe';
13
15
  */
14
16
 
15
17
  const trace = makeTracer('AR', true);
@@ -127,3 +129,5 @@ harden(start);
127
129
  * @typedef {EReturn<typeof start>['creatorFacet']} AssetReserveCreatorFacet
128
130
  * the creator facet for the governor
129
131
  */
132
+
133
+ /** @typedef {ContractOf<typeof start>} ReserveContract */
@@ -21,6 +21,20 @@ export function prepareAssetReserveKit(baggage: import("@agoric/vat-data").Bagga
21
21
  */
22
22
  burnFeesToReduceShortfall(reduction: Amount<"nat">): void;
23
23
  };
24
+ withdrawalHandler: {
25
+ handle(seat: any): Promise<string>;
26
+ };
27
+ withdrawalFacet: {
28
+ Withdraw(): Promise<globalThis.Invitation<any, undefined>>;
29
+ };
30
+ repeatableWithdrawalHandler: {
31
+ /**
32
+ * @param {ZCFSeat} seat
33
+ */
34
+ handle(seat: ZCFSeat): {
35
+ invitationMakers: Partial<any>;
36
+ };
37
+ };
24
38
  machine: {
25
39
  /**
26
40
  * @param {Issuer} issuer
@@ -29,12 +43,17 @@ export function prepareAssetReserveKit(baggage: import("@agoric/vat-data").Bagga
29
43
  addIssuer(issuer: Issuer, keyword: string): Promise<void>;
30
44
  /** XXX redundant with getPublicTopics metrics `allocation` */
31
45
  getAllocations(): Allocation;
32
- makeShortfallReportingInvitation(): Promise<Invitation<import("@endo/exo").Guarded<{
46
+ makeShortfallReportingInvitation(): Promise<globalThis.Invitation<import("@endo/exo").Guarded<{
33
47
  /** @param {Amount<'nat'>} shortfall */
34
48
  increaseLiquidationShortfall(shortfall: Amount<"nat">): void;
35
49
  /** @param {Amount<'nat'>} reduction */
36
50
  reduceLiquidationShortfall(reduction: Amount<"nat">): void;
37
51
  }>, undefined>>;
52
+ makeSingleWithdrawalInvitation(): Promise<globalThis.Invitation<any, undefined>>;
53
+ makeRepeatableWithdrawalInvitation(): Promise<globalThis.Invitation<{
54
+ invitationMakers: Partial<any>;
55
+ }, undefined>>;
56
+ revokeOutstandingWithdrawalInvitations(): void;
38
57
  };
39
58
  /**
40
59
  * XXX missing governance public methods
@@ -42,7 +61,7 @@ export function prepareAssetReserveKit(baggage: import("@agoric/vat-data").Bagga
42
61
  */
43
62
  public: {
44
63
  /** Anyone can deposit any assets to the reserve */
45
- makeAddCollateralInvitation(): Promise<Invitation<string, never>>;
64
+ makeAddCollateralInvitation(): Promise<globalThis.Invitation<string, never>>;
46
65
  getPublicTopics(): {
47
66
  metrics: import("@agoric/zoe/src/contractSupport").PublicTopic<MetricsNotification>;
48
67
  };
@@ -71,5 +90,14 @@ export type MetricsNotification = {
71
90
  totalFeeBurned: Amount<"nat">;
72
91
  };
73
92
  export type AssetReserveKit = EReturn<EReturn<typeof prepareAssetReserveKit>>;
93
+ import type { ZCFMint } from '@agoric/zoe';
94
+ import type { StorageNode } from '@agoric/internal/src/lib-chainStorage.js';
95
+ import type { ZCF } from '@agoric/zoe';
96
+ import type { Brand } from '@agoric/ertp';
97
+ import type { Keyword } from '@agoric/zoe';
98
+ import type { Amount } from '@agoric/ertp';
99
+ import type { ZCFSeat } from '@agoric/zoe';
100
+ import type { Issuer } from '@agoric/ertp';
101
+ import type { AmountKeywordRecord } from '@agoric/zoe/src/zoeService/types.js';
74
102
  import type { EReturn } from '@endo/far';
75
103
  //# sourceMappingURL=assetReserveKit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assetReserveKit.d.ts","sourceRoot":"","sources":["assetReserveKit.js"],"names":[],"mappings":"AAsCO,gDARI,OAAO,kBAAkB,EAAE,OAAO,kDAClC;IACN,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,eAAe,EAAE,OAAO,6CAA6C,EAAE,eAAe,CAAC;IACvF,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,GAAG,CAAC;CACV;;QAoEI,2BAA2B;kCAAf,KAAK;QAUjB;;;WAGG;gCAFQ,KAAK,WACL,OAAO;;;;QAqBlB;;;WAGG;6CAFQ,MAAM,CAAC,KAAK,CAAC,GACX,IAAI;;;QA6BjB;;;WAGG;0BAFQ,MAAM,WACN,MAAM;QAmBjB,8DAA8D;;;YA2D9D,uCAAuC;oDAA3B,MAAM,CAAC,KAAK,CAAC;YAWzB,uCAAuC;kDAA3B,MAAM,CAAC,KAAK,CAAC;;;IArD3B;;;OAGG;;QAED,mDAAmD;;;;;;;QAqCnD,uCAAuC;gDAA3B,MAAM,CAAC,KAAK,CAAC;QAWzB,uCAAuC;8CAA3B,MAAM,CAAC,KAAK,CAAC;;KA8BhC;;iBA3Qa,mBAAmB;;;;;sBACnB,MAAM,CAAC,KAAK,CAAC;;;;oBAEb,MAAM,CAAC,KAAK,CAAC;;;;oBACb,MAAM,CAAC,KAAK,CAAC;;8BAyQb,QAAQ,QAAQ,OAAO,sBAAsB,CAAC,CAAC;6BAnRnC,WAAW"}
1
+ {"version":3,"file":"assetReserveKit.d.ts","sourceRoot":"","sources":["assetReserveKit.js"],"names":[],"mappings":"AAiDO,gDARI,OAAO,kBAAkB,EAAE,OAAO,kDAClC;IACN,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC;IACxB,eAAe,EAAE,OAAO,6CAA6C,EAAE,eAAe,CAAC;IACvF,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,GAAG,CAAC;CACV;;QA8GI,2BAA2B;kCAAf,KAAK;QAUjB;;;WAGG;gCAFQ,KAAK,WACL,OAAO;;;;QAqBlB;;;WAGG;6CAFQ,OAAO,KAAK,CAAC,GACX,IAAI;;;;;;;;;QAsDjB;;WAEG;qBADQ,OAAO;;;;;QAYlB;;;WAGG;0BAFQ,MAAM,WACN,MAAM;QAmBjB,8DAA8D;;;YA2E9D,uCAAuC;oDAA3B,OAAO,KAAK,CAAC;YAWzB,uCAAuC;kDAA3B,OAAO,KAAK,CAAC;;;;;;;;IArD3B;;;OAGG;;QAED,mDAAmD;;;;;;;QAqCnD,uCAAuC;gDAA3B,OAAO,KAAK,CAAC;QAWzB,uCAAuC;8CAA3B,OAAO,KAAK,CAAC;;KA8BhC;;iBA3Wa,mBAAmB;;;;;sBACnB,OAAO,KAAK,CAAC;;;;oBAEb,OAAO,KAAK,CAAC;;;;oBACb,OAAO,KAAK,CAAC;;8BAyWb,QAAQ,QAAQ,OAAO,sBAAsB,CAAC,CAAC;6BAlXE,aAAa;iCAJ9C,0CAA0C;yBAIT,aAAa;2BAHpC,cAAc;6BAGS,aAAa;4BAHpC,cAAc;6BAGS,aAAa;4BAHpC,cAAc;yCAEhB,qCAAqC;6BALjD,WAAW"}
@@ -1,3 +1,4 @@
1
+ // @ts-check
1
2
  import { Fail, q } from '@endo/errors';
2
3
  import { AmountMath, AmountShape, IssuerShape } from '@agoric/ertp';
3
4
  import { makeTracer } from '@agoric/internal';
@@ -7,15 +8,25 @@ import {
7
8
  makeRecorderTopic,
8
9
  TopicsRecordShape,
9
10
  } from '@agoric/zoe/src/contractSupport/topics.js';
10
- import { AmountKeywordRecordShape } from '@agoric/zoe/src/typeGuards.js';
11
+ import {
12
+ AmountKeywordRecordShape,
13
+ OfferHandlerI,
14
+ } from '@agoric/zoe/src/typeGuards.js';
11
15
  import { E } from '@endo/eventual-send';
12
16
  import { UnguardedHelperI } from '@agoric/internal/src/typeGuards.js';
17
+ import { prepareRevocableMakerKit } from '@agoric/base-zone/zone-helpers.js';
18
+ import { makeDurableZone } from '@agoric/zone/durable.js';
13
19
 
14
20
  const trace = makeTracer('ReserveKit', true);
15
21
 
16
22
  /**
17
23
  * @import {EReturn} from '@endo/far';
18
24
  * @import {TypedPattern} from '@agoric/internal';
25
+ * @import {StorageNode} from '@agoric/internal/src/lib-chainStorage.js';
26
+ * @import {Amount, Brand, Issuer} from '@agoric/ertp';
27
+ * @import {MapStore, SetStore} from '@agoric/store';
28
+ * @import {AmountKeywordRecord} from '@agoric/zoe/src/zoeService/types.js';
29
+ * @import {ZCF, OfferHandler, Keyword, ZCFMint, ZCFSeat} from '@agoric/zoe';
19
30
  */
20
31
 
21
32
  /**
@@ -44,6 +55,40 @@ export const prepareAssetReserveKit = async (
44
55
  const feeKit = feeMint.getIssuerRecord();
45
56
  const emptyAmount = AmountMath.makeEmpty(feeKit.brand);
46
57
 
58
+ const zone = makeDurableZone(baggage);
59
+
60
+ // Durable revocation bookkeeping for the revocable single and repeatable
61
+ // invitations.
62
+ /** @type {SetStore<{ revoke: () => boolean }>} */
63
+ const outstandingRevokers = zone.setStore('outstandingRevokers');
64
+
65
+ const { makeRevocableKit: makeRevocableWithdrawalFacet } =
66
+ prepareRevocableMakerKit(zone, 'WithdrawalFacet', ['Withdraw']);
67
+
68
+ const { makeRevocableKit: makeRevocableWithdrawalHandler } =
69
+ prepareRevocableMakerKit(zone, 'WithdrawalHandler', ['handle'], {
70
+ extraMethods: {
71
+ /**
72
+ * Add some additional cleanup to avoid proliferation of revokers for
73
+ * spent invitations.
74
+ *
75
+ * @param {ZCFSeat} seat
76
+ * @param {never} offerArgs
77
+ */
78
+ handle(seat, offerArgs) {
79
+ const { revoker } = this.facets;
80
+ // We remove our outstanding revoker because we are consumed by Zoe
81
+ // and cannot be used again.
82
+ if (this.state.underlying === undefined) {
83
+ Fail`${q('WithdrawalHandler_caretaker')} revoked`;
84
+ }
85
+
86
+ outstandingRevokers.delete(revoker);
87
+ return this.state.underlying.handle(seat, offerArgs);
88
+ },
89
+ },
90
+ });
91
+
47
92
  const makeAssetReserveKitInternal = prepareExoClassKit(
48
93
  baggage,
49
94
  'AssetReserveKit',
@@ -52,10 +97,18 @@ export const prepareAssetReserveKit = async (
52
97
  governedApis: M.interface('AssetReserve governedApis', {
53
98
  burnFeesToReduceShortfall: M.call(AmountShape).returns(),
54
99
  }),
100
+ withdrawalFacet: M.interface('AssetReserve withdrawalFacet', {
101
+ Withdraw: M.call().returns(M.promise()),
102
+ }),
103
+ withdrawalHandler: OfferHandlerI,
104
+ repeatableWithdrawalHandler: OfferHandlerI,
55
105
  machine: M.interface('AssetReserve machine', {
56
106
  addIssuer: M.call(IssuerShape, M.string()).returns(M.promise()),
57
107
  getAllocations: M.call().returns(AmountKeywordRecordShape),
58
108
  makeShortfallReportingInvitation: M.call().returns(M.promise()),
109
+ makeSingleWithdrawalInvitation: M.call().returns(M.promise()),
110
+ makeRepeatableWithdrawalInvitation: M.call().returns(M.promise()),
111
+ revokeOutstandingWithdrawalInvitations: M.call().returns(),
59
112
  }),
60
113
  public: M.interface('AssetReserve public', {
61
114
  makeAddCollateralInvitation: M.call().returns(M.promise()),
@@ -164,6 +217,44 @@ export const prepareAssetReserveKit = async (
164
217
  facets.helper.writeMetrics();
165
218
  },
166
219
  },
220
+ withdrawalHandler: {
221
+ async handle(seat) {
222
+ const { collateralSeat } = this.state;
223
+ const { helper } = this.facets;
224
+ const { want } = seat.getProposal();
225
+
226
+ // COMMIT POINT
227
+ // UNTIL #10684: ability to terminate an incarnation w/o terminating the contract
228
+ zcf.atomicRearrange(harden([[collateralSeat, seat, want]]));
229
+
230
+ helper.writeMetrics();
231
+ seat.exit();
232
+
233
+ trace('withdrew collateral', want);
234
+ return 'withdrew Collateral from the Reserve';
235
+ },
236
+ },
237
+ withdrawalFacet: {
238
+ Withdraw() {
239
+ const { revoker, revocable: handler } =
240
+ makeRevocableWithdrawalHandler(this.facets.withdrawalHandler);
241
+ outstandingRevokers.add(revoker);
242
+ // @ts-expect-error Argument of type Guarded<
243
+ return zcf.makeInvitation(handler, 'Withdraw Collateral');
244
+ },
245
+ },
246
+ repeatableWithdrawalHandler: {
247
+ /**
248
+ * @param {ZCFSeat} seat
249
+ */
250
+ handle(seat) {
251
+ seat.exit();
252
+ const { revoker, revocable: invitationMakers } =
253
+ makeRevocableWithdrawalFacet(this.facets.withdrawalFacet);
254
+ outstandingRevokers.add(revoker);
255
+ return harden({ invitationMakers });
256
+ },
257
+ },
167
258
  machine: {
168
259
  // add makeRedeemLiquidityTokensInvitation later. For now just store them
169
260
  /**
@@ -203,6 +294,22 @@ export const prepareAssetReserveKit = async (
203
294
  'getFacetForReportingShortfalls',
204
295
  );
205
296
  },
297
+
298
+ makeSingleWithdrawalInvitation() {
299
+ return this.facets.withdrawalFacet.Withdraw();
300
+ },
301
+
302
+ makeRepeatableWithdrawalInvitation() {
303
+ const handler = this.facets.repeatableWithdrawalHandler;
304
+ return zcf.makeInvitation(handler, 'Repeatable Withdraw Collateral');
305
+ },
306
+
307
+ revokeOutstandingWithdrawalInvitations() {
308
+ for (const revoker of outstandingRevokers.keys()) {
309
+ revoker.revoke();
310
+ }
311
+ outstandingRevokers.clear();
312
+ },
206
313
  },
207
314
  /**
208
315
  * XXX missing governance public methods
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import {AdminFacet, ContractOf, InvitationAmount, ZCFMint} from '@agoric/zoe';
3
+ */
1
4
  /**
2
5
  * @param {InvitationAmount} poserInvitationAmount
3
6
  */
@@ -5,8 +8,9 @@ export function makeReserveTerms(poserInvitationAmount: InvitationAmount): {
5
8
  governedParams: {
6
9
  Electorate: {
7
10
  type: "invitation";
8
- value: import("@agoric/ertp").SetAmount<InvitationDetails>;
11
+ value: import("@agoric/ertp").SetAmount<import("@agoric/zoe").InvitationDetails>;
9
12
  };
10
13
  };
11
14
  };
15
+ import type { InvitationAmount } from '@agoric/zoe';
12
16
  //# sourceMappingURL=params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["params.js"],"names":[],"mappings":"AAIA;;GAEG;AACH,wDAFW,gBAAgB;;;;;;;EASzB"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["params.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;GAEG;AACH,wDAFW,gBAAgB;;;;;;;EASzB;sCAbkE,aAAa"}
@@ -2,6 +2,10 @@
2
2
 
3
3
  import { CONTRACT_ELECTORATE, ParamTypes } from '@agoric/governance';
4
4
 
5
+ /**
6
+ * @import {AdminFacet, ContractOf, InvitationAmount, ZCFMint} from '@agoric/zoe';
7
+ */
8
+
5
9
  /**
6
10
  * @param {InvitationAmount} poserInvitationAmount
7
11
  */
@@ -20,4 +20,6 @@ export function getLiquidatableVaults(zcf: ZCF, collateralizationDetails: {
20
20
  import type { TimerService } from '@agoric/time';
21
21
  import type { TimerWaker } from '@agoric/time';
22
22
  import type { PriceQuote } from '@agoric/zoe/tools/types.js';
23
+ import type { SetStore } from '@agoric/store';
24
+ import type { MapStore } from '@agoric/store';
23
25
  //# sourceMappingURL=liquidation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["liquidation.js"],"names":[],"mappings":"AAoJO,gEAPI,IAAI,CAAC,OAAO,0BAA0B,EAAE,qBAAqB,CAAC,SAC9D,IAAI,CAAC,YAAY,CAAC,kBAClB,UAAU,oBACV,UAAU,oBACV,UAAU,GACR,OAAO,CAAC,IAAI,CAAC,CAqCzB;AAQM,yCAJI,MAAM,CAAC,KAAK,CAAC,UACb,MAAM,CAAC,KAAK,CAAC,GACX;IAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;CAAE,CAYhE;AAWM,gEALI,IAAI,CAAC,OAAO,0BAA0B,EAAE,qBAAqB,CAAC,SAC9D,IAAI,CAAC,YAAY,CAAC,oBAClB,UAAU,GACR,IAAI,CA0BhB;AAwBM,2CArBI,GAAG,4BAEX;IAA6C,KAAK,EAA1C,UAAU;IACsB,QAAQ,EAAxC,KAAK;IAC2B,MAAM,EAAtC,KAAK;CACb,qBAAQ,UAAU,CACpB,cAAkB,wBAAwB,EAAE,qBAAqB,CAC9D,qBACO,QAAQ,CAAC,KAAK,CAAC,aACf,KAAK,CAAC,KAAK,CAAC,mBACZ,KAAK,CAAC,KAAK,CAAC,GACV;IACR,SAAS,EAAE,QAAQ,CACvB,KAAW,EACX;QAAQ,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;KAAE,CAC/D,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,CAiDH;kCArS+B,cAAc;gCAChB,cAAc;gCAGkD,4BAA4B"}
1
+ {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["liquidation.js"],"names":[],"mappings":"AAoJO,gEAPI,IAAI,CAAC,OAAO,0BAA0B,EAAE,qBAAqB,CAAC,SAC9D,IAAI,CAAC,YAAY,CAAC,kBAClB,UAAU,oBACV,UAAU,oBACV,UAAU,GACR,OAAO,CAAC,IAAI,CAAC,CAqCzB;AAQM,yCAJI,MAAM,CAAC,KAAK,CAAC,UACb,MAAM,CAAC,KAAK,CAAC,GACX;IAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;CAAE,CAYhE;AAWM,gEALI,IAAI,CAAC,OAAO,0BAA0B,EAAE,qBAAqB,CAAC,SAC9D,IAAI,CAAC,YAAY,CAAC,oBAClB,UAAU,GACR,IAAI,CA0BhB;AAwBM,2CArBI,GAAG,4BAEX;IAA6C,KAAK,EAA1C,UAAU;IACsB,QAAQ,EAAxC,KAAK;IAC2B,MAAM,EAAtC,KAAK;CACb,qBAAQ,UAAU,CACpB,cAAkB,wBAAwB,EAAE,qBAAqB,CAC9D,qBACO,SAAS,KAAK,CAAC,aACf,KAAK,CAAC,KAAK,CAAC,mBACZ,KAAK,CAAC,KAAK,CAAC,GACV;IACR,SAAS,EAAE,SACf,KAAW,EACX;QAAQ,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;KAAE,CAC/D,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,CAiDH;kCAnS8D,cAAc;gCAAd,cAAc;gCAChD,4BAA4B;8BAFpB,eAAe;8BAAf,eAAe"}
@@ -12,11 +12,11 @@ import { makeCancelTokenMaker } from '../auction/util.js';
12
12
 
13
13
  const trace = makeTracer('LIQ');
14
14
 
15
- /** @import {TimerService} from '@agoric/time' */
16
- /** @import {TimerWaker} from '@agoric/time' */
17
- /** @import {CancelToken} from '@agoric/time' */
18
- /** @import {RelativeTimeRecord} from '@agoric/time' */
19
- /** @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js'; */
15
+ /**
16
+ * @import {MapStore, SetStore} from '@agoric/store';
17
+ * @import {RelativeTimeRecord, TimerService, TimerWaker} from '@agoric/time';
18
+ * @import {PriceQuote} from '@agoric/zoe/tools/types.js';
19
+ */
20
20
 
21
21
  const makeCancelToken = makeCancelTokenMaker('liq');
22
22
 
@@ -12,7 +12,7 @@ import {
12
12
  ceilMultiplyBy,
13
13
  floorDivideBy,
14
14
  ratioGTE,
15
- } from '@agoric/zoe/src/contractSupport/ratio.js';
15
+ } from '@agoric/ertp/src/ratio.js';
16
16
  import { priceFrom } from '../auction/util.js';
17
17
  import { addSubtract } from '../contractSupport.js';
18
18
 
@@ -4,7 +4,7 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
4
4
  has: (key: string) => boolean;
5
5
  keys: (keyPatt?: Pattern, valuePatt?: Pattern) => Iterable<string>;
6
6
  entries: (keyPatt?: Pattern, valuePatt?: Pattern) => Iterable<[string, import("@endo/exo").Guarded<{
7
- getVaultSeat(): ZCFSeat;
7
+ getVaultSeat(): globalThis.ZCFSeat;
8
8
  initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
9
9
  publicSubscribers: {
10
10
  vault: {
@@ -14,9 +14,9 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
14
14
  };
15
15
  };
16
16
  invitationMakers: import("@endo/exo").Guarded<{
17
- AdjustBalances(): Promise<Invitation<string, undefined>>;
18
- CloseVault(): Promise<Invitation<string, undefined>>;
19
- TransferVault(): Promise<Invitation</*elided*/ any, undefined>>;
17
+ AdjustBalances(): Promise<globalThis.Invitation<string, undefined>>;
18
+ CloseVault(): Promise<globalThis.Invitation<string, undefined>>;
19
+ TransferVault(): Promise<globalThis.Invitation</*elided*/ any>>;
20
20
  }>;
21
21
  vault: import("@endo/exo").Guarded<{
22
22
  getPublicTopics(): {
@@ -26,9 +26,9 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
26
26
  storagePath: Promise<string>;
27
27
  };
28
28
  };
29
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
30
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
31
- makeTransferInvitation(): Promise<Invitation</*elided*/ any, undefined>>;
29
+ makeAdjustBalancesInvitation(): Promise<globalThis.Invitation<string, undefined>>;
30
+ makeCloseInvitation(): Promise<globalThis.Invitation<string, undefined>>;
31
+ makeTransferInvitation(): Promise<globalThis.Invitation</*elided*/ any>>;
32
32
  getCollateralAmount(): import("@agoric/ertp").NatAmount;
33
33
  getCurrentDebt(): import("@agoric/ertp").NatAmount;
34
34
  getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
@@ -38,8 +38,8 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
38
38
  liquidating(): void;
39
39
  liquidated(): void;
40
40
  abortLiquidation(): string;
41
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
42
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
41
+ makeAdjustBalancesInvitation(): Promise<globalThis.Invitation<string, undefined>>;
42
+ makeCloseInvitation(): Promise<globalThis.Invitation<string, undefined>>;
43
43
  makeTransferInvitation(): Promise<Invitation<VaultKit>>;
44
44
  getCollateralAmount(): Amount<"nat">;
45
45
  getCurrentDebt(): Amount<"nat">;
@@ -47,7 +47,7 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
47
47
  }>]>;
48
48
  getSize: (keyPatt?: Pattern, valuePatt?: Pattern) => number;
49
49
  values: (keyPatt?: Pattern, valuePatt?: Pattern) => Iterable<import("@endo/exo").Guarded<{
50
- getVaultSeat(): ZCFSeat;
50
+ getVaultSeat(): globalThis.ZCFSeat;
51
51
  initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
52
52
  publicSubscribers: {
53
53
  vault: {
@@ -57,9 +57,9 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
57
57
  };
58
58
  };
59
59
  invitationMakers: import("@endo/exo").Guarded<{
60
- AdjustBalances(): Promise<Invitation<string, undefined>>;
61
- CloseVault(): Promise<Invitation<string, undefined>>;
62
- TransferVault(): Promise<Invitation</*elided*/ any, undefined>>;
60
+ AdjustBalances(): Promise<globalThis.Invitation<string, undefined>>;
61
+ CloseVault(): Promise<globalThis.Invitation<string, undefined>>;
62
+ TransferVault(): Promise<globalThis.Invitation</*elided*/ any>>;
63
63
  }>;
64
64
  vault: import("@endo/exo").Guarded<{
65
65
  getPublicTopics(): {
@@ -69,9 +69,9 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
69
69
  storagePath: Promise<string>;
70
70
  };
71
71
  };
72
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
73
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
74
- makeTransferInvitation(): Promise<Invitation</*elided*/ any, undefined>>;
72
+ makeAdjustBalancesInvitation(): Promise<globalThis.Invitation<string, undefined>>;
73
+ makeCloseInvitation(): Promise<globalThis.Invitation<string, undefined>>;
74
+ makeTransferInvitation(): Promise<globalThis.Invitation</*elided*/ any>>;
75
75
  getCollateralAmount(): import("@agoric/ertp").NatAmount;
76
76
  getCurrentDebt(): import("@agoric/ertp").NatAmount;
77
77
  getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
@@ -81,8 +81,8 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
81
81
  liquidating(): void;
82
82
  liquidated(): void;
83
83
  abortLiquidation(): string;
84
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
85
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
84
+ makeAdjustBalancesInvitation(): Promise<globalThis.Invitation<string, undefined>>;
85
+ makeCloseInvitation(): Promise<globalThis.Invitation<string, undefined>>;
86
86
  makeTransferInvitation(): Promise<Invitation<VaultKit>>;
87
87
  getCollateralAmount(): Amount<"nat">;
88
88
  getCurrentDebt(): Amount<"nat">;
@@ -90,4 +90,5 @@ export function makeOrderedVaultStore(store: MapStore<string, Vault>): {
90
90
  }>>;
91
91
  };
92
92
  import type { Vault } from './vault.js';
93
+ import type { MapStore } from '@agoric/store';
93
94
  //# sourceMappingURL=orderedVaultStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderedVaultStore.d.ts","sourceRoot":"","sources":["orderedVaultStore.js"],"names":[],"mappings":"AAiBO,6CADK,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;wBAGtB,MAAM,SACN,KAAK;uBAWL,MAAM,KACJ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAkCuv1B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAjB,iBAAiB;;EAD3x1B;2BApDwB,YAAY"}
1
+ {"version":3,"file":"orderedVaultStore.d.ts","sourceRoot":"","sources":["orderedVaultStore.js"],"names":[],"mappings":"AAmBO,6CADK,SAAS,MAAM,EAAE,KAAK,CAAC;wBAGtB,MAAM,SACN,KAAK;uBAWL,MAAM,KACJ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCnB;2BApDuB,YAAY;8BADT,eAAe"}
@@ -11,8 +11,10 @@ import { fromVaultKey, toVaultKey } from './storeUtils.js';
11
11
  * debt-to-collateral come first.)
12
12
  */
13
13
 
14
- /** @import {Vault} from './vault.js' */
15
- /** @import {CompositeKey} from './storeUtils.js' */
14
+ /**
15
+ * @import {MapStore} from '@agoric/store';
16
+ * @import {Vault} from './vault.js';
17
+ */
16
18
 
17
19
  /** @param {MapStore<string, Vault>} store */
18
20
  export const makeOrderedVaultStore = store => {
@@ -1,4 +1,7 @@
1
- /** @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js'; */
1
+ /**
2
+ * @import {MapStore} from '@agoric/store';
3
+ * @import {PriceAuthority} from '@agoric/zoe/tools/types.js';
4
+ */
2
5
  export const CHARGING_PERIOD_KEY: "ChargingPeriod";
3
6
  export const RECORDING_PERIOD_KEY: "RecordingPeriod";
4
7
  export const DEBT_LIMIT_KEY: "DebtLimit";
@@ -39,7 +42,7 @@ export function makeGovernedTerms({ bootstrapPaymentValue, electorateInvitationA
39
42
  }): {
40
43
  priceAuthority: globalThis.ERef<PriceAuthority>;
41
44
  reservePublicFacet: globalThis.GovernedPublicFacet<import("@endo/exo").Guarded<{
42
- makeAddCollateralInvitation(): Promise<Invitation<string, never>>;
45
+ makeAddCollateralInvitation(): Promise<globalThis.Invitation<string, never>>;
43
46
  getPublicTopics(): {
44
47
  metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../reserve/assetReserveKit.js").MetricsNotification>;
45
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["params.js"],"names":[],"mappings":"AAiBA,8HAA8H;AAE9H,kCAAmC,gBAAgB,CAAC;AACpD,mCAAoC,iBAAiB,CAAC;AAEtD,6BAA8B,WAAW,CAAC;AAC1C,qCAAsC,mBAAmB,CAAC;AAC1D,sCAAuC,oBAAoB,CAAC;AAC5D,sCAAuC,oBAAoB,CAAC;AAC5D,gCAAiC,cAAc,CAAC;AAChD,2BAA4B,SAAS,CAAC;AACtC,mCAAoC,gBAAgB,CAAC;AACrD,uCAAwC,qBAAqB,CAAC;AAC9D,gCAAiC,cAAc,CAAC;;;;;;;AAkEzC,oDAHI,OAAO,kBAAkB,EAAE,kBAAkB,CAAC,2BAA2B,CAAC,oGAC1E,uBAAuB;;;;;;;GAoB9B;AACJ,4EAA4E;AAE5E,iEAYE;AAeK,8MAZI;IACN,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,OAAO,cAAc,EAAE,YAAY,CAAC,CAAC;IACjD,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BH;AAeM,mDAJI,OAAO,kBAAkB,EAAE,OAAO,cAClC,IAAI,CAAC,UAAU,CAAC,yBAChB,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IA+CjD;;;;OAIG;2BAHQ,KAAK,eACL,WAAW,sBACX,uBAAuB;;;;;;;;IAOlC,2BAA2B;eAAf,KAAK;;;;;;;;EAKpB;kCAhKY,OAAO,gEAAgE,EAAE,uBAAuB,CACtG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAC3C;gCA8BQ,UAAU,CAAC,OAAO,qBAAqB,CAAC;yCAwDxC,uBAAuB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;oCA1JsC,4BAA4B;AAyB1H;;;;;;GAMG;AACH,qEANW,MAAM,CAAC,KAAK,CAAC,kBACb,MAAM,CAAC,KAAK,CAAC,6BACb,MAAM,CAAC,KAAK,CAAC,gBACb,MAAM,kBACN,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;EAgCxB"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["params.js"],"names":[],"mappings":"AAiBA;;;GAGG;AAEH,kCAAmC,gBAAgB,CAAC;AACpD,mCAAoC,iBAAiB,CAAC;AAEtD,6BAA8B,WAAW,CAAC;AAC1C,qCAAsC,mBAAmB,CAAC;AAC1D,sCAAuC,oBAAoB,CAAC;AAC5D,sCAAuC,oBAAoB,CAAC;AAC5D,gCAAiC,cAAc,CAAC;AAChD,2BAA4B,SAAS,CAAC;AACtC,mCAAoC,gBAAgB,CAAC;AACrD,uCAAwC,qBAAqB,CAAC;AAC9D,gCAAiC,cAAc,CAAC;;;;;;;AAkEzC,oDAHI,OAAO,kBAAkB,EAAE,kBAAkB,CAAC,2BAA2B,CAAC,oGAC1E,uBAAuB;;;;;;;GAoB9B;AACJ,4EAA4E;AAE5E,iEAYE;AAeK,8MAZI;IACN,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,OAAO,cAAc,EAAE,YAAY,CAAC,CAAC;IACjD,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BH;AAeM,mDAJI,OAAO,kBAAkB,EAAE,OAAO,cAClC,IAAI,CAAC,UAAU,CAAC,yBAChB,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IA+CjD;;;;OAIG;2BAHQ,KAAK,eACL,WAAW,sBACX,uBAAuB;;;;;;;;IAOlC,2BAA2B;eAAf,KAAK;;;;;;;;EAKpB;kCAhKY,OAAO,gEAAgE,EAAE,uBAAuB,CACtG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAC3C;gCA8BQ,UAAU,CAAC,OAAO,qBAAqB,CAAC;yCAwDxC,uBAAuB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;oCA3JvB,4BAA4B;AA0B7D;;;;;;GAMG;AACH,qEANW,MAAM,CAAC,KAAK,CAAC,kBACb,MAAM,CAAC,KAAK,CAAC,6BACb,MAAM,CAAC,KAAK,CAAC,gBACb,MAAM,kBACN,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;EAgCxB"}
@@ -11,11 +11,14 @@ import { makeStoredPublisherKit } from '@agoric/notifier';
11
11
  import { M, makeScalarMapStore } from '@agoric/store';
12
12
  import { TimeMath } from '@agoric/time';
13
13
  import { provideDurableMapStore } from '@agoric/vat-data';
14
- import { subtractRatios } from '@agoric/zoe/src/contractSupport/ratio.js';
14
+ import { subtractRatios } from '@agoric/ertp/src/ratio.js';
15
15
  import { makeTracer } from '@agoric/internal/src/index.js';
16
16
  import { amountPattern, ratioPattern } from '../contractSupport.js';
17
17
 
18
- /** @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js'; */
18
+ /**
19
+ * @import {MapStore} from '@agoric/store';
20
+ * @import {PriceAuthority} from '@agoric/zoe/tools/types.js';
21
+ */
19
22
 
20
23
  export const CHARGING_PERIOD_KEY = 'ChargingPeriod';
21
24
  export const RECORDING_PERIOD_KEY = 'RecordingPeriod';