@agoric/inter-protocol 0.16.2-dev-2da8e5c.0.2da8e5c → 0.16.2-dev-57c6564.0.57c6564

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.
@@ -1,145 +0,0 @@
1
- import {
2
- handleParamGovernance,
3
- ParamTypes,
4
- publicMixinAPI,
5
- } from '@agoric/governance';
6
- import { InvitationShape } from '@agoric/governance/src/typeGuards.js';
7
- import { wrapRemoteMarshaller } from '@agoric/internal/src/marshal/wrap-marshaller.js';
8
- import { M } from '@agoric/store';
9
- import { prepareExo } from '@agoric/vat-data';
10
- import { provideSingleton } from '@agoric/zoe/src/contractSupport/durability.js';
11
- import { prepareRecorderKitMakers } from '@agoric/zoe/src/contractSupport/recorder.js';
12
- import { TopicsRecordShape } from '@agoric/zoe/src/contractSupport/topics.js';
13
- import { makeDurableZone } from '@agoric/zone/durable.js';
14
- import {
15
- prepareBridgeProvisionTool,
16
- prepareProvisionPoolKit,
17
- } from './provisionPoolKit.js';
18
-
19
- /**
20
- * @import {Remote} from '@agoric/internal';
21
- * @import {Amount, Brand, Payment, Purse} from '@agoric/ertp';
22
- * @import {ContractMeta, Invitation, StandardTerms, ZCF} from '@agoric/zoe';
23
- * @import {GovernanceTerms} from '@agoric/governance/src/types.js';
24
- * @import {ERef} from '@endo/far';
25
- * @import {Bank} from '@agoric/vats/src/vat-bank.js';
26
- * @import {MetricsNotification} from './provisionPoolKit.js';
27
- * @import {Baggage} from '@agoric/vat-data';
28
- * @import {StorageNode} from '@agoric/internal/src/lib-chainStorage.js';
29
- * @import {Marshaller} from '@agoric/internal/src/lib-chainStorage.js';
30
- */
31
-
32
- /** @type {ContractMeta<typeof start>} */
33
- export const meta = {
34
- // @ts-expect-error splitRecord loses the property keys
35
- privateArgsShape: M.splitRecord(
36
- {
37
- poolBank: M.eref(M.remotable('bank')),
38
- storageNode: M.eref(M.remotable('storageNode')),
39
- marshaller: M.eref(M.remotable('marshaller')),
40
- },
41
- {
42
- // only necessary on first invocation, not subsequent
43
- initialPoserInvitation: InvitationShape,
44
- metricsOverride: M.recordOf(M.string()),
45
- },
46
- ),
47
- upgradability: 'canUpgrade',
48
- };
49
- harden(meta);
50
-
51
- /**
52
- * @typedef {StandardTerms &
53
- * GovernanceTerms<{
54
- * PerAccountInitialAmount: 'amount';
55
- * }>} ProvisionTerms
56
- * TODO: ERef<GovernedCreatorFacet<ProvisionCreator>>
57
- * @param {ZCF<ProvisionTerms>} zcf
58
- * @param {{
59
- * poolBank: ERef<Bank>;
60
- * initialPoserInvitation: Invitation;
61
- * storageNode: Remote<StorageNode>;
62
- * marshaller: Remote<Marshaller>;
63
- * metricsOverride?: MetricsNotification;
64
- * governedParamOverrides?: Record<string, Amount | undefined>;
65
- * }} privateArgs
66
- * @param {Baggage} baggage
67
- */
68
- export const start = async (zcf, privateArgs, baggage) => {
69
- const { poolBank, metricsOverride } = privateArgs;
70
-
71
- const { marshaller: remoteMarshaller } = privateArgs;
72
- const cachingMarshaller = wrapRemoteMarshaller(remoteMarshaller);
73
-
74
- const { makeRecorderKit } = prepareRecorderKitMakers(
75
- baggage,
76
- cachingMarshaller,
77
- );
78
-
79
- // Governance
80
- const { publicMixin, makeDurableGovernorFacet, params } =
81
- await handleParamGovernance(
82
- zcf,
83
- privateArgs.initialPoserInvitation,
84
- {
85
- PerAccountInitialAmount: ParamTypes.AMOUNT,
86
- },
87
- privateArgs.storageNode,
88
- privateArgs.marshaller,
89
- privateArgs.governedParamOverrides,
90
- );
91
-
92
- const zone = makeDurableZone(baggage);
93
-
94
- const makeBridgeProvisionTool = prepareBridgeProvisionTool(zone);
95
- const makeProvisionPoolKit = prepareProvisionPoolKit(zone, {
96
- makeRecorderKit,
97
- params,
98
- poolBank,
99
- zcf,
100
- makeBridgeProvisionTool,
101
- });
102
-
103
- const poolBrand = /** @type {Brand<'nat'>} */ (
104
- params.getPerAccountInitialAmount().brand
105
- );
106
- const provisionPoolKit = await provideSingleton(
107
- baggage,
108
- 'provisionPoolKit',
109
- () =>
110
- makeProvisionPoolKit({
111
- poolBrand,
112
- storageNode: privateArgs.storageNode,
113
- }),
114
- );
115
- provisionPoolKit.helper.start(poolBrand, { metrics: metricsOverride });
116
-
117
- const publicFacet = prepareExo(
118
- baggage,
119
- 'Provisioning Pool public',
120
- M.interface('ProvisionPool', {
121
- getMetrics: M.callWhen().returns(M.remotable('MetricsSubscriber')),
122
- getPublicTopics: M.callWhen().returns(TopicsRecordShape),
123
- ...publicMixinAPI,
124
- }),
125
- {
126
- async getMetrics() {
127
- await null;
128
- return provisionPoolKit.public.getPublicTopics().metrics.subscriber;
129
- },
130
- async getPublicTopics() {
131
- await null;
132
- return provisionPoolKit.public.getPublicTopics();
133
- },
134
- ...publicMixin,
135
- },
136
- );
137
-
138
- return harden({
139
- creatorFacet: makeDurableGovernorFacet(baggage, provisionPoolKit.machine)
140
- .governorFacet,
141
- publicFacet,
142
- });
143
- };
144
-
145
- harden(start);
@@ -1,81 +0,0 @@
1
- export function prepareBridgeProvisionTool(zone: Zone): (bankManager: ERef<import("@endo/exo").Guarded<{
2
- getAssetSubscription(): import("@agoric/notifier").IterableEachTopic<AssetDescriptor>;
3
- getRewardDistributorDepositFacet(denom: string, feeKit: AssetIssuerKit): ERef<import("@endo/far").EOnly<import("@agoric/ertp").DepositFacet>>;
4
- getModuleAccountAddress(moduleName: string): Promise<string | null>;
5
- addAsset(denom: string, issuerName: string, proposedName: string, kit: AssetIssuerKit & {
6
- payment?: ERef<Payment<"nat">>;
7
- }): Promise<void>;
8
- getBankForAddress(address: string): Promise<Bank>;
9
- }>>, walletFactory: ERef<import("@endo/exo").Guarded<{
10
- provideSmartWallet(address: string, bank: ERef<Bank>, namesByAddressAdmin: ERef<NameAdmin>): Promise<[wallet: import("@agoric/smart-wallet/src/smartWallet.js").SmartWallet, isNew: boolean]>;
11
- }>>, namesByAddressAdmin: ERef<NameAdmin>, forHandler: any) => import("@endo/exo").Guarded<{
12
- /** @param {BridgeMessage} obj */
13
- fromBridge(obj: BridgeMessage): Promise<void>;
14
- }>;
15
- export function prepareProvisionPoolKit(zone: Zone, { makeRecorderKit, params, poolBank, zcf, makeBridgeProvisionTool }: {
16
- makeRecorderKit: MakeRecorderKit;
17
- params: any;
18
- poolBank: ERef<Bank>;
19
- zcf: ZCF;
20
- makeBridgeProvisionTool: ReturnType<typeof prepareBridgeProvisionTool>;
21
- }): ({ poolBrand, storageNode }: {
22
- poolBrand: Brand<"nat">;
23
- storageNode: ERemote<StorageNode>;
24
- }) => Promise<ProvisionPoolKit>;
25
- export type ProvisionPoolKit = {
26
- machine: {
27
- addRevivableAddresses: (oldAddresses: string[]) => void;
28
- getWalletReviver: () => ERef<any>;
29
- setReferences: (erefs: ProvisionPoolKitReferences) => Promise<void>;
30
- makeHandler: () => ERef<BridgeHandler>;
31
- initPSM: (brand: Brand, instance: Instance<typeof psmStart>) => void;
32
- };
33
- helper: any;
34
- forHandler: any;
35
- public: any;
36
- };
37
- export type PsmInstance = Instance<typeof psmStart>;
38
- export type ProvisionPoolKitReferences = {
39
- bankManager: ERef<BankManager>;
40
- namesByAddressAdmin: ERef<NameAdmin>;
41
- walletFactory: ERef<WalletFactoryStartResult["creatorFacet"]>;
42
- };
43
- /**
44
- * Metrics naming scheme is that nouns are
45
- * present values and past-participles are accumulative.
46
- */
47
- export type MetricsNotification = {
48
- /**
49
- * count of new wallets provisioned
50
- */
51
- walletsProvisioned: bigint;
52
- /**
53
- * running sum of Minted provided
54
- * to new wallets
55
- */
56
- totalMintedProvided: Amount<"nat">;
57
- /**
58
- * running sum of Minted ever
59
- * received by the contract from PSM
60
- */
61
- totalMintedConverted: Amount<"nat">;
62
- };
63
- import type { Zone } from '@agoric/zone';
64
- import type { AssetDescriptor } from '@agoric/vats/src/vat-bank.js';
65
- import type { ERef } from '@endo/far';
66
- import type { Payment } from '@agoric/ertp';
67
- import type { Bank } from '@agoric/vats/src/vat-bank.js';
68
- import type { NameAdmin } from '@agoric/vats';
69
- import type { BridgeMessage } from '@agoric/cosmic-swingset/src/types.js';
70
- import type { MakeRecorderKit } from '@agoric/zoe/src/contractSupport/recorder.js';
71
- import type { ZCF } from '@agoric/zoe';
72
- import type { Brand } from '@agoric/ertp';
73
- import type { StorageNode } from '@agoric/internal/src/lib-chainStorage.js';
74
- import type { ERemote } from '@agoric/internal';
75
- import type { BridgeHandler } from '@agoric/vats';
76
- import type { start as psmStart } from '@agoric/inter-protocol/src/psm/psm.js';
77
- import type { Instance } from '@agoric/zoe/src/zoeService/utils.js';
78
- import type { BankManager } from '@agoric/vats/src/vat-bank.js';
79
- import type { WalletFactoryStartResult } from '@agoric/vats/src/core/startWalletFactory.js';
80
- import type { Amount } from '@agoric/ertp';
81
- //# sourceMappingURL=provisionPoolKit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provisionPoolKit.d.ts","sourceRoot":"","sources":["provisionPoolKit.js"],"names":[],"mappings":"AAiGO,iDAFI,IAAI;;;;;eA2gBgY,CAAC;;;;;;IAtf1Y,iCAAiC;oBAArB,aAAa;GA6B5B;AAYI,8CATI,IAAI,uEACJ;IACN,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,uBAAuB,EAAE,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;CACxE,gCA6bC;IAA2B,SAAS,EAA5B,MAAM,KAAK,CAAC;IACe,WAAW,EAAtC,QAAQ,WAAW,CAAC;CAC5B,KAAU,OAAO,CAAC,gBAAgB,CAAC,CAevC;+BAjjBY;IACR,OAAO,EAAE;QACP,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QACxD,gBAAgB,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC;QAClC,aAAa,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,WAAW,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,eAAe,CAAC,KAAK,IAAI,CAAC;KACtE,CAAC;IACF,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;0BAIS,SAAS,eAAe,CAAC;;iBAKxB,KAAK,WAAW,CAAC;yBACjB,KAAK,SAAS,CAAC;mBACf,KAAK,wBAAwB,CAAC,cAAc,CAAC,CAAC;;;;;;;;;;wBAM9C,MAAM;;;;;yBACN,OAAO,KAAK,CAAC;;;;;0BAEb,OAAO,KAAK,CAAC;;0BA/CJ,cAAc;qCAKH,8BAA8B;0BAZzC,WAAW;6BAJc,cAAc;0BAK1B,8BAA8B;+BAItC,cAAc;mCAVV,sCAAsC;qCAcpC,6CAA6C;yBAVzD,aAAa;2BAHa,cAAc;iCAEhC,0CAA0C;6BADtC,kBAAkB;mCAcpB,cAAc;uCAPV,uCAAuC;8BADhD,qCAAqC;iCAF5B,8BAA8B;8CAKvB,6CAA6C;4BAVxC,cAAc"}