@agoric/inter-protocol 0.17.0 → 0.17.1-upgrade-23-dev-bd79330.0.bd79330
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 +23 -27
- package/source-spec-registry.js +67 -0
- package/src/auction/util.d.ts +3 -1
- package/src/auction/util.d.ts.map +1 -1
- package/src/auction/util.js +1 -2
- package/src/clientSupport.d.ts +29 -73
- package/src/clientSupport.d.ts.map +1 -1
- package/src/clientSupport.js +25 -129
- package/src/collectFees.d.ts +4 -0
- package/src/collectFees.d.ts.map +1 -1
- package/src/collectFees.js +5 -2
- package/src/contractSupport.d.ts +10 -2
- package/src/contractSupport.d.ts.map +1 -1
- package/src/contractSupport.js +8 -3
- package/src/econCommitteeCharter.d.ts +19 -8
- package/src/econCommitteeCharter.d.ts.map +1 -1
- package/src/econCommitteeCharter.js +12 -12
- package/src/feeDistributor.d.ts +56 -52
- package/src/feeDistributor.d.ts.map +1 -1
- package/src/feeDistributor.js +5 -3
- package/src/index.js +0 -3
- package/src/interest-math.d.ts +1 -0
- package/src/interest-math.d.ts.map +1 -1
- package/src/interest-math.js +1 -2
- package/src/interest.d.ts +13 -1
- package/src/interest.d.ts.map +1 -1
- package/src/interest.js +6 -3
- package/src/price/fluxAggregatorContract.d.ts +38 -14
- package/src/price/fluxAggregatorContract.d.ts.map +1 -1
- package/src/price/fluxAggregatorContract.js +26 -12
- package/src/price/fluxAggregatorKit.d.ts +18 -8
- package/src/price/fluxAggregatorKit.d.ts.map +1 -1
- package/src/price/fluxAggregatorKit.js +22 -8
- package/src/price/priceOracleKit.d.ts +3 -1
- package/src/price/priceOracleKit.d.ts.map +1 -1
- package/src/price/priceOracleKit.js +3 -1
- package/src/price/roundsManager.d.ts +15 -8
- package/src/price/roundsManager.d.ts.map +1 -1
- package/src/price/roundsManager.js +9 -2
- package/src/proposals/addAssetToVault.js +17 -105
- package/src/proposals/committee-proposal.js +14 -14
- package/src/proposals/core-proposal.js +12 -37
- package/src/proposals/deploy-price-feeds.js +12 -5
- package/src/proposals/econ-behaviors.js +23 -154
- package/src/proposals/price-feed-proposal.js +14 -4
- package/src/proposals/replace-fee-distributor.js +8 -4
- package/src/proposals/replace-scaledPriceAuthorities.js +8 -2
- package/src/proposals/replaceElectorate.js +7 -1
- package/src/proposals/startEconCommittee.js +5 -1
- package/src/proposals/startPSM.js +15 -6
- package/src/proposals/upgrade-scaledPriceAuthorities.js +5 -0
- package/src/proposals/utils.d.ts +10 -4
- package/src/proposals/utils.d.ts.map +1 -1
- package/src/proposals/utils.js +16 -8
- package/src/proposals/withdraw-reserve-proposal.js +6 -1
- package/src/provisionPool.d.ts +36 -18
- package/src/provisionPool.d.ts.map +1 -1
- package/src/provisionPool.js +19 -12
- package/src/provisionPoolKit.d.ts +29 -77
- package/src/provisionPoolKit.d.ts.map +1 -1
- package/src/provisionPoolKit.js +33 -23
- package/src/psm/psm.d.ts +36 -24
- package/src/psm/psm.d.ts.map +1 -1
- package/src/psm/psm.js +19 -15
- package/src/reserve/assetReserve.d.ts +16 -6
- package/src/reserve/assetReserve.d.ts.map +1 -1
- package/src/reserve/assetReserve.js +17 -9
- package/src/reserve/assetReserveKit.d.ts +13 -10
- package/src/reserve/assetReserveKit.d.ts.map +1 -1
- package/src/reserve/assetReserveKit.js +7 -5
- package/src/reserve/params.d.ts +1 -1
- package/src/reserve/params.d.ts.map +1 -1
- package/src/reserve/params.js +1 -3
- package/src/vaultFactory/burn.d.ts +4 -1
- package/src/vaultFactory/burn.d.ts.map +1 -1
- package/src/vaultFactory/burn.js +5 -4
- package/src/vaultFactory/math.d.ts +2 -0
- package/src/vaultFactory/math.d.ts.map +1 -1
- package/src/vaultFactory/math.js +5 -3
- package/src/vaultFactory/orderedVaultStore.d.ts +36 -36
- package/src/vaultFactory/params.d.ts +37 -10
- package/src/vaultFactory/params.d.ts.map +1 -1
- package/src/vaultFactory/params.js +34 -13
- package/src/vaultFactory/prioritizedVaults.d.ts +98 -95
- package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -1
- package/src/vaultFactory/prioritizedVaults.js +3 -2
- package/src/vaultFactory/storeUtils.d.ts +8 -3
- package/src/vaultFactory/storeUtils.d.ts.map +1 -1
- package/src/vaultFactory/storeUtils.js +8 -4
- package/src/vaultFactory/{types-ambient.d.ts → types.d.ts} +40 -40
- package/src/vaultFactory/types.d.ts.map +1 -0
- package/src/vaultFactory/{types-ambient.js → types.js} +26 -25
- package/src/vaultFactory/vault.d.ts +51 -35
- package/src/vaultFactory/vault.d.ts.map +1 -1
- package/src/vaultFactory/vault.js +29 -17
- package/src/vaultFactory/vaultDirector.d.ts +102 -112
- package/src/vaultFactory/vaultDirector.d.ts.map +1 -1
- package/src/vaultFactory/vaultDirector.js +40 -82
- package/src/vaultFactory/vaultFactory.d.ts +47 -95
- package/src/vaultFactory/vaultFactory.d.ts.map +1 -1
- package/src/vaultFactory/vaultFactory.js +27 -27
- package/src/vaultFactory/vaultHolder.d.ts +62 -55
- package/src/vaultFactory/vaultHolder.d.ts.map +1 -1
- package/src/vaultFactory/vaultHolder.js +10 -4
- package/src/vaultFactory/vaultKit.d.ts +15 -10
- package/src/vaultFactory/vaultKit.d.ts.map +1 -1
- package/src/vaultFactory/vaultKit.js +8 -7
- package/src/vaultFactory/vaultManager.d.ts +112 -262
- package/src/vaultFactory/vaultManager.d.ts.map +1 -1
- package/src/vaultFactory/vaultManager.js +42 -319
- package/NEWS.md +0 -0
- package/scripts/build-bundles.js +0 -22
- package/src/auction/auctionBook.d.ts +0 -147
- package/src/auction/auctionBook.d.ts.map +0 -1
- package/src/auction/auctionBook.js +0 -794
- package/src/auction/auctionMath.d.ts +0 -17
- package/src/auction/auctionMath.d.ts.map +0 -1
- package/src/auction/auctionMath.js +0 -81
- package/src/auction/auctioneer.d.ts +0 -70
- package/src/auction/auctioneer.d.ts.map +0 -1
- package/src/auction/auctioneer.js +0 -733
- package/src/auction/offerBook.d.ts +0 -46
- package/src/auction/offerBook.d.ts.map +0 -1
- package/src/auction/offerBook.js +0 -226
- package/src/auction/params.d.ts +0 -145
- package/src/auction/params.d.ts.map +0 -1
- package/src/auction/params.js +0 -176
- package/src/auction/scheduleMath.d.ts +0 -5
- package/src/auction/scheduleMath.d.ts.map +0 -1
- package/src/auction/scheduleMath.js +0 -169
- package/src/auction/scheduler.d.ts +0 -50
- package/src/auction/scheduler.d.ts.map +0 -1
- package/src/auction/scheduler.js +0 -376
- package/src/auction/sortedOffers.d.ts +0 -8
- package/src/auction/sortedOffers.d.ts.map +0 -1
- package/src/auction/sortedOffers.js +0 -137
- package/src/proposals/add-auction.js +0 -285
- package/src/proposals/upgrade-vaults.js +0 -207
- package/src/psm/types-ambient.d.ts +0 -2
- package/src/psm/types-ambient.d.ts.map +0 -1
- package/src/psm/types-ambient.js +0 -3
- package/src/vaultFactory/liquidation.d.ts +0 -25
- package/src/vaultFactory/liquidation.d.ts.map +0 -1
- package/src/vaultFactory/liquidation.js +0 -309
- package/src/vaultFactory/proceeds.d.ts +0 -35
- package/src/vaultFactory/proceeds.d.ts.map +0 -1
- package/src/vaultFactory/proceeds.js +0 -282
- package/src/vaultFactory/types-ambient.d.ts.map +0 -1
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @jessie-check
|
|
2
|
-
|
|
3
1
|
import { makeTracer } from '@agoric/internal';
|
|
4
2
|
import { makeRatioFromAmounts } from '@agoric/zoe/src/contractSupport/index.js';
|
|
5
3
|
import { AmountMath } from '@agoric/ertp';
|
|
@@ -17,6 +15,9 @@ import {
|
|
|
17
15
|
* @import {MapStore} from '@agoric/store';
|
|
18
16
|
* @import {Vault} from './vault.js';
|
|
19
17
|
* @import {NormalizedDebt} from './storeUtils.js';
|
|
18
|
+
* @import {Ratio} from '@agoric/ertp';
|
|
19
|
+
* @import {VaultId} from './types.js';
|
|
20
|
+
* @import {Amount} from '@agoric/ertp';
|
|
20
21
|
*/
|
|
21
22
|
|
|
22
23
|
const trace = makeTracer('PVaults', true);
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/** @import {PureData} from '@endo/marshal' */
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {[normalizedCollateralization: number, vaultId: VaultId]} CompositeKey
|
|
4
|
+
*/
|
|
3
5
|
/**
|
|
4
6
|
* @param {PureData} key
|
|
5
7
|
* @returns {string}
|
|
6
8
|
*/
|
|
7
|
-
export const encodeData: (p: Passable) => string;
|
|
9
|
+
export const encodeData: (p: import("@endo/marshal").Passable) => string;
|
|
8
10
|
/**
|
|
9
11
|
* @param {string} encoded
|
|
10
12
|
* @returns {PureData}
|
|
11
13
|
*/
|
|
12
|
-
export const decodeData: (encoded: string, skip?: number) => Passable;
|
|
14
|
+
export const decodeData: (encoded: string, skip?: number) => import("@endo/marshal").Passable;
|
|
13
15
|
export function toVaultKey(normalizedDebt: NormalizedDebt, collateral: Amount<"nat">, vaultId: VaultId): string;
|
|
14
16
|
export function fromVaultKey(key: string): [normalizedCollateralization: number, vaultId: VaultId];
|
|
15
17
|
export function normalizedCollRatio(quote: PriceQuote, compoundedInterest: Ratio, margin: Ratio): number;
|
|
@@ -21,5 +23,8 @@ export type NormalizedDebt = Amount<"nat"> & {
|
|
|
21
23
|
export type ActualDebt = Amount<"nat"> & {
|
|
22
24
|
normalized: false;
|
|
23
25
|
};
|
|
26
|
+
import type { Amount } from '@agoric/ertp';
|
|
27
|
+
import type { VaultId } from './types.js';
|
|
24
28
|
import type { PriceQuote } from '@agoric/zoe/tools/types.js';
|
|
29
|
+
import type { Ratio } from '@agoric/ertp';
|
|
25
30
|
//# sourceMappingURL=storeUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storeUtils.d.ts","sourceRoot":"","sources":["storeUtils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storeUtils.d.ts","sourceRoot":"","sources":["storeUtils.js"],"names":[],"mappings":"AAyBA,8CAA8C;AAE9C;;GAEG;AAOH;;;GAGG;AACH,yEAA+C;AAO/C;;;GAGG;AACH,8FAA+C;AAkDxC,2CANI,cAAc,cACd,OAAO,KAAK,CAAC,WACb,OAAO,GACL,MAAM,CAelB;AAOM,kCAHI,MAAM,GACJ,CAAC,2BAA2B,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAKnE;AAgBM,2CALI,UAAU,sBACV,KAAK,UACL,KAAK,GACH,MAAM,CAiBlB;AAcM,8CANI,UAAU,sBACV,KAAK,UACL,KAAK,GACH,MAAM,CAMlB;2BA/IY,CAAC,2BAA2B,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;6BA6CtD,OAAO,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE;yBACpC,OAAO,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,KAAK,CAAA;CAAE;4BAnEnB,cAAc;6BACpB,YAAY;gCAFuD,4BAA4B;2BACzF,cAAc"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
// @jessie-check
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Module to improvise composite keys for orderedVaultStore until Collections
|
|
5
3
|
* API supports them.
|
|
6
4
|
*/
|
|
7
5
|
|
|
8
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js';
|
|
8
|
+
* @import {Amount, Ratio} from '@agoric/ertp';
|
|
9
|
+
* @import {VaultId} from './types.js';
|
|
10
|
+
*/
|
|
9
11
|
|
|
10
12
|
// XXX importing these that are declared to be used only for testing
|
|
11
13
|
// until @agoric/store supports composite keys
|
|
@@ -23,7 +25,9 @@ const trace = makeTracer('Store', true);
|
|
|
23
25
|
|
|
24
26
|
/** @import {PureData} from '@endo/marshal' */
|
|
25
27
|
|
|
26
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {[normalizedCollateralization: number, vaultId: VaultId]} CompositeKey
|
|
30
|
+
*/
|
|
27
31
|
|
|
28
32
|
// `makeEncodePassable` has three named options:
|
|
29
33
|
// `encodeRemotable`, `encodeError`, and `encodePromise`.
|
|
@@ -1,43 +1,41 @@
|
|
|
1
|
-
type VaultFactoryPublicFacet = import("./vaultFactory.js").VaultFactoryContract["publicFacet"];
|
|
2
|
-
type AutoswapLocal = {
|
|
1
|
+
export type VaultFactoryPublicFacet = import("./vaultFactory.js").VaultFactoryContract["publicFacet"];
|
|
2
|
+
export type AutoswapLocal = {
|
|
3
3
|
getInputPrice: (amount: Amount, brand: Brand) => Amount;
|
|
4
4
|
makeSwapInvitation: () => Invitation;
|
|
5
5
|
};
|
|
6
|
-
type VaultManagerParamValues = {
|
|
6
|
+
export type VaultManagerParamValues = {
|
|
7
7
|
/**
|
|
8
|
-
* - margin below
|
|
9
|
-
* liquidated to satisfy the debt.
|
|
8
|
+
* - margin below
|
|
9
|
+
* which collateral will be liquidated to satisfy the debt.
|
|
10
10
|
*/
|
|
11
11
|
liquidationMargin: Ratio;
|
|
12
12
|
/**
|
|
13
|
-
* - penalty charged
|
|
14
|
-
* proportion of debt
|
|
13
|
+
* - penalty charged
|
|
14
|
+
* upon liquidation as proportion of debt
|
|
15
15
|
*/
|
|
16
16
|
liquidationPenalty: Ratio;
|
|
17
17
|
/**
|
|
18
|
-
* - annual interest rate
|
|
19
|
-
* positions
|
|
18
|
+
* - annual interest rate
|
|
19
|
+
* charged on debt positions
|
|
20
20
|
*/
|
|
21
21
|
interestRate: Ratio;
|
|
22
22
|
/**
|
|
23
|
-
* - The fee (in BasisPoints)
|
|
24
|
-
* increasing a debt position.
|
|
23
|
+
* - The fee (in BasisPoints)
|
|
24
|
+
* charged when creating or increasing a debt position.
|
|
25
25
|
*/
|
|
26
26
|
mintFee: Ratio;
|
|
27
27
|
debtLimit: Amount<"nat">;
|
|
28
28
|
/**
|
|
29
|
-
* - vault must
|
|
30
|
-
* remove collateral or add debt
|
|
29
|
+
* - vault must
|
|
30
|
+
* maintain this in order to remove collateral or add debt
|
|
31
31
|
*/
|
|
32
32
|
liquidationPadding?: Ratio | undefined;
|
|
33
33
|
};
|
|
34
|
-
type AddVaultType = (collateralIssuer: Issuer, collateralKeyword: Keyword, params: VaultManagerParamValues) => Promise<VaultManager>;
|
|
35
|
-
type VaultFactoryCreatorFacet = {
|
|
34
|
+
export type AddVaultType = (collateralIssuer: Issuer, collateralKeyword: Keyword, params: VaultManagerParamValues) => Promise<VaultManager>;
|
|
35
|
+
export type VaultFactoryCreatorFacet = {
|
|
36
36
|
addVaultType: AddVaultType;
|
|
37
37
|
getRewardAllocation: () => import("@agoric/zoe").Allocation;
|
|
38
38
|
makeCollectFeesInvitation: () => Promise<Invitation<string, never>>;
|
|
39
|
-
makeLiquidationWaker: () => import("@agoric/time").TimerWaker;
|
|
40
|
-
makePriceLockWaker: () => import("@agoric/time").TimerWaker;
|
|
41
39
|
};
|
|
42
40
|
/**
|
|
43
41
|
* Mint new debt `toMint` and transfer the `fee`
|
|
@@ -45,19 +43,19 @@ type VaultFactoryCreatorFacet = {
|
|
|
45
43
|
* seat arguments and the rewardPoolSeat. Update the `totalDebt` if the
|
|
46
44
|
* reallocate succeeds.
|
|
47
45
|
*/
|
|
48
|
-
type MintAndTransfer = (mintReceiver: ZCFSeat, toMint: Amount<"nat">, fee: Amount<"nat">, transfers: TransferPart[]) => void;
|
|
46
|
+
export type MintAndTransfer = (mintReceiver: ZCFSeat, toMint: Amount<"nat">, fee: Amount<"nat">, transfers: TransferPart[]) => void;
|
|
49
47
|
/**
|
|
50
48
|
* Burn debt tokens off a seat and update the `totalDebt` if
|
|
51
49
|
* the reallocate succeeds.
|
|
52
50
|
*/
|
|
53
|
-
type BurnDebt = (toBurn: Amount, fromSeat: ZCFSeat) => void;
|
|
54
|
-
type GetVaultParams = {
|
|
51
|
+
export type BurnDebt = (toBurn: Amount, fromSeat: ZCFSeat) => void;
|
|
52
|
+
export type GetVaultParams = {
|
|
55
53
|
getLiquidationMargin: () => Ratio;
|
|
56
54
|
getMintFee: () => Ratio;
|
|
57
55
|
getCollateralQuote: () => Promise<import("@agoric/zoe/tools/types.js").PriceQuote>;
|
|
58
56
|
/**
|
|
59
|
-
* - The annual
|
|
60
|
-
* position
|
|
57
|
+
* - The annual
|
|
58
|
+
* interest rate on a debt position
|
|
61
59
|
*/
|
|
62
60
|
getInterestRate: () => Ratio;
|
|
63
61
|
/**
|
|
@@ -71,8 +69,8 @@ type GetVaultParams = {
|
|
|
71
69
|
*/
|
|
72
70
|
getRecordingPeriod: () => RelativeTime;
|
|
73
71
|
};
|
|
74
|
-
type VaultId = string;
|
|
75
|
-
type InterestTiming = {
|
|
72
|
+
export type VaultId = string;
|
|
73
|
+
export type InterestTiming = {
|
|
76
74
|
/**
|
|
77
75
|
* in seconds
|
|
78
76
|
*/
|
|
@@ -82,18 +80,18 @@ type InterestTiming = {
|
|
|
82
80
|
*/
|
|
83
81
|
recordingPeriod: RelativeTime;
|
|
84
82
|
};
|
|
85
|
-
type LiquidationStrategy = {
|
|
86
|
-
keywordMapping: () => KeywordKeywordRecord;
|
|
83
|
+
export type LiquidationStrategy = {
|
|
84
|
+
keywordMapping: () => import("@agoric/zoe/src/contractSupport/types.js").KeywordKeywordRecord;
|
|
87
85
|
makeProposal: (collateral: Amount, run: Amount) => import("@agoric/zoe").Proposal;
|
|
88
86
|
makeInvitation: (debt: Amount) => Promise<Invitation>;
|
|
89
87
|
};
|
|
90
|
-
type Liquidator = {
|
|
88
|
+
export type Liquidator = {
|
|
91
89
|
makeLiquidateInvitation: () => Promise<Invitation<void, {
|
|
92
90
|
debt: Amount<"nat">;
|
|
93
91
|
penaltyRate: Ratio;
|
|
94
92
|
}>>;
|
|
95
93
|
};
|
|
96
|
-
type DebtStatus = {
|
|
94
|
+
export type DebtStatus = {
|
|
97
95
|
latestInterestUpdate: Timestamp;
|
|
98
96
|
/**
|
|
99
97
|
* interest accrued since latestInterestUpdate
|
|
@@ -104,8 +102,8 @@ type DebtStatus = {
|
|
|
104
102
|
*/
|
|
105
103
|
newDebt: NatValue;
|
|
106
104
|
};
|
|
107
|
-
type Calculate = (debtStatus: DebtStatus, currentTime: Timestamp) => DebtStatus;
|
|
108
|
-
type CalculatorKit = {
|
|
105
|
+
export type Calculate = (debtStatus: DebtStatus, currentTime: Timestamp) => DebtStatus;
|
|
106
|
+
export type CalculatorKit = {
|
|
109
107
|
/**
|
|
110
108
|
* calculate new debt for charging periods up to
|
|
111
109
|
* the present.
|
|
@@ -119,19 +117,21 @@ type CalculatorKit = {
|
|
|
119
117
|
*/
|
|
120
118
|
calculateReportingPeriod: Calculate;
|
|
121
119
|
};
|
|
122
|
-
type VaultFactoryParamPath = {
|
|
120
|
+
export type VaultFactoryParamPath = {
|
|
123
121
|
key: "governedParams" | {
|
|
124
122
|
collateralBrand: Brand;
|
|
125
123
|
};
|
|
126
124
|
};
|
|
127
|
-
import type {
|
|
128
|
-
import type {
|
|
129
|
-
import type {
|
|
125
|
+
import type { Amount } from '@agoric/ertp';
|
|
126
|
+
import type { Brand } from '@agoric/ertp';
|
|
127
|
+
import type { Invitation } from '@agoric/zoe';
|
|
128
|
+
import type { Ratio } from '@agoric/ertp';
|
|
129
|
+
import type { Issuer } from '@agoric/ertp';
|
|
130
|
+
import type { Keyword } from '@agoric/zoe';
|
|
130
131
|
import type { VaultManager } from './vaultManager.js';
|
|
131
|
-
import type {
|
|
132
|
-
import type {
|
|
133
|
-
import type { AssetReservePublicFacet } from '../reserve/assetReserve.js';
|
|
134
|
-
import type { AuctioneerPublicFacet } from '../auction/auctioneer.js';
|
|
135
|
-
import type { Timestamp } from '@agoric/time';
|
|
132
|
+
import type { ZCFSeat } from '@agoric/zoe';
|
|
133
|
+
import type { TransferPart } from '@agoric/zoe';
|
|
136
134
|
import type { RelativeTime } from '@agoric/time';
|
|
137
|
-
|
|
135
|
+
import type { Timestamp } from '@agoric/time';
|
|
136
|
+
import type { NatValue } from '@agoric/ertp';
|
|
137
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"sCAMa,OAAO,mBAAmB,EAAE,oBAAoB,CAAC,aAAa,CAAC;;mBAY9D,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM;wBACxC,MAAM,UAAU;;;;;;;uBAKhB,KAAK;;;;;wBAEL,KAAK;;;;;kBAEL,KAAK;;;;;aAEL,KAAK;eAEL,OAAO,KAAK,CAAC;;;;;;;8CAOhB,MAAM,qBACN,OAAO,UACP,uBAAuB,KACrB,OAAO,CAAC,YAAY,CAAC;;kBAKpB,YAAY;yBACZ,MAAM,OAAO,aAAa,EAAE,UAAU;+BACtC,MAAM,OAAO,CAAC,WAAW,MAAM,EAAE,KAAK,CAAC,CAAC;;;;;;;;6CAQ3C,OAAO,UACP,OAAO,KAAK,CAAC,OACb,OAAO,KAAK,CAAC,aACb,YAAY,EAAE,KACZ,IAAI;;;;;gCAMN,MAAM,YACN,OAAO,KACL,IAAI;;0BAKH,MAAM,KAAK;gBACX,MAAM,KAAK;wBACX,MAAM,OAAO,CAAC,OAAO,4BAA4B,EAAE,UAAU,CAAC;;;;;qBAC9D,MAAM,KAAK;;;;;uBAEX,MAAM,YAAY;;;;;wBAElB,MAAM,YAAY;;sBAIlB,MAAM;;;;;oBAIN,YAAY;;;;qBACZ,YAAY;;;oBAKZ,MAAM,OAAO,0CAA0C,EAAE,oBAAoB;kBAC7E,CACT,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,KACR,OAAO,aAAa,EAAE,QAAQ;oBACxB,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC;;;6BAKrC,MAAM,OAAO,CAC1B,WACA,IAAU,EACV;QAAQ,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC;QAAC,WAAW,EAAE,KAAK,CAAA;KAAE,CAC5C,CACF;;;0BAKU,SAAS;;;;cACT,QAAQ;;;;aACR,QAAQ;;qCAKX,UAAU,eACV,SAAS,KACP,UAAU;;;;;;eAKT,SAAS;;;;;;;8BAET,SAAS;;oCAMT;IAAE,GAAG,EAAE,gBAAgB,GAAG;QAAE,eAAe,EAAE,KAAK,CAAA;KAAE,CAAA;CAAE;4BA7HX,cAAc;2BAAd,cAAc;gCACV,aAAa;2BADjB,cAAc;4BAAd,cAAc;6BACV,aAAa;kCAJ3C,mBAAmB;6BAIW,aAAa;kCAAb,aAAa;kCAF3C,cAAc;+BADjB,cAAc;8BAEe,cAAc"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @agoric/group-jsdoc-imports */
|
|
2
|
+
|
|
3
|
+
// Make this a module
|
|
4
|
+
export {};
|
|
2
5
|
|
|
3
6
|
/**
|
|
4
7
|
* @typedef {import('./vaultFactory.js').VaultFactoryContract['publicFacet']} VaultFactoryPublicFacet
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* @import {
|
|
8
|
-
* @import {VaultManager} from './vaultManager.js'
|
|
9
|
-
* @import {CollateralManager} from './vaultManager.js'
|
|
10
|
-
* @import {AssetReserveLimitedCreatorFacet} from '../reserve/assetReserve.js'
|
|
11
|
-
* @import {AssetReservePublicFacet} from '../reserve/assetReserve.js'
|
|
12
|
-
* @import {AuctioneerPublicFacet} from '../auction/auctioneer.js'
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @import {VaultManager} from './vaultManager.js';
|
|
13
11
|
* @import {Timestamp} from '@agoric/time'
|
|
14
12
|
* @import {RelativeTime} from '@agoric/time'
|
|
13
|
+
* @import {Amount, Brand, Issuer, NatValue, Ratio} from '@agoric/ertp'
|
|
14
|
+
* @import {Invitation, Keyword, TransferPart, ZCFSeat} from '@agoric/zoe'
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* @typedef {object} VaultManagerParamValues
|
|
25
|
-
* @property {Ratio} liquidationMargin - margin below
|
|
26
|
-
* liquidated to satisfy the debt.
|
|
27
|
-
* @property {Ratio} liquidationPenalty - penalty charged
|
|
28
|
-
* proportion of debt
|
|
29
|
-
* @property {Ratio} interestRate - annual interest rate
|
|
30
|
-
* positions
|
|
31
|
-
* @property {Ratio} mintFee - The fee (in BasisPoints)
|
|
32
|
-
* increasing a debt position.
|
|
25
|
+
* @property {Ratio} liquidationMargin - margin below
|
|
26
|
+
* which collateral will be liquidated to satisfy the debt.
|
|
27
|
+
* @property {Ratio} liquidationPenalty - penalty charged
|
|
28
|
+
* upon liquidation as proportion of debt
|
|
29
|
+
* @property {Ratio} interestRate - annual interest rate
|
|
30
|
+
* charged on debt positions
|
|
31
|
+
* @property {Ratio} mintFee - The fee (in BasisPoints)
|
|
32
|
+
* charged when creating or increasing a debt position.
|
|
33
33
|
* @property {Amount<'nat'>} debtLimit
|
|
34
|
-
* @property {Ratio} [liquidationPadding] - vault must
|
|
35
|
-
* remove collateral or add debt
|
|
34
|
+
* @property {Ratio} [liquidationPadding] - vault must
|
|
35
|
+
* maintain this in order to remove collateral or add debt
|
|
36
36
|
*/
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -48,8 +48,6 @@
|
|
|
48
48
|
* @property {AddVaultType} addVaultType
|
|
49
49
|
* @property {() => import('@agoric/zoe').Allocation} getRewardAllocation
|
|
50
50
|
* @property {() => Promise<Invitation<string, never>>} makeCollectFeesInvitation
|
|
51
|
-
* @property {() => import('@agoric/time').TimerWaker} makeLiquidationWaker
|
|
52
|
-
* @property {() => import('@agoric/time').TimerWaker} makePriceLockWaker
|
|
53
51
|
*/
|
|
54
52
|
|
|
55
53
|
/**
|
|
@@ -77,8 +75,8 @@
|
|
|
77
75
|
* @property {() => Ratio} getLiquidationMargin
|
|
78
76
|
* @property {() => Ratio} getMintFee
|
|
79
77
|
* @property {() => Promise<import('@agoric/zoe/tools/types.js').PriceQuote>} getCollateralQuote
|
|
80
|
-
* @property {() => Ratio} getInterestRate - The annual
|
|
81
|
-
* position
|
|
78
|
+
* @property {() => Ratio} getInterestRate - The annual
|
|
79
|
+
* interest rate on a debt position
|
|
82
80
|
* @property {() => RelativeTime} getChargingPeriod - The period (in seconds) at
|
|
83
81
|
* which interest is charged to the debt position.
|
|
84
82
|
* @property {() => RelativeTime} getRecordingPeriod - The period (in seconds)
|
|
@@ -95,7 +93,7 @@
|
|
|
95
93
|
|
|
96
94
|
/**
|
|
97
95
|
* @typedef {object} LiquidationStrategy
|
|
98
|
-
* @property {() => KeywordKeywordRecord} keywordMapping
|
|
96
|
+
* @property {() => import('@agoric/zoe/src/contractSupport/types.js').KeywordKeywordRecord} keywordMapping
|
|
99
97
|
* @property {(
|
|
100
98
|
* collateral: Amount,
|
|
101
99
|
* run: Amount,
|
|
@@ -106,7 +104,10 @@
|
|
|
106
104
|
/**
|
|
107
105
|
* @typedef {object} Liquidator
|
|
108
106
|
* @property {() => Promise<
|
|
109
|
-
* Invitation<
|
|
107
|
+
* Invitation<
|
|
108
|
+
* void,
|
|
109
|
+
* { debt: Amount<'nat'>; penaltyRate: Ratio }
|
|
110
|
+
* >
|
|
110
111
|
* >} makeLiquidateInvitation
|
|
111
112
|
*/
|
|
112
113
|
|
|
@@ -22,13 +22,16 @@ export namespace Phase {
|
|
|
22
22
|
/**
|
|
23
23
|
* @typedef {object} VaultNotification
|
|
24
24
|
* @property {Amount<'nat'>} locked Amount of Collateral locked
|
|
25
|
-
* @property {{
|
|
26
|
-
*
|
|
25
|
+
* @property {{
|
|
26
|
+
* debt: Amount<'nat'>;
|
|
27
|
+
* interest: Ratio;
|
|
28
|
+
* }} debtSnapshot
|
|
29
|
+
* 'debt' at the point the compounded interest was 'interest'
|
|
27
30
|
* @property {Phase} vaultState
|
|
28
31
|
*/
|
|
29
32
|
/**
|
|
30
33
|
* @typedef {object} VaultManager
|
|
31
|
-
* @property {() => Subscriber<
|
|
34
|
+
* @property {() => Subscriber<AssetState>} getAssetSubscriber
|
|
32
35
|
* @property {(collateralAmount: Amount) => Amount<'nat'>} maxDebtFor
|
|
33
36
|
* @property {() => Brand<'nat'>} getCollateralBrand
|
|
34
37
|
* @property {(base: string) => string} scopeDescription
|
|
@@ -37,19 +40,19 @@ export namespace Phase {
|
|
|
37
40
|
* @property {(amount: Amount, seat: ZCFSeat) => void} burn
|
|
38
41
|
* @property {() => Ratio} getCompoundedInterest
|
|
39
42
|
* @property {(
|
|
40
|
-
* oldDebt:
|
|
43
|
+
* oldDebt: NormalizedDebt,
|
|
41
44
|
* oldCollateral: Amount<'nat'>,
|
|
42
45
|
* vaultId: VaultId,
|
|
43
46
|
* vaultPhase: VaultPhase,
|
|
44
47
|
* vault: Vault,
|
|
45
48
|
* ) => void} handleBalanceChange
|
|
46
|
-
* @property {() =>
|
|
49
|
+
* @property {() => GovernedParamGetters} getGovernedParams
|
|
47
50
|
*/
|
|
48
51
|
/**
|
|
49
52
|
* @typedef {Readonly<{
|
|
50
53
|
* idInManager: VaultId;
|
|
51
54
|
* manager: VaultManager;
|
|
52
|
-
* storageNode: StorageNode
|
|
55
|
+
* storageNode: Remote<StorageNode>;
|
|
53
56
|
* vaultSeat: ZCFSeat;
|
|
54
57
|
* }>} ImmutableState
|
|
55
58
|
*/
|
|
@@ -61,9 +64,7 @@ export namespace Phase {
|
|
|
61
64
|
* interestSnapshot: Ratio;
|
|
62
65
|
* phase: VaultPhase;
|
|
63
66
|
* debtSnapshot: Amount<'nat'>;
|
|
64
|
-
* outerUpdater:
|
|
65
|
-
* | import('@agoric/zoe/src/contractSupport/recorder.js').Recorder<VaultNotification>
|
|
66
|
-
* | null;
|
|
67
|
+
* outerUpdater: Recorder<VaultNotification> | null;
|
|
67
68
|
* }} MutableState
|
|
68
69
|
*/
|
|
69
70
|
export const VaultI: import("@endo/patterns").InterfaceGuard<{
|
|
@@ -79,7 +80,7 @@ export const VaultI: import("@endo/patterns").InterfaceGuard<{
|
|
|
79
80
|
makeTransferInvitation: import("@endo/patterns").MethodGuard;
|
|
80
81
|
abortLiquidation: import("@endo/patterns").MethodGuard;
|
|
81
82
|
}>;
|
|
82
|
-
export function prepareVault(baggage:
|
|
83
|
+
export function prepareVault(baggage: Baggage, makeRecorderKit: MakeRecorderKit, zcf: ZCF): (manager: VaultManager, idInManager: string, storageNode: Remote<StorageNode>) => import("@endo/exo").GuardedKit<{
|
|
83
84
|
helper: {
|
|
84
85
|
collateralBrand(): Brand<"nat">;
|
|
85
86
|
debtBrand(): Brand<"nat">;
|
|
@@ -209,40 +210,40 @@ export function prepareVault(baggage: import("@agoric/swingset-liveslots").Bagga
|
|
|
209
210
|
makeTransferInvitationHook(seat: ZCFSeat): VaultKit;
|
|
210
211
|
};
|
|
211
212
|
self: {
|
|
212
|
-
getVaultSeat():
|
|
213
|
+
getVaultSeat(): ZCFSeat;
|
|
213
214
|
/**
|
|
214
215
|
* @param {ZCFSeat} seat
|
|
215
|
-
* @param {StorageNode} storageNode
|
|
216
|
+
* @param {Remote<StorageNode>} storageNode
|
|
216
217
|
*/
|
|
217
|
-
initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
|
|
218
|
+
initVaultKit(seat: ZCFSeat, storageNode: Remote<StorageNode>): Promise<{
|
|
218
219
|
publicSubscribers: {
|
|
219
220
|
vault: {
|
|
220
221
|
description: string;
|
|
221
|
-
subscriber:
|
|
222
|
+
subscriber: Subscriber<VaultNotification>;
|
|
222
223
|
storagePath: Promise<string>;
|
|
223
224
|
};
|
|
224
225
|
};
|
|
225
226
|
invitationMakers: import("@endo/exo").Guarded<{
|
|
226
|
-
AdjustBalances(): Promise<
|
|
227
|
-
CloseVault(): Promise<
|
|
228
|
-
TransferVault(): Promise<
|
|
227
|
+
AdjustBalances(): Promise<Invitation<string, undefined>>;
|
|
228
|
+
CloseVault(): Promise<Invitation<string, undefined>>;
|
|
229
|
+
TransferVault(): Promise<Invitation</*elided*/ any>>;
|
|
229
230
|
}>;
|
|
230
231
|
vault: import("@endo/exo").Guarded<{
|
|
231
232
|
getPublicTopics(): {
|
|
232
233
|
vault: {
|
|
233
234
|
description: string;
|
|
234
|
-
subscriber:
|
|
235
|
+
subscriber: Subscriber<VaultNotification>;
|
|
235
236
|
storagePath: Promise<string>;
|
|
236
237
|
};
|
|
237
238
|
};
|
|
238
|
-
makeAdjustBalancesInvitation(): Promise<
|
|
239
|
-
makeCloseInvitation(): Promise<
|
|
240
|
-
makeTransferInvitation(): Promise<
|
|
239
|
+
makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
|
|
240
|
+
makeCloseInvitation(): Promise<Invitation<string, undefined>>;
|
|
241
|
+
makeTransferInvitation(): Promise<Invitation</*elided*/ any>>;
|
|
241
242
|
getCollateralAmount(): import("@agoric/ertp").NatAmount;
|
|
242
243
|
getCurrentDebt(): import("@agoric/ertp").NatAmount;
|
|
243
244
|
getNormalizedDebt(): NormalizedDebt;
|
|
244
245
|
}>;
|
|
245
|
-
vaultUpdater:
|
|
246
|
+
vaultUpdater: Recorder<VaultNotification>;
|
|
246
247
|
}>;
|
|
247
248
|
/** Called by manager at start of liquidation. */
|
|
248
249
|
liquidating(): void;
|
|
@@ -258,8 +259,8 @@ export function prepareVault(baggage: import("@agoric/swingset-liveslots").Bagga
|
|
|
258
259
|
* Liquidation.md has details on the liquidation approach.
|
|
259
260
|
*/
|
|
260
261
|
abortLiquidation(): string;
|
|
261
|
-
makeAdjustBalancesInvitation(): Promise<
|
|
262
|
-
makeCloseInvitation(): Promise<
|
|
262
|
+
makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
|
|
263
|
+
makeCloseInvitation(): Promise<Invitation<string, undefined>>;
|
|
263
264
|
/** @returns {Promise<Invitation<VaultKit>>} */
|
|
264
265
|
makeTransferInvitation(): Promise<Invitation<VaultKit>>;
|
|
265
266
|
/** @returns {Amount<'nat'>} */
|
|
@@ -284,12 +285,11 @@ export function prepareVault(baggage: import("@agoric/swingset-liveslots").Bagga
|
|
|
284
285
|
* order vaults by their debt-to-collateral ratios without having to
|
|
285
286
|
* mutate the debts as the interest accrues.
|
|
286
287
|
*
|
|
287
|
-
* @returns {
|
|
288
|
-
*
|
|
289
|
-
* accrued
|
|
288
|
+
* @returns {NormalizedDebt} as if the vault was open at the launch of
|
|
289
|
+
* this manager, before any interest accrued
|
|
290
290
|
* @see getActualDebAmount
|
|
291
291
|
*/
|
|
292
|
-
getNormalizedDebt():
|
|
292
|
+
getNormalizedDebt(): NormalizedDebt;
|
|
293
293
|
};
|
|
294
294
|
}>;
|
|
295
295
|
export type VaultPhase = Exclude<Phase, "transfer">;
|
|
@@ -299,8 +299,7 @@ export type VaultNotification = {
|
|
|
299
299
|
*/
|
|
300
300
|
locked: Amount<"nat">;
|
|
301
301
|
/**
|
|
302
|
-
*
|
|
303
|
-
* the point the compounded interest was 'interest'
|
|
302
|
+
* 'debt' at the point the compounded interest was 'interest'
|
|
304
303
|
*/
|
|
305
304
|
debtSnapshot: {
|
|
306
305
|
debt: Amount<"nat">;
|
|
@@ -309,7 +308,7 @@ export type VaultNotification = {
|
|
|
309
308
|
vaultState: Phase;
|
|
310
309
|
};
|
|
311
310
|
export type VaultManager = {
|
|
312
|
-
getAssetSubscriber: () => Subscriber<
|
|
311
|
+
getAssetSubscriber: () => Subscriber<AssetState>;
|
|
313
312
|
maxDebtFor: (collateralAmount: Amount) => Amount<"nat">;
|
|
314
313
|
getCollateralBrand: () => Brand<"nat">;
|
|
315
314
|
scopeDescription: (base: string) => string;
|
|
@@ -317,13 +316,13 @@ export type VaultManager = {
|
|
|
317
316
|
mintAndTransfer: MintAndTransfer;
|
|
318
317
|
burn: (amount: Amount, seat: ZCFSeat) => void;
|
|
319
318
|
getCompoundedInterest: () => Ratio;
|
|
320
|
-
handleBalanceChange: (oldDebt:
|
|
321
|
-
getGovernedParams: () =>
|
|
319
|
+
handleBalanceChange: (oldDebt: NormalizedDebt, oldCollateral: Amount<"nat">, vaultId: VaultId, vaultPhase: VaultPhase, vault: Vault) => void;
|
|
320
|
+
getGovernedParams: () => GovernedParamGetters;
|
|
322
321
|
};
|
|
323
322
|
export type ImmutableState = Readonly<{
|
|
324
323
|
idInManager: VaultId;
|
|
325
324
|
manager: VaultManager;
|
|
326
|
-
storageNode: StorageNode
|
|
325
|
+
storageNode: Remote<StorageNode>;
|
|
327
326
|
vaultSeat: ZCFSeat;
|
|
328
327
|
}>;
|
|
329
328
|
/**
|
|
@@ -334,11 +333,28 @@ export type MutableState = {
|
|
|
334
333
|
interestSnapshot: Ratio;
|
|
335
334
|
phase: VaultPhase;
|
|
336
335
|
debtSnapshot: Amount<"nat">;
|
|
337
|
-
outerUpdater:
|
|
336
|
+
outerUpdater: Recorder<VaultNotification> | null;
|
|
338
337
|
};
|
|
339
338
|
export type Vault = EReturn<EReturn<typeof prepareVault>>["self"];
|
|
339
|
+
import type { Baggage } from '@agoric/swingset-liveslots';
|
|
340
|
+
import type { MakeRecorderKit } from '@agoric/zoe/src/contractSupport/recorder.js';
|
|
341
|
+
import type { ZCF } from '@agoric/zoe';
|
|
342
|
+
import type { StorageNode } from '@agoric/internal/src/lib-chainStorage.js';
|
|
343
|
+
import type { Remote } from '@agoric/internal';
|
|
340
344
|
import type { Brand } from '@agoric/ertp/src/types.js';
|
|
345
|
+
import type { ProposalRecord } from '@agoric/zoe';
|
|
346
|
+
import type { Amount } from '@agoric/ertp/src/types.js';
|
|
341
347
|
import type { NormalizedDebt } from './storeUtils.js';
|
|
348
|
+
import type { ZCFSeat } from '@agoric/zoe';
|
|
349
|
+
import type { Ratio } from '@agoric/ertp/src/ratio.js';
|
|
342
350
|
import { calculateDebtCosts } from './math.js';
|
|
351
|
+
import type { VaultKit } from './vaultKit.js';
|
|
352
|
+
import type { Subscriber } from '@agoric/notifier';
|
|
353
|
+
import type { Invitation } from '@agoric/zoe';
|
|
354
|
+
import type { Recorder } from '@agoric/zoe/src/contractSupport/recorder.js';
|
|
355
|
+
import type { AssetState } from './vaultManager.js';
|
|
356
|
+
import type { MintAndTransfer } from './types.js';
|
|
357
|
+
import type { VaultId } from './types.js';
|
|
358
|
+
import type { GovernedParamGetters } from './vaultManager.js';
|
|
343
359
|
import type { EReturn } from '@endo/far';
|
|
344
360
|
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["vault.js"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["vault.js"],"names":[],"mappings":"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"}
|