@agoric/inter-protocol 0.16.2-dev-0282e58.0 → 0.16.2-dev-26b0505.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 +16 -16
- package/src/econCommitteeCharter.d.ts +2 -2
- package/src/econCommitteeCharter.d.ts.map +1 -1
- package/src/econCommitteeCharter.js +1 -1
- package/src/feeDistributor.d.ts +2 -2
- package/src/feeDistributor.d.ts.map +1 -1
- package/src/feeDistributor.js +1 -1
- package/src/proposals/econ-behaviors.d.ts +127 -133
- package/src/proposals/econ-behaviors.d.ts.map +1 -1
- package/src/provisionPool.d.ts.map +1 -1
- package/src/provisionPoolKit.d.ts +19 -5
- package/src/provisionPoolKit.d.ts.map +1 -1
- package/src/provisionPoolKit.js +106 -47
- package/src/reserve/assetReserve.d.ts +2 -2
- package/src/reserve/assetReserve.d.ts.map +1 -1
- package/src/reserve/assetReserve.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/inter-protocol",
|
|
3
|
-
"version": "0.16.2-dev-
|
|
3
|
+
"version": "0.16.2-dev-26b0505.0+26b0505",
|
|
4
4
|
"description": "Core cryptoeconomy contracts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@agoric/assert": "0.6.1-dev-
|
|
35
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
36
|
-
"@agoric/governance": "0.10.4-dev-
|
|
37
|
-
"@agoric/internal": "0.3.3-dev-
|
|
38
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
39
|
-
"@agoric/store": "0.9.3-dev-
|
|
40
|
-
"@agoric/time": "0.3.3-dev-
|
|
41
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
42
|
-
"@agoric/vats": "0.15.2-dev-
|
|
43
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
34
|
+
"@agoric/assert": "0.6.1-dev-26b0505.0+26b0505",
|
|
35
|
+
"@agoric/ertp": "0.16.3-dev-26b0505.0+26b0505",
|
|
36
|
+
"@agoric/governance": "0.10.4-dev-26b0505.0+26b0505",
|
|
37
|
+
"@agoric/internal": "0.3.3-dev-26b0505.0+26b0505",
|
|
38
|
+
"@agoric/notifier": "0.6.3-dev-26b0505.0+26b0505",
|
|
39
|
+
"@agoric/store": "0.9.3-dev-26b0505.0+26b0505",
|
|
40
|
+
"@agoric/time": "0.3.3-dev-26b0505.0+26b0505",
|
|
41
|
+
"@agoric/vat-data": "0.5.3-dev-26b0505.0+26b0505",
|
|
42
|
+
"@agoric/vats": "0.15.2-dev-26b0505.0+26b0505",
|
|
43
|
+
"@agoric/zoe": "0.26.3-dev-26b0505.0+26b0505",
|
|
44
44
|
"@endo/captp": "^4.2.0",
|
|
45
45
|
"@endo/eventual-send": "^1.2.2",
|
|
46
46
|
"@endo/far": "^1.1.2",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"jessie.js": "^0.3.4"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@agoric/smart-wallet": "0.5.4-dev-
|
|
54
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
55
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
56
|
-
"@agoric/zone": "0.2.3-dev-
|
|
53
|
+
"@agoric/smart-wallet": "0.5.4-dev-26b0505.0+26b0505",
|
|
54
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-26b0505.0+26b0505",
|
|
55
|
+
"@agoric/swingset-vat": "0.32.3-dev-26b0505.0+26b0505",
|
|
56
|
+
"@agoric/zone": "0.2.3-dev-26b0505.0+26b0505",
|
|
57
57
|
"@endo/bundle-source": "^3.2.3",
|
|
58
58
|
"@endo/init": "^1.1.2",
|
|
59
59
|
"@endo/promise-kit": "^1.1.2",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"typeCoverage": {
|
|
85
85
|
"atLeast": 95.81
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "26b0505898de4f4bd8bccdfff5f9993c73ac12f5"
|
|
88
88
|
}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* votes into separate capabilities for finer grain encapsulation.
|
|
6
6
|
*/
|
|
7
7
|
export const INVITATION_MAKERS_DESC: "charter member invitation";
|
|
8
|
-
/** @type {ContractMeta} */
|
|
9
|
-
export const meta: ContractMeta
|
|
8
|
+
/** @type {ContractMeta<typeof start>} */
|
|
9
|
+
export const meta: ContractMeta<typeof start>;
|
|
10
10
|
export function start(zcf: ZCF<{
|
|
11
11
|
binaryVoteCounterInstallation: Installation;
|
|
12
12
|
}>, privateArgs: undefined, baggage: import("@agoric/vat-data").Baggage): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"econCommitteeCharter.d.ts","sourceRoot":"","sources":["econCommitteeCharter.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AAEH,iEAAkE;AAoBlE,
|
|
1
|
+
{"version":3,"file":"econCommitteeCharter.d.ts","sourceRoot":"","sources":["econCommitteeCharter.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AAEH,iEAAkE;AAoBlE,yCAAyC;AACzC,mBADW,YAAY,CAAC,OAAO,KAAK,CAAC,CAMnC;AAQK,2BAJI,GAAG,CAAC;IAAE,6BAA6B,EAAE,YAAY,CAAA;CAAE,CAAC,eACpD,SAAS,WACT,OAAO,kBAAkB,EAAE,OAAO;;QAsHvC;;;;WAIG;wCAHQ,QAAQ,iBACR,oBAAoB,CAAC,GAAG,CAAC;;;;;0CAxE7B,QAAQ,cACR,MAAM,cACN,MAAM,EAAE,YACR,OAAO,cAAc,EAAE,cAAc;;;;GAkFjD;;cAjKa,MAAM;cACN,QAAQ;YACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;mBACV;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE"}
|
package/src/feeDistributor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** @type {ContractMeta} */
|
|
2
|
-
export const meta: ContractMeta
|
|
1
|
+
/** @type {ContractMeta<typeof start>} */
|
|
2
|
+
export const meta: ContractMeta<typeof start>;
|
|
3
3
|
export function makeContractFeeCollector(zoe: ERef<ZoeService>, creatorFacet: ERef<CollectibleContractFacet>): {
|
|
4
4
|
collectFees: () => Promise<globalThis.Payment<any>>;
|
|
5
5
|
} & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeDistributor.d.ts","sourceRoot":"","sources":["feeDistributor.js"],"names":[],"mappings":"AAWA,
|
|
1
|
+
{"version":3,"file":"feeDistributor.d.ts","sourceRoot":"","sources":["feeDistributor.js"],"names":[],"mappings":"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"}
|
package/src/feeDistributor.js
CHANGED
|
@@ -9,7 +9,7 @@ import { KeywordShape } from '@agoric/zoe/src/typeGuards.js';
|
|
|
9
9
|
|
|
10
10
|
const KeywordSharesShape = M.recordOf(KeywordShape, M.nat());
|
|
11
11
|
|
|
12
|
-
/** @type {ContractMeta} */
|
|
12
|
+
/** @type {ContractMeta<typeof start>} */
|
|
13
13
|
export const meta = {
|
|
14
14
|
customTermsShape: {
|
|
15
15
|
keywordShares: KeywordSharesShape,
|
|
@@ -2,74 +2,71 @@ export const SECONDS_PER_MINUTE: 60n;
|
|
|
2
2
|
export const SECONDS_PER_HOUR: bigint;
|
|
3
3
|
export const SECONDS_PER_DAY: bigint;
|
|
4
4
|
export const SECONDS_PER_WEEK: bigint;
|
|
5
|
-
export function setupReserve({ consume: { board, feeMintAccess: feeMintAccessP, chainStorage, chainTimerService, diagnostics, zoe, economicCommitteeCreatorFacet: committeeCreator, }, produce: { reserveKit }, issuer: { consume: { [Stable.symbol]: centralIssuer }, }, instance: { produce: { reserve: reserveInstanceProducer, reserveGovernor }, }, installation: { consume: { contractGovernor: governorInstallation, reserve: reserveInstallation, }, }, }: EconomyBootstrapPowers): Promise<Installation<(zcf: ZCF
|
|
6
|
-
/** @typedef {Awaited<ReturnType<VFStart>>['publicFacet']} VaultFactoryPublicFacet */
|
|
7
|
-
/**
|
|
8
|
-
* @typedef {object} PSMKit
|
|
9
|
-
* @property {string} label
|
|
10
|
-
* @property {Instance} psm
|
|
11
|
-
* @property {Instance} psmGovernor
|
|
12
|
-
* @property {Awaited<
|
|
13
|
-
* ReturnType<
|
|
14
|
-
* Awaited<
|
|
15
|
-
* ReturnType<import('../psm/psm.js')['start']>
|
|
16
|
-
* >['creatorFacet']['getLimitedCreatorFacet']
|
|
17
|
-
* >
|
|
18
|
-
* >} psmCreatorFacet
|
|
19
|
-
* @property {GovernorCreatorFacet<import('../../src/psm/psm.js')['start']>} psmGovernorCreatorFacet
|
|
20
|
-
* @property {AdminFacet} psmAdminFacet
|
|
21
|
-
*/
|
|
22
|
-
/** @typedef {GovernanceFacetKit<import('../auction/auctioneer.js').start>} AuctioneerKit */
|
|
23
|
-
/**
|
|
24
|
-
* @typedef {WellKnownSpaces & ChainBootstrapSpace & EconomyBootstrapSpace} EconomyBootstrapPowers
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* @typedef {PromiseSpaceOf<{
|
|
28
|
-
* economicCommitteeKit: CommitteeStartResult;
|
|
29
|
-
* economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet;
|
|
30
|
-
* feeDistributorKit: StartedInstanceKit<
|
|
31
|
-
* typeof import('../feeDistributor.js').start
|
|
32
|
-
* >;
|
|
33
|
-
* periodicFeeCollectors: MapStore<
|
|
34
|
-
* number,
|
|
35
|
-
* import('../feeDistributor.js').PeriodicFeeCollector
|
|
36
|
-
* >;
|
|
37
|
-
* psmKit: MapStore<Brand, PSMKit>;
|
|
38
|
-
* anchorBalancePayments: MapStore<Brand, Payment<'nat'>>;
|
|
39
|
-
* econCharterKit: EconCharterStartResult;
|
|
40
|
-
* reserveKit: GovernanceFacetKit<
|
|
41
|
-
* import('../reserve/assetReserve.js')['start']
|
|
42
|
-
* >;
|
|
43
|
-
* vaultFactoryKit: GovernanceFacetKit<VFStart>;
|
|
44
|
-
* auctioneerKit: AuctioneerKit;
|
|
45
|
-
* newAuctioneerKit: AuctioneerKit | undefined;
|
|
46
|
-
* minInitialDebt: NatValue;
|
|
47
|
-
* }>} EconomyBootstrapSpace
|
|
48
|
-
*/
|
|
49
|
-
/**
|
|
50
|
-
* @typedef {StartedInstanceKit<
|
|
51
|
-
* import('../econCommitteeCharter.js')['start']
|
|
52
|
-
* >} EconCharterStartResult
|
|
53
|
-
*/
|
|
54
|
-
/**
|
|
55
|
-
* @typedef {StartedInstanceKit<
|
|
56
|
-
* import('@agoric/governance/src/committee.js')['start']
|
|
57
|
-
* >} CommitteeStartResult
|
|
58
|
-
*/
|
|
59
|
-
/**
|
|
60
|
-
* @file A collection of productions, each of which declares inputs and outputs.
|
|
61
|
-
* Each function is passed a set of powers for reading from and writing to the
|
|
62
|
-
* vat config.
|
|
63
|
-
*
|
|
64
|
-
* Each of the things they produce they're responsible for resolving or setting.
|
|
65
|
-
*
|
|
66
|
-
* In production called by @agoric/vats to bootstrap.
|
|
67
|
-
*/
|
|
68
|
-
/** @param {EconomyBootstrapPowers} powers */
|
|
69
|
-
/** @import {start as VFStart} from '../vaultFactory/vaultFactory.js' */ GovernanceTerms<{}> & {
|
|
5
|
+
export function setupReserve({ consume: { board, feeMintAccess: feeMintAccessP, chainStorage, chainTimerService, diagnostics, zoe, economicCommitteeCreatorFacet: committeeCreator, }, produce: { reserveKit }, issuer: { consume: { [Stable.symbol]: centralIssuer }, }, instance: { produce: { reserve: reserveInstanceProducer, reserveGovernor }, }, installation: { consume: { contractGovernor: governorInstallation, reserve: reserveInstallation, }, }, }: EconomyBootstrapPowers): Promise<Installation<(zcf: ZCF<GovernanceTerms<{}> & {
|
|
70
6
|
governedApis: ["burnFeesToReduceShortfall"];
|
|
71
7
|
}>, privateArgs: {
|
|
72
|
-
feeMintAccess: FeeMintAccess;
|
|
8
|
+
feeMintAccess: FeeMintAccess; /**
|
|
9
|
+
* @typedef {object} PSMKit
|
|
10
|
+
* @property {string} label
|
|
11
|
+
* @property {Instance} psm
|
|
12
|
+
* @property {Instance} psmGovernor
|
|
13
|
+
* @property {Awaited<
|
|
14
|
+
* ReturnType<
|
|
15
|
+
* Awaited<
|
|
16
|
+
* ReturnType<import('../psm/psm.js')['start']>
|
|
17
|
+
* >['creatorFacet']['getLimitedCreatorFacet']
|
|
18
|
+
* >
|
|
19
|
+
* >} psmCreatorFacet
|
|
20
|
+
* @property {GovernorCreatorFacet<import('../../src/psm/psm.js')['start']>} psmGovernorCreatorFacet
|
|
21
|
+
* @property {AdminFacet} psmAdminFacet
|
|
22
|
+
*/
|
|
23
|
+
/** @typedef {GovernanceFacetKit<import('../auction/auctioneer.js').start>} AuctioneerKit */
|
|
24
|
+
/**
|
|
25
|
+
* @typedef {WellKnownSpaces & ChainBootstrapSpace & EconomyBootstrapSpace} EconomyBootstrapPowers
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* @typedef {PromiseSpaceOf<{
|
|
29
|
+
* economicCommitteeKit: CommitteeStartResult;
|
|
30
|
+
* economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet;
|
|
31
|
+
* feeDistributorKit: StartedInstanceKit<
|
|
32
|
+
* typeof import('../feeDistributor.js').start
|
|
33
|
+
* >;
|
|
34
|
+
* periodicFeeCollectors: MapStore<
|
|
35
|
+
* number,
|
|
36
|
+
* import('../feeDistributor.js').PeriodicFeeCollector
|
|
37
|
+
* >;
|
|
38
|
+
* psmKit: MapStore<Brand, PSMKit>;
|
|
39
|
+
* anchorBalancePayments: MapStore<Brand, Payment<'nat'>>;
|
|
40
|
+
* econCharterKit: EconCharterStartResult;
|
|
41
|
+
* reserveKit: GovernanceFacetKit<
|
|
42
|
+
* import('../reserve/assetReserve.js')['start']
|
|
43
|
+
* >;
|
|
44
|
+
* vaultFactoryKit: GovernanceFacetKit<VFStart>;
|
|
45
|
+
* auctioneerKit: AuctioneerKit;
|
|
46
|
+
* newAuctioneerKit: AuctioneerKit | undefined;
|
|
47
|
+
* minInitialDebt: NatValue;
|
|
48
|
+
* }>} EconomyBootstrapSpace
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* @typedef {StartedInstanceKit<
|
|
52
|
+
* import('../econCommitteeCharter.js')['start']
|
|
53
|
+
* >} EconCharterStartResult
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* @typedef {StartedInstanceKit<
|
|
57
|
+
* import('@agoric/governance/src/committee.js')['start']
|
|
58
|
+
* >} CommitteeStartResult
|
|
59
|
+
*/
|
|
60
|
+
/**
|
|
61
|
+
* @file A collection of productions, each of which declares inputs and outputs.
|
|
62
|
+
* Each function is passed a set of powers for reading from and writing to the
|
|
63
|
+
* vat config.
|
|
64
|
+
*
|
|
65
|
+
* Each of the things they produce they're responsible for resolving or setting.
|
|
66
|
+
*
|
|
67
|
+
* In production called by @agoric/vats to bootstrap.
|
|
68
|
+
*/
|
|
69
|
+
/** @param {EconomyBootstrapPowers} powers */
|
|
73
70
|
initialPoserInvitation: Invitation;
|
|
74
71
|
marshaller: ERef<Marshaller>;
|
|
75
72
|
storageNode: ERef<StorageNode>;
|
|
@@ -500,74 +497,71 @@ export type EconomyBootstrapSpace = {
|
|
|
500
497
|
psmKit: Promise<globalThis.MapStore<globalThis.Brand, PSMKit>>;
|
|
501
498
|
anchorBalancePayments: Promise<globalThis.MapStore<globalThis.Brand, globalThis.Payment<"nat">>>;
|
|
502
499
|
econCharterKit: Promise<EconCharterStartResult>;
|
|
503
|
-
reserveKit: Promise<globalThis.GovernanceFacetKit<(zcf: ZCF
|
|
504
|
-
/** @typedef {Awaited<ReturnType<VFStart>>['publicFacet']} VaultFactoryPublicFacet */
|
|
505
|
-
/**
|
|
506
|
-
* @typedef {object} PSMKit
|
|
507
|
-
* @property {string} label
|
|
508
|
-
* @property {Instance} psm
|
|
509
|
-
* @property {Instance} psmGovernor
|
|
510
|
-
* @property {Awaited<
|
|
511
|
-
* ReturnType<
|
|
512
|
-
* Awaited<
|
|
513
|
-
* ReturnType<import('../psm/psm.js')['start']>
|
|
514
|
-
* >['creatorFacet']['getLimitedCreatorFacet']
|
|
515
|
-
* >
|
|
516
|
-
* >} psmCreatorFacet
|
|
517
|
-
* @property {GovernorCreatorFacet<import('../../src/psm/psm.js')['start']>} psmGovernorCreatorFacet
|
|
518
|
-
* @property {AdminFacet} psmAdminFacet
|
|
519
|
-
*/
|
|
520
|
-
/** @typedef {GovernanceFacetKit<import('../auction/auctioneer.js').start>} AuctioneerKit */
|
|
521
|
-
/**
|
|
522
|
-
* @typedef {WellKnownSpaces & ChainBootstrapSpace & EconomyBootstrapSpace} EconomyBootstrapPowers
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
* @typedef {PromiseSpaceOf<{
|
|
526
|
-
* economicCommitteeKit: CommitteeStartResult;
|
|
527
|
-
* economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet;
|
|
528
|
-
* feeDistributorKit: StartedInstanceKit<
|
|
529
|
-
* typeof import('../feeDistributor.js').start
|
|
530
|
-
* >;
|
|
531
|
-
* periodicFeeCollectors: MapStore<
|
|
532
|
-
* number,
|
|
533
|
-
* import('../feeDistributor.js').PeriodicFeeCollector
|
|
534
|
-
* >;
|
|
535
|
-
* psmKit: MapStore<Brand, PSMKit>;
|
|
536
|
-
* anchorBalancePayments: MapStore<Brand, Payment<'nat'>>;
|
|
537
|
-
* econCharterKit: EconCharterStartResult;
|
|
538
|
-
* reserveKit: GovernanceFacetKit<
|
|
539
|
-
* import('../reserve/assetReserve.js')['start']
|
|
540
|
-
* >;
|
|
541
|
-
* vaultFactoryKit: GovernanceFacetKit<VFStart>;
|
|
542
|
-
* auctioneerKit: AuctioneerKit;
|
|
543
|
-
* newAuctioneerKit: AuctioneerKit | undefined;
|
|
544
|
-
* minInitialDebt: NatValue;
|
|
545
|
-
* }>} EconomyBootstrapSpace
|
|
546
|
-
*/
|
|
547
|
-
/**
|
|
548
|
-
* @typedef {StartedInstanceKit<
|
|
549
|
-
* import('../econCommitteeCharter.js')['start']
|
|
550
|
-
* >} EconCharterStartResult
|
|
551
|
-
*/
|
|
552
|
-
/**
|
|
553
|
-
* @typedef {StartedInstanceKit<
|
|
554
|
-
* import('@agoric/governance/src/committee.js')['start']
|
|
555
|
-
* >} CommitteeStartResult
|
|
556
|
-
*/
|
|
557
|
-
/**
|
|
558
|
-
* @file A collection of productions, each of which declares inputs and outputs.
|
|
559
|
-
* Each function is passed a set of powers for reading from and writing to the
|
|
560
|
-
* vat config.
|
|
561
|
-
*
|
|
562
|
-
* Each of the things they produce they're responsible for resolving or setting.
|
|
563
|
-
*
|
|
564
|
-
* In production called by @agoric/vats to bootstrap.
|
|
565
|
-
*/
|
|
566
|
-
/** @param {EconomyBootstrapPowers} powers */
|
|
567
|
-
/** @import {start as VFStart} from '../vaultFactory/vaultFactory.js' */ GovernanceTerms<{}> & {
|
|
500
|
+
reserveKit: Promise<globalThis.GovernanceFacetKit<(zcf: ZCF<GovernanceTerms<{}> & {
|
|
568
501
|
governedApis: ["burnFeesToReduceShortfall"];
|
|
569
502
|
}>, privateArgs: {
|
|
570
|
-
feeMintAccess: FeeMintAccess;
|
|
503
|
+
feeMintAccess: FeeMintAccess; /**
|
|
504
|
+
* @typedef {object} PSMKit
|
|
505
|
+
* @property {string} label
|
|
506
|
+
* @property {Instance} psm
|
|
507
|
+
* @property {Instance} psmGovernor
|
|
508
|
+
* @property {Awaited<
|
|
509
|
+
* ReturnType<
|
|
510
|
+
* Awaited<
|
|
511
|
+
* ReturnType<import('../psm/psm.js')['start']>
|
|
512
|
+
* >['creatorFacet']['getLimitedCreatorFacet']
|
|
513
|
+
* >
|
|
514
|
+
* >} psmCreatorFacet
|
|
515
|
+
* @property {GovernorCreatorFacet<import('../../src/psm/psm.js')['start']>} psmGovernorCreatorFacet
|
|
516
|
+
* @property {AdminFacet} psmAdminFacet
|
|
517
|
+
*/
|
|
518
|
+
/** @typedef {GovernanceFacetKit<import('../auction/auctioneer.js').start>} AuctioneerKit */
|
|
519
|
+
/**
|
|
520
|
+
* @typedef {WellKnownSpaces & ChainBootstrapSpace & EconomyBootstrapSpace} EconomyBootstrapPowers
|
|
521
|
+
*
|
|
522
|
+
*
|
|
523
|
+
* @typedef {PromiseSpaceOf<{
|
|
524
|
+
* economicCommitteeKit: CommitteeStartResult;
|
|
525
|
+
* economicCommitteeCreatorFacet: import('@agoric/governance/src/committee.js').CommitteeElectorateCreatorFacet;
|
|
526
|
+
* feeDistributorKit: StartedInstanceKit<
|
|
527
|
+
* typeof import('../feeDistributor.js').start
|
|
528
|
+
* >;
|
|
529
|
+
* periodicFeeCollectors: MapStore<
|
|
530
|
+
* number,
|
|
531
|
+
* import('../feeDistributor.js').PeriodicFeeCollector
|
|
532
|
+
* >;
|
|
533
|
+
* psmKit: MapStore<Brand, PSMKit>;
|
|
534
|
+
* anchorBalancePayments: MapStore<Brand, Payment<'nat'>>;
|
|
535
|
+
* econCharterKit: EconCharterStartResult;
|
|
536
|
+
* reserveKit: GovernanceFacetKit<
|
|
537
|
+
* import('../reserve/assetReserve.js')['start']
|
|
538
|
+
* >;
|
|
539
|
+
* vaultFactoryKit: GovernanceFacetKit<VFStart>;
|
|
540
|
+
* auctioneerKit: AuctioneerKit;
|
|
541
|
+
* newAuctioneerKit: AuctioneerKit | undefined;
|
|
542
|
+
* minInitialDebt: NatValue;
|
|
543
|
+
* }>} EconomyBootstrapSpace
|
|
544
|
+
*/
|
|
545
|
+
/**
|
|
546
|
+
* @typedef {StartedInstanceKit<
|
|
547
|
+
* import('../econCommitteeCharter.js')['start']
|
|
548
|
+
* >} EconCharterStartResult
|
|
549
|
+
*/
|
|
550
|
+
/**
|
|
551
|
+
* @typedef {StartedInstanceKit<
|
|
552
|
+
* import('@agoric/governance/src/committee.js')['start']
|
|
553
|
+
* >} CommitteeStartResult
|
|
554
|
+
*/
|
|
555
|
+
/**
|
|
556
|
+
* @file A collection of productions, each of which declares inputs and outputs.
|
|
557
|
+
* Each function is passed a set of powers for reading from and writing to the
|
|
558
|
+
* vat config.
|
|
559
|
+
*
|
|
560
|
+
* Each of the things they produce they're responsible for resolving or setting.
|
|
561
|
+
*
|
|
562
|
+
* In production called by @agoric/vats to bootstrap.
|
|
563
|
+
*/
|
|
564
|
+
/** @param {EconomyBootstrapPowers} powers */
|
|
571
565
|
initialPoserInvitation: Invitation;
|
|
572
566
|
marshaller: ERef<Marshaller>;
|
|
573
567
|
storageNode: ERef<StorageNode>;
|
|
@@ -1093,7 +1087,7 @@ export type EconCharterStartResult = {
|
|
|
1093
1087
|
binaryVoteCounterInstallation: Installation;
|
|
1094
1088
|
}>, privateArgs: undefined, baggage: import("@agoric/vat-data").Baggage) => Promise<{
|
|
1095
1089
|
creatorFacet: import("@endo/exo").Guarded<{
|
|
1096
|
-
addInstance: (governedInstance: Instance
|
|
1090
|
+
addInstance: (governedInstance: Instance, governorFacet: GovernorCreatorFacet<any>, label?: string | undefined) => void;
|
|
1097
1091
|
makeCharterMemberInvitation: () => Promise<Invitation<{
|
|
1098
1092
|
invitationMakers: import("@endo/exo").Guarded<{
|
|
1099
1093
|
VoteOnParamChange: () => Promise<Invitation<import("@agoric/governance/src/types.js").ContractGovernanceVoteResult, import("../econCommitteeCharter.js").ParamChangesOfferArgs>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"econ-behaviors.d.ts","sourceRoot":"","sources":["econ-behaviors.js"],"names":[],"mappings":"AAgBA,qCAAsC;AACtC,sCAA0C;AAC1C,qCAAsD;AACtD,sCAAqD;AAwE9C,mcADK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"econ-behaviors.d.ts","sourceRoot":"","sources":["econ-behaviors.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAqBK,2BAZI,GAAG,CAAC,cAAc,CAAC;cAEf,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C;4BACuB,UAAU;iBACrB,WAAW;;sBAEN,OAAO,uBAAuB,EAAE,mBAAmB;YAE/D,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAqBK,2BAZI,GAAG,CAAC,cAAc,CAAC;cAEf,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C;4BACuB,UAAU;iBACrB,WAAW;;sBAEN,OAAO,uBAAuB,EAAE,mBAAmB;YAE/D,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;gDAsEkqF,QAAQ;;;sDAA4w+B,OAAO,eAAe,EAAE,OAAO,CAAC,SAAQ,IAAK,CAAC;;yCAAvpS,OAAO;;;gDAA48I,SAAS;;;;;;;;;;;;;;;;;;;8EAAqqJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;8EAAP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;8EAAP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;iCAAx/9B,0BAA0B;;;;;;2BAAgkC,KAAK,YAA2B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;GAH9oI;;;;6BAlFY,aAAa,GACzB,eAAmB,CAAC;IACpB,uBAA6B,EAAE,QAAQ,CAAC;CACnC,CAAC;6BAxBoB,eAAe"}
|
|
@@ -245,6 +245,12 @@ export function prepareProvisionPoolKit(baggage: import("@agoric/vat-data").Bagg
|
|
|
245
245
|
onProvisioned(): void;
|
|
246
246
|
/** @param {ERef<Bank>} destBank */
|
|
247
247
|
sendInitialPayment(destBank: ERef<Bank>): Promise<void>;
|
|
248
|
+
/**
|
|
249
|
+
* @param {ERef<Purse>} exchangePurse
|
|
250
|
+
* @param {ERef<Brand>} brand
|
|
251
|
+
*/
|
|
252
|
+
watchCurrentAmount(exchangePurse: ERef<globalThis.Purse>, brand: ERef<globalThis.Brand>): void;
|
|
253
|
+
watchAssetSubscription(): Promise<undefined>;
|
|
248
254
|
/**
|
|
249
255
|
* @param {object} [options]
|
|
250
256
|
* @param {MetricsNotification} [options.metrics]
|
|
@@ -296,7 +302,7 @@ export type PsmInstance = import("@agoric/zoe/src/zoeService/utils.js").Instance
|
|
|
296
302
|
Electorate: "invitation";
|
|
297
303
|
}>;
|
|
298
304
|
}>;
|
|
299
|
-
getInvitation: (name: any) => Promise<Invitation<unknown, undefined>>;
|
|
305
|
+
getInvitation: (name: any) => Promise<Invitation<unknown, undefined>>;
|
|
300
306
|
getLimitedCreatorFacet: () => import("@endo/exo").Guarded<{
|
|
301
307
|
getRewardAllocation(): Allocation;
|
|
302
308
|
makeCollectFeesInvitation(): Promise<Invitation<string, undefined>>;
|
|
@@ -351,7 +357,9 @@ export type ProvisionPoolKitReferences = {
|
|
|
351
357
|
}>>;
|
|
352
358
|
namesByAddressAdmin: ERef<import("@agoric/vats").NameAdmin>;
|
|
353
359
|
walletFactory: ERef<{
|
|
354
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
360
|
+
provideSmartWallet(address: string, bank: ERef<import(
|
|
361
|
+
/** @param {ERef<Bank>} destBank */
|
|
362
|
+
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
355
363
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
356
364
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
357
365
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -449,7 +457,9 @@ export type ProvisionPoolKitReferences = {
|
|
|
449
457
|
repairWalletForIncarnation2(key: object): void;
|
|
450
458
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
451
459
|
} & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
|
|
452
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
460
|
+
provideSmartWallet(address: string, bank: ERef<import(
|
|
461
|
+
/** @param {ERef<Bank>} destBank */
|
|
462
|
+
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
453
463
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
454
464
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
455
465
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -547,7 +557,9 @@ export type ProvisionPoolKitReferences = {
|
|
|
547
557
|
repairWalletForIncarnation2(key: object): void;
|
|
548
558
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
549
559
|
}> & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
550
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
560
|
+
provideSmartWallet(address: string, bank: ERef<import(
|
|
561
|
+
/** @param {ERef<Bank>} destBank */
|
|
562
|
+
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
551
563
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
552
564
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
553
565
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -645,7 +657,9 @@ export type ProvisionPoolKitReferences = {
|
|
|
645
657
|
repairWalletForIncarnation2(key: object): void;
|
|
646
658
|
}>> & import("@endo/marshal").RemotableObject, isNew: boolean]>;
|
|
647
659
|
} & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
|
|
648
|
-
provideSmartWallet(address: string, bank: ERef<import(
|
|
660
|
+
provideSmartWallet(address: string, bank: ERef<import(
|
|
661
|
+
/** @param {ERef<Bank>} destBank */
|
|
662
|
+
"@agoric/vats/src/vat-bank.js").Bank>, namesByAddressAdmin: ERef<import("@agoric/vats/src/types.js").NameAdmin>): Promise<[wallet: {
|
|
649
663
|
handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
|
|
650
664
|
getDepositFacet(): import("@endo/exo").Guarded<{
|
|
651
665
|
receive(payment: Payment): Promise<Amount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisionPoolKit.d.ts","sourceRoot":"","sources":["provisionPoolKit.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provisionPoolKit.d.ts","sourceRoot":"","sources":["provisionPoolKit.js"],"names":[],"mappings":"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"}
|
package/src/provisionPoolKit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import { AmountMath, BrandShape } from '@agoric/ertp';
|
|
3
|
-
import { deeplyFulfilledObject } from '@agoric/internal';
|
|
3
|
+
import { deeplyFulfilledObject, makeTracer } from '@agoric/internal';
|
|
4
4
|
import { UnguardedHelperI } from '@agoric/internal/src/typeGuards.js';
|
|
5
5
|
import {
|
|
6
6
|
observeIteration,
|
|
@@ -21,9 +21,16 @@ import {
|
|
|
21
21
|
import { InstanceHandleShape } from '@agoric/zoe/src/typeGuards.js';
|
|
22
22
|
import { E } from '@endo/far';
|
|
23
23
|
import { Far } from '@endo/marshal';
|
|
24
|
+
import { isUpgradeDisconnection } from '@agoric/internal/src/upgrade-api.js';
|
|
24
25
|
|
|
25
26
|
const { details: X, quote: q, Fail } = assert;
|
|
26
27
|
|
|
28
|
+
const trace = makeTracer('ProvPool');
|
|
29
|
+
|
|
30
|
+
const FIRST_UPPER_KEYWORD = /^[A-Z][a-zA-Z0-9_$]*$/;
|
|
31
|
+
// see https://github.com/Agoric/agoric-sdk/issues/8238
|
|
32
|
+
const FIRST_LOWER_NEAR_KEYWORD = /^[a-z][a-zA-Z0-9_$]*$/;
|
|
33
|
+
|
|
27
34
|
/**
|
|
28
35
|
* @import {ERef} from '@endo/far'
|
|
29
36
|
* @import {Amount} from '@agoric/ertp/src/types.js'
|
|
@@ -73,7 +80,7 @@ export const makeBridgeProvisionTool = (sendInitialPayment, onProvisioned) => {
|
|
|
73
80
|
fromBridge: async obj => {
|
|
74
81
|
obj.type === 'PLEASE_PROVISION' ||
|
|
75
82
|
Fail`Unrecognized request ${obj.type}`;
|
|
76
|
-
|
|
83
|
+
trace('PLEASE_PROVISION', obj);
|
|
77
84
|
const { address, powerFlags } = obj;
|
|
78
85
|
powerFlags.includes(PowerFlags.SMART_WALLET) ||
|
|
79
86
|
Fail`missing SMART_WALLET in powerFlags`;
|
|
@@ -90,7 +97,7 @@ export const makeBridgeProvisionTool = (sendInitialPayment, onProvisioned) => {
|
|
|
90
97
|
if (created) {
|
|
91
98
|
onProvisioned();
|
|
92
99
|
}
|
|
93
|
-
|
|
100
|
+
trace(created ? 'provisioned' : 're-provisioned', address);
|
|
94
101
|
},
|
|
95
102
|
});
|
|
96
103
|
return makeBridgeHandler;
|
|
@@ -149,7 +156,7 @@ export const prepareProvisionPoolKit = (
|
|
|
149
156
|
/** @type {import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<MetricsNotification>} */
|
|
150
157
|
const metricsRecorderKit = makeRecorderKit(metricsNode);
|
|
151
158
|
|
|
152
|
-
/** @type {MapStore<Brand
|
|
159
|
+
/** @type {MapStore<ERef<Brand>, PsmInstance>} */
|
|
153
160
|
const brandToPSM = makeScalarBigMapStore('brandToPSM', { durable: true });
|
|
154
161
|
const revivableAddresses = makeScalarBigSetStore('revivableAddresses', {
|
|
155
162
|
durable: true,
|
|
@@ -184,7 +191,7 @@ export const prepareProvisionPoolKit = (
|
|
|
184
191
|
machine: {
|
|
185
192
|
/** @param {string[]} oldAddresses */
|
|
186
193
|
addRevivableAddresses(oldAddresses) {
|
|
187
|
-
|
|
194
|
+
trace('revivableAddresses count', oldAddresses.length);
|
|
188
195
|
this.state.revivableAddresses.addAll(oldAddresses);
|
|
189
196
|
},
|
|
190
197
|
getWalletReviver() {
|
|
@@ -318,7 +325,7 @@ export const prepareProvisionPoolKit = (
|
|
|
318
325
|
.deposit(initialPmt)
|
|
319
326
|
.then(amt => {
|
|
320
327
|
helper.onSendFunds(perAccountInitialAmount);
|
|
321
|
-
|
|
328
|
+
trace('provisionPool sent', amt);
|
|
322
329
|
})
|
|
323
330
|
.catch(reason => {
|
|
324
331
|
console.error(X`initial deposit failed: ${q(reason)}`);
|
|
@@ -327,62 +334,114 @@ export const prepareProvisionPoolKit = (
|
|
|
327
334
|
});
|
|
328
335
|
},
|
|
329
336
|
/**
|
|
330
|
-
* @param {
|
|
331
|
-
* @param {
|
|
337
|
+
* @param {ERef<Purse>} exchangePurse
|
|
338
|
+
* @param {ERef<Brand>} brand
|
|
332
339
|
*/
|
|
333
|
-
|
|
340
|
+
watchCurrentAmount(exchangePurse, brand) {
|
|
334
341
|
const {
|
|
335
342
|
state: { brandToPSM, poolBrand },
|
|
336
343
|
facets: { helper },
|
|
337
344
|
} = this;
|
|
338
345
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
346
|
+
void observeNotifier(E(exchangePurse).getCurrentAmountNotifier(), {
|
|
347
|
+
updateState: async amount => {
|
|
348
|
+
trace('provisionPool balance update', amount);
|
|
349
|
+
if (AmountMath.isEmpty(amount) || amount.brand === poolBrand) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
if (!brandToPSM.has(brand)) {
|
|
353
|
+
console.error('funds arrived but no PSM instance', brand);
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
const instance = brandToPSM.get(brand);
|
|
357
|
+
const payment = E(exchangePurse).withdraw(amount);
|
|
358
|
+
await helper
|
|
359
|
+
.swap(payment, amount, instance)
|
|
360
|
+
.catch(async reason => {
|
|
361
|
+
console.error(X`swap failed: ${reason}`);
|
|
362
|
+
const resolvedPayment = await payment;
|
|
363
|
+
return E(exchangePurse).deposit(resolvedPayment);
|
|
364
|
+
});
|
|
365
|
+
},
|
|
366
|
+
fail: reason => {
|
|
367
|
+
if (isUpgradeDisconnection(reason)) {
|
|
368
|
+
void helper.watchCurrentAmount(exchangePurse, brand);
|
|
369
|
+
} else {
|
|
370
|
+
console.error(reason);
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
},
|
|
375
|
+
watchAssetSubscription() {
|
|
376
|
+
const { facets } = this;
|
|
377
|
+
const { helper } = facets;
|
|
343
378
|
|
|
344
|
-
|
|
379
|
+
/** @param {import('@agoric/vats/src/vat-bank.js').AssetDescriptor} desc */
|
|
380
|
+
const repairDesc = desc => {
|
|
381
|
+
if (desc.issuerName.match(FIRST_UPPER_KEYWORD)) {
|
|
382
|
+
trace(`Saving Issuer ${desc.issuerName}`);
|
|
383
|
+
return desc;
|
|
384
|
+
} else if (desc.issuerName.match(FIRST_LOWER_NEAR_KEYWORD)) {
|
|
385
|
+
const bad = desc.issuerName;
|
|
386
|
+
const goodName = bad.replace(bad[0], bad[0].toUpperCase());
|
|
387
|
+
|
|
388
|
+
trace(
|
|
389
|
+
`Saving Issuer ${desc.issuerName} with repaired keyword ${goodName}`,
|
|
390
|
+
);
|
|
391
|
+
return { ...desc, issuerName: goodName };
|
|
392
|
+
} else {
|
|
393
|
+
console.error(
|
|
394
|
+
`unable to save issuer with illegal keyword: ${desc.issuerName}`,
|
|
395
|
+
);
|
|
396
|
+
return undefined;
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
|
|
400
|
+
return observeIteration(
|
|
345
401
|
subscribeEach(E(poolBank).getAssetSubscription()),
|
|
346
402
|
{
|
|
347
403
|
updateState: async desc => {
|
|
348
|
-
|
|
349
|
-
|
|
404
|
+
await null;
|
|
405
|
+
const issuer = zcf.getTerms().issuers[desc.issuerName];
|
|
406
|
+
if (issuer === desc.issuer) {
|
|
407
|
+
trace('provisionPool re-notified of known asset', desc.brand);
|
|
408
|
+
} else {
|
|
409
|
+
const goodDesc = repairDesc(desc);
|
|
410
|
+
if (goodDesc) {
|
|
411
|
+
await zcf.saveIssuer(goodDesc.issuer, goodDesc.issuerName);
|
|
412
|
+
} else {
|
|
413
|
+
console.error(
|
|
414
|
+
`unable to save issuer with illegal keyword: ${desc.issuerName}`,
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
350
419
|
/** @type {ERef<Purse>} */
|
|
351
420
|
const exchangePurse = E(poolBank).getPurse(desc.brand);
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
console.log('provisionPool balance update', amount);
|
|
357
|
-
if (
|
|
358
|
-
AmountMath.isEmpty(amount) ||
|
|
359
|
-
amount.brand === poolBrand
|
|
360
|
-
) {
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
if (!brandToPSM.has(desc.brand)) {
|
|
364
|
-
console.error(
|
|
365
|
-
'funds arrived but no PSM instance',
|
|
366
|
-
desc.brand,
|
|
367
|
-
);
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
const instance = brandToPSM.get(desc.brand);
|
|
371
|
-
const payment = E(exchangePurse).withdraw(amount);
|
|
372
|
-
await helper
|
|
373
|
-
.swap(payment, amount, instance)
|
|
374
|
-
.catch(async reason => {
|
|
375
|
-
console.error(X`swap failed: ${reason}`);
|
|
376
|
-
const resolvedPayment = await payment;
|
|
377
|
-
return E(exchangePurse).deposit(resolvedPayment);
|
|
378
|
-
});
|
|
379
|
-
},
|
|
380
|
-
fail: reason => console.error(reason),
|
|
381
|
-
},
|
|
382
|
-
);
|
|
421
|
+
helper.watchCurrentAmount(exchangePurse, desc.brand);
|
|
422
|
+
},
|
|
423
|
+
fail: _reason => {
|
|
424
|
+
void helper.watchAssetSubscription();
|
|
383
425
|
},
|
|
384
426
|
},
|
|
385
427
|
);
|
|
428
|
+
},
|
|
429
|
+
/**
|
|
430
|
+
* @param {object} [options]
|
|
431
|
+
* @param {MetricsNotification} [options.metrics]
|
|
432
|
+
*/
|
|
433
|
+
start({ metrics } = {}) {
|
|
434
|
+
const {
|
|
435
|
+
state: { poolBrand },
|
|
436
|
+
facets: { helper },
|
|
437
|
+
} = this;
|
|
438
|
+
|
|
439
|
+
// Must match. poolBrand is from durable state and the param is from
|
|
440
|
+
// the contract, so it technically can change between incarnations.
|
|
441
|
+
// That would be a severe bug.
|
|
442
|
+
AmountMath.coerce(poolBrand, params.getPerAccountInitialAmount());
|
|
443
|
+
|
|
444
|
+
void helper.watchAssetSubscription();
|
|
386
445
|
|
|
387
446
|
if (metrics) {
|
|
388
447
|
// Restore state.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** @type {ContractMeta} */
|
|
2
|
-
export const meta: ContractMeta
|
|
1
|
+
/** @type {ContractMeta<typeof start>} */
|
|
2
|
+
export const meta: ContractMeta<typeof start>;
|
|
3
3
|
export function start(zcf: ZCF<GovernanceTerms<{}> & {
|
|
4
4
|
governedApis: ["burnFeesToReduceShortfall"];
|
|
5
5
|
}>, privateArgs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetReserve.d.ts","sourceRoot":"","sources":["assetReserve.js"],"names":[],"mappings":"AAYA,
|
|
1
|
+
{"version":3,"file":"assetReserve.d.ts","sourceRoot":"","sources":["assetReserve.js"],"names":[],"mappings":"AAYA,yCAAyC;AACzC,mBADW,YAAY,CAAC,OAAO,KAAK,CAAC,CAGnC;AAgCK,2BAbI,GAAG,CACb,eAAmB,CAAC,EAAE,CAAC,GAAG;IAC1B,YAAkB,EAAE,CAAC,2BAA2B,CAAC,CAAC;CAC7C,CACF,eACO;IACV,aAAiB,EAAE,aAAa,CAAC;IACjC,sBAA0B,EAAE,UAAU,CAAC;IACvC,UAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,WAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;CAChC;IA8DA,mEAAmE;;0BA4BqvD,MAAM;;;oDAAs5E,OAAO,KAAK,CAAC;kDAA8X,OAAO,KAAK,CAAC;;;IA1B5mJ,iEAAiE;;;;;;;GAKpE;sCA9FY;IACZ,4BAAgC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,0BAA8B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;;kCAgGU,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,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;;;;uCAEjD,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;6BA1GnC,kBAAkB"}
|