@agoric/vats 0.15.2-dev-8d05faf.0 → 0.15.2-dev-d941b39.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/vats",
3
- "version": "0.15.2-dev-8d05faf.0+8d05faf",
3
+ "version": "0.15.2-dev-d941b39.0+d941b39",
4
4
  "description": "Agoric's Vat library",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -22,20 +22,20 @@
22
22
  "author": "Agoric",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@agoric/assert": "0.6.1-dev-8d05faf.0+8d05faf",
26
- "@agoric/cosmic-proto": "0.4.1-dev-8d05faf.0+8d05faf",
27
- "@agoric/ertp": "0.16.3-dev-8d05faf.0+8d05faf",
28
- "@agoric/governance": "0.10.4-dev-8d05faf.0+8d05faf",
29
- "@agoric/internal": "0.3.3-dev-8d05faf.0+8d05faf",
30
- "@agoric/network": "0.1.1-dev-8d05faf.0+8d05faf",
31
- "@agoric/notifier": "0.6.3-dev-8d05faf.0+8d05faf",
32
- "@agoric/store": "0.9.3-dev-8d05faf.0+8d05faf",
33
- "@agoric/swingset-vat": "0.32.3-dev-8d05faf.0+8d05faf",
34
- "@agoric/time": "0.3.3-dev-8d05faf.0+8d05faf",
35
- "@agoric/vat-data": "0.5.3-dev-8d05faf.0+8d05faf",
36
- "@agoric/vow": "0.1.1-dev-8d05faf.0+8d05faf",
37
- "@agoric/zoe": "0.26.3-dev-8d05faf.0+8d05faf",
38
- "@agoric/zone": "0.2.3-dev-8d05faf.0+8d05faf",
25
+ "@agoric/assert": "0.6.1-dev-d941b39.0+d941b39",
26
+ "@agoric/cosmic-proto": "0.4.1-dev-d941b39.0+d941b39",
27
+ "@agoric/ertp": "0.16.3-dev-d941b39.0+d941b39",
28
+ "@agoric/governance": "0.10.4-dev-d941b39.0+d941b39",
29
+ "@agoric/internal": "0.3.3-dev-d941b39.0+d941b39",
30
+ "@agoric/network": "0.1.1-dev-d941b39.0+d941b39",
31
+ "@agoric/notifier": "0.6.3-dev-d941b39.0+d941b39",
32
+ "@agoric/store": "0.9.3-dev-d941b39.0+d941b39",
33
+ "@agoric/swingset-vat": "0.32.3-dev-d941b39.0+d941b39",
34
+ "@agoric/time": "0.3.3-dev-d941b39.0+d941b39",
35
+ "@agoric/vat-data": "0.5.3-dev-d941b39.0+d941b39",
36
+ "@agoric/vow": "0.1.1-dev-d941b39.0+d941b39",
37
+ "@agoric/zoe": "0.26.3-dev-d941b39.0+d941b39",
38
+ "@agoric/zone": "0.2.3-dev-d941b39.0+d941b39",
39
39
  "@endo/far": "^1.1.2",
40
40
  "@endo/import-bundle": "^1.1.2",
41
41
  "@endo/marshal": "^1.5.0",
@@ -46,7 +46,7 @@
46
46
  "jessie.js": "^0.3.4"
47
47
  },
48
48
  "devDependencies": {
49
- "@agoric/swingset-liveslots": "0.10.3-dev-8d05faf.0+8d05faf",
49
+ "@agoric/swingset-liveslots": "0.10.3-dev-d941b39.0+d941b39",
50
50
  "@endo/bundle-source": "^3.2.3",
51
51
  "@endo/init": "^1.1.2",
52
52
  "ava": "^5.3.0",
@@ -78,5 +78,5 @@
78
78
  "typeCoverage": {
79
79
  "atLeast": 91.21
80
80
  },
81
- "gitHead": "8d05faf1d82913efad4558326ab75a397ed1cc34"
81
+ "gitHead": "d941b39f33c41c1e0f9350f95533fcdc15edc404"
82
82
  }
package/src/bridge.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export function makeScopedBridge<BridgeId extends import("@agoric/internal").BridgeIdValue>(bridgeManager: ERef<import("./types.js").BridgeManager>, bridgeIdValue: BridgeId, handler?: import("@agoric/internal").Remote<import("./types.js").BridgeHandler, {}> | undefined): Promise<import("./types.js").ScopedBridgeManager<BridgeId>>;
1
2
  export const BridgeHandlerI: import("@endo/patterns").InterfaceGuard<{
2
3
  fromBridge: import("@endo/patterns").MethodGuard;
3
4
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["bridge.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;;;GAKG;AAEH;;GAIG;AAmEI,2CAHI,OAAO,cAAc,EAAE,IAAI,KAC3B,MAAM,kBAuFJ,YAAY,KACV,OAAO,YAAY,EAAE,aAAa,CA2BhD"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["bridge.js"],"names":[],"mappings":"AAqBO,iCARiD,QAAQ,SAAnD,OAAQ,kBAAkB,EAAE,aAAc,iBAC5C,IAAI,CAAC,OAAO,YAAY,EAAE,aAAa,CAAC,iBACxC,QAAQ,oGAIN,OAAO,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAKrE;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;GAIG;AAmEI,2CAHI,OAAO,cAAc,EAAE,IAAI,KAC3B,MAAM,kBAuFJ,YAAY,KACV,OAAO,YAAY,EAAE,aAAa,CA2BhD"}
package/src/bridge.js CHANGED
@@ -3,6 +3,27 @@ import { E } from '@endo/far';
3
3
 
4
4
  const { Fail, details: X } = assert;
5
5
 
6
+ /**
7
+ * Helper to type the registered scoped bridge correctly.
8
+ *
9
+ * FIXME: This is needed because `register` is not an async function, so
10
+ * `E(x).register` needs to reconstruct its return value as a Promise, which
11
+ * loses the function's genericity. If `register` was async, we could use its
12
+ * type directly, and it would remain generic.
13
+ *
14
+ * @template {import('@agoric/internal').BridgeIdValue} BridgeId
15
+ * @param {ERef<import('./types.js').BridgeManager>} bridgeManager
16
+ * @param {BridgeId} bridgeIdValue
17
+ * @param {import('@agoric/internal').Remote<
18
+ * import('./types.js').BridgeHandler
19
+ * >} [handler]
20
+ * @returns {Promise<import('./types.js').ScopedBridgeManager<BridgeId>>}
21
+ */
22
+ export const makeScopedBridge = (bridgeManager, bridgeIdValue, handler) =>
23
+ /** @type {Promise<import('./types.js').ScopedBridgeManager<BridgeId>>} */ (
24
+ E(bridgeManager).register(bridgeIdValue, handler)
25
+ );
26
+
6
27
  export const BridgeHandlerI = M.interface('BridgeHandler', {
7
28
  fromBridge: M.call(M.any()).returns(M.promise()),
8
29
  });
@@ -1,4 +1,9 @@
1
- export function makeVatsFromBundles({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: BootstrapPowers & {}): Promise<void>;
1
+ export function makeVatsFromBundles({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: BootstrapPowers & {
2
+ produce: {
3
+ loadVat: Producer<VatLoader>;
4
+ loadCriticalVat: Producer<VatLoader>;
5
+ };
6
+ }): Promise<void>;
2
7
  export function produceDiagnostics({ produce }: Pick<ChainBootstrapSpace, "produce">): Promise<void>;
3
8
  export function produceStartUpgradable({ zone, consume: { diagnostics, zoe }, produce, }: BootstrapSpace & {
4
9
  zone: import("@agoric/zone").Zone;
@@ -9,23 +14,11 @@ export function produceStartGovernedUpgradable({ zone, consume: { chainTimerServ
9
14
  economicCommitteeCreatorFacet: import("@agoric/inter-protocol/src/proposals/econ-behaviors.js").EconomyBootstrapPowers["consume"]["economicCommitteeCreatorFacet"];
10
15
  };
11
16
  }): Promise<void>;
12
- export function buildZoe({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: BootstrapPowers & {
13
- consume: {
14
- loadCriticalVat: ERef<VatLoader<ZoeVat>>;
15
- };
16
- }): Promise<void>;
17
- export function startPriceAuthorityRegistry({ consume: { loadCriticalVat, client }, produce, }: BootstrapPowers & {
18
- consume: {
19
- loadCriticalVat: ERef<VatLoader<PriceAuthorityVat>>;
20
- };
21
- }): Promise<void>;
17
+ export function buildZoe({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: BootstrapPowers): Promise<void>;
18
+ export function startPriceAuthorityRegistry({ consume: { loadCriticalVat, client }, produce, }: BootstrapPowers): Promise<void>;
22
19
  export function makeOracleBrands({ namedVat: { consume: { agoricNames }, }, oracleBrand: { produce: { USD }, }, }: BootstrapPowers & NamedVatPowers): Promise<void>;
23
20
  export function produceBoard({ consume: { client }, produce: { board: pBoard }, namedVat: { consume: { board: vatBoard }, }, }: BootstrapPowers & NamedVatPowers): Promise<void>;
24
- export function makeBoard({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: BootstrapPowers & {
25
- consume: {
26
- loadCriticalVat: ERef<VatLoader<BoardVat>>;
27
- };
28
- }): Promise<void>;
21
+ export function makeBoard({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: BootstrapPowers): Promise<void>;
29
22
  export function produceNamesByAddress({ consume: { agoricNames, provisioning: provisioningOptP, client }, produce: { namesByAddress, namesByAddressAdmin }, }: BootstrapPowers): Promise<void>;
30
23
  export function makeAddressNameHubs({ consume: { agoricNames: agoricNamesP, client }, produce, }: BootstrapSpace): Promise<void>;
31
24
  export function makeClientBanks({ consume: { namesByAddressAdmin, client, bankManager, walletFactoryStartResult, }, }: BootstrapSpace): Promise<void>;
@@ -37,15 +30,10 @@ export function mintInitialSupply({ vatParameters: { argv: { bootMsg }, }, consu
37
30
  };
38
31
  };
39
32
  }): Promise<void>;
40
- export function addBankAssets({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: BootstrapSpace & {
41
- consume: {
42
- loadCriticalVat: ERef<VatLoader<BankVat>>;
43
- };
44
- }): Promise<void>;
33
+ export function addBankAssets({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: BootstrapSpace): Promise<void>;
45
34
  /** @type {import('./lib-boot.js').BootstrapManifest} */
46
35
  export const BASIC_BOOTSTRAP_PERMITS: import("./lib-boot.js").BootstrapManifest;
47
36
  export type VatStore = MapStore<string, CreateVatResults>;
48
- export type ZoeVat = ERef<ReturnType<typeof import("../vat-zoe.js").buildRootObject>>;
49
37
  declare namespace bootMsgEx {
50
38
  let type: string;
51
39
  let chainID: string;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-behaviors.d.ts","sourceRoot":"","sources":["basic-behaviors.js"],"names":[],"mappings":"AA2DO,mIAJI,eAAe,GAAG,EAAE,iBA+D9B;AAIM,gDADK,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,iBAW/C;AAGM,0FADK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,cAAc,EAAE,IAAI,CAAA;CAAE,iBAiCjE;AAqGM,uMAPI,cAAc,GAAG;IAC3B,IAAQ,EAAE,OAAO,cAAc,EAAE,IAAI,CAAC;IACtC,OAAW,EAAE;QACb,6BAAmC,EAAE,OAAO,wDAAwD,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACpK,CAAC;CACH,iBA6DH;AAQM,gOAJI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;CACvD,iBAyBH;AAQM,gGAJI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAA;KAAE,CAAC;CAClE,iBAgBH;AAQM,mHAFI,eAAe,GAAG,cAAc,iBAe1C;AAIM,gIADK,eAAe,GAAG,cAAc,iBAW3C;AASM,qHAJI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;KAAE,CAAC;CACzD,iBAWH;AAcM,+JAFI,eAAe,iBAwBzB;AAQM,kGAFI,cAAc,iBA6BxB;AAIM,uHADK,cAAc,iBAkCzB;AAIM,oIADK,cAAc,iBAiBzB;AASM,0MAJI,eAAe,GAAG;IAC5B,aAAiB,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,SAAS,CAAA;SAAE,CAAA;KAAE,CAAC;CACzD,iBAmCH;AAUM,kTAJI,cAAc,GAAG;IAC3B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;CACxD,iBAwFH;AAGD,wDAAwD;AACxD,sCADW,OAAO,eAAe,EAAE,iBAAiB,CA0IlD;uBArxBY,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;qBAClC,IAAI,CAAC,UAAU,CAAC,8CAAuC,CAAC,CAAC;;;;;;;;;;;;;sCAIpC,sBAAsB"}
1
+ {"version":3,"file":"basic-behaviors.d.ts","sourceRoot":"","sources":["basic-behaviors.js"],"names":[],"mappings":"AAgEO,mIATI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,OAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,eAAqB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KACtC,CAAC;CACH,iBA4DH;AAIM,gDADK,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,iBAW/C;AAGM,0FADK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,cAAc,EAAE,IAAI,CAAA;CAAE,iBAiCjE;AAqGM,uMAPI,cAAc,GAAG;IAC3B,IAAQ,EAAE,OAAO,cAAc,EAAE,IAAI,CAAC;IACtC,OAAW,EAAE;QACb,6BAAmC,EAAE,OAAO,wDAAwD,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACpK,CAAC;CACH,iBA6DH;AAMM,gOAFI,eAAe,iBAyBzB;AAMM,gGAFI,eAAe,iBAgBzB;AAQM,mHAFI,eAAe,GAAG,cAAc,iBAe1C;AAIM,gIADK,eAAe,GAAG,cAAc,iBAW3C;AAOM,qHAFI,eAAe,iBAWzB;AAcM,+JAFI,eAAe,iBAwBzB;AAQM,kGAFI,cAAc,iBA6BxB;AAIM,uHADK,cAAc,iBAkCzB;AAIM,oIADK,cAAc,iBAiBzB;AASM,0MAJI,eAAe,GAAG;IAC5B,aAAiB,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,SAAS,CAAA;SAAE,CAAA;KAAE,CAAC;CACzD,iBAmCH;AAQM,kTAFI,cAAc,iBAsFxB;AAGD,wDAAwD;AACxD,sCADW,OAAO,eAAe,EAAE,iBAAiB,CA0IlD;uBA5wBY,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;;;;;;;;;;;;;sCASb,sBAAsB"}
@@ -16,6 +16,7 @@ import { Fail, NonNullish } from '@agoric/assert';
16
16
  import { makeNameHubKit } from '../nameHub.js';
17
17
  import { PowerFlags } from '../walletFlags.js';
18
18
  import { feeIssuerConfig, makeMyAddressNameAdminKit } from './utils.js';
19
+ import { makeScopedBridge } from '../bridge.js';
19
20
 
20
21
  /** @import {GovernableStartFn, GovernanceFacetKit} from '@agoric/governance/src/types.js'; */
21
22
 
@@ -50,10 +51,14 @@ const bootMsgEx = {
50
51
  */
51
52
 
52
53
  /** @typedef {MapStore<string, CreateVatResults>} VatStore */
53
- /** @typedef {ERef<ReturnType<import('../vat-zoe.js').buildRootObject>>} ZoeVat */
54
54
 
55
55
  /**
56
- * @param {BootstrapPowers & {}} powers
56
+ * @param {BootstrapPowers & {
57
+ * produce: {
58
+ * loadVat: Producer<VatLoader>;
59
+ * loadCriticalVat: Producer<VatLoader>;
60
+ * };
61
+ * }} powers
57
62
  * @import {CreateVatResults} from '@agoric/swingset-vat'
58
63
  * as from createVatByName
59
64
  */
@@ -66,7 +71,6 @@ export const makeVatsFromBundles = async ({
66
71
  // NOTE: we rely on multiple createVatAdminService calls
67
72
  // to return cooperating services.
68
73
  const svc = E(vats.vatAdmin).createVatAdminService(devices.vatAdmin);
69
- // @ts-expect-error XXX
70
74
  vatAdminSvc.resolve(svc);
71
75
 
72
76
  const durableStore = await vatStore;
@@ -81,7 +85,6 @@ export const makeVatsFromBundles = async ({
81
85
  if (bundleName) {
82
86
  console.info(`createVatByName(${bundleName})`);
83
87
  /** @type {Promise<CreateVatResults>} */
84
- // @ts-expect-error XXX
85
88
  const vatInfo = E(svc).createVatByName(bundleName, {
86
89
  ...defaultVatCreationOptions,
87
90
  name: vatName,
@@ -92,7 +95,6 @@ export const makeVatsFromBundles = async ({
92
95
  assert(bundleID);
93
96
  const bcap = await E(svc).getBundleCap(bundleID);
94
97
  /** @type {Promise<CreateVatResults>} */
95
- // @ts-expect-error XXX
96
98
  const vatInfo = E(svc).createVat(bcap, {
97
99
  ...defaultVatCreationOptions,
98
100
  name: vatName,
@@ -329,9 +331,7 @@ export const produceStartGovernedUpgradable = async ({
329
331
  harden(produceStartGovernedUpgradable);
330
332
 
331
333
  /**
332
- * @param {BootstrapPowers & {
333
- * consume: { loadCriticalVat: ERef<VatLoader<ZoeVat>> };
334
- * }} powers
334
+ * @param {BootstrapPowers} powers
335
335
  */
336
336
  export const buildZoe = async ({
337
337
  consume: { vatAdminSvc, loadCriticalVat, client },
@@ -360,9 +360,7 @@ export const buildZoe = async ({
360
360
  harden(buildZoe);
361
361
 
362
362
  /**
363
- * @param {BootstrapPowers & {
364
- * consume: { loadCriticalVat: ERef<VatLoader<PriceAuthorityVat>> };
365
- * }} powers
363
+ * @param {BootstrapPowers} powers
366
364
  */
367
365
  export const startPriceAuthorityRegistry = async ({
368
366
  consume: { loadCriticalVat, client },
@@ -418,9 +416,7 @@ harden(produceBoard);
418
416
 
419
417
  /**
420
418
  * @deprecated use produceBoard
421
- * @param {BootstrapPowers & {
422
- * consume: { loadCriticalVat: ERef<VatLoader<BoardVat>> };
423
- * }} powers
419
+ * @param {BootstrapPowers} powers
424
420
  */
425
421
  export const makeBoard = async ({
426
422
  consume: { loadCriticalVat, client },
@@ -607,9 +603,7 @@ harden(mintInitialSupply);
607
603
  /**
608
604
  * Add IST (with initialSupply payment), BLD (with mint) to BankManager.
609
605
  *
610
- * @param {BootstrapSpace & {
611
- * consume: { loadCriticalVat: ERef<VatLoader<BankVat>> };
612
- * }} powers
606
+ * @param {BootstrapSpace} powers
613
607
  */
614
608
  export const addBankAssets = async ({
615
609
  consume: {
@@ -656,10 +650,8 @@ export const addBankAssets = async ({
656
650
  const assetAdmin = E(agoricNamesAdmin).lookupAdmin('vbankAsset');
657
651
 
658
652
  const bridgeManager = await bridgeManagerP;
659
- /** @type {import('../types.js').ScopedBridgeManager<'bank'> | undefined} */
660
- // @ts-expect-error XXX EProxy
661
653
  const bankBridgeManager =
662
- bridgeManager && E(bridgeManager).register(BridgeId.BANK);
654
+ bridgeManager && makeScopedBridge(bridgeManager, BridgeId.BANK);
663
655
  const bankMgr = await E(E(loadCriticalVat)('bank')).makeBankManager(
664
656
  bankBridgeManager,
665
657
  assetAdmin,
@@ -1,32 +1,16 @@
1
1
  export namespace modules {
2
2
  let behaviors: {
3
3
  bridgeCoreEval: (allPowers: BootstrapPowers) => Promise<void>;
4
- makeProvisioner: ({ consume: { clientCreator, loadCriticalVat }, vats: { comms, vattp }, produce: { provisioning }, }: BootstrapPowers & {
5
- consume: {
6
- loadCriticalVat: ERef<VatLoader<ProvisioningVat>>;
7
- };
8
- }) => Promise<void>;
4
+ makeProvisioner: ({ consume: { clientCreator, loadCriticalVat }, vats: { comms, vattp }, produce: { provisioning }, }: BootstrapPowers) => Promise<void>;
9
5
  noProvisioner: ({ produce: { provisioning } }: BootstrapPowers) => Promise<void>;
10
6
  bridgeProvisioner: ({ consume: { provisioning: provisioningP, provisionBridgeManager: provisionBridgeManagerP, provisionWalletBridgeManager: provisionWalletBridgeManagerP, }, }: BootstrapPowers) => Promise<void>;
11
7
  setupClientManager: ({ produce: { client, clientCreator: clientCreatorP } }: BootstrapSpace, { template, }?: {
12
8
  template?: Record<string, unknown>;
13
9
  }) => Promise<void>;
14
10
  startTimerService: ({ devices: { timer: timerDevice }, vats: { timer: timerVat }, consume: { client }, produce: { chainTimerService: produceTimer }, brand: { produce: { timer }, }, }: BootstrapPowers) => Promise<void>;
15
- makeBridgeManager: ({ consume: { loadCriticalVat }, devices: { bridge }, produce: { bridgeManager: bridgeManagerP, provisionBridgeManager, provisionWalletBridgeManager, walletBridgeManager, }, }: BootDevices<ChainDevices> & BootstrapSpace & {
16
- consume: {
17
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
18
- };
19
- }) => Promise<void>;
20
- makeChainStorage: ({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP }, produce: { chainStorage: chainStorageP, storageBridgeManager: storageBridgeManagerP, }, }: BootstrapSpace & {
21
- consume: {
22
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
23
- };
24
- }) => Promise<void>;
25
- produceHighPrioritySendersManager: ({ consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP }, produce: { highPrioritySendersManager: managerP }, }: BootstrapSpace & {
26
- consume: {
27
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
28
- };
29
- }) => Promise<void>;
11
+ makeBridgeManager: ({ consume: { loadCriticalVat }, devices: { bridge }, produce: { bridgeManager: bridgeManagerP, provisionBridgeManager, provisionWalletBridgeManager, walletBridgeManager, }, }: BootDevices<ChainDevices> & BootstrapSpace) => Promise<void>;
12
+ makeChainStorage: ({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP }, produce: { chainStorage: chainStorageP, storageBridgeManager: storageBridgeManagerP, }, }: BootstrapSpace) => Promise<void>;
13
+ produceHighPrioritySendersManager: ({ consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP }, produce: { highPrioritySendersManager: managerP }, }: BootstrapSpace) => Promise<void>;
30
14
  publishAgoricNamesToChainStorage: ({ consume: { chainStorage: rootP }, namedVat: { consume: { agoricNames, board: vatBoard }, }, }: BootstrapPowers & NamedVatPowers) => Promise<void>;
31
15
  publishAgoricNames: ({ consume: { agoricNamesAdmin, board, chainStorage: rootP } }: BootstrapPowers, { options: { agoricNamesOptions } }?: {
32
16
  options?: {
@@ -36,7 +20,12 @@ export namespace modules {
36
20
  };
37
21
  }) => Promise<void>;
38
22
  connectChainFaucet: ({ consume: { client } }: BootstrapPowers) => Promise<void>;
39
- makeVatsFromBundles: ({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: BootstrapPowers & {}) => Promise<void>;
23
+ makeVatsFromBundles: ({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: BootstrapPowers & {
24
+ produce: {
25
+ loadVat: Producer<VatLoader>;
26
+ loadCriticalVat: Producer<VatLoader>;
27
+ };
28
+ }) => Promise<void>;
40
29
  produceDiagnostics: ({ produce }: Pick<ChainBootstrapSpace, "produce">) => Promise<void>;
41
30
  produceStartUpgradable: ({ zone, consume: { diagnostics, zoe }, produce, }: BootstrapSpace & {
42
31
  zone: import("@agoric/base-zone").Zone;
@@ -47,23 +36,11 @@ export namespace modules {
47
36
  economicCommitteeCreatorFacet: import("@agoric/inter-protocol/src/proposals/econ-behaviors.js").EconomyBootstrapPowers["consume"]["economicCommitteeCreatorFacet"];
48
37
  };
49
38
  }) => Promise<void>;
50
- buildZoe: ({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: BootstrapPowers & {
51
- consume: {
52
- loadCriticalVat: ERef<VatLoader<ZoeVat>>;
53
- };
54
- }) => Promise<void>;
55
- startPriceAuthorityRegistry: ({ consume: { loadCriticalVat, client }, produce, }: BootstrapPowers & {
56
- consume: {
57
- loadCriticalVat: ERef<VatLoader<PriceAuthorityVat>>;
58
- };
59
- }) => Promise<void>;
39
+ buildZoe: ({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: BootstrapPowers) => Promise<void>;
40
+ startPriceAuthorityRegistry: ({ consume: { loadCriticalVat, client }, produce, }: BootstrapPowers) => Promise<void>;
60
41
  makeOracleBrands: ({ namedVat: { consume: { agoricNames }, }, oracleBrand: { produce: { USD }, }, }: BootstrapPowers & NamedVatPowers) => Promise<void>;
61
42
  produceBoard: ({ consume: { client }, produce: { board: pBoard }, namedVat: { consume: { board: vatBoard }, }, }: BootstrapPowers & NamedVatPowers) => Promise<void>;
62
- makeBoard: ({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: BootstrapPowers & {
63
- consume: {
64
- loadCriticalVat: ERef<VatLoader<BoardVat>>;
65
- };
66
- }) => Promise<void>;
43
+ makeBoard: ({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: BootstrapPowers) => Promise<void>;
67
44
  produceNamesByAddress: ({ consume: { agoricNames, provisioning: provisioningOptP, client }, produce: { namesByAddress, namesByAddressAdmin }, }: BootstrapPowers) => Promise<void>;
68
45
  makeAddressNameHubs: ({ consume: { agoricNames: agoricNamesP, client }, produce, }: BootstrapSpace) => Promise<void>;
69
46
  makeClientBanks: ({ consume: { namesByAddressAdmin, client, bankManager, walletFactoryStartResult, }, }: BootstrapSpace) => Promise<void>;
@@ -86,11 +63,7 @@ export namespace modules {
86
63
  };
87
64
  };
88
65
  }) => Promise<void>;
89
- addBankAssets: ({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: BootstrapSpace & {
90
- consume: {
91
- loadCriticalVat: ERef<VatLoader<BankVat>>;
92
- };
93
- }) => Promise<void>;
66
+ addBankAssets: ({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: BootstrapSpace) => Promise<void>;
94
67
  };
95
68
  let utils: {
96
69
  agoricNamesReserved: { [P in keyof WellKnownName]: { [P2 in WellKnownName[P]]: string; }; };
@@ -218,5 +191,4 @@ export function buildRootObject(vatPowers: VatPowers & {
218
191
  snapshotStore: <K, V>(store: MapStore<K, V>) => [K, V][];
219
192
  }>;
220
193
  export type BootstrapModules = typeof modules;
221
- import * as basicBehaviorsPlus from './basic-behaviors.js';
222
194
  //# sourceMappingURL=boot-chain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boot-chain.d.ts","sourceRoot":"","sources":["boot-chain.js"],"names":[],"mappings":";;;;;;;;;;;oBAkDkwK,CAAC;;;;;;;;;;;;;;;;;;;;mBAA23O,CAAC;kCAA6B,CAAC;4BAAqB,CAAC;;;;;;;;yBAAzjT,mBAAc;;;yBAA0/G,mBAAc;;+CAA6D,OAAQ,wDAAwD,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAA47Q,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAAxsa,GAAG;;;;;;;;;4DAAilG,aAAa;;;;uDAAkpB,aAAa;;;;;;;;gCAA2xC,aAAa;qCAAyC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGAApoH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA/B1gH,iDAAiD;AAEjD,iEAAiD;AAc1C,2CATI,SAAS,GAAG;IACtB,CAAK,EAAE,MAAM,CAAC;IACd,MAAU,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CACvB,iBACO;IACV,qBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,WACO,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;GAc5C;+BA5Ba,OAAO,OAAO;oCAhBQ,sBAAsB"}
1
+ {"version":3,"file":"boot-chain.d.ts","sourceRoot":"","sources":["boot-chain.js"],"names":[],"mappings":";;;;;;;oBAkD2uK,CAAC;;;;;;;;mBAA07N,CAAC;kCAA6B,CAAC;4BAAqB,CAAC;;;;;;;;;;;;;yBAAjnS,mBAAc;;;yBAA0/G,mBAAc;;+CAA6D,OAAQ,wDAAwD,mCAAmC;;;;;;;;;;;;;;;2BAAguQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;qCAA59Z,GAAG;;;;;;;;;4DAAilG,aAAa;;;;uDAAkpB,aAAa;;;;;;;;gCAA2xC,aAAa;qCAAyC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGAApoH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA/B1gH,iDAAiD;AAEjD,iEAAiD;AAc1C,2CATI,SAAS,GAAG;IACtB,CAAK,EAAE,MAAM,CAAC;IACd,MAAU,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CACvB,iBACO;IACV,qBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,WACO,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;GAc5C;+BA5Ba,OAAO,OAAO"}
@@ -1,30 +1,14 @@
1
1
  export function bridgeCoreEval(allPowers: BootstrapPowers): Promise<void>;
2
- export function makeProvisioner({ consume: { clientCreator, loadCriticalVat }, vats: { comms, vattp }, produce: { provisioning }, }: BootstrapPowers & {
3
- consume: {
4
- loadCriticalVat: ERef<VatLoader<ProvisioningVat>>;
5
- };
6
- }): Promise<void>;
2
+ export function makeProvisioner({ consume: { clientCreator, loadCriticalVat }, vats: { comms, vattp }, produce: { provisioning }, }: BootstrapPowers): Promise<void>;
7
3
  export function noProvisioner({ produce: { provisioning } }: BootstrapPowers): Promise<void>;
8
4
  export function bridgeProvisioner({ consume: { provisioning: provisioningP, provisionBridgeManager: provisionBridgeManagerP, provisionWalletBridgeManager: provisionWalletBridgeManagerP, }, }: BootstrapPowers): Promise<void>;
9
5
  export function setupClientManager({ produce: { client, clientCreator: clientCreatorP } }: BootstrapSpace, { template, }?: {
10
6
  template?: Record<string, unknown>;
11
7
  }): Promise<void>;
12
8
  export function startTimerService({ devices: { timer: timerDevice }, vats: { timer: timerVat }, consume: { client }, produce: { chainTimerService: produceTimer }, brand: { produce: { timer }, }, }: BootstrapPowers): Promise<void>;
13
- export function makeBridgeManager({ consume: { loadCriticalVat }, devices: { bridge }, produce: { bridgeManager: bridgeManagerP, provisionBridgeManager, provisionWalletBridgeManager, walletBridgeManager, }, }: BootDevices<ChainDevices> & BootstrapSpace & {
14
- consume: {
15
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
16
- };
17
- }): Promise<void>;
18
- export function makeChainStorage({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP }, produce: { chainStorage: chainStorageP, storageBridgeManager: storageBridgeManagerP, }, }: BootstrapSpace & {
19
- consume: {
20
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
21
- };
22
- }): Promise<void>;
23
- export function produceHighPrioritySendersManager({ consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP }, produce: { highPrioritySendersManager: managerP }, }: BootstrapSpace & {
24
- consume: {
25
- loadCriticalVat: ERef<VatLoader<ChainStorageVat>>;
26
- };
27
- }): Promise<void>;
9
+ export function makeBridgeManager({ consume: { loadCriticalVat }, devices: { bridge }, produce: { bridgeManager: bridgeManagerP, provisionBridgeManager, provisionWalletBridgeManager, walletBridgeManager, }, }: BootDevices<ChainDevices> & BootstrapSpace): Promise<void>;
10
+ export function makeChainStorage({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP }, produce: { chainStorage: chainStorageP, storageBridgeManager: storageBridgeManagerP, }, }: BootstrapSpace): Promise<void>;
11
+ export function produceHighPrioritySendersManager({ consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP }, produce: { highPrioritySendersManager: managerP }, }: BootstrapSpace): Promise<void>;
28
12
  export function publishAgoricNamesToChainStorage({ consume: { chainStorage: rootP }, namedVat: { consume: { agoricNames, board: vatBoard }, }, }: BootstrapPowers & NamedVatPowers): Promise<void>;
29
13
  export function publishAgoricNames({ consume: { agoricNamesAdmin, board, chainStorage: rootP } }: BootstrapPowers, { options: { agoricNamesOptions } }?: {
30
14
  options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"chain-behaviors.d.ts","sourceRoot":"","sources":["chain-behaviors.js"],"names":[],"mappings":"AA6BO,0CAFI,eAAe,iBAgFzB;AAQM,qIAJI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CAAC;CAChE,iBAUH;AAIM,6DADK,eAAe,iBAG1B;AAIM,gMADK,eAAe,iBAuD1B;AAcM,2FAHI,cAAc,kBACd;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,iBAqFhD;AAIM,sMADK,eAAe,iBAc1B;AASM,kNALI,WAAW,CAAC,YAAY,CAAC,GACnC,cAAkB,GAAG;IACrB,OAAa,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CAAC;CAChE,iBAmCL;AAQM,2LAJI,cAAc,GAAG;IAC3B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CAAC;CAChE,iBA8BH;AAOM,qLAJI,cAAc,GAAG;IAC3B,OAAW,EAAE;QAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CAAC;CAChE,iBAqCH;AAGM,kJADK,eAAe,GAAG,cAAc,iBAkB3C;AAaM,kGATI,eAAe,wCACf;IACV,OAAW,CAAC,EAAE;QACd,kBAAwB,CAAC,EAAE;YAC3B,QAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,CAAC;CACH,iBAkCH;AAOM,4DAFI,eAAe,iBAMzB;AAGD,wDAAwD;AACxD,8CADW,OAAO,eAAe,EAAE,iBAAiB,CA2ElD;AAGF,wDAAwD;AACxD,uCADW,OAAO,eAAe,EAAE,iBAAiB,CASjD"}
1
+ {"version":3,"file":"chain-behaviors.d.ts","sourceRoot":"","sources":["chain-behaviors.js"],"names":[],"mappings":"AA8BO,0CAFI,eAAe,iBAgFzB;AAMM,qIAFI,eAAe,iBAUzB;AAIM,6DADK,eAAe,iBAG1B;AAIM,gMADK,eAAe,iBAuD1B;AAcM,2FAHI,cAAc,kBACd;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,iBAqFhD;AAIM,sMADK,eAAe,iBAc1B;AAMM,kNAFI,WAAW,CAAC,YAAY,CAAC,GAAG,cAAc,iBAkCpD;AAMM,2LAFI,cAAc,iBA8BxB;AAKM,qLAFI,cAAc,iBAqCxB;AAGM,kJADK,eAAe,GAAG,cAAc,iBAkB3C;AAaM,kGATI,eAAe,wCACf;IACV,OAAW,CAAC,EAAE;QACd,kBAAwB,CAAC,EAAE;YAC3B,QAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,CAAC;CACH,iBAkCH;AAOM,4DAFI,eAAe,iBAMzB;AAGD,wDAAwD;AACxD,8CADW,OAAO,eAAe,EAAE,iBAAiB,CA2ElD;AAGF,wDAAwD;AACxD,uCADW,OAAO,eAAe,EAAE,iBAAiB,CASjD"}
@@ -16,6 +16,7 @@ import { makePromiseKit } from '@endo/promise-kit';
16
16
  import { PowerFlags } from '../walletFlags.js';
17
17
  import { BASIC_BOOTSTRAP_PERMITS } from './basic-behaviors.js';
18
18
  import { agoricNamesReserved, callProperties, extractPowers } from './utils.js';
19
+ import { makeScopedBridge } from '../bridge.js';
19
20
 
20
21
  const { Fail } = assert;
21
22
  const { keys } = Object;
@@ -104,14 +105,12 @@ export const bridgeCoreEval = async allPowers => {
104
105
  // Not running with a bridge.
105
106
  return;
106
107
  }
107
- await E(bridgeManager).register(BRIDGE_ID.CORE, handler);
108
+ await makeScopedBridge(bridgeManager, BRIDGE_ID.CORE, handler);
108
109
  };
109
110
  harden(bridgeCoreEval);
110
111
 
111
112
  /**
112
- * @param {BootstrapPowers & {
113
- * consume: { loadCriticalVat: ERef<VatLoader<ProvisioningVat>> };
114
- * }} powers
113
+ * @param {BootstrapPowers} powers
115
114
  */
116
115
  export const makeProvisioner = async ({
117
116
  consume: { clientCreator, loadCriticalVat },
@@ -303,10 +302,7 @@ export const startTimerService = async ({
303
302
  harden(startTimerService);
304
303
 
305
304
  /**
306
- * @param {BootDevices<ChainDevices> &
307
- * BootstrapSpace & {
308
- * consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> };
309
- * }} powers
305
+ * @param {BootDevices<ChainDevices> & BootstrapSpace} powers
310
306
  */
311
307
  export const makeBridgeManager = async ({
312
308
  consume: { loadCriticalVat },
@@ -332,22 +328,19 @@ export const makeBridgeManager = async ({
332
328
  const bridgeManager = E(vat).provideManagerForBridge(bridge);
333
329
  bridgeManagerP.resolve(bridgeManager);
334
330
  provisionBridgeManager.resolve(
335
- // @ts-expect-error XXX EProxy
336
- E(bridgeManager).register(BRIDGE_ID.PROVISION),
331
+ makeScopedBridge(bridgeManager, BRIDGE_ID.PROVISION),
337
332
  );
338
333
  provisionWalletBridgeManager.resolve(
339
- // @ts-expect-error XXX EProxy
340
- E(bridgeManager).register(BRIDGE_ID.PROVISION_SMART_WALLET),
334
+ makeScopedBridge(bridgeManager, BRIDGE_ID.PROVISION_SMART_WALLET),
335
+ );
336
+ walletBridgeManager.resolve(
337
+ makeScopedBridge(bridgeManager, BRIDGE_ID.WALLET),
341
338
  );
342
- // @ts-expect-error XXX EProxy
343
- walletBridgeManager.resolve(E(bridgeManager).register(BRIDGE_ID.WALLET));
344
339
  };
345
340
  harden(makeBridgeManager);
346
341
 
347
342
  /**
348
- * @param {BootstrapSpace & {
349
- * consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> };
350
- * }} powers
343
+ * @param {BootstrapSpace} powers
351
344
  */
352
345
  export const makeChainStorage = async ({
353
346
  consume: { loadCriticalVat, bridgeManager: bridgeManagerP },
@@ -360,14 +353,14 @@ export const makeChainStorage = async ({
360
353
  if (!bridgeManager) {
361
354
  console.warn('Cannot support chainStorage without an actual chain.');
362
355
  chainStorageP.resolve(null);
363
- // @ts-expect-error expects value or undefined
364
- storageBridgeManagerP.resolve(null);
356
+ storageBridgeManagerP.resolve(undefined);
365
357
  return;
366
358
  }
367
359
 
368
- /** @type {import('../types.js').ScopedBridgeManager<'storage'>} */
369
- // @ts-expect-error XXX EProxy
370
- const storageBridgeManager = E(bridgeManager).register(BRIDGE_ID.STORAGE);
360
+ const storageBridgeManager = makeScopedBridge(
361
+ bridgeManager,
362
+ BRIDGE_ID.STORAGE,
363
+ );
371
364
  storageBridgeManagerP.resolve(storageBridgeManager);
372
365
 
373
366
  const vat = E(loadCriticalVat)('bridge');
@@ -380,9 +373,7 @@ export const makeChainStorage = async ({
380
373
  };
381
374
 
382
375
  /**
383
- * @param {BootstrapSpace & {
384
- * consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> };
385
- * }} powers
376
+ * @param {BootstrapSpace} powers
386
377
  */
387
378
  export const produceHighPrioritySendersManager = async ({
388
379
  consume: { loadCriticalVat, storageBridgeManager: storageBridgeManagerP },
@@ -39,11 +39,7 @@ export const AMMDemoState: Record<string, {
39
39
  collateral: bigint;
40
40
  }[];
41
41
  }>;
42
- export function connectFaucet({ consume: { bankManager, bldIssuerKit: bldP, client, feeMintAccess, loadVat, zoe, }, installation: { consume: { centralSupply: centralSupplyInstall }, }, produce: { mints }, }: BootstrapSpace & {
43
- consume: {
44
- loadVat: VatLoader<MintsVat>;
45
- };
46
- }): Promise<void>;
42
+ export function connectFaucet({ consume: { bankManager, bldIssuerKit: bldP, client, feeMintAccess, loadVat, zoe, }, installation: { consume: { centralSupply: centralSupplyInstall }, }, produce: { mints }, }: BootstrapSpace): Promise<void>;
47
43
  export function ammPoolRunDeposits(issuers: typeof AMMDemoState): {
48
44
  ammTotal: bigint;
49
45
  balances: {
@@ -1 +1 @@
1
- {"version":3,"file":"demoIssuers.d.ts","sourceRoot":"","sources":["demoIssuers.js"],"names":[],"mappings":"AAeA,qCAAqC;AACrC,4BADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU/B;AA0CK,2BAHI,MAAM,OACN,MAAM,UAQhB;AAEM,0CAC+C;AAC/C;;;WAIN;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,2BAhBU,MAAM,CACf,MAAU,EACV;IACA,MAAY,CAAC,EAAE;QACf,eAAuB,EAAE,MAAM,CAAC;QAChC,aAAqB,EAAE,QAAQ,CAAC;QAChC,iBAAyB,EAAE,QAAQ,CAAC;QACpC,kBAA0B,EAAE,QAAQ,CAAC;QACrC,YAAoB,EAAE,QAAQ,CAAC;QAC/B,OAAe,EAAE,QAAQ,CAAC;QAC1B,kBAA0B,CAAC,EAAE,QAAQ,CAAC;KAC/B,CAAC;IACR,MAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD,CACF,CAqEF;AAsDK,gNAXI,cAAc,GAAG;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;CAAE,iBAiIxE;AAQM,4CAFI,OAAO,YAAY;;;;;EAgC7B;AAOM,0DAJI,OAAO,YACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WACtB;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE;;;;;GA4BhD;AAQM,sCALI,MAAM,UACN,CAAC,OAAO,YAAY,EAAE,MAAM,CAAC,QAC7B,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,WACtD;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;CAAE;;;;;;;;;;;;EAoC9D;uBAjXY,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gCAkIzB;IACZ,MAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,aAAiB,EAAE,MAAM,CAAC;IAC1B,OAAW,EAAE,OAAO,CAAC;IACrB,KAAS,EAAE,KAAK,CAAC;IACjB,YAAgB,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"demoIssuers.d.ts","sourceRoot":"","sources":["demoIssuers.js"],"names":[],"mappings":"AAeA,qCAAqC;AACrC,4BADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU/B;AA0CK,2BAHI,MAAM,OACN,MAAM,UAQhB;AAEM,0CAC+C;AAC/C;;;WAIN;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,2BAhBU,MAAM,CACf,MAAU,EACV;IACA,MAAY,CAAC,EAAE;QACf,eAAuB,EAAE,MAAM,CAAC;QAChC,aAAqB,EAAE,QAAQ,CAAC;QAChC,iBAAyB,EAAE,QAAQ,CAAC;QACpC,kBAA0B,EAAE,QAAQ,CAAC;QACrC,YAAoB,EAAE,QAAQ,CAAC;QAC/B,OAAe,EAAE,QAAQ,CAAC;QAC1B,kBAA0B,CAAC,EAAE,QAAQ,CAAC;KAC/B,CAAC;IACR,MAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD,CACF,CAqEF;AAqDK,gNAVI,cAAc,iBAgIxB;AAQM,4CAFI,OAAO,YAAY;;;;;EAgC7B;AAOM,0DAJI,OAAO,YACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WACtB;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE;;;;;GA4BhD;AAQM,sCALI,MAAM,UACN,CAAC,OAAO,YAAY,EAAE,MAAM,CAAC,QAC7B,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,WACtD;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;CAAE;;;;;;;;;;;;EAoC9D;uBAhXY,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gCAiIzB;IACZ,MAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,aAAiB,EAAE,MAAM,CAAC;IAC1B,OAAW,EAAE,OAAO,CAAC;IACrB,KAAS,EAAE,KAAK,CAAC;IACjB,YAAgB,EAAE,MAAM,CAAC;CACtB"}
@@ -209,7 +209,7 @@ const mintRunPayment = async (
209
209
 
210
210
  /**
211
211
  * @param {string} name
212
- * @param {MintsVat} mints
212
+ * @param {ERef<MintsVat>} mints
213
213
  */
214
214
  const provideCoin = async (name, mints) => {
215
215
  return E(mints).provideIssuerKit(name, AssetKind.NAT, {
@@ -218,8 +218,7 @@ const provideCoin = async (name, mints) => {
218
218
  };
219
219
 
220
220
  /**
221
- * @param {BootstrapSpace & { consume: { loadVat: VatLoader<MintsVat> } }} powers
222
- * TODO: sync this type with end-user docs?
221
+ * @param {BootstrapSpace} powers TODO: sync this type with end-user docs?
223
222
  *
224
223
  * @typedef {{
225
224
  * issuer: ERef<Issuer>;
@@ -109,7 +109,10 @@ type Producer<T> = {
109
109
  };
110
110
 
111
111
  type VatSourceRef = { bundleName?: string; bundleID?: string };
112
- type VatLoader<T> = (name: string, sourceRef?: VatSourceRef) => T;
112
+ type VatLoader<Names extends string = keyof WellKnownVats> = <N extends Names>(
113
+ name: N,
114
+ sourceRef?: VatSourceRef,
115
+ ) => Promise<Awaited<WellKnownVats[N]>>;
113
116
 
114
117
  /** callback to assign a property onto the `home` object of the client */
115
118
  type PropertyMaker = (addr: string, flags: string[]) => Record<string, unknown>;
@@ -435,13 +438,21 @@ type BootstrapSpace = WellKnownSpaces &
435
438
  ChainBootstrapSpaceT & {
436
439
  vatAdminSvc: VatAdminSvc;
437
440
  },
438
- {},
439
441
  {
440
- loadVat: VatLoader<unknown>;
441
- loadCriticalVat: VatLoader<unknown>;
442
- }
442
+ loadVat: VatLoader;
443
+ loadCriticalVat: VatLoader;
444
+ },
445
+ {}
443
446
  >;
444
447
 
448
+ type LocalChainVat = ERef<
449
+ ReturnType<typeof import('../vat-localchain.js').buildRootObject>
450
+ >;
451
+
452
+ type TransferVat = ERef<
453
+ ReturnType<typeof import('../vat-transfer.js').buildRootObject>
454
+ >;
455
+
445
456
  type ProvisioningVat = ERef<
446
457
  ReturnType<typeof import('../vat-provisioning.js').buildRootObject>
447
458
  >;
@@ -465,6 +476,9 @@ type NamedVatPowers = {
465
476
  }>;
466
477
  };
467
478
 
479
+ type OrchestrationVat = ERef<import('@agoric/orchestration').OrchestrationVat>;
480
+ type ZoeVat = ERef<import('../vat-zoe.js').ZoeVat>;
481
+
468
482
  type RemoteIssuerKit = {
469
483
  mint: ERef<Mint>;
470
484
  issuer: ERef<Issuer>;
@@ -507,3 +521,18 @@ type HttpVat = ERef<
507
521
  type UploadsVat = ERef<
508
522
  ReturnType<typeof import('@agoric/solo/src/vat-uploads.js').buildRootObject>
509
523
  >;
524
+
525
+ type WellKnownVats = SwingsetVats & {
526
+ bank: BankVat;
527
+ board: BoardVat;
528
+ bridge: ChainStorageVat;
529
+ ibc: IBCVat;
530
+ localchain: LocalChainVat;
531
+ mints: MintsVat;
532
+ network: NetworkVat;
533
+ orchestration: OrchestrationVat;
534
+ priceAuthority: PriceAuthorityVat;
535
+ provisioning: ProvisioningVat;
536
+ transfer: TransferVat;
537
+ zoe: ZoeVat;
538
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,kCAJU,GACJ,CAAwB,IAAnB,MAAM,aAAa,GAAG,GAAG,EAAsB,IAAhB,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAE,GACjE,CA+DD;AAEH,8BAA8B;AAC9B,8BADW,eAAe,CAKxB;AAQK,gCAHI,MAAM,8BACN;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAA;CAAE,iBAK5D;AAQM,yCAJI,CAAC,CAAC,GAAG,IAAI,KAAA,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WACrC,OAAO,EAAA,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG0B;AAWvD,kCALI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAEnC,OAAO,oCAkCjB;AAQM,sCAJI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAEnC,OAAO,OAYjB;AAUM,oFALJ;IAAsB,SAAS,EAAvB,OAAO;IACuB,SAAS,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACuB,QAAQ,EAAtD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC0B,UAAU,EAA3E,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO;CACpE,kBAuBA;AASM,sDAHI,IAAI,CAAC,OAAO,aAAa,EAAE,SAAS,CAAC;;;4CAyB/C;AAOM,iDAJI,IAAI,CAAC,OAAO,aAAa,EAAE,SAAS,CAAC;;;uEAsB/C;AAoBM;;;0BAXI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAKrC,OAAO,CAAC;IACpB,WAAe,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;IAC/C,gBAAoB,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;IACtD,MAAU,EAAE,eAAe,CAAC;CACzB,CAAC,CAsBJ;AAMM,mDAFI,MAAM;;;EAgBhB;AAYM,kCAPI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAC/D,OAAO,mBACG,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFA5KtB,WAGX;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8NC;uBA1Da,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;sCAOb,sBAAsB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,kCAJU,GACJ,CAAwB,IAAnB,MAAM,aAAa,GAAG,GAAG,EAAsB,IAAhB,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAE,GACjE,CA+DD;AAEH,8BAA8B;AAC9B,8BADW,eAAe,CAKxB;AAQK,gCAHI,MAAM,8BACN;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAA;CAAE,iBAK5D;AAQM,yCAJI,CAAC,CAAC,GAAG,IAAI,KAAA,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WACrC,OAAO,EAAA,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG0B;AAWvD,kCALI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAEnC,OAAO,oCAkCjB;AAQM,sCAJI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAEnC,OAAO,OAYjB;AAUM,oFALJ;IAAsB,SAAS,EAAvB,OAAO;IACuB,SAAS,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACuB,QAAQ,EAAtD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC0B,UAAU,EAA3E,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO;CACpE,kBAuBA;AASM,sDAHI,IAAI,CAAC,OAAO,aAAa,EAAE,SAAS,CAAC;;;4CAyB/C;AAOM,iDAJI,IAAI,CAAC,OAAO,aAAa,EAAE,SAAS,CAAC;;;uEAsB/C;AAoBM;;;0BAXI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAKrC,OAAO,CAAC;IACpB,WAAe,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;IAC/C,gBAAoB,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;IACtD,MAAU,EAAE,eAAe,CAAC;CACzB,CAAC,CAsBJ;AAMM,mDAFI,MAAM;;;EAgBhB;AAYM,kCAPI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAC/D,OAAO,mBACG,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFA5KtB,WAGX;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6NC;uBAzDa,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;sCAOb,sBAAsB"}
package/src/core/utils.js CHANGED
@@ -363,7 +363,6 @@ export const makeVatSpace = (
363
363
  {
364
364
  get: (_target, name, _rx) => {
365
365
  assert.typeof(name, 'string');
366
- // @ts-expect-error XXX
367
366
  return provideAsync(name, createVatByName).then(vat => {
368
367
  if (!durableStore.has(name)) {
369
368
  durableStore.init(name, vat);
@@ -1,6 +1,5 @@
1
1
  export function setupLocalChainVat({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP, localchainBridgeManager: localchainBridgeManagerP, bankManager, transferMiddleware, }, produce: { localchainVat, localchain, localchainBridgeManager }, }: BootstrapPowers & {
2
2
  consume: {
3
- loadCriticalVat: VatLoader<any>;
4
3
  bridgeManager: import("../types").BridgeManager;
5
4
  localchainBridgeManager: import("../types").ScopedBridgeManager<"vlocalchain">;
6
5
  bankManager: Promise<import("../vat-bank.js").BankManager>;
@@ -1 +1 @@
1
- {"version":3,"file":"localchain-proposal.d.ts","sourceRoot":"","sources":["localchain-proposal.js"],"names":[],"mappings":"AA0BO,2PArBI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,eAAqB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACtC,aAAmB,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;QACtD,uBAA6B,EAAE,OAAO,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACrF,WAAiB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACjE,kBAAwB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;KAC1E,CAAC;IACN,OAAW,EAAE;QACb,UAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,aAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,uBAA6B,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;KACxC,CAAC;CACH,WAED;IAAiD,OAAO,EAAhD;QAAE,aAAa,EAAE,YAAY,CAAA;KAAE;CAEvC,iBA4DF;AAUM,2EAPI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,UAAgB,EAAE,OAAO,kBAAkB,EAAE,UAAU,CAAC;KACnD,CAAC;CACH,YACO,MAAM,iBAOhB;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BL;6BAxGW;IACZ,UAAc,EAAE,IAAI,CAAC,OAAO,sBAAsB,EAAE,aAAa,CAAC,CAAC;CAChE"}
1
+ {"version":3,"file":"localchain-proposal.d.ts","sourceRoot":"","sources":["localchain-proposal.js"],"names":[],"mappings":"AA0BO,2PApBI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,aAAmB,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;QACtD,uBAA6B,EAAE,OAAO,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACrF,WAAiB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACjE,kBAAwB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;KAC1E,CAAC;IACN,OAAW,EAAE;QACb,UAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,aAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,uBAA6B,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;KACxC,CAAC;CACH,WAED;IAAiD,OAAO,EAAhD;QAAE,aAAa,EAAE,YAAY,CAAA;KAAE;CAEvC,iBA6DF;AAUM,2EAPI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,UAAgB,EAAE,OAAO,kBAAkB,EAAE,UAAU,CAAC;KACnD,CAAC;CACH,YACO,MAAM,iBAOhB;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BL;6BAzGW;IACZ,UAAc,EAAE,IAAI,CAAC,OAAO,sBAAsB,EAAE,aAAa,CAAC,CAAC;CAChE"}
@@ -1,11 +1,11 @@
1
1
  // @ts-check
2
2
  import { E } from '@endo/far';
3
3
  import { BridgeId as BRIDGE_ID } from '@agoric/internal';
4
+ import { makeScopedBridge } from '../bridge.js';
4
5
 
5
6
  /**
6
7
  * @param {BootstrapPowers & {
7
8
  * consume: {
8
- * loadCriticalVat: VatLoader<any>;
9
9
  * bridgeManager: import('../types').BridgeManager;
10
10
  * localchainBridgeManager: import('../types').ScopedBridgeManager<'vlocalchain'>;
11
11
  * bankManager: Promise<import('../vat-bank.js').BankManager>;
@@ -58,9 +58,10 @@ export const setupLocalChainVat = async (
58
58
  /** @type {import('../types').ScopedBridgeManager<'vlocalchain'>} */
59
59
  let scopedManager;
60
60
  try {
61
- /** @type {import('../types.js').ScopedBridgeManager<'vlocalchain'>} */
62
- // @ts-expect-error XXX EProxy
63
- scopedManager = await E(bridgeManager).register(BRIDGE_ID.VLOCALCHAIN);
61
+ scopedManager = await makeScopedBridge(
62
+ bridgeManager,
63
+ BRIDGE_ID.VLOCALCHAIN,
64
+ );
64
65
  localchainBridgeManager.reset();
65
66
  localchainBridgeManager.resolve(scopedManager);
66
67
  } catch (e) {
@@ -1,8 +1,5 @@
1
1
  export function registerNetworkProtocols(vats: SoloVats | NetVats, dibcBridgeManager?: globalThis.ERef<import("../types.js").ScopedBridgeManager<"dibc">> | undefined): Promise<void>;
2
2
  export function setupNetworkProtocols({ consume: { client, loadCriticalVat, bridgeManager: bridgeManagerP, provisioning, vatUpgradeInfo: vatUpgradeInfoP, }, produce: { portAllocator, vatUpgradeInfo: produceVatUpgradeInfo }, }: BootstrapPowers & {
3
- consume: {
4
- loadCriticalVat: VatLoader<any>;
5
- };
6
3
  produce: {
7
4
  portAllocator: Producer<any>;
8
5
  };
@@ -38,23 +35,6 @@ export function getManifestForNetwork(_powers: any, { networkRef, ibcRef }: {
38
35
  ibcRef: any;
39
36
  };
40
37
  };
41
- /**
42
- * Create the network and IBC vats; produce `portAllocator` in the core /
43
- * bootstrap space.
44
- *
45
- * The `portAllocator` is CLOSELY HELD in the core space, where later, we claim
46
- * ports using `E(portAllocator).allocateCustomIBCPort`, for example.
47
- *
48
- * Contracts are expected to use the services of the network and IBC vats by way
49
- * of such ports.
50
- *
51
- * Testing facilities include:
52
- *
53
- * - loopback ports: `E(portAllocator).allocateCustomLocalPort()`
54
- * - an echo port: `E(portAllocator).allocateCustomIBCPort("echo")`
55
- * - echo port addrees: /ibc-port/custom-echo
56
- */
57
- export type VatLoader2 = ((name: "network") => NetworkVat) & ((name: "ibc") => IBCVat);
58
38
  /**
59
39
  * Create the network and IBC vats; produce `portAllocator` in the core /
60
40
  * bootstrap space.
@@ -1 +1 @@
1
- {"version":3,"file":"network-proposal.d.ts","sourceRoot":"","sources":["network-proposal.js"],"names":[],"mappings":"AA0BO,+CAHI,QAAQ,GAAG,OAAO,qHAuC5B;AAmCM,mOAjBI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACjD,OAAW,EAAE;QAAE,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;CAC3C,WAED;IAAoE,OAAO,EAAnE;QAAE,UAAU,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE;CAG1D,iBAgFF;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;EAsBL;;;;;;;;;;;;;;;;;yBAxGW,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;;;;;;;;;;;;;;;;;sBAG7D;IACZ,OAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,YAAgB,EAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"network-proposal.d.ts","sourceRoot":"","sources":["network-proposal.js"],"names":[],"mappings":"AA2BO,+CAHI,QAAQ,GAAG,OAAO,qHAuC5B;AA8BM,mOAZI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;CAC3C,WAED;IAAoE,OAAO,EAAnE;QAAE,UAAU,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE;CAE1D,iBA2EF;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;EAsBL;;;;;;;;;;;;;;;;;sBAnGW;IACZ,OAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,YAAgB,EAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CACjD"}
@@ -10,6 +10,7 @@ import { makeScalarBigMapStore } from '@agoric/vat-data';
10
10
  // Heap-based vow resolution is used for this module because the
11
11
  // bootstrap vat can't yet be upgraded.
12
12
  import { heapVowTools } from '@agoric/vow/vat.js';
13
+ import { makeScopedBridge } from '../bridge.js';
13
14
 
14
15
  const { when } = heapVowTools;
15
16
 
@@ -79,15 +80,10 @@ export const registerNetworkProtocols = async (vats, dibcBridgeManager) => {
79
80
  * - echo port addrees: /ibc-port/custom-echo
80
81
  *
81
82
  * @param {BootstrapPowers & {
82
- * consume: { loadCriticalVat: VatLoader<any> };
83
83
  * produce: { portAllocator: Producer<any> };
84
84
  * }} powers
85
85
  * @param {object} options
86
86
  * @param {{ networkRef: VatSourceRef; ibcRef: VatSourceRef }} options.options
87
- * // TODO: why doesn't overloading VatLoader work???
88
- *
89
- * @typedef {((name: 'network') => NetworkVat) & ((name: 'ibc') => IBCVat)} VatLoader2
90
- *
91
87
  *
92
88
  * @typedef {{
93
89
  * network: ERef<NetworkVat>;
@@ -133,10 +129,8 @@ export const setupNetworkProtocols = async (
133
129
  const allocator = await portAllocatorP;
134
130
 
135
131
  const bridgeManager = await bridgeManagerP;
136
- /** @type {import('../types.js').ScopedBridgeManager<'dibc'> | undefined} */
137
- // @ts-expect-error XXX EProxy
138
132
  const dibcBridgeManager =
139
- bridgeManager && E(bridgeManager).register(BRIDGE_ID.DIBC);
133
+ bridgeManager && makeScopedBridge(bridgeManager, BRIDGE_ID.DIBC);
140
134
 
141
135
  // The Interchain Account (ICA) Controller must be bound to a port that starts
142
136
  // with 'icacontroller', so we provide one such port to each client.
@@ -1,6 +1,5 @@
1
1
  export function setupTransferMiddleware({ consume: { loadCriticalVat, bridgeManager: bridgeManagerP, vtransferBridgeManager: vtransferBridgeManagerP, }, produce: { transferMiddleware: produceTransferMiddleware, transferVat: produceTransferVat, vtransferBridgeManager: produceVtransferBridgeManager, }, }: BootstrapPowers & {
2
2
  consume: {
3
- loadCriticalVat: VatLoader<any>;
4
3
  bridgeManager: import("../types").BridgeManager;
5
4
  vtransferBridgeManager: import("../types").ScopedBridgeManager<"vtransfer">;
6
5
  };
@@ -35,7 +34,4 @@ export function getManifestForTransfer(_powers: any, { transferRef }: {
35
34
  transferRef: any;
36
35
  };
37
36
  };
38
- export type TransferVats = {
39
- transfer: ERef<import("../vat-transfer.js").TransferVat>;
40
- };
41
37
  //# sourceMappingURL=transfer-proposal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-proposal.d.ts","sourceRoot":"","sources":["transfer-proposal.js"],"names":[],"mappings":"AAwBO,iTAnBI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,eAAqB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACtC,aAAmB,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;QACtD,sBAA4B,EAAE,OAAO,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;KAC7E,CAAC;IACN,OAAW,EAAE;QACb,kBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,WAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,sBAA4B,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvC,CAAC;CACH,WAED;IAA+C,OAAO,EAA9C;QAAE,WAAW,EAAE,YAAY,CAAA;KAAE;CAErC,iBA+EF;AAEM;;;;;;;;;;;;;;;;;;;;EAkBL;2BAnGW;IACZ,QAAY,EAAE,IAAI,CAAC,OAAO,oBAAoB,EAAE,WAAW,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"transfer-proposal.d.ts","sourceRoot":"","sources":["transfer-proposal.js"],"names":[],"mappings":"AAoBO,iTAdI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,aAAmB,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;QACtD,sBAA4B,EAAE,OAAO,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;KAC7E,CAAC;IACN,OAAW,EAAE;QACb,kBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,WAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,sBAA4B,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvC,CAAC;CACH,WAED;IAA+C,OAAO,EAA9C;QAAE,WAAW,EAAE,YAAY,CAAA;KAAE;CACvC,iBA2EA;AAEM;;;;;;;;;;;;;;;;;;;;EAkBL"}
@@ -1,11 +1,11 @@
1
1
  // @ts-check
2
2
  import { E } from '@endo/far';
3
3
  import { BridgeId as BRIDGE_ID, VTRANSFER_IBC_EVENT } from '@agoric/internal';
4
+ import { makeScopedBridge } from '../bridge.js';
4
5
 
5
6
  /**
6
7
  * @param {BootstrapPowers & {
7
8
  * consume: {
8
- * loadCriticalVat: VatLoader<any>;
9
9
  * bridgeManager: import('../types').BridgeManager;
10
10
  * vtransferBridgeManager: import('../types').ScopedBridgeManager<'vtransfer'>;
11
11
  * };
@@ -17,10 +17,6 @@ import { BridgeId as BRIDGE_ID, VTRANSFER_IBC_EVENT } from '@agoric/internal';
17
17
  * }} powers
18
18
  * @param {object} options
19
19
  * @param {{ transferRef: VatSourceRef }} options.options
20
- *
21
- * @typedef {{
22
- * transfer: ERef<import('../vat-transfer.js').TransferVat>;
23
- * }} TransferVats
24
20
  */
25
21
  export const setupTransferMiddleware = async (
26
22
  {
@@ -44,7 +40,6 @@ export const setupTransferMiddleware = async (
44
40
  }
45
41
 
46
42
  const { transferRef } = options.options;
47
- /** @type {TransferVats} */
48
43
  const vats = {
49
44
  transfer: E(loadCriticalVat)('transfer', transferRef),
50
45
  };
@@ -73,7 +68,7 @@ export const setupTransferMiddleware = async (
73
68
  /** @type {Awaited<ReturnType<typeof provideBridgeTargetKit>>} */
74
69
  let bridgeTargetKit;
75
70
  try {
76
- const vtransferBridge = await E(bridgeManager).register(vtransferID);
71
+ const vtransferBridge = await makeScopedBridge(bridgeManager, vtransferID);
77
72
  produceVtransferBridgeManager.reset();
78
73
  produceVtransferBridgeManager.resolve(vtransferBridge);
79
74
  bridgeTargetKit = await provideBridgeTargetKit(vtransferBridge);
package/src/types.d.ts CHANGED
@@ -114,7 +114,7 @@ export type ScopedBridgeManager<BridgeId extends BridgeIdValue> = Guarded<{
114
114
  export type BridgeManager = {
115
115
  register: <BridgeId extends BridgeIdValue>(
116
116
  bridgeId: BridgeId,
117
- handler?: Remote<BridgeHandler | undefined>,
117
+ handler?: Remote<BridgeHandler>,
118
118
  ) => ScopedBridgeManager<BridgeId>;
119
119
  };
120
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"vat-bridge.d.ts","sourceRoot":"","sources":["vat-bridge.js"],"names":[],"mappings":"AAOA;yDAea,IAAI,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,YACzD,MAAM,YACN,MAAM;;;;oBA0BwwJ,CAAC;;;;oEAA5wB,YAAY;;yDA5B/gI,IAAI,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,YACzD,MAAM,YACN,MAAM;;;;oBA0BwwJ,CAAC;;;;;GAD3xJ"}
1
+ {"version":3,"file":"vat-bridge.d.ts","sourceRoot":"","sources":["vat-bridge.js"],"names":[],"mappings":"AAOA;yDAea,IAAI,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,YACzD,MAAM,YACN,MAAM;;;;oBA0BwwJ,CAAC;;;;oEAA4H,YAAY;;yDA5Bv5J,IAAI,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,YACzD,MAAM,YACN,MAAM;;;;oBA0BwwJ,CAAC;;;;;GAD3xJ"}
package/src/vat-zoe.d.ts CHANGED
@@ -11,4 +11,5 @@ export function buildRootObject(vatPowers: any, _vatParams: any, zoeBaggage: any
11
11
  }>;
12
12
  getZoeConfigFacet: () => any;
13
13
  }>;
14
+ export type ZoeVat = ReturnType<typeof buildRootObject>;
14
15
  //# sourceMappingURL=vat-zoe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vat-zoe.d.ts","sourceRoot":"","sources":["vat-zoe.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAgDC"}
1
+ {"version":3,"file":"vat-zoe.d.ts","sourceRoot":"","sources":["vat-zoe.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAgDC;qBAEa,UAAU,CAAC,OAAO,eAAe,CAAC"}
package/src/vat-zoe.js CHANGED
@@ -52,3 +52,5 @@ export function buildRootObject(vatPowers, _vatParams, zoeBaggage) {
52
52
  getZoeConfigFacet: () => zoeConfigFacet,
53
53
  });
54
54
  }
55
+
56
+ /** @typedef {ReturnType<typeof buildRootObject>} ZoeVat */