@agoric/zoe 0.26.2 → 0.26.3-calypso-dev-84eb287.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/README.md +7 -7
- package/bundles/bundle-contractFacet-js-meta.json +628 -314
- package/bundles/bundle-contractFacet.d.ts +3 -3
- package/bundles/bundle-contractFacet.js +1 -1
- package/exported.js +1 -12
- package/package.json +75 -59
- package/src/cleanProposal.d.ts +2 -2
- package/src/cleanProposal.d.ts.map +1 -1
- package/src/cleanProposal.js +15 -12
- package/src/contractFacet/evalContractCode.d.ts.map +1 -1
- package/src/contractFacet/evalContractCode.js +2 -2
- package/src/contractFacet/exit.d.ts.map +1 -1
- package/src/contractFacet/exit.js +1 -0
- package/src/contractFacet/internal-types.d.ts +2 -2
- package/src/contractFacet/internal-types.d.ts.map +1 -1
- package/src/contractFacet/internal-types.js +1 -1
- package/src/contractFacet/offerHandlerStorage.d.ts +4 -1
- package/src/contractFacet/offerHandlerStorage.d.ts.map +1 -1
- package/src/contractFacet/offerHandlerStorage.js +11 -3
- package/src/contractFacet/reallocate.d.ts +3 -0
- package/src/contractFacet/reallocate.d.ts.map +1 -0
- package/src/contractFacet/reallocate.js +94 -0
- package/src/contractFacet/rightsConservation.d.ts.map +1 -1
- package/src/contractFacet/rightsConservation.js +3 -0
- package/src/contractFacet/typeGuards.d.ts +8 -0
- package/src/contractFacet/typeGuards.d.ts.map +1 -0
- package/src/contractFacet/typeGuards.js +25 -0
- package/src/contractFacet/types-ambient.d.ts +271 -0
- package/src/contractFacet/types-ambient.js +1 -0
- package/src/contractFacet/vatRoot.d.ts +3 -3
- package/src/contractFacet/vatRoot.d.ts.map +1 -1
- package/src/contractFacet/zcfMint.d.ts +4 -2
- package/src/contractFacet/zcfMint.d.ts.map +1 -1
- package/src/contractFacet/zcfMint.js +7 -7
- package/src/contractFacet/zcfSeat.d.ts +4 -2
- package/src/contractFacet/zcfSeat.d.ts.map +1 -1
- package/src/contractFacet/zcfSeat.js +130 -7
- package/src/contractFacet/zcfZygote.d.ts +1 -2
- package/src/contractFacet/zcfZygote.d.ts.map +1 -1
- package/src/contractFacet/zcfZygote.js +102 -48
- package/src/contractSupport/atomicTransfer.d.ts +0 -6
- package/src/contractSupport/atomicTransfer.d.ts.map +1 -1
- package/src/contractSupport/atomicTransfer.js +5 -90
- package/src/contractSupport/bondingCurves.js +2 -2
- package/src/contractSupport/durability.d.ts +3 -3
- package/src/contractSupport/durability.d.ts.map +1 -1
- package/src/contractSupport/durability.js +5 -5
- package/src/contractSupport/index.d.ts +1 -0
- package/src/contractSupport/index.js +1 -0
- package/src/contractSupport/prepare-ownable.d.ts +11 -0
- package/src/contractSupport/prepare-ownable.d.ts.map +1 -0
- package/src/contractSupport/prepare-ownable.js +100 -0
- package/src/contractSupport/priceAuthority.d.ts +23 -15
- package/src/contractSupport/priceAuthority.d.ts.map +1 -1
- package/src/contractSupport/priceAuthority.js +33 -18
- package/src/contractSupport/priceAuthorityInitial.d.ts +3 -2
- package/src/contractSupport/priceAuthorityInitial.d.ts.map +1 -1
- package/src/contractSupport/priceAuthorityInitial.js +6 -3
- package/src/contractSupport/priceAuthorityQuoteMint.d.ts +2 -1
- package/src/contractSupport/priceAuthorityQuoteMint.d.ts.map +1 -1
- package/src/contractSupport/priceAuthorityQuoteMint.js +23 -27
- package/src/contractSupport/priceAuthorityTransform.d.ts +13 -11
- package/src/contractSupport/priceAuthorityTransform.d.ts.map +1 -1
- package/src/contractSupport/priceAuthorityTransform.js +10 -8
- package/src/contractSupport/priceQuote.d.ts +7 -5
- package/src/contractSupport/priceQuote.d.ts.map +1 -1
- package/src/contractSupport/priceQuote.js +5 -1
- package/src/contractSupport/ratio.d.ts +2 -2
- package/src/contractSupport/ratio.d.ts.map +1 -1
- package/src/contractSupport/ratio.js +19 -15
- package/src/contractSupport/recorder.d.ts +33 -119
- package/src/contractSupport/recorder.d.ts.map +1 -1
- package/src/contractSupport/recorder.js +21 -10
- package/src/contractSupport/safeMath.d.ts +7 -7
- package/src/contractSupport/safeMath.d.ts.map +1 -1
- package/src/contractSupport/statistics.d.ts +1 -1
- package/src/contractSupport/statistics.d.ts.map +1 -1
- package/src/contractSupport/topics.d.ts +1 -1
- package/src/contractSupport/topics.d.ts.map +1 -1
- package/src/contractSupport/{types.d.ts → types-ambient.d.ts} +4 -4
- package/src/contractSupport/types-ambient.d.ts.map +1 -0
- package/src/contractSupport/{types.js → types-ambient.js} +1 -1
- package/src/contractSupport/zoeHelpers.d.ts +1 -1
- package/src/contractSupport/zoeHelpers.d.ts.map +1 -1
- package/src/contractSupport/zoeHelpers.js +6 -12
- package/src/contracts/auction/firstPriceLogic.d.ts.map +1 -1
- package/src/contracts/auction/firstPriceLogic.js +5 -8
- package/src/contracts/auction/index.d.ts +10 -10
- package/src/contracts/auction/index.d.ts.map +1 -1
- package/src/contracts/auction/index.js +3 -3
- package/src/contracts/auction/secondPriceLogic.d.ts.map +1 -1
- package/src/contracts/auction/secondPriceLogic.js +1 -4
- package/src/contracts/automaticRefund.d.ts +1 -1
- package/src/contracts/automaticRefund.d.ts.map +1 -1
- package/src/contracts/autoswap.d.ts.map +1 -1
- package/src/contracts/autoswap.js +8 -9
- package/src/contracts/barterExchange.d.ts +1 -1
- package/src/contracts/barterExchange.d.ts.map +1 -1
- package/src/contracts/barterExchange.js +2 -3
- package/src/contracts/callSpread/calculateShares.d.ts +1 -8
- package/src/contracts/callSpread/calculateShares.d.ts.map +1 -1
- package/src/contracts/callSpread/calculateShares.js +1 -1
- package/src/contracts/callSpread/fundedCallSpread.d.ts +4 -0
- package/src/contracts/callSpread/fundedCallSpread.d.ts.map +1 -1
- package/src/contracts/callSpread/fundedCallSpread.js +6 -4
- package/src/contracts/callSpread/payoffHandler.d.ts.map +1 -1
- package/src/contracts/callSpread/payoffHandler.js +3 -2
- package/src/contracts/callSpread/percent.d.ts +2 -4
- package/src/contracts/callSpread/percent.d.ts.map +1 -1
- package/src/contracts/callSpread/position.d.ts +2 -2
- package/src/contracts/callSpread/pricedCallSpread.d.ts +6 -5
- package/src/contracts/callSpread/pricedCallSpread.d.ts.map +1 -1
- package/src/contracts/callSpread/pricedCallSpread.js +9 -5
- package/src/contracts/callSpread/{types.d.ts → types-ambient.d.ts} +3 -3
- package/src/contracts/callSpread/types-ambient.d.ts.map +1 -0
- package/src/contracts/coveredCall-durable.d.ts +2 -4
- package/src/contracts/coveredCall-durable.d.ts.map +1 -1
- package/src/contracts/exported.js +3 -3
- package/src/contracts/loan/borrow.d.ts.map +1 -1
- package/src/contracts/loan/borrow.js +7 -4
- package/src/contracts/loan/close.d.ts.map +1 -1
- package/src/contracts/loan/close.js +3 -7
- package/src/contracts/loan/index.d.ts +5 -1
- package/src/contracts/loan/index.d.ts.map +1 -1
- package/src/contracts/loan/index.js +4 -0
- package/src/contracts/loan/liquidate.d.ts +1 -12
- package/src/contracts/loan/liquidate.d.ts.map +1 -1
- package/src/contracts/loan/liquidate.js +4 -2
- package/src/contracts/loan/scheduleLiquidation.d.ts.map +1 -1
- package/src/contracts/loan/scheduleLiquidation.js +2 -1
- package/src/contracts/loan/{types.d.ts → types-ambient.d.ts} +16 -17
- package/src/contracts/loan/types-ambient.d.ts.map +1 -0
- package/src/contracts/loan/{types.js → types-ambient.js} +11 -18
- package/src/contracts/loan/updateDebt.js +1 -1
- package/src/contracts/mintAndSellNFT.d.ts.map +1 -1
- package/src/contracts/mintPayments.d.ts +14 -6
- package/src/contracts/mintPayments.d.ts.map +1 -1
- package/src/contracts/mintPayments.js +1 -1
- package/src/contracts/oracle.d.ts +6 -2
- package/src/contracts/oracle.d.ts.map +1 -1
- package/src/contracts/oracle.js +10 -3
- package/src/contracts/otcDesk.d.ts +3 -3
- package/src/contracts/otcDesk.d.ts.map +1 -1
- package/src/contracts/otcDesk.js +1 -1
- package/src/contracts/priceAggregator.d.ts +25 -17
- package/src/contracts/priceAggregator.d.ts.map +1 -1
- package/src/contracts/priceAggregator.js +33 -32
- package/src/contracts/priceAggregatorTypes.d.ts +2 -2
- package/src/contracts/priceAggregatorTypes.d.ts.map +1 -1
- package/src/contracts/scaledPriceAuthority.d.ts +3 -4
- package/src/contracts/scaledPriceAuthority.d.ts.map +1 -1
- package/src/contracts/scaledPriceAuthority.js +6 -0
- package/src/contracts/sellItems.d.ts +2 -2
- package/src/contracts/sellItems.d.ts.map +1 -1
- package/src/contracts/sellItems.js +3 -4
- package/src/contracts/simpleExchange.d.ts +3 -3
- package/src/contracts/{types.d.ts → types-ambient.d.ts} +1 -1
- package/src/contracts/types-ambient.d.ts.map +1 -0
- package/src/handleWarning.d.ts.map +1 -1
- package/src/instanceRecordStorage.d.ts +1 -1
- package/src/instanceRecordStorage.d.ts.map +1 -1
- package/src/internal-types.d.ts +21 -32
- package/src/internal-types.d.ts.map +1 -1
- package/src/internal-types.js +19 -58
- package/src/issuerRecord.d.ts +1 -1
- package/src/issuerRecord.d.ts.map +1 -1
- package/src/issuerStorage.d.ts +3 -3
- package/src/issuerStorage.d.ts.map +1 -1
- package/src/issuerStorage.js +12 -28
- package/src/makeHandle.d.ts +2 -2
- package/src/makeHandle.d.ts.map +1 -1
- package/src/makeHandle.js +1 -1
- package/src/typeGuards.d.ts +114 -20
- package/src/typeGuards.d.ts.map +1 -1
- package/src/typeGuards.js +19 -20
- package/src/types-ambient.d.ts +41 -0
- package/src/types-ambient.d.ts.map +1 -0
- package/src/{types.js → types-ambient.js} +7 -15
- package/src/zoeService/escrowStorage.d.ts +1 -1
- package/src/zoeService/escrowStorage.d.ts.map +1 -1
- package/src/zoeService/escrowStorage.js +20 -27
- package/src/zoeService/feeMint.d.ts +9 -16
- package/src/zoeService/feeMint.d.ts.map +1 -1
- package/src/zoeService/feeMint.js +21 -15
- package/src/zoeService/installationStorage.d.ts +5 -20
- package/src/zoeService/installationStorage.d.ts.map +1 -1
- package/src/zoeService/installationStorage.js +11 -7
- package/src/zoeService/instanceAdminStorage.d.ts +22 -42
- package/src/zoeService/instanceAdminStorage.d.ts.map +1 -1
- package/src/zoeService/instanceAdminStorage.js +2 -1
- package/src/zoeService/internal-types.d.ts +12 -12
- package/src/zoeService/internal-types.d.ts.map +1 -1
- package/src/zoeService/internal-types.js +6 -6
- package/src/zoeService/invitationQueries.d.ts.map +1 -1
- package/src/zoeService/invitationQueries.js +7 -5
- package/src/zoeService/makeInvitation.d.ts +3 -3
- package/src/zoeService/makeInvitation.d.ts.map +1 -1
- package/src/zoeService/makeInvitation.js +25 -21
- package/src/zoeService/offer/burnInvitation.d.ts.map +1 -1
- package/src/zoeService/offer/offer.d.ts.map +1 -1
- package/src/zoeService/offer/offer.js +2 -5
- package/src/zoeService/originalZoeSeat.d.ts +34 -0
- package/src/zoeService/originalZoeSeat.d.ts.map +1 -0
- package/src/zoeService/originalZoeSeat.js +353 -0
- package/src/zoeService/startInstance.d.ts +3 -3
- package/src/zoeService/startInstance.d.ts.map +1 -1
- package/src/zoeService/startInstance.js +82 -37
- package/src/zoeService/{types.d.ts → types-ambient.d.ts} +23 -28
- package/src/zoeService/types-ambient.d.ts.map +1 -0
- package/src/zoeService/{types.js → types-ambient.js} +19 -32
- package/src/zoeService/utils.d.ts +57 -58
- package/src/zoeService/utils.test-d.d.ts +2 -0
- package/src/zoeService/utils.test-d.d.ts.map +1 -0
- package/src/zoeService/utils.test-d.ts +33 -0
- package/src/zoeService/zoe.d.ts +14 -8
- package/src/zoeService/zoe.d.ts.map +1 -1
- package/src/zoeService/zoe.js +39 -11
- package/src/zoeService/zoeSeat.d.ts +15 -45
- package/src/zoeService/zoeSeat.d.ts.map +1 -1
- package/src/zoeService/zoeSeat.js +215 -115
- package/src/zoeService/zoeStorageManager.d.ts +13 -47
- package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
- package/src/zoeService/zoeStorageManager.js +13 -6
- package/tools/fakePriceAuthority.d.ts +9 -8
- package/tools/fakePriceAuthority.d.ts.map +1 -1
- package/tools/fakePriceAuthority.js +21 -17
- package/tools/fakeVatAdmin.d.ts +10 -10
- package/tools/manualPriceAuthority.d.ts +11 -6
- package/tools/manualPriceAuthority.d.ts.map +1 -1
- package/tools/manualPriceAuthority.js +16 -3
- package/tools/manualTimer.d.ts +17 -40
- package/tools/manualTimer.d.ts.map +1 -1
- package/tools/manualTimer.js +30 -16
- package/tools/prepare-test-env.js +1 -1
- package/tools/scriptedOracle.d.ts +3 -3
- package/tools/scriptedOracle.d.ts.map +1 -1
- package/tools/scriptedOracle.js +1 -1
- package/tools/scriptedPriceAuthority.d.ts +4 -0
- package/tools/scriptedPriceAuthority.d.ts.map +1 -1
- package/tools/scriptedPriceAuthority.js +8 -3
- package/tools/setup-zoe.d.ts +10 -6
- package/tools/setup-zoe.d.ts.map +1 -1
- package/tools/setup-zoe.js +16 -1
- package/tools/test-utils.d.ts +20 -0
- package/tools/test-utils.d.ts.map +1 -0
- package/tools/test-utils.js +26 -0
- package/tools/types.d.ts +21 -21
- package/tools/types.d.ts.map +1 -1
- package/tools/types.js +10 -10
- package/CHANGELOG.md +0 -1171
- package/src/contractFacet/types.d.ts +0 -191
- package/src/contractFacet/types.d.ts.map +0 -1
- package/src/contractFacet/types.js +0 -256
- package/src/contractSupport/types.d.ts.map +0 -1
- package/src/contracts/callSpread/types.d.ts.map +0 -1
- package/src/contracts/loan/types.d.ts.map +0 -1
- package/src/contracts/types.d.ts.map +0 -1
- package/src/objArrayConversion.d.ts +0 -5
- package/src/objArrayConversion.d.ts.map +0 -1
- package/src/objArrayConversion.js +0 -35
- package/src/types.d.ts +0 -45
- package/src/types.d.ts.map +0 -1
- package/src/zoeService/types.d.ts.map +0 -1
- package/tools/internal-types.d.ts +0 -12
- package/tools/internal-types.d.ts.map +0 -1
- package/tools/internal-types.js +0 -14
- package/tools/priceAuthorityRegistry.d.ts +0 -20
- package/tools/priceAuthorityRegistry.d.ts.map +0 -1
- package/tools/priceAuthorityRegistry.js +0 -209
- package/tools/types-ambient.d.ts +0 -142
- package/tools/types-ambient.d.ts.map +0 -1
- package/tools/types-ambient.js +0 -160
- /package/src/contracts/callSpread/{types.js → types-ambient.js} +0 -0
- /package/src/contracts/{types.js → types-ambient.js} +0 -0
|
@@ -1,84 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
// Ambient types
|
|
2
|
+
import '../types-ambient.js';
|
|
3
|
+
import '../contractFacet/types-ambient.js';
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type { Issuer } from '@agoric/ertp/src/types.js';
|
|
6
|
+
import type { TagContainer } from '@agoric/internal/src/tagged.js';
|
|
7
|
+
import type { Baggage } from '@agoric/swingset-liveslots';
|
|
8
|
+
import type { VatUpgradeResults } from '@agoric/swingset-vat';
|
|
9
|
+
import type { RemotableObject } from '@endo/marshal';
|
|
6
10
|
|
|
7
11
|
// XXX https://github.com/Agoric/agoric-sdk/issues/4565
|
|
8
12
|
type SourceBundle = Record<string, any>;
|
|
9
13
|
|
|
10
|
-
type ContractFacet<T extends {} = {}> = {
|
|
11
|
-
readonly [P in keyof T]: T[P] extends Callable ? T[P] : never;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export type AdminFacet = {
|
|
15
|
-
// Completion, which is currently any
|
|
16
|
-
getVatShutdownPromise: () => Promise<any>;
|
|
17
|
-
upgradeContract: (
|
|
18
|
-
contractBundleId: string,
|
|
19
|
-
newPrivateArgs?: any,
|
|
20
|
-
) => Promise<VatUpgradeResults>;
|
|
21
|
-
restartContract: (newPrivateArgs?: any) => Promise<VatUpgradeResults>;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
14
|
/**
|
|
25
15
|
* Installation of a contract, typed by its start function.
|
|
26
16
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
export type Instance<SF> = Handle<'Instance'> & {
|
|
35
|
-
// because TS is structural, without this the generic is ignored
|
|
36
|
-
[StartFunction]: SF;
|
|
37
|
-
};
|
|
17
|
+
export type Installation<SF extends ContractStartFunction | unknown> =
|
|
18
|
+
TagContainer<SF> &
|
|
19
|
+
RemotableObject & {
|
|
20
|
+
getBundle: () => SourceBundle;
|
|
21
|
+
getBundleLabel: () => string;
|
|
22
|
+
};
|
|
38
23
|
|
|
39
|
-
export type
|
|
40
|
-
|
|
41
|
-
|
|
24
|
+
export type Instance<SF extends ContractStartFunction | unknown> =
|
|
25
|
+
TagContainer<SF> & RemotableObject & Handle<'Instance'>;
|
|
26
|
+
|
|
27
|
+
export type InstallationStart<I> =
|
|
28
|
+
I extends Installation<infer SF> ? SF : never;
|
|
42
29
|
|
|
43
|
-
type ContractStartFunction = (
|
|
30
|
+
export type ContractStartFunction = (
|
|
44
31
|
zcf?: ZCF,
|
|
45
32
|
privateArgs?: {},
|
|
46
33
|
baggage?: Baggage,
|
|
47
34
|
) => ERef<{ creatorFacet?: {}; publicFacet?: {} }>;
|
|
48
35
|
|
|
49
|
-
type
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
export type AdminFacet<SF extends ContractStartFunction> = RemotableObject & {
|
|
37
|
+
// Completion, which is currently any
|
|
38
|
+
getVatShutdownPromise: () => Promise<any>;
|
|
39
|
+
upgradeContract: Parameters<SF>[1] extends undefined
|
|
40
|
+
? (contractBundleId: string) => Promise<VatUpgradeResults>
|
|
41
|
+
: (
|
|
42
|
+
contractBundleId: string,
|
|
43
|
+
newPrivateArgs: Parameters<SF>[1],
|
|
44
|
+
) => Promise<VatUpgradeResults>;
|
|
45
|
+
restartContract: Parameters<SF>[1] extends undefined
|
|
46
|
+
? () => Promise<VatUpgradeResults>
|
|
47
|
+
: (newPrivateArgs: Parameters<SF>[1]) => Promise<VatUpgradeResults>;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type StartParams<SF> = SF extends ContractStartFunction
|
|
51
|
+
? Parameters<SF>[1] extends undefined
|
|
52
|
+
? {
|
|
53
|
+
terms: ReturnType<ZcfOf<SF>['getTerms']>;
|
|
54
|
+
}
|
|
55
|
+
: {
|
|
56
|
+
terms: ReturnType<ZcfOf<SF>['getTerms']>;
|
|
57
|
+
privateArgs: Parameters<SF>[1];
|
|
58
|
+
}
|
|
54
59
|
: never;
|
|
55
60
|
|
|
56
|
-
type StartResult<S
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
type StartResult<S extends (...args: any) => any> = Awaited<ReturnType<S>>;
|
|
62
|
+
type ZcfOf<SF extends ContractStartFunction> = Parameters<SF>[0] extends ZCF
|
|
63
|
+
? Parameters<SF>[0]
|
|
64
|
+
: ZCF<any>;
|
|
59
65
|
|
|
60
66
|
/**
|
|
61
67
|
* Convenience record for contract start function, merging its result with params.
|
|
62
68
|
*/
|
|
63
|
-
export type ContractOf<S> = StartParams<S> &
|
|
64
|
-
|
|
65
|
-
type StartContractInstance<C> = (
|
|
66
|
-
installation: Installation<C>,
|
|
67
|
-
issuerKeywordRecord?: IssuerKeywordRecord,
|
|
68
|
-
terms?: object,
|
|
69
|
-
privateArgs?: object,
|
|
70
|
-
) => Promise<{
|
|
71
|
-
creatorFacet: C['creatorFacet'];
|
|
72
|
-
publicFacet: C['publicFacet'];
|
|
73
|
-
instance: Instance;
|
|
74
|
-
creatorInvitation: C['creatorInvitation'];
|
|
75
|
-
adminFacet: AdminFacet;
|
|
76
|
-
}>;
|
|
69
|
+
export type ContractOf<S extends (...args: any) => any> = StartParams<S> &
|
|
70
|
+
StartResult<S>;
|
|
77
71
|
|
|
78
72
|
/** The result of `startInstance` */
|
|
79
|
-
export type StartedInstanceKit<SF> = {
|
|
73
|
+
export type StartedInstanceKit<SF extends ContractStartFunction> = {
|
|
80
74
|
instance: Instance<SF>;
|
|
81
|
-
adminFacet: AdminFacet
|
|
75
|
+
adminFacet: AdminFacet<SF>;
|
|
82
76
|
// theses are empty by default. the return type will override
|
|
83
77
|
creatorFacet: {};
|
|
84
78
|
publicFacet: {};
|
|
@@ -104,17 +98,22 @@ export type StartedInstanceKit<SF> = {
|
|
|
104
98
|
* the creator facet, public facet, and creator invitation as defined
|
|
105
99
|
* by the contract.
|
|
106
100
|
*/
|
|
101
|
+
// XXX SF should extend ContractStartFunction but doing that triggers a bunch of tech debt type errors
|
|
107
102
|
export type StartInstance = <SF>(
|
|
108
103
|
installation: Installation<SF> | PromiseLike<Installation<SF>>,
|
|
109
|
-
issuerKeywordRecord?:
|
|
104
|
+
issuerKeywordRecord?: Record<Keyword, Issuer<any>>,
|
|
110
105
|
// 'brands' and 'issuers' need not be passed in; Zoe provides them as StandardTerms
|
|
111
106
|
terms?: Omit<StartParams<SF>['terms'], 'brands' | 'issuers'>,
|
|
107
|
+
// @ts-expect-error XXX
|
|
112
108
|
privateArgs?: Parameters<SF>[1],
|
|
113
109
|
label?: string,
|
|
110
|
+
// @ts-expect-error XXX
|
|
114
111
|
) => Promise<StartedInstanceKit<SF>>;
|
|
115
112
|
|
|
113
|
+
// XXX SF should extend ContractStartFunction but doing that triggers a bunch of tech debt type errors
|
|
116
114
|
export type GetPublicFacet = <SF>(
|
|
117
115
|
instance: Instance<SF> | PromiseLike<Instance<SF>>,
|
|
116
|
+
// @ts-expect-error XXX
|
|
118
117
|
) => Promise<StartResult<SF>['publicFacet']>;
|
|
119
118
|
|
|
120
119
|
export type GetTerms = <SF>(instance: Instance<SF>) => Promise<
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test-d.d.ts","sourceRoot":"","sources":["utils.test-d.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { StartedInstanceKit } from './utils';
|
|
2
|
+
|
|
3
|
+
const someContractStartFn = (
|
|
4
|
+
zcf: ZCF,
|
|
5
|
+
privateArgs: { someNumber: number; someString: string },
|
|
6
|
+
) => ({});
|
|
7
|
+
|
|
8
|
+
type PsmInstanceKit = StartedInstanceKit<typeof someContractStartFn>;
|
|
9
|
+
|
|
10
|
+
const psmInstanceKit: PsmInstanceKit = null as any;
|
|
11
|
+
|
|
12
|
+
// @ts-expect-error missing privateArgs argument
|
|
13
|
+
void psmInstanceKit.adminFacet.restartContract();
|
|
14
|
+
|
|
15
|
+
const partial = {
|
|
16
|
+
someNumber: 1,
|
|
17
|
+
};
|
|
18
|
+
// @ts-expect-error missing member of privateArgs argument
|
|
19
|
+
void psmInstanceKit.adminFacet.restartContract(partial);
|
|
20
|
+
|
|
21
|
+
// valid privateArgs now with 'marshaller'
|
|
22
|
+
void psmInstanceKit.adminFacet.restartContract({
|
|
23
|
+
...partial,
|
|
24
|
+
someString: 'str',
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// @ts-expect-error missing member of privateArgs argument
|
|
28
|
+
void psmInstanceKit.adminFacet.upgradeContract('whatever', partial);
|
|
29
|
+
// valid privateArgs now with 'marshaller'
|
|
30
|
+
void psmInstanceKit.adminFacet.upgradeContract('whatever', {
|
|
31
|
+
...partial,
|
|
32
|
+
someString: 'str',
|
|
33
|
+
});
|
package/src/zoeService/zoe.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
export type Baggage = import('@agoric/vat-data').Baggage;
|
|
2
1
|
export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
|
|
3
2
|
/**
|
|
4
|
-
* Create
|
|
3
|
+
* Create a durable instance of Zoe.
|
|
5
4
|
*
|
|
6
5
|
* @param {object} options
|
|
7
6
|
* @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
|
|
8
7
|
* @param {Promise<VatAdminSvc> | VatAdminSvc} [options.vatAdminSvc] - The vatAdmin Service, which carries the
|
|
9
8
|
* power to create a new vat. If it's not available when makeZoe() is called, it
|
|
10
9
|
* must be provided later using setVatAdminService().
|
|
11
|
-
* @param {ShutdownWithFailure} [options.shutdownZoeVat] - a function to
|
|
10
|
+
* @param {import('@agoric/swingset-vat').ShutdownWithFailure} [options.shutdownZoeVat] - a function to
|
|
12
11
|
* shutdown the Zoe Vat. This function needs to use the vatPowers
|
|
13
12
|
* available to a vat.
|
|
14
13
|
* @param {FeeIssuerConfig} [options.feeIssuerConfig]
|
|
@@ -16,15 +15,18 @@ export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
|
|
|
16
15
|
*/
|
|
17
16
|
export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, feeIssuerConfig, zcfSpec, }: {
|
|
18
17
|
zoeBaggage: Baggage;
|
|
19
|
-
vatAdminSvc?:
|
|
18
|
+
vatAdminSvc?: VatAdminSvc | Promise<VatAdminSvc> | undefined;
|
|
20
19
|
shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined;
|
|
21
20
|
feeIssuerConfig?: FeeIssuerConfig | undefined;
|
|
22
21
|
zcfSpec?: ZCFSpec | undefined;
|
|
23
22
|
}): {
|
|
24
23
|
zoeService: ZoeService;
|
|
24
|
+
zoeConfigFacet: import("@endo/exo").Guarded<{
|
|
25
|
+
updateZcfBundleId(bundleId: any): void;
|
|
26
|
+
}>;
|
|
25
27
|
/** @type {FeeMintAccess} */
|
|
26
28
|
feeMintAccess: FeeMintAccess;
|
|
27
|
-
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
29
|
+
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/marshal").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
28
30
|
};
|
|
29
31
|
/**
|
|
30
32
|
* @deprecated
|
|
@@ -36,16 +38,20 @@ export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, fee
|
|
|
36
38
|
* @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
|
|
37
39
|
* power to create a new vat. If it's not available when makeZoe() is called, it
|
|
38
40
|
* must be provided later using setVatAdminService().
|
|
39
|
-
* @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
|
|
41
|
+
* @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
|
|
40
42
|
* shutdown the Zoe Vat. This function needs to use the vatPowers
|
|
41
43
|
* available to a vat.
|
|
42
44
|
* @param {FeeIssuerConfig} [feeIssuerConfig]
|
|
43
45
|
* @param {ZCFSpec} [zcfSpec] - Pointer to the contract facet bundle.
|
|
44
46
|
*/
|
|
45
|
-
export function makeZoeKit(vatAdminSvc?:
|
|
47
|
+
export function makeZoeKit(vatAdminSvc?: VatAdminSvc | Promise<VatAdminSvc> | undefined, shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined, feeIssuerConfig?: FeeIssuerConfig | undefined, zcfSpec?: ZCFSpec | undefined): {
|
|
46
48
|
zoeService: ZoeService;
|
|
49
|
+
zoeConfigFacet: import("@endo/exo").Guarded<{
|
|
50
|
+
updateZcfBundleId(bundleId: any): void;
|
|
51
|
+
}>;
|
|
47
52
|
/** @type {FeeMintAccess} */
|
|
48
53
|
feeMintAccess: FeeMintAccess;
|
|
49
|
-
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
54
|
+
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/marshal").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
50
55
|
};
|
|
56
|
+
import type { Baggage } from '@agoric/vat-data';
|
|
51
57
|
//# sourceMappingURL=zoe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"qBAiSa,UAAU,CAAC,OAAO,iBAAiB,CAAC;AA/PjD;;;;;;;;;;;;;GAaG;AACH,0GAVG;IAAyB,UAAU,EAA3B,OAAO;IACsC,WAAW;IAGK,cAAc;IAGjD,eAAe;IACvB,OAAO;CACnC;;;;;IA8MG,4BAA4B;mBAAjB,aAAa;;EAK3B;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;IAvBI,4BAA4B;mBAAjB,aAAa;;EA8BxB;6BA7PuB,kBAAkB"}
|
package/src/zoeService/zoe.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// @jessie-check
|
|
2
|
+
/* eslint @typescript-eslint/no-floating-promises: "warn" */
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Zoe uses ERTP, the Electronic Rights Transfer Protocol
|
|
@@ -9,15 +10,15 @@
|
|
|
9
10
|
* currently. When the brand has an assetKind itself, AmountMath will
|
|
10
11
|
* validate that.
|
|
11
12
|
*/
|
|
12
|
-
// Ambient types. https://github.com/Agoric/agoric-sdk/issues/6512
|
|
13
|
-
import '@agoric/ertp/exported.js';
|
|
14
|
-
import '@agoric/store/exported.js';
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
/// <reference types="@agoric/internal/exported" />
|
|
15
|
+
/// <reference types="@agoric/notifier/exported.js" />
|
|
16
|
+
/// <reference path="../internal-types.js" />
|
|
17
17
|
|
|
18
18
|
import { E } from '@endo/eventual-send';
|
|
19
19
|
import { Far } from '@endo/marshal';
|
|
20
20
|
import { makeScalarBigMapStore, prepareExo } from '@agoric/vat-data';
|
|
21
|
+
import { M } from '@agoric/store';
|
|
21
22
|
|
|
22
23
|
import { makeZoeStorageManager } from './zoeStorageManager.js';
|
|
23
24
|
import { makeStartInstance } from './startInstance.js';
|
|
@@ -27,19 +28,19 @@ import { getZcfBundleCap } from './createZCFVat.js';
|
|
|
27
28
|
import { defaultFeeIssuerConfig, prepareFeeMint } from './feeMint.js';
|
|
28
29
|
import { ZoeServiceI } from '../typeGuards.js';
|
|
29
30
|
|
|
30
|
-
/** @
|
|
31
|
+
/** @import {Baggage} from '@agoric/vat-data' */
|
|
31
32
|
|
|
32
33
|
const { Fail } = assert;
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
|
-
* Create
|
|
36
|
+
* Create a durable instance of Zoe.
|
|
36
37
|
*
|
|
37
38
|
* @param {object} options
|
|
38
39
|
* @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
|
|
39
40
|
* @param {Promise<VatAdminSvc> | VatAdminSvc} [options.vatAdminSvc] - The vatAdmin Service, which carries the
|
|
40
41
|
* power to create a new vat. If it's not available when makeZoe() is called, it
|
|
41
42
|
* must be provided later using setVatAdminService().
|
|
42
|
-
* @param {ShutdownWithFailure} [options.shutdownZoeVat] - a function to
|
|
43
|
+
* @param {import('@agoric/swingset-vat').ShutdownWithFailure} [options.shutdownZoeVat] - a function to
|
|
43
44
|
* shutdown the Zoe Vat. This function needs to use the vatPowers
|
|
44
45
|
* available to a vat.
|
|
45
46
|
* @param {FeeIssuerConfig} [options.feeIssuerConfig]
|
|
@@ -52,16 +53,22 @@ const makeDurableZoeKit = ({
|
|
|
52
53
|
feeIssuerConfig = defaultFeeIssuerConfig,
|
|
53
54
|
zcfSpec = { name: 'zcf' },
|
|
54
55
|
}) => {
|
|
56
|
+
/** @type {BundleCap} */
|
|
55
57
|
let zcfBundleCap;
|
|
56
58
|
|
|
57
59
|
const saveBundleCap = () => {
|
|
58
|
-
E.when(
|
|
60
|
+
void E.when(
|
|
59
61
|
Promise.all([vatAdminSvc, getZcfBundleCap(zcfSpec, vatAdminSvc)]),
|
|
60
62
|
([vatAdminService, bundleCap]) => {
|
|
61
63
|
zcfBundleCap = bundleCap;
|
|
62
64
|
|
|
63
|
-
zoeBaggage.
|
|
64
|
-
|
|
65
|
+
if (!zoeBaggage.has('vatAdminSvc')) {
|
|
66
|
+
zoeBaggage.init('vatAdminSvc', vatAdminService);
|
|
67
|
+
zoeBaggage.init('zcfBundleCap', zcfBundleCap);
|
|
68
|
+
} else {
|
|
69
|
+
zoeBaggage.set('vatAdminSvc', vatAdminService);
|
|
70
|
+
zoeBaggage.set('zcfBundleCap', zcfBundleCap);
|
|
71
|
+
}
|
|
65
72
|
},
|
|
66
73
|
);
|
|
67
74
|
};
|
|
@@ -168,6 +175,26 @@ const makeDurableZoeKit = ({
|
|
|
168
175
|
});
|
|
169
176
|
};
|
|
170
177
|
|
|
178
|
+
const ZoeConfigI = M.interface('ZoeConfigFacet', {
|
|
179
|
+
updateZcfBundleId: M.call(M.string()).returns(),
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
const zoeConfigFacet = prepareExo(zoeBaggage, 'ZoeConfigFacet', ZoeConfigI, {
|
|
183
|
+
updateZcfBundleId(bundleId) {
|
|
184
|
+
void E.when(
|
|
185
|
+
getZcfBundleCap({ id: bundleId }, vatAdminSvc),
|
|
186
|
+
bundleCap => {
|
|
187
|
+
zcfBundleCap = bundleCap;
|
|
188
|
+
zoeBaggage.set('zcfBundleCap', zcfBundleCap);
|
|
189
|
+
},
|
|
190
|
+
e => {
|
|
191
|
+
console.error('🚨 unable to update ZCF Bundle: ', e);
|
|
192
|
+
throw e;
|
|
193
|
+
},
|
|
194
|
+
);
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
|
|
171
198
|
/** @type {ZoeService} */
|
|
172
199
|
const zoeService = prepareExo(zoeBaggage, 'ZoeService', ZoeServiceI, {
|
|
173
200
|
install(bundleId, bundleLabel) {
|
|
@@ -223,6 +250,7 @@ const makeDurableZoeKit = ({
|
|
|
223
250
|
|
|
224
251
|
return harden({
|
|
225
252
|
zoeService,
|
|
253
|
+
zoeConfigFacet,
|
|
226
254
|
/** @type {FeeMintAccess} */
|
|
227
255
|
// @ts-expect-error cast
|
|
228
256
|
feeMintAccess: feeMintKit.feeMintAccess,
|
|
@@ -240,7 +268,7 @@ const makeDurableZoeKit = ({
|
|
|
240
268
|
* @param {Promise<VatAdminSvc> | VatAdminSvc} [vatAdminSvc] - The vatAdmin Service, which carries the
|
|
241
269
|
* power to create a new vat. If it's not available when makeZoe() is called, it
|
|
242
270
|
* must be provided later using setVatAdminService().
|
|
243
|
-
* @param {ShutdownWithFailure} [shutdownZoeVat] - a function to
|
|
271
|
+
* @param {import('@agoric/swingset-vat').ShutdownWithFailure} [shutdownZoeVat] - a function to
|
|
244
272
|
* shutdown the Zoe Vat. This function needs to use the vatPowers
|
|
245
273
|
* available to a vat.
|
|
246
274
|
* @param {FeeIssuerConfig} [feeIssuerConfig]
|
|
@@ -1,56 +1,26 @@
|
|
|
1
|
-
export function makeZoeSeatAdminFactory(baggage:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
fail(reason: any): void;
|
|
6
|
-
/** @param {HandleOfferResult} result */
|
|
7
|
-
resolveExitAndResult({ offerResultPromise, exitObj }: HandleOfferResult): void;
|
|
8
|
-
getExitSubscriber(): {
|
|
9
|
-
subscribeAfter(publishCount?: bigint): Promise<any>;
|
|
10
|
-
getUpdateSince(updateCount: any): any;
|
|
11
|
-
};
|
|
12
|
-
finalPayouts(payments: any): Promise<void>;
|
|
13
|
-
};
|
|
14
|
-
userSeat: {
|
|
15
|
-
getProposal(): Promise<ProposalRecord>;
|
|
16
|
-
getPayouts(): Promise<{}>;
|
|
1
|
+
export function makeZoeSeatAdminFactory(baggage: import("@agoric/vat-data").Baggage): (initialAllocation: Allocation, proposal: ProposalRecord, instanceAdminHelper: InstanceAdminHelper, withdrawFacet: WithdrawFacet, exitObj?: globalThis.ERef<ExitObj> | undefined, offerResultIsUndefined?: boolean | undefined) => {
|
|
2
|
+
userSeat: import("@endo/exo").Guarded<{
|
|
3
|
+
getProposal(): Promise<any>;
|
|
4
|
+
getPayouts(): Promise<any>;
|
|
17
5
|
getPayout(keyword: any): Promise<any>;
|
|
18
6
|
getOfferResult(): Promise<any>;
|
|
19
|
-
hasExited(): Promise<
|
|
20
|
-
tryExit(): Promise<
|
|
21
|
-
numWantsSatisfied(): Promise<
|
|
22
|
-
getExitSubscriber():
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
getFinalAllocation(): Promise<AmountKeywordRecord>;
|
|
27
|
-
};
|
|
28
|
-
} & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
29
|
-
zoeSeatAdmin: {
|
|
7
|
+
hasExited(): Promise<any>;
|
|
8
|
+
tryExit(): Promise<any>;
|
|
9
|
+
numWantsSatisfied(): Promise<any>;
|
|
10
|
+
getExitSubscriber(): any;
|
|
11
|
+
getFinalAllocation(): any;
|
|
12
|
+
}>;
|
|
13
|
+
zoeSeatAdmin: import("@endo/exo").Guarded<{
|
|
30
14
|
replaceAllocation(replacementAllocation: any): void;
|
|
31
15
|
exit(completion: any): void;
|
|
32
16
|
fail(reason: any): void;
|
|
33
17
|
/** @param {HandleOfferResult} result */
|
|
34
18
|
resolveExitAndResult({ offerResultPromise, exitObj }: HandleOfferResult): void;
|
|
35
|
-
getExitSubscriber(): {
|
|
19
|
+
getExitSubscriber(): import("@endo/exo").Guarded<{
|
|
36
20
|
subscribeAfter(publishCount?: bigint): Promise<any>;
|
|
37
21
|
getUpdateSince(updateCount: any): any;
|
|
38
|
-
}
|
|
22
|
+
}>;
|
|
39
23
|
finalPayouts(payments: any): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
getProposal(): Promise<ProposalRecord>;
|
|
43
|
-
getPayouts(): Promise<{}>;
|
|
44
|
-
getPayout(keyword: any): Promise<any>;
|
|
45
|
-
getOfferResult(): Promise<any>;
|
|
46
|
-
hasExited(): Promise<boolean>;
|
|
47
|
-
tryExit(): Promise<void>;
|
|
48
|
-
numWantsSatisfied(): Promise<0 | 1>;
|
|
49
|
-
getExitSubscriber(): {
|
|
50
|
-
subscribeAfter(publishCount?: bigint): Promise<any>;
|
|
51
|
-
getUpdateSince(updateCount: any): any;
|
|
52
|
-
};
|
|
53
|
-
getFinalAllocation(): Promise<AmountKeywordRecord>;
|
|
54
|
-
};
|
|
55
|
-
}>;
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
56
26
|
//# sourceMappingURL=zoeSeat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoeSeat.d.ts","sourceRoot":"","sources":["zoeSeat.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoeSeat.d.ts","sourceRoot":"","sources":["zoeSeat.js"],"names":[],"mappings":"AAoDO,iDAFI,OAAO,kBAAkB,EAAE,OAAO,uBAwWhC,UAAU,YACV,cAAc,uBACd,mBAAmB,iBACnB,aAAa;;;;;;;;;;;;;;;;QAzIlB,wCAAwC;8DAA5B,iBAAiB;;;;;;;EAoKpC"}
|