@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.
- package/package.json +33 -32
- package/src/auction/auctionBook.d.ts +2 -2
- package/src/auction/auctioneer.d.ts +5 -4
- package/src/auction/auctioneer.d.ts.map +1 -1
- package/src/auction/auctioneer.js +2 -0
- package/src/auction/offerBook.d.ts +3 -2
- package/src/auction/offerBook.d.ts.map +1 -1
- package/src/auction/offerBook.js +5 -1
- package/src/auction/params.d.ts +2 -1
- package/src/auction/params.d.ts.map +1 -1
- package/src/auction/params.js +1 -0
- package/src/auction/scheduler.d.ts +1 -1
- package/src/auction/util.d.ts +2 -1
- package/src/auction/util.d.ts.map +1 -1
- package/src/auction/util.js +4 -1
- package/src/clientSupport.d.ts +1 -0
- package/src/clientSupport.d.ts.map +1 -1
- package/src/clientSupport.js +6 -1
- package/src/contractSupport.d.ts +1 -1
- package/src/contractSupport.d.ts.map +1 -1
- package/src/econCommitteeCharter.d.ts +4 -4
- package/src/feeDistributor.d.ts +17 -17
- package/src/interest-math.js +1 -1
- package/src/interest.d.ts +3 -1
- package/src/interest.d.ts.map +1 -1
- package/src/interest.js +2 -5
- package/src/price/fluxAggregatorContract.d.ts +6 -6
- package/src/price/fluxAggregatorContract.d.ts.map +1 -1
- package/src/price/fluxAggregatorKit.d.ts +4 -4
- package/src/price/roundsManager.d.ts +1 -1
- package/src/proposals/addAssetToVault.js +1 -1
- package/src/proposals/econ-behaviors.js +17 -3
- package/src/proposals/upgrade-vaults.js +1 -2
- package/src/provisionPool.d.ts +17 -5
- package/src/provisionPool.d.ts.map +1 -1
- package/src/provisionPool.js +17 -11
- package/src/provisionPoolKit.d.ts +26 -11
- package/src/provisionPoolKit.d.ts.map +1 -1
- package/src/provisionPoolKit.js +111 -51
- package/src/psm/psm.d.ts +10 -6
- package/src/psm/psm.d.ts.map +1 -1
- package/src/psm/psm.js +1 -0
- package/src/reserve/assetReserve.d.ts +12 -2
- package/src/reserve/assetReserve.d.ts.map +1 -1
- package/src/reserve/assetReserve.js +4 -0
- package/src/reserve/assetReserveKit.d.ts +30 -2
- package/src/reserve/assetReserveKit.d.ts.map +1 -1
- package/src/reserve/assetReserveKit.js +108 -1
- package/src/reserve/params.d.ts +5 -1
- package/src/reserve/params.d.ts.map +1 -1
- package/src/reserve/params.js +4 -0
- package/src/vaultFactory/liquidation.d.ts +2 -0
- package/src/vaultFactory/liquidation.d.ts.map +1 -1
- package/src/vaultFactory/liquidation.js +5 -5
- package/src/vaultFactory/math.js +1 -1
- package/src/vaultFactory/orderedVaultStore.d.ts +19 -18
- package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -1
- package/src/vaultFactory/orderedVaultStore.js +4 -2
- package/src/vaultFactory/params.d.ts +5 -2
- package/src/vaultFactory/params.d.ts.map +1 -1
- package/src/vaultFactory/params.js +5 -2
- package/src/vaultFactory/prioritizedVaults.d.ts +58 -57
- package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -1
- package/src/vaultFactory/prioritizedVaults.js +5 -2
- package/src/vaultFactory/storeUtils.d.ts +2 -2
- package/src/vaultFactory/storeUtils.d.ts.map +1 -1
- package/src/vaultFactory/types-ambient.d.ts +2 -2
- package/src/vaultFactory/types-ambient.d.ts.map +1 -1
- package/src/vaultFactory/types-ambient.js +5 -2
- package/src/vaultFactory/vault.d.ts +9 -9
- package/src/vaultFactory/vaultDirector.d.ts +46 -44
- package/src/vaultFactory/vaultDirector.d.ts.map +1 -1
- package/src/vaultFactory/vaultDirector.js +2 -0
- package/src/vaultFactory/vaultFactory.d.ts +62 -15
- package/src/vaultFactory/vaultFactory.d.ts.map +1 -1
- package/src/vaultFactory/vaultFactory.js +6 -2
- package/src/vaultFactory/vaultHolder.d.ts +32 -32
- package/src/vaultFactory/vaultHolder.d.ts.map +1 -1
- package/src/vaultFactory/vaultHolder.js +4 -0
- package/src/vaultFactory/vaultKit.d.ts +6 -6
- package/src/vaultFactory/vaultManager.d.ts +61 -58
- package/src/vaultFactory/vaultManager.d.ts.map +1 -1
- package/src/vaultFactory/vaultManager.js +4 -2
package/src/psm/psm.js
CHANGED
|
@@ -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":"
|
|
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":"
|
|
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 {
|
|
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
|
package/src/reserve/params.d.ts
CHANGED
|
@@ -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"}
|
package/src/reserve/params.js
CHANGED
|
@@ -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,
|
|
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
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
package/src/vaultFactory/math.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
ceilMultiplyBy,
|
|
13
13
|
floorDivideBy,
|
|
14
14
|
ratioGTE,
|
|
15
|
-
} from '@agoric/
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":"
|
|
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
|
-
/**
|
|
15
|
-
|
|
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
|
-
/**
|
|
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
|
|
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/
|
|
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
|
-
/**
|
|
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';
|