@agoric/vats 0.15.2-dev-7ffae88.0 → 0.15.2-dev-c5284e4.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.
Files changed (48) hide show
  1. package/package.json +24 -24
  2. package/src/core/chain-behaviors.d.ts.map +1 -1
  3. package/src/core/chain-behaviors.js +1 -7
  4. package/src/core/client-behaviors.d.ts +1 -0
  5. package/src/core/client-behaviors.d.ts.map +1 -1
  6. package/src/core/client-behaviors.js +1 -0
  7. package/src/core/startWalletFactory.d.ts +4 -4
  8. package/src/core/types-ambient.d.ts +1 -0
  9. package/src/core/utils.d.ts +2 -2
  10. package/src/core/utils.d.ts.map +1 -1
  11. package/src/core/utils.js +13 -13
  12. package/src/ibc.d.ts +63 -25
  13. package/src/ibc.d.ts.map +1 -1
  14. package/src/ibc.js +671 -457
  15. package/src/localchain.d.ts +22 -0
  16. package/src/localchain.d.ts.map +1 -0
  17. package/src/localchain.js +106 -0
  18. package/src/proposals/localchain-proposal.d.ts +405 -0
  19. package/src/proposals/localchain-proposal.d.ts.map +1 -0
  20. package/src/proposals/localchain-proposal.js +114 -0
  21. package/src/proposals/localchain-test.d.ts +25 -0
  22. package/src/proposals/localchain-test.d.ts.map +1 -0
  23. package/src/proposals/localchain-test.js +81 -0
  24. package/src/proposals/network-proposal.d.ts +42 -1
  25. package/src/proposals/network-proposal.d.ts.map +1 -1
  26. package/src/proposals/network-proposal.js +58 -42
  27. package/src/proposals/probeZcfBundle.d.ts +26 -0
  28. package/src/proposals/probeZcfBundle.d.ts.map +1 -0
  29. package/src/proposals/probeZcfBundle.js +72 -0
  30. package/src/proposals/restart-vats-proposal.d.ts +2 -0
  31. package/src/proposals/restart-vats-proposal.d.ts.map +1 -1
  32. package/src/proposals/restart-vats-proposal.js +13 -1
  33. package/src/proposals/zcf-proposal.d.ts.map +1 -1
  34. package/src/proposals/zcf-proposal.js +1 -0
  35. package/src/vat-bridge.d.ts +16 -2
  36. package/src/vat-bridge.d.ts.map +1 -1
  37. package/src/vat-ibc.d.ts +43 -3
  38. package/src/vat-ibc.d.ts.map +1 -1
  39. package/src/vat-ibc.js +20 -9
  40. package/src/vat-localchain.d.ts +33 -0
  41. package/src/vat-localchain.d.ts.map +1 -0
  42. package/src/vat-localchain.js +24 -0
  43. package/src/vat-network.d.ts +67 -1
  44. package/src/vat-network.d.ts.map +1 -1
  45. package/src/vat-network.js +39 -3
  46. package/tools/boot-test-utils.d.ts +8 -2
  47. package/tools/boot-test-utils.d.ts.map +1 -1
  48. package/tools/boot-test-utils.js +2 -1
@@ -0,0 +1,22 @@
1
+ export const LocalChainAccountI: import("@endo/patterns").InterfaceGuard<{
2
+ getAddress: import("@endo/patterns").MethodGuard;
3
+ executeTx: import("@endo/patterns").MethodGuard;
4
+ allBalances: import("@endo/patterns").MethodGuard;
5
+ }>;
6
+ export const LocalChainI: import("@endo/patterns").InterfaceGuard<{
7
+ createAccount: import("@endo/patterns").MethodGuard;
8
+ query: import("@endo/patterns").MethodGuard;
9
+ }>;
10
+ export function prepareLocalChainTools(zone: import('@agoric/base-zone').Zone): {
11
+ makeLocalChain: (system: import("./types.js").ScopedBridgeManager) => import("@endo/exo/src/exo-makers.js").Guarded<{
12
+ createAccount(): Promise<import("@endo/exo/src/exo-makers.js").Guarded<{
13
+ getAddress(): Promise<string>;
14
+ allBalances(): Promise<any>;
15
+ executeTx(messages: any): Promise<any>;
16
+ }>>;
17
+ query(messages: any): Promise<any>;
18
+ }>;
19
+ };
20
+ export type LocalChainTools = ReturnType<typeof prepareLocalChainTools>;
21
+ export type LocalChain = ReturnType<LocalChainTools['makeLocalChain']>;
22
+ //# sourceMappingURL=localchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localchain.d.ts","sourceRoot":"","sources":["localchain.js"],"names":[],"mappings":"AAKA;;;;GAMG;AA+CH;;;GAGG;AAmCI,6CADK,OAAO,mBAAmB,EAAE,IAAI;;;;;;;;;EAM3C;8BAGa,WAAW,6BAA6B,CAAC;yBACzC,WAAW,eAAe,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { E } from '@endo/far';
2
+ import { M } from '@endo/patterns';
3
+
4
+ const { Fail } = assert;
5
+
6
+ export const LocalChainAccountI = M.interface('LocalChainAccount', {
7
+ getAddress: M.callWhen().returns(M.string()),
8
+ executeTx: M.callWhen(M.arrayOf(M.record())).returns(M.arrayOf(M.record())),
9
+ // An example of a high-level query. TODO: Move this functionality to a higher
10
+ // layer that implements the Orchestration API.
11
+ allBalances: M.callWhen().returns(M.record()),
12
+ });
13
+
14
+ /** @param {import('@agoric/base-zone').Zone} zone */
15
+ const prepareLocalChainAccount = zone =>
16
+ zone.exoClass(
17
+ 'LocalChainAccount',
18
+ LocalChainAccountI,
19
+ /**
20
+ * @param {import('./types.js').ScopedBridgeManager} system
21
+ * @param {string} address
22
+ * @param {{ query: (messages: any[]) => Promise<any> }} chain
23
+ */
24
+ (system, address, chain) => ({ system, address, chain }),
25
+ {
26
+ // Information that the account creator needs.
27
+ async getAddress() {
28
+ return this.state.address;
29
+ },
30
+ async allBalances() {
31
+ // We make a balance request, scoped to our own address.
32
+ const { address, chain } = this.state;
33
+ const res = await chain.query([
34
+ {
35
+ '@type': '/cosmos.bank.v1beta1.QueryAllBalancesRequest',
36
+ address,
37
+ },
38
+ ]);
39
+ if (res[0].error) {
40
+ throw Fail`query failed: ${res[0].error}`;
41
+ }
42
+ return res[0].reply;
43
+ },
44
+ async executeTx(messages) {
45
+ const { system, address } = this.state;
46
+ const obj = {
47
+ type: 'VLOCALCHAIN_EXECUTE_TX',
48
+ // This address is the only one that `VLOCALCHAIN_EXECUTE_TX` will
49
+ // accept as a signer for the transaction. If the messages have other
50
+ // addresses in signer positions, the transaction will be aborted.
51
+ address,
52
+ messages,
53
+ };
54
+ return E(system).toBridge(obj);
55
+ },
56
+ },
57
+ );
58
+
59
+ export const LocalChainI = M.interface('LocalChain', {
60
+ createAccount: M.callWhen().returns(M.remotable('LocalChainAccount')),
61
+ query: M.callWhen(M.arrayOf(M.record())).returns(M.arrayOf(M.record())),
62
+ });
63
+
64
+ /**
65
+ * @param {import('@agoric/base-zone').Zone} zone
66
+ * @param {ReturnType<typeof prepareLocalChainAccount>} createAccount
67
+ */
68
+ const prepareLocalChain = (zone, createAccount) =>
69
+ zone.exoClass(
70
+ 'LocalChain',
71
+ LocalChainI,
72
+ /** @param {import('./types.js').ScopedBridgeManager} system */
73
+ system => ({ system }),
74
+ {
75
+ async createAccount() {
76
+ const { system } = this.state;
77
+ // Allocate a fresh address that doesn't correspond with a public key,
78
+ // and follows the ICA guidelines to help reduce collisions. See
79
+ // x/vlocalchain/keeper/keeper.go AllocateAddress for the use of the app
80
+ // hash and block data hash.
81
+ const address = await E(system).toBridge({
82
+ type: 'VLOCALCHAIN_ALLOCATE_ADDRESS',
83
+ });
84
+ return createAccount(system, address, this.self);
85
+ },
86
+ async query(messages) {
87
+ const { system } = this.state;
88
+ return E(system).toBridge({
89
+ type: 'VLOCALCHAIN_QUERY',
90
+ messages,
91
+ });
92
+ },
93
+ },
94
+ );
95
+
96
+ /** @param {import('@agoric/base-zone').Zone} zone */
97
+ export const prepareLocalChainTools = zone => {
98
+ const createAccount = prepareLocalChainAccount(zone);
99
+ const makeLocalChain = prepareLocalChain(zone, createAccount);
100
+
101
+ return harden({ makeLocalChain });
102
+ };
103
+ harden(prepareLocalChainTools);
104
+
105
+ /** @typedef {ReturnType<typeof prepareLocalChainTools>} LocalChainTools */
106
+ /** @typedef {ReturnType<LocalChainTools['makeLocalChain']>} LocalChain */
@@ -0,0 +1,405 @@
1
+ export function setupLocalChainVat({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP, localchainBridgeManager: localchainBridgeManagerP, }, produce: { localchainVat, localchain, localchainBridgeManager }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
2
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
3
+ }, {}, {
4
+ loadVat: VatLoader<unknown>;
5
+ loadCriticalVat: VatLoader<unknown>;
6
+ }> & {
7
+ zone: import("@agoric/zone").Zone;
8
+ devices: SoloDevices | ChainDevices;
9
+ vats: SwingsetVats;
10
+ vatPowers: {
11
+ [prop: string]: any;
12
+ D: DProxy<any>;
13
+ };
14
+ vatParameters: BootstrapVatParams;
15
+ runBehaviors: (manifest: unknown) => Promise<unknown>;
16
+ modules: {
17
+ behaviors: {
18
+ bridgeCoreEval: (allPowers: BootstrapPowers) => Promise<void>;
19
+ makeProvisioner: ({ consume: { clientCreator, loadCriticalVat }, vats: { comms, vattp }, produce: { provisioning }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
20
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
21
+ }, {}, {
22
+ loadVat: VatLoader<unknown>;
23
+ loadCriticalVat: VatLoader<unknown>;
24
+ }> & any & {
25
+ consume: {
26
+ loadCriticalVat: ERef<VatLoader<ProvisioningVat>>;
27
+ };
28
+ }) => Promise<void>;
29
+ noProvisioner: ({ produce: { provisioning } }: BootstrapPowers) => Promise<void>;
30
+ bridgeProvisioner: ({ consume: { provisioning: provisioningP, provisionBridgeManager: provisionBridgeManagerP, provisionWalletBridgeManager: provisionWalletBridgeManagerP, }, }: BootstrapPowers) => Promise<void>;
31
+ setupClientManager: ({ produce: { client, clientCreator: clientCreatorP } }: BootstrapSpace, { template, }?: {
32
+ template?: Record<string, unknown> | undefined;
33
+ }) => Promise<void>;
34
+ startTimerService: ({ devices: { timer: timerDevice }, vats: { timer: timerVat }, consume: { client }, produce: { chainTimerService: produceTimer }, brand: { produce: { timer }, }, }: BootstrapPowers) => Promise<void>;
35
+ makeBridgeManager: ({ consume: { loadCriticalVat }, devices: { bridge }, produce: { bridgeManager: bridgeManagerP, provisionBridgeManager, provisionWalletBridgeManager, walletBridgeManager, }, }: BootDevices<ChainDevices> & WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
36
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
37
+ }, {}, {
38
+ loadVat: VatLoader<unknown>;
39
+ loadCriticalVat: VatLoader<unknown>;
40
+ }> & {
41
+ consume: {
42
+ loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
43
+ };
44
+ }) => Promise<void>;
45
+ makeChainStorage: ({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP }, produce: { chainStorage: chainStorageP, storageBridgeManager: storageBridgeManagerP, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
46
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
47
+ }, {}, {
48
+ loadVat: VatLoader<unknown>;
49
+ loadCriticalVat: VatLoader<unknown>;
50
+ }> & {
51
+ consume: {
52
+ loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
53
+ };
54
+ }) => Promise<void>;
55
+ produceHighPrioritySendersManager: ({ consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP }, produce: { highPrioritySendersManager: managerP }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
56
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
57
+ }, {}, {
58
+ loadVat: VatLoader<unknown>;
59
+ loadCriticalVat: VatLoader<unknown>;
60
+ }> & {
61
+ consume: {
62
+ loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
63
+ };
64
+ }) => Promise<void>;
65
+ publishAgoricNamesToChainStorage: ({ consume: { chainStorage: rootP }, namedVat: { consume: { agoricNames, board: vatBoard }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
66
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
67
+ }, {}, {
68
+ loadVat: VatLoader<unknown>;
69
+ loadCriticalVat: VatLoader<unknown>;
70
+ }> & any & NamedVatPowers) => Promise<void>;
71
+ publishAgoricNames: ({ consume: { agoricNamesAdmin, board, chainStorage: rootP } }: BootstrapPowers, { options: { agoricNamesOptions } }?: {
72
+ options?: {
73
+ agoricNamesOptions?: {
74
+ topLevel?: string[] | undefined;
75
+ } | undefined;
76
+ } | undefined;
77
+ }) => Promise<void>;
78
+ connectChainFaucet: ({ consume: { client } }: BootstrapPowers) => Promise<void>;
79
+ makeVatsFromBundles: ({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
80
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
81
+ }, {}, {
82
+ loadVat: VatLoader<unknown>;
83
+ loadCriticalVat: VatLoader<unknown>;
84
+ }> & any) => Promise<void>;
85
+ produceDiagnostics: ({ produce }: Pick<ChainBootstrapSpace, "produce">) => Promise<void>;
86
+ produceStartUpgradable: ({ zone, consume: { diagnostics, zoe }, produce, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
87
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
88
+ }, {}, {
89
+ loadVat: VatLoader<unknown>;
90
+ loadCriticalVat: VatLoader<unknown>;
91
+ }> & {
92
+ zone: import("@agoric/zone").Zone;
93
+ }) => Promise<void>;
94
+ produceStartGovernedUpgradable: ({ zone, consume: { chainTimerService, diagnostics, economicCommitteeCreatorFacet, zoe, }, produce, installation: { consume: { contractGovernor }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
95
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
96
+ }, {}, {
97
+ loadVat: VatLoader<unknown>;
98
+ loadCriticalVat: VatLoader<unknown>;
99
+ }> & {
100
+ zone: import("@agoric/zone").Zone;
101
+ consume: {
102
+ economicCommitteeCreatorFacet: Promise<import("@agoric/governance/src/committee").CommitteeElectorateCreatorFacet>;
103
+ };
104
+ }) => Promise<void>;
105
+ buildZoe: ({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
106
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
107
+ }, {}, {
108
+ loadVat: VatLoader<unknown>;
109
+ loadCriticalVat: VatLoader<unknown>;
110
+ }> & any & {
111
+ consume: {
112
+ loadCriticalVat: ERef<VatLoader<import("../core/basic-behaviors").ZoeVat>>;
113
+ };
114
+ }) => Promise<void>;
115
+ startPriceAuthorityRegistry: ({ consume: { loadCriticalVat, client }, produce, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
116
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
117
+ }, {}, {
118
+ loadVat: VatLoader<unknown>;
119
+ loadCriticalVat: VatLoader<unknown>;
120
+ }> & any & {
121
+ consume: {
122
+ loadCriticalVat: ERef<VatLoader<import("../core/basic-behaviors").PriceAuthorityVat>>;
123
+ };
124
+ }) => Promise<void>;
125
+ makeOracleBrands: ({ namedVat: { consume: { agoricNames }, }, oracleBrand: { produce: { USD }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
126
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
127
+ }, {}, {
128
+ loadVat: VatLoader<unknown>;
129
+ loadCriticalVat: VatLoader<unknown>;
130
+ }> & any & NamedVatPowers) => Promise<void>;
131
+ produceBoard: ({ consume: { client }, produce: { board: pBoard }, namedVat: { consume: { board: vatBoard }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
132
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
133
+ }, {}, {
134
+ loadVat: VatLoader<unknown>;
135
+ loadCriticalVat: VatLoader<unknown>;
136
+ }> & any & NamedVatPowers) => Promise<void>;
137
+ makeBoard: ({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
138
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
139
+ }, {}, {
140
+ loadVat: VatLoader<unknown>;
141
+ loadCriticalVat: VatLoader<unknown>;
142
+ }> & any & {
143
+ consume: {
144
+ loadCriticalVat: ERef<VatLoader<BoardVat>>;
145
+ };
146
+ }) => Promise<void>;
147
+ produceNamesByAddress: ({ consume: { agoricNames, provisioning: provisioningOptP, client }, produce: { namesByAddress, namesByAddressAdmin }, }: BootstrapPowers) => Promise<void>;
148
+ makeAddressNameHubs: ({ consume: { agoricNames: agoricNamesP, client }, produce, }: BootstrapSpace) => Promise<void>;
149
+ makeClientBanks: ({ consume: { namesByAddressAdmin, client, bankManager, walletFactoryStartResult, }, }: BootstrapSpace) => Promise<void>;
150
+ installBootContracts: ({ consume: { vatAdminSvc, zoe }, installation: { produce: { centralSupply, mintHolder }, }, }: BootstrapSpace) => Promise<void>;
151
+ mintInitialSupply: ({ vatParameters: { argv: { bootMsg }, }, consume: { feeMintAccess: feeMintAccessP, zoe }, produce: { initialSupply }, installation: { consume: { centralSupply }, }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
152
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
153
+ }, {}, {
154
+ loadVat: VatLoader<unknown>;
155
+ loadCriticalVat: VatLoader<unknown>;
156
+ }> & any & {
157
+ vatParameters: {
158
+ argv: {
159
+ bootMsg?: {
160
+ type: string;
161
+ chainID: string;
162
+ storagePort: number;
163
+ supplyCoins: {
164
+ denom: string;
165
+ amount: string;
166
+ }[];
167
+ swingsetPort: number;
168
+ vbankPort: number;
169
+ vibcPort: number;
170
+ } | undefined;
171
+ };
172
+ };
173
+ }) => Promise<void>;
174
+ addBankAssets: ({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
175
+ vatAdminSvc: import("@agoric/swingset-vat").VatAdminSvc;
176
+ }, {}, {
177
+ loadVat: VatLoader<unknown>;
178
+ loadCriticalVat: VatLoader<unknown>;
179
+ }> & {
180
+ consume: {
181
+ loadCriticalVat: ERef<VatLoader<BankVat>>;
182
+ };
183
+ }) => Promise<void>;
184
+ };
185
+ utils: {
186
+ agoricNamesReserved: {
187
+ issuer: {
188
+ IST: string;
189
+ BLD: string;
190
+ Invitation: string;
191
+ AUSD: string;
192
+ };
193
+ installation: {
194
+ walletFactory: string;
195
+ reserve: string;
196
+ centralSupply: string;
197
+ mintHolder: string;
198
+ provisionPool: string;
199
+ auctioneer: string;
200
+ feeDistributor: string;
201
+ contractGovernor: string;
202
+ committee: string;
203
+ noActionElectorate: string;
204
+ binaryVoteCounter: string;
205
+ VaultFactory: string;
206
+ liquidate: string;
207
+ Pegasus: string;
208
+ psm: string;
209
+ scaledPriceAuthority: string;
210
+ econCommitteeCharter: string;
211
+ priceAggregator: string;
212
+ };
213
+ instance: {
214
+ walletFactory: string;
215
+ reserve: string;
216
+ provisionPool: string;
217
+ auctioneer: string;
218
+ feeDistributor: string;
219
+ VaultFactory: string;
220
+ Pegasus: string;
221
+ econCommitteeCharter: string;
222
+ economicCommittee: string;
223
+ VaultFactoryGovernor: string;
224
+ reserveGovernor: string;
225
+ };
226
+ oracleBrand: {
227
+ USD: string;
228
+ };
229
+ uiConfig: {
230
+ VaultFactory: string;
231
+ };
232
+ };
233
+ feeIssuerConfig: FeeIssuerConfig;
234
+ addRemote: (addr: string, { vats: { comms, vattp } }: {
235
+ vats: {
236
+ vattp: VattpVat;
237
+ comms: CommsVatRoot;
238
+ };
239
+ }) => Promise<void>;
240
+ callProperties: (builders: ((...args: any[]) => Record<string, unknown>)[], ...args: unknown[]) => Record<string, unknown>;
241
+ extract: (template: string | true | Record<string, any>, specimen: unknown, path?: string[] | undefined) => any;
242
+ extractPowers: (permit: string | true | Record<string, any>, allPowers: unknown) => any;
243
+ runModuleBehaviors: ({ allPowers, behaviors, manifest, makeConfig, }: {
244
+ allPowers: unknown;
245
+ behaviors: Record<string, unknown>;
246
+ manifest: Record<string, Record<string, unknown>>;
247
+ makeConfig: (name: string, permit: Record<string, unknown>) => unknown;
248
+ }) => Promise<any[]>;
249
+ makePromiseSpaceForNameHub: (nameAdmin: ERef<import("../types").NameAdmin>, log?: {
250
+ (...data: any[]): void;
251
+ (message?: any, ...optionalParams: any[]): void;
252
+ } | undefined) => PromiseSpaceOf<any, {}, {}>;
253
+ makeWellKnownSpaces: (parentAdmin: ERef<import("../types").NameAdmin>, log?: {
254
+ (...data: any[]): void;
255
+ (message?: any, ...optionalParams: any[]): void;
256
+ } | undefined, kinds?: string[] | undefined) => Promise<WellKnownSpaces>;
257
+ makeAgoricNamesAccess: (log?: {
258
+ (...data: any[]): void;
259
+ (message?: any, ...optionalParams: any[]): void;
260
+ } | undefined, reserved?: Record<string, Record<string, unknown>>) => Promise<{
261
+ agoricNames: import("../types").NameHub;
262
+ agoricNamesAdmin: import("../types").NameAdmin;
263
+ spaces: WellKnownSpaces;
264
+ }>;
265
+ makeMyAddressNameAdminKit: (address: string) => {
266
+ nameHub: import("../types").NameHub;
267
+ myAddressNameAdmin: import("../types").MyAddressNameAdmin;
268
+ };
269
+ makeVatSpace: (svc: ERef<import("@endo/exo/src/exo-makers").Guarded<{
270
+ waitForBundleCap(bundleID: any): any;
271
+ getBundleCap(bundleID: any): any;
272
+ getNamedBundleCap(name: any): any;
273
+ getBundleIDByName(name: any): any;
274
+ createMeter(remaining: any, threshold: any): any;
275
+ createUnlimitedMeter(_context: any): any;
276
+ createVat(bundleOrBundleCap: any, options?: {}): Promise<{
277
+ adminNode: any;
278
+ root: any;
279
+ }>;
280
+ createVatByName(bundleName: any, options?: {}): Promise<{
281
+ adminNode: any;
282
+ root: any;
283
+ }>;
284
+ }>>, criticalVatKey: unknown, log?: ((...args: any) => void) | undefined, label?: string | undefined) => {
285
+ space: {
286
+ consume: {
287
+ agoricNames: Promise<{
288
+ getNameHub: () => import("../types").NameHub;
289
+ getNameHubKit: () => import("../types").NameHubKit;
290
+ publishNameHubs: (nameStorage: ERef<StorageNode>, vatBoard: ERef<BoardVat>, kinds: string[]) => Promise<void>;
291
+ provideInertBrand: (keyword: string, displayInfo: DisplayInfo<AssetKind>) => any;
292
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
293
+ getNameHub: () => import("../types").NameHub;
294
+ getNameHubKit: () => import("../types").NameHubKit;
295
+ publishNameHubs: (nameStorage: ERef<StorageNode>, vatBoard: ERef<BoardVat>, kinds: string[]) => Promise<void>;
296
+ provideInertBrand: (keyword: string, displayInfo: DisplayInfo<AssetKind>) => any;
297
+ }>>;
298
+ board: Promise<{
299
+ getBoard: () => import("@endo/exo/src/exo-makers").Guarded<{
300
+ getId(value: any): string;
301
+ getValue(id: string): any;
302
+ lookup(...path: string[]): Promise<any>;
303
+ has(val: any): boolean;
304
+ ids(): string[];
305
+ getPublishingMarshaller(): import("@endo/exo/src/exo-makers").Guarded<{
306
+ toCapData(val: any): import("@endo/marshal").CapData<string>;
307
+ fromCapData(data: any): any;
308
+ serialize(data: any): import("@endo/marshal").CapData<string>;
309
+ unserialize(data: any): any;
310
+ }>;
311
+ getReadonlyMarshaller(): import("@endo/exo/src/exo-makers").Guarded<{
312
+ toCapData(val: any): import("@endo/marshal").CapData<string | null>;
313
+ fromCapData(data: any): any;
314
+ serialize(data: any): import("@endo/marshal").CapData<string | null>;
315
+ unserialize(data: any): any;
316
+ }>;
317
+ }>;
318
+ makePublishingRecorderKit: <T>(storageNode: StorageNode | (import("@endo/eventual-send").DataOnly<StorageNode> & import("@endo/eventual-send").RemotableBrand<import("@endo/eventual-send").DataOnly<StorageNode>, StorageNode>), valueShape?: import("@agoric/zoe/src/contractSupport").TypedMatcher<T> | undefined) => import("@agoric/zoe/src/contractSupport").RecorderKit<T>;
319
+ makeReadOnlyRecorderKit: <T>(storageNode: StorageNode | (import("@endo/eventual-send").DataOnly<StorageNode> & import("@endo/eventual-send").RemotableBrand<import("@endo/eventual-send").DataOnly<StorageNode>, StorageNode>), valueShape?: import("@agoric/zoe/src/contractSupport").TypedMatcher<T> | undefined) => import("@agoric/zoe/src/contractSupport").RecorderKit<T>;
320
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
321
+ getBoard: () => import("@endo/exo/src/exo-makers").Guarded<{
322
+ getId(value: any): string;
323
+ getValue(id: string): any;
324
+ lookup(...path: string[]): Promise<any>;
325
+ has(val: any): boolean;
326
+ ids(): string[];
327
+ getPublishingMarshaller(): import("@endo/exo/src/exo-makers").Guarded<{
328
+ toCapData(val: any): import("@endo/marshal").CapData<string>;
329
+ fromCapData(data: any): any;
330
+ serialize(data: any): import("@endo/marshal").CapData<string>;
331
+ unserialize(data: any): any;
332
+ }>;
333
+ getReadonlyMarshaller(): import("@endo/exo/src/exo-makers").Guarded<{
334
+ toCapData(val: any): import("@endo/marshal").CapData<string | null>;
335
+ fromCapData(data: any): any;
336
+ serialize(data: any): import("@endo/marshal").CapData<string | null>;
337
+ unserialize(data: any): any;
338
+ }>;
339
+ }>;
340
+ makePublishingRecorderKit: <T>(storageNode: StorageNode | (import("@endo/eventual-send").DataOnly<StorageNode> & import("@endo/eventual-send").RemotableBrand<import("@endo/eventual-send").DataOnly<StorageNode>, StorageNode>), valueShape?: import("@agoric/zoe/src/contractSupport").TypedMatcher<T> | undefined) => import("@agoric/zoe/src/contractSupport").RecorderKit<T>;
341
+ makeReadOnlyRecorderKit: <T>(storageNode: StorageNode | (import("@endo/eventual-send").DataOnly<StorageNode> & import("@endo/eventual-send").RemotableBrand<import("@endo/eventual-send").DataOnly<StorageNode>, StorageNode>), valueShape?: import("@agoric/zoe/src/contractSupport").TypedMatcher<T> | undefined) => import("@agoric/zoe/src/contractSupport").RecorderKit<T>;
342
+ }>>;
343
+ };
344
+ };
345
+ durableStore: any;
346
+ };
347
+ };
348
+ };
349
+ } & {
350
+ consume: {
351
+ loadCriticalVat: VatLoader<any>;
352
+ bridgeManager: import('../types').BridgeManager;
353
+ localchainBridgeManager: import('../types').ScopedBridgeManager;
354
+ };
355
+ produce: {
356
+ localchain: Producer<any>;
357
+ localchainVat: Producer<any>;
358
+ localchainBridgeManager: Producer<any>;
359
+ };
360
+ }, options: {
361
+ options: {
362
+ localchainRef: VatSourceRef;
363
+ };
364
+ }): Promise<void>;
365
+ export function addLocalChainToClient({ consume: { client, localchain } }: BootstrapPowers & {
366
+ consume: {
367
+ localchain: import('../localchain.js').LocalChain;
368
+ };
369
+ }, _options: object): Promise<void>;
370
+ export function getManifestForLocalChain(_powers: any, { localchainRef }: {
371
+ localchainRef: any;
372
+ }): {
373
+ manifest: {
374
+ [x: string]: {
375
+ consume: {
376
+ loadCriticalVat: boolean;
377
+ bridgeManager: string;
378
+ localchainBridgeManager: string;
379
+ client?: undefined;
380
+ localchain?: undefined;
381
+ };
382
+ produce: {
383
+ localchain: string;
384
+ localchainVat: string;
385
+ localchainBridgeManager: string;
386
+ };
387
+ } | {
388
+ consume: {
389
+ client: string;
390
+ localchain: string;
391
+ loadCriticalVat?: undefined;
392
+ bridgeManager?: undefined;
393
+ localchainBridgeManager?: undefined;
394
+ };
395
+ produce?: undefined;
396
+ };
397
+ };
398
+ options: {
399
+ localchainRef: any;
400
+ };
401
+ };
402
+ export type LocalChainVats = {
403
+ localchain: ERef<import('../vat-localchain.js').LocalChainVat>;
404
+ };
405
+ //# sourceMappingURL=localchain-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localchain-proposal.d.ts","sourceRoot":"","sources":["localchain-proposal.js"],"names":[],"mappings":"AAwBO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAjBiB,UAAU,GAAG,CAAC;uBAChB,OAAO,UAAU,EAAE,aAAa;iCACtB,OAAO,UAAU,EAAE,mBAAmB;;aAExD;QACb,UAAgB,EAAE,SAAS,GAAG,CAAC,CAAC;QAChC,aAAmB,EAAE,SAAS,GAAG,CAAC,CAAC;QACnC,uBAA6B,EAAE,SAAS,GAAG,CAAC,CAAC;KACxC;;;uBAGsB,YAAY;;kBAqDvC;AAUM,2EAPI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,UAAgB,EAAE,OAAO,kBAAkB,EAAE,UAAU,CAAC;KACnD,CAAC;CACH,YACO,MAAM,iBAOhB;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBL;6BA7FW;IACZ,UAAc,EAAE,KAAK,OAAO,sBAAsB,EAAE,aAAa,CAAC,CAAC;CAChE"}
@@ -0,0 +1,114 @@
1
+ // @ts-check
2
+ import { E } from '@endo/far';
3
+ import { BridgeId as BRIDGE_ID } from '@agoric/internal';
4
+
5
+ /**
6
+ * @param {BootstrapPowers & {
7
+ * consume: {
8
+ * loadCriticalVat: VatLoader<any>;
9
+ * bridgeManager: import('../types').BridgeManager;
10
+ * localchainBridgeManager: import('../types').ScopedBridgeManager;
11
+ * };
12
+ * produce: {
13
+ * localchain: Producer<any>;
14
+ * localchainVat: Producer<any>;
15
+ * localchainBridgeManager: Producer<any>;
16
+ * };
17
+ * }} powers
18
+ * @param {object} options
19
+ * @param {{ localchainRef: VatSourceRef }} options.options
20
+ *
21
+ * @typedef {{
22
+ * localchain: ERef<import('../vat-localchain.js').LocalChainVat>;
23
+ * }} LocalChainVats
24
+ */
25
+ export const setupLocalChainVat = async (
26
+ {
27
+ consume: {
28
+ loadCriticalVat,
29
+ bridgeManager: bridgeManagerP,
30
+ localchainBridgeManager: localchainBridgeManagerP,
31
+ },
32
+ produce: { localchainVat, localchain, localchainBridgeManager },
33
+ },
34
+ options,
35
+ ) => {
36
+ const bridgeManager = await bridgeManagerP;
37
+ if (!bridgeManager) {
38
+ // The sim-chain doesn't have a bridgeManager, so we can't set up the
39
+ // localchain vat.
40
+ console.error('No bridgeManager, skipping setupLocalChainVat');
41
+ return;
42
+ }
43
+
44
+ const { localchainRef } = options.options;
45
+ /** @type {LocalChainVats} */
46
+ const vats = {
47
+ localchain: E(loadCriticalVat)('localchain', localchainRef),
48
+ };
49
+ // don't proceed if loadCriticalVat fails
50
+ await Promise.all(Object.values(vats));
51
+
52
+ localchainVat.reset();
53
+ localchainVat.resolve(vats.localchain);
54
+ /** @type {import('../types').ScopedBridgeManager} */
55
+ let scopedManager;
56
+ try {
57
+ scopedManager = await E(bridgeManager).register(BRIDGE_ID.VLOCALCHAIN);
58
+ localchainBridgeManager.reset();
59
+ localchainBridgeManager.resolve(scopedManager);
60
+ } catch (e) {
61
+ console.error('Failed to register', BRIDGE_ID.VLOCALCHAIN, 'reason:', e);
62
+ scopedManager = await localchainBridgeManagerP;
63
+ console.info(
64
+ 'Successfully retrieved scopedManager for',
65
+ BRIDGE_ID.VLOCALCHAIN,
66
+ );
67
+ }
68
+
69
+ const newLocalChain = await E(vats.localchain).makeLocalChain(scopedManager);
70
+ localchain.reset();
71
+ localchain.resolve(newLocalChain);
72
+ };
73
+
74
+ /**
75
+ * @param {BootstrapPowers & {
76
+ * consume: {
77
+ * localchain: import('../localchain.js').LocalChain;
78
+ * };
79
+ * }} powers
80
+ * @param {object} _options
81
+ */
82
+ export const addLocalChainToClient = async (
83
+ { consume: { client, localchain } },
84
+ _options,
85
+ ) => {
86
+ return E(client).assignBundle([_a => ({ localchain })]);
87
+ };
88
+
89
+ export const getManifestForLocalChain = (_powers, { localchainRef }) => ({
90
+ manifest: {
91
+ [setupLocalChainVat.name]: {
92
+ consume: {
93
+ loadCriticalVat: true,
94
+ bridgeManager: 'bridge',
95
+ localchainBridgeManager: 'localchain',
96
+ },
97
+ produce: {
98
+ localchain: 'localchain',
99
+ localchainVat: 'localchain',
100
+ localchainBridgeManager: 'localchain',
101
+ },
102
+ },
103
+
104
+ [addLocalChainToClient.name]: {
105
+ consume: {
106
+ client: 'provisioning',
107
+ localchain: 'localchain',
108
+ },
109
+ },
110
+ },
111
+ options: {
112
+ localchainRef,
113
+ },
114
+ });