@agoric/vats 0.16.0-u18.3 → 0.16.0-u18.5

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 (83) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.json +29 -29
  3. package/scripts/build-bundles.d.ts +3 -0
  4. package/scripts/build-bundles.d.ts.map +1 -0
  5. package/src/bridge-target.d.ts +4 -4
  6. package/src/bridge-target.d.ts.map +1 -1
  7. package/src/bridge.d.ts +1 -1
  8. package/src/bridge.d.ts.map +1 -1
  9. package/src/core/basic-behaviors.d.ts +1 -14
  10. package/src/core/basic-behaviors.d.ts.map +1 -1
  11. package/src/core/basic-behaviors.js +5 -24
  12. package/src/core/boot-chain.d.ts +10 -30
  13. package/src/core/boot-chain.d.ts.map +1 -1
  14. package/src/core/lib-boot.d.ts +2 -2
  15. package/src/core/lib-boot.d.ts.map +1 -1
  16. package/src/core/lib-boot.js +1 -2
  17. package/src/core/promise-space.d.ts +3 -9
  18. package/src/core/promise-space.d.ts.map +1 -1
  19. package/src/core/startWalletFactory.d.ts +1 -1
  20. package/src/core/startWalletFactory.d.ts.map +1 -1
  21. package/src/core/utils.d.ts +9 -18
  22. package/src/core/utils.d.ts.map +1 -1
  23. package/src/crc.d.ts +2 -2
  24. package/src/crc.d.ts.map +1 -1
  25. package/src/lib-board.d.ts +3 -3
  26. package/src/lib-board.d.ts.map +1 -1
  27. package/src/localchain.d.ts +0 -1
  28. package/src/localchain.d.ts.map +1 -1
  29. package/src/proposals/network-proposal.d.ts +1 -1
  30. package/src/proposals/network-proposal.d.ts.map +1 -1
  31. package/src/proposals/testUpgradedBoard.d.ts +26 -0
  32. package/src/proposals/testUpgradedBoard.d.ts.map +1 -0
  33. package/src/proposals/testUpgradedBoard.js +35 -0
  34. package/src/proposals/upgrade-agoricNames-proposal.d.ts +27 -0
  35. package/src/proposals/upgrade-agoricNames-proposal.d.ts.map +1 -0
  36. package/src/proposals/upgrade-agoricNames-proposal.js +47 -0
  37. package/src/proposals/upgrade-asset-reserve-proposal.d.ts +33 -0
  38. package/src/proposals/upgrade-asset-reserve-proposal.d.ts.map +1 -0
  39. package/src/proposals/upgrade-asset-reserve-proposal.js +93 -0
  40. package/src/proposals/upgrade-board-proposal.d.ts +27 -0
  41. package/src/proposals/upgrade-board-proposal.d.ts.map +1 -0
  42. package/src/proposals/upgrade-board-proposal.js +50 -0
  43. package/src/proposals/upgrade-mintHolder-proposal.d.ts +24 -0
  44. package/src/proposals/upgrade-mintHolder-proposal.d.ts.map +1 -0
  45. package/src/proposals/upgrade-mintHolder-proposal.js +74 -0
  46. package/src/proposals/upgrade-paRegistry-proposal.d.ts +29 -0
  47. package/src/proposals/upgrade-paRegistry-proposal.d.ts.map +1 -0
  48. package/src/proposals/upgrade-paRegistry-proposal.js +57 -0
  49. package/src/proposals/upgrade-provisionPool-proposal.d.ts +5 -1
  50. package/src/proposals/upgrade-provisionPool-proposal.d.ts.map +1 -1
  51. package/src/proposals/upgrade-provisionPool-proposal.js +55 -4
  52. package/src/proposals/{upgrade-orch-core-proposal.d.ts → upgrade-vats-generic-proposal.d.ts} +8 -3
  53. package/src/proposals/upgrade-vats-generic-proposal.d.ts.map +1 -0
  54. package/src/proposals/{upgrade-orch-core-proposal.js → upgrade-vats-generic-proposal.js} +15 -7
  55. package/src/proposals/upgrade-vaultFactory-proposal.d.ts +25 -0
  56. package/src/proposals/upgrade-vaultFactory-proposal.d.ts.map +1 -0
  57. package/src/proposals/upgrade-vaultFactory-proposal.js +124 -0
  58. package/src/repl.d.ts.map +1 -1
  59. package/src/repl.js +0 -1
  60. package/src/transfer.d.ts +0 -26
  61. package/src/transfer.d.ts.map +1 -1
  62. package/src/types.d.ts.map +1 -1
  63. package/src/types.ts +0 -1
  64. package/src/vat-bank.d.ts +6 -6
  65. package/src/vat-bank.d.ts.map +1 -1
  66. package/src/vat-board.d.ts +4 -4
  67. package/src/vat-board.d.ts.map +1 -1
  68. package/src/vat-bridge.d.ts.map +1 -1
  69. package/src/vat-network.d.ts +6 -6
  70. package/src/vat-network.d.ts.map +1 -1
  71. package/src/vat-transfer.d.ts +6 -6
  72. package/src/vat-transfer.d.ts.map +1 -1
  73. package/src/virtual-purse.d.ts.map +1 -1
  74. package/src/virtual-purse.js +1 -19
  75. package/tools/bank-utils.d.ts +2 -2
  76. package/tools/bank-utils.d.ts.map +1 -1
  77. package/tools/board-utils.d.ts +2 -2
  78. package/tools/board-utils.d.ts.map +1 -1
  79. package/tools/bootstrap-chain-reflective.js +194 -0
  80. package/tools/fake-bridge.d.ts +3 -3
  81. package/tools/fake-bridge.d.ts.map +1 -1
  82. package/tools/fake-bridge.js +7 -2
  83. package/src/proposals/upgrade-orch-core-proposal.d.ts.map +0 -1
@@ -0,0 +1,26 @@
1
+ export function testUpgradedBoard({ consume: { board }, brand: { consume: { [Stable.symbol]: stableBrandP }, }, }: {
2
+ consume: {
3
+ board: any;
4
+ };
5
+ brand: {
6
+ consume: {
7
+ IST: any;
8
+ };
9
+ };
10
+ }): Promise<void>;
11
+ export function getManifestForTestUpgradedBoard(): {
12
+ manifest: {
13
+ [x: string]: {
14
+ consume: {
15
+ board: boolean;
16
+ };
17
+ brand: {
18
+ consume: {
19
+ IST: boolean;
20
+ };
21
+ };
22
+ };
23
+ };
24
+ };
25
+ import { Stable } from '@agoric/internal/src/tokens.js';
26
+ //# sourceMappingURL=testUpgradedBoard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUpgradedBoard.d.ts","sourceRoot":"","sources":["testUpgradedBoard.js"],"names":[],"mappings":"AAGO;;;;;;;;;kBAoBN;AAEM;;;;;;;;;;;;;EASL;uBAjCqB,gCAAgC"}
@@ -0,0 +1,35 @@
1
+ import { E, Far } from '@endo/far';
2
+ import { Stable } from '@agoric/internal/src/tokens.js';
3
+
4
+ export const testUpgradedBoard = async ({
5
+ consume: { board },
6
+ brand: {
7
+ consume: { [Stable.symbol]: stableBrandP },
8
+ },
9
+ }) => {
10
+ // /////// can we store something and get it back? ////////
11
+ const thing1 = Far('thing1', {});
12
+ const thing1Id = await E(board).getId(thing1);
13
+ assert(thing1Id.match(/^board0[0-9]+$/));
14
+
15
+ const marshaller = await E(board).getReadonlyMarshaller();
16
+ assert(marshaller, 'expected a marshaller');
17
+
18
+ const stableBrand = await stableBrandP;
19
+ // /////// can we retrieve a well-known object via its ID? ////////
20
+ const stableID = await E(board).getId(stableBrand);
21
+ // /////// can we retrieve something stored long ago? ////////
22
+ const stableBrandRetrieved = await E(board).getValue(stableID);
23
+ assert(stableBrandRetrieved === stableBrand, 'retrieved matching brand');
24
+ };
25
+
26
+ export const getManifestForTestUpgradedBoard = () => ({
27
+ manifest: {
28
+ [testUpgradedBoard.name]: {
29
+ consume: { board: true },
30
+ brand: {
31
+ consume: { [Stable.symbol]: true },
32
+ },
33
+ },
34
+ },
35
+ });
@@ -0,0 +1,27 @@
1
+ export function upgradeAgoricNames({ consume: { vatAdminSvc, vatStore } }: BootstrapPowers & {
2
+ consume: {
3
+ vatAdminSvc: VatAdminSvc;
4
+ vatStore: MapStore<string, import("@agoric/swingset-vat").CreateVatResults>;
5
+ };
6
+ }, options: {
7
+ options: {
8
+ agoricNamesRef: VatSourceRef;
9
+ };
10
+ }): Promise<void>;
11
+ export function getManifestForUpgradingAgoricNames(_powers: any, { agoricNamesRef }: {
12
+ agoricNamesRef: any;
13
+ }): {
14
+ manifest: {
15
+ [x: string]: {
16
+ consume: {
17
+ vatAdminSvc: string;
18
+ vatStore: string;
19
+ };
20
+ produce: {};
21
+ };
22
+ };
23
+ options: {
24
+ agoricNamesRef: any;
25
+ };
26
+ };
27
+ //# sourceMappingURL=upgrade-agoricNames-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-agoricNames-proposal.d.ts","sourceRoot":"","sources":["upgrade-agoricNames-proposal.js"],"names":[],"mappings":"AAeO,2EAZI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,WAAW,EAAE,WAAW,CAAC;QACzB,QAAQ,EAAE,QAAQ,CACxB,MAAc,EACd,OAAe,sBAAsB,EAAE,gBAAgB,CAChD,CAAC;KACH,CAAC;CACH,WAED;IAAkD,OAAO,EAAjD;QAAE,cAAc,EAAE,YAAY,CAAA;KAAE;CAC1C,iBAgBA;AAEM;;;;;;;;;;;;;;;EAcL"}
@@ -0,0 +1,47 @@
1
+ import { E } from '@endo/far';
2
+
3
+ /**
4
+ * @param {BootstrapPowers & {
5
+ * consume: {
6
+ * vatAdminSvc: VatAdminSvc;
7
+ * vatStore: MapStore<
8
+ * string,
9
+ * import('@agoric/swingset-vat').CreateVatResults
10
+ * >;
11
+ * };
12
+ * }} powers
13
+ * @param {object} options
14
+ * @param {{ agoricNamesRef: VatSourceRef }} options.options
15
+ */
16
+ export const upgradeAgoricNames = async (
17
+ { consume: { vatAdminSvc, vatStore } },
18
+ options,
19
+ ) => {
20
+ const { agoricNamesRef } = options.options;
21
+
22
+ assert(agoricNamesRef.bundleID);
23
+ const agoricNamesBundleCap = await E(vatAdminSvc).getBundleCap(
24
+ agoricNamesRef.bundleID,
25
+ );
26
+ console.log(`BANK BUNDLE ID: `, agoricNamesRef.bundleID);
27
+
28
+ const { adminNode } = await E(vatStore).get('agoricNames');
29
+
30
+ await E(adminNode).upgrade(agoricNamesBundleCap, {});
31
+ };
32
+
33
+ export const getManifestForUpgradingAgoricNames = (
34
+ _powers,
35
+ { agoricNamesRef },
36
+ ) => ({
37
+ manifest: {
38
+ [upgradeAgoricNames.name]: {
39
+ consume: {
40
+ vatAdminSvc: 'vatAdminSvc',
41
+ vatStore: 'vatStore',
42
+ },
43
+ produce: {},
44
+ },
45
+ },
46
+ options: { agoricNamesRef },
47
+ });
@@ -0,0 +1,33 @@
1
+ export function upgradeAssetReserve({ consume: { economicCommitteeCreatorFacet: electorateCreatorFacet, reserveKit: reserveKitP, instancePrivateArgs: instancePrivateArgsP, }, produce: { reserveKit: reserveKitWriter }, }: BootstrapPowers & {
2
+ consume: {
3
+ economicCommitteeCreatorFacet: any;
4
+ reserveKit: any;
5
+ };
6
+ produce: {
7
+ reserveKit: any;
8
+ };
9
+ }, options: {
10
+ options: {
11
+ assetReserveRef: VatSourceRef;
12
+ };
13
+ }): Promise<void>;
14
+ export function getManifestForUpgradingAssetReserve(_powers: any, { assetReserveRef }: {
15
+ assetReserveRef: any;
16
+ }): {
17
+ manifest: {
18
+ [x: string]: {
19
+ consume: {
20
+ economicCommitteeCreatorFacet: boolean;
21
+ instancePrivateArgs: boolean;
22
+ reserveKit: boolean;
23
+ };
24
+ produce: {
25
+ reserveKit: boolean;
26
+ };
27
+ };
28
+ };
29
+ options: {
30
+ assetReserveRef: any;
31
+ };
32
+ };
33
+ //# sourceMappingURL=upgrade-asset-reserve-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-asset-reserve-proposal.d.ts","sourceRoot":"","sources":["upgrade-asset-reserve-proposal.js"],"names":[],"mappings":"AAmBO,6NAZI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,6BAA6B,EAAE,GAAG,CAAC;QACnC,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;CACH,WAED;IAAmD,OAAO,EAAlD;QAAE,eAAe,EAAE,YAAY,CAAA;KAAE;CAC3C,iBAuDA;AAEM;;;;;;;;;;;;;;;;;;EAiBL"}
@@ -0,0 +1,93 @@
1
+ import { E } from '@endo/far';
2
+ import { deeplyFulfilled } from '@endo/marshal';
3
+ import { makeTracer } from '@agoric/internal';
4
+
5
+ const tracer = makeTracer('UpgradeAssetReserve');
6
+
7
+ /**
8
+ * @param {BootstrapPowers & {
9
+ * consume: {
10
+ * economicCommitteeCreatorFacet: any;
11
+ * reserveKit: any;
12
+ * };
13
+ * produce: {
14
+ * reserveKit: any;
15
+ * };
16
+ * }} powers
17
+ * @param {object} options
18
+ * @param {{ assetReserveRef: VatSourceRef }} options.options
19
+ */
20
+ export const upgradeAssetReserve = async (
21
+ {
22
+ consume: {
23
+ economicCommitteeCreatorFacet: electorateCreatorFacet,
24
+ reserveKit: reserveKitP,
25
+ instancePrivateArgs: instancePrivateArgsP,
26
+ },
27
+ produce: { reserveKit: reserveKitWriter },
28
+ },
29
+ options,
30
+ ) => {
31
+ const { assetReserveRef } = options.options;
32
+
33
+ assert(assetReserveRef.bundleID);
34
+ tracer(`ASSET RESERVE BUNDLE ID: `, assetReserveRef);
35
+
36
+ const [reserveKit, instancePrivateArgs] = await Promise.all([
37
+ reserveKitP,
38
+ instancePrivateArgsP,
39
+ ]);
40
+ const { governorCreatorFacet, instance } = reserveKit;
41
+
42
+ const [originalPrivateArgs, poserInvitation] = await Promise.all([
43
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
44
+ // @ts-ignore Local tsc sees this as an error but typedoc does not
45
+ deeplyFulfilled(instancePrivateArgs.get(instance)),
46
+ E(electorateCreatorFacet).getPoserInvitation(),
47
+ ]);
48
+
49
+ const newPrivateArgs = harden({
50
+ ...originalPrivateArgs,
51
+ initialPoserInvitation: poserInvitation,
52
+ });
53
+
54
+ const adminFacet = await E(governorCreatorFacet).getAdminFacet();
55
+
56
+ // We need to reset the kit and produce a new adminFacet because the
57
+ // original contract is producing an admin facet that is for the
58
+ // governor, not the reserve.
59
+ reserveKitWriter.reset();
60
+ reserveKitWriter.resolve(
61
+ harden({
62
+ ...reserveKit,
63
+ adminFacet,
64
+ }),
65
+ );
66
+
67
+ const upgradeResult = await E(adminFacet).upgradeContract(
68
+ assetReserveRef.bundleID,
69
+ newPrivateArgs,
70
+ );
71
+
72
+ tracer('AssetReserve upgraded: ', upgradeResult);
73
+ tracer('Done.');
74
+ };
75
+
76
+ export const getManifestForUpgradingAssetReserve = (
77
+ _powers,
78
+ { assetReserveRef },
79
+ ) => ({
80
+ manifest: {
81
+ [upgradeAssetReserve.name]: {
82
+ consume: {
83
+ economicCommitteeCreatorFacet: true,
84
+ instancePrivateArgs: true,
85
+ reserveKit: true,
86
+ },
87
+ produce: {
88
+ reserveKit: true,
89
+ },
90
+ },
91
+ },
92
+ options: { assetReserveRef },
93
+ });
@@ -0,0 +1,27 @@
1
+ export function upgradeBoard({ consume: { board, vatAdminSvc, vatStore } }: BootstrapPowers & {
2
+ consume: {
3
+ vatAdminSvc: VatAdminSvc;
4
+ vatStore: MapStore<string, import("@agoric/swingset-vat").CreateVatResults>;
5
+ };
6
+ }, options: {
7
+ options: {
8
+ boardRef: VatSourceRef;
9
+ };
10
+ }): Promise<void>;
11
+ export function getManifestForUpgradingBoard(_powers: any, { boardRef }: {
12
+ boardRef: any;
13
+ }): {
14
+ manifest: {
15
+ [x: string]: {
16
+ consume: {
17
+ board: string;
18
+ vatAdminSvc: string;
19
+ vatStore: string;
20
+ };
21
+ };
22
+ };
23
+ options: {
24
+ boardRef: any;
25
+ };
26
+ };
27
+ //# sourceMappingURL=upgrade-board-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-board-proposal.d.ts","sourceRoot":"","sources":["upgrade-board-proposal.js"],"names":[],"mappings":"AAeO,4EAZI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,WAAW,EAAE,WAAW,CAAC;QACzB,QAAQ,EAAE,QAAQ,CACxB,MAAc,EACd,OAAe,sBAAsB,EAAE,gBAAgB,CAChD,CAAC;KACH,CAAC;CACH,WAED;IAA4C,OAAO,EAA3C;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE;CACpC,iBAsBA;AAEM;;;;;;;;;;;;;;;EAWL"}
@@ -0,0 +1,50 @@
1
+ import { E } from '@endo/far';
2
+
3
+ /**
4
+ * @param {BootstrapPowers & {
5
+ * consume: {
6
+ * vatAdminSvc: VatAdminSvc;
7
+ * vatStore: MapStore<
8
+ * string,
9
+ * import('@agoric/swingset-vat').CreateVatResults
10
+ * >;
11
+ * };
12
+ * }} powers
13
+ * @param {object} options
14
+ * @param {{ boardRef: VatSourceRef }} options.options
15
+ */
16
+ export const upgradeBoard = async (
17
+ { consume: { board, vatAdminSvc, vatStore } },
18
+ options,
19
+ ) => {
20
+ const { boardRef } = options.options;
21
+
22
+ assert(boardRef.bundleID);
23
+ const boardBundleCap = await E(vatAdminSvc).getBundleCap(boardRef.bundleID);
24
+ console.log(`Board BUNDLE ID: `, boardRef.bundleID);
25
+ const idsBefore = await E(board).ids();
26
+
27
+ const { adminNode } = await E(vatStore).get('board');
28
+ await E(adminNode).upgrade(boardBundleCap, {});
29
+
30
+ const idsAfter = await E(board).ids();
31
+ const same =
32
+ idsBefore.length === idsAfter.length &&
33
+ idsBefore.every((element, index) => element === idsAfter[index]);
34
+ assert(same, 'keys must stay the same');
35
+
36
+ console.log('Board upgrade complete');
37
+ };
38
+
39
+ export const getManifestForUpgradingBoard = (_powers, { boardRef }) => ({
40
+ manifest: {
41
+ [upgradeBoard.name]: {
42
+ consume: {
43
+ board: 'board',
44
+ vatAdminSvc: 'vatAdminSvc',
45
+ vatStore: 'vatStore',
46
+ },
47
+ },
48
+ },
49
+ options: { boardRef },
50
+ });
@@ -0,0 +1,24 @@
1
+ export function upgradeMintHolder({ consume: { contractKits: contractKitsP, instancePrivateArgs: instancePrivateArgsP, }, }: {
2
+ consume: {
3
+ contractKits: any;
4
+ instancePrivateArgs: any;
5
+ };
6
+ }, options: any): Promise<void>;
7
+ export function getManifestForUpgradingMintHolder(_powers: any, { contractRef, labelList }: {
8
+ contractRef: any;
9
+ labelList: any;
10
+ }): {
11
+ manifest: {
12
+ [x: string]: {
13
+ consume: {
14
+ contractKits: boolean;
15
+ instancePrivateArgs: boolean;
16
+ };
17
+ };
18
+ };
19
+ options: {
20
+ contractRef: any;
21
+ labelList: any;
22
+ };
23
+ };
24
+ //# sourceMappingURL=upgrade-mintHolder-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-mintHolder-proposal.d.ts","sourceRoot":"","sources":["upgrade-mintHolder-proposal.js"],"names":[],"mappings":"AAKO;;;;;gCAqDN;AAEM;;;;;;;;;;;;;;;;EAaL"}
@@ -0,0 +1,74 @@
1
+ import { makeTracer } from '@agoric/internal';
2
+ import { E } from '@endo/far';
3
+
4
+ const trace = makeTracer('upgrade mintHolder', true);
5
+
6
+ export const upgradeMintHolder = async (
7
+ {
8
+ consume: {
9
+ contractKits: contractKitsP,
10
+ instancePrivateArgs: instancePrivateArgsP,
11
+ },
12
+ },
13
+ options,
14
+ ) => {
15
+ const { contractRef, labelList } = options.options;
16
+ assert(contractRef.bundleID, 'mintHolder bundleID not found');
17
+ assert(labelList, 'mintHolder bank asset label list not found');
18
+
19
+ trace(`Start mintHolder contract upgrade`);
20
+ trace(`Assets: `, labelList);
21
+
22
+ const [contractKits, instancePrivateArgs] = await Promise.all([
23
+ contractKitsP,
24
+ instancePrivateArgsP,
25
+ ]);
26
+
27
+ for (const assetLabel of labelList) {
28
+ const mintHolderKit = Array.from(contractKits.values()).find(
29
+ kit => kit.label && kit.label === assetLabel,
30
+ );
31
+ if (!mintHolderKit) {
32
+ console.error(
33
+ `ERROR: failed to upgrade ${assetLabel} mintHolder, contractKit not found`,
34
+ );
35
+ continue;
36
+ }
37
+
38
+ trace(`${assetLabel} mintHolderKit: `, mintHolderKit);
39
+
40
+ const { publicFacet, adminFacet, instance } = mintHolderKit;
41
+
42
+ /*
43
+ * Ensure that publicFacet holds an issuer by verifying that has
44
+ * the makeEmptyPurse method.
45
+ */
46
+ await E(publicFacet).makeEmptyPurse();
47
+
48
+ const privateArgs = instancePrivateArgs.get(instance);
49
+
50
+ const upgradeResult = await E(adminFacet).upgradeContract(
51
+ contractRef.bundleID,
52
+ privateArgs,
53
+ );
54
+
55
+ trace(`${assetLabel} upgrade result: `, upgradeResult);
56
+ }
57
+
58
+ trace(`Finished mintHolder contract upgrade`);
59
+ };
60
+
61
+ export const getManifestForUpgradingMintHolder = (
62
+ _powers,
63
+ { contractRef, labelList },
64
+ ) => ({
65
+ manifest: {
66
+ [upgradeMintHolder.name]: {
67
+ consume: {
68
+ contractKits: true,
69
+ instancePrivateArgs: true,
70
+ },
71
+ },
72
+ },
73
+ options: { contractRef, labelList },
74
+ });
@@ -0,0 +1,29 @@
1
+ export function upgradePriceAuthorityRegistry({ consume: { vatAdminSvc, vatStore, priceAuthority, agoricNames }, brand: { consume: { [Stable.symbol]: stableBrandP }, }, }: BootstrapPowers, options: {
2
+ options: {
3
+ registryRef: VatSourceRef;
4
+ };
5
+ }): Promise<void>;
6
+ export function getManifestForUpgradingRegistry(_powers: any, { registryRef }: {
7
+ registryRef: any;
8
+ }): {
9
+ manifest: {
10
+ [x: string]: {
11
+ consume: {
12
+ agoricNames: string;
13
+ vatAdminSvc: string;
14
+ vatStore: string;
15
+ priceAuthority: string;
16
+ };
17
+ brand: {
18
+ consume: {
19
+ IST: string;
20
+ };
21
+ };
22
+ };
23
+ };
24
+ options: {
25
+ registryRef: any;
26
+ };
27
+ };
28
+ import { Stable } from '@agoric/internal/src/tokens.js';
29
+ //# sourceMappingURL=upgrade-paRegistry-proposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-paRegistry-proposal.d.ts","sourceRoot":"","sources":["upgrade-paRegistry-proposal.js"],"names":[],"mappings":"AAUO,4KAJI,eAAe,WAEvB;IAA+C,OAAO,EAA9C;QAAE,WAAW,EAAE,YAAY,CAAA;KAAE;CACvC,iBA6BA;AAGM;;;;;;;;;;;;;;;;;;;;;EAeL;uBArDqB,gCAAgC"}
@@ -0,0 +1,57 @@
1
+ // @ts-check
2
+ import { E } from '@endo/far';
3
+ import { AmountMath } from '@agoric/ertp';
4
+ import { Stable } from '@agoric/internal/src/tokens.js';
5
+
6
+ /**
7
+ * @param {BootstrapPowers} powers
8
+ * @param {object} options
9
+ * @param {{ registryRef: VatSourceRef }} options.options
10
+ */
11
+ export const upgradePriceAuthorityRegistry = async (
12
+ {
13
+ consume: { vatAdminSvc, vatStore, priceAuthority, agoricNames },
14
+ brand: {
15
+ consume: { [Stable.symbol]: stableBrandP },
16
+ },
17
+ },
18
+ options,
19
+ ) => {
20
+ const { registryRef } = options.options;
21
+
22
+ assert(registryRef.bundleID);
23
+ console.log(`PriceAuthorityRegistry BUNDLE ID: `, registryRef.bundleID);
24
+
25
+ const [{ adminNode }, stableBrand, atomBrand, bundleCap] = await Promise.all([
26
+ E(vatStore).get('priceAuthority'),
27
+ stableBrandP,
28
+ E(agoricNames).lookup('brand', 'ATOM'),
29
+ E(vatAdminSvc).getBundleCap(registryRef.bundleID),
30
+ ]);
31
+
32
+ await E(adminNode).upgrade(bundleCap, {});
33
+
34
+ const oneATOM = AmountMath.make(atomBrand, 1_000_000n);
35
+ const quoteAtom = await E(priceAuthority).quoteGiven(oneATOM, stableBrand);
36
+ console.log('paRegistry quote', quoteAtom);
37
+
38
+ assert(quoteAtom.quoteAmount.value, 'insist on getting a quote');
39
+ };
40
+
41
+ const par = 'paRegistry';
42
+ export const getManifestForUpgradingRegistry = (_powers, { registryRef }) => ({
43
+ manifest: {
44
+ [upgradePriceAuthorityRegistry.name]: {
45
+ consume: {
46
+ agoricNames: par,
47
+ vatAdminSvc: par,
48
+ vatStore: par,
49
+ priceAuthority: par,
50
+ },
51
+ brand: { consume: { [Stable.symbol]: par } },
52
+ },
53
+ },
54
+ options: {
55
+ registryRef,
56
+ },
57
+ });
@@ -1,4 +1,4 @@
1
- export function upgradeProvisionPool({ consume: { economicCommitteeCreatorFacet: electorateCreatorFacet, instancePrivateArgs: instancePrivateArgsP, provisionPoolStartResult: provisionPoolStartResultP, }, }: BootstrapPowers & {
1
+ export function upgradeProvisionPool({ consume: { economicCommitteeCreatorFacet: electorateCreatorFacet, instancePrivateArgs: instancePrivateArgsP, provisionPoolStartResult: provisionPoolStartResultP, bankManager, namesByAddressAdmin: namesByAddressAdminP, walletFactoryStartResult: walletFactoryStartResultP, provisionWalletBridgeManager: provisionWalletBridgeManagerP, }, }: BootstrapPowers & {
2
2
  consume: {
3
3
  economicCommitteeCreatorFacet: any;
4
4
  };
@@ -16,6 +16,10 @@ export function getManifestForUpgradingProvisionPool(_powers: any, { provisionPo
16
16
  economicCommitteeCreatorFacet: boolean;
17
17
  instancePrivateArgs: boolean;
18
18
  provisionPoolStartResult: boolean;
19
+ bankManager: boolean;
20
+ namesByAddressAdmin: boolean;
21
+ walletFactoryStartResult: boolean;
22
+ provisionWalletBridgeManager: boolean;
19
23
  };
20
24
  produce: {};
21
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-provisionPool-proposal.d.ts","sourceRoot":"","sources":["upgrade-provisionPool-proposal.js"],"names":[],"mappings":"AAYO,+MARI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,6BAA6B,EAAE,GAAG,CAAC;KACpC,CAAC;CACH,WAED;IAAoD,OAAO,EAAnD;QAAE,gBAAgB,EAAE,YAAY,CAAA;KAAE;CAC5C,iBAwCA;AAEM;;;;;;;;;;;;;;;;EAeL"}
1
+ {"version":3,"file":"upgrade-provisionPool-proposal.d.ts","sourceRoot":"","sources":["upgrade-provisionPool-proposal.js"],"names":[],"mappings":"AAeO,yXARI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,6BAA6B,EAAE,GAAG,CAAC;KACpC,CAAC;CACH,WAED;IAAoD,OAAO,EAAnD;QAAE,gBAAgB,EAAE,YAAY,CAAA;KAAE;CAC5C,iBAoFA;AAEM;;;;;;;;;;;;;;;;;;;;EAmBL"}
@@ -1,5 +1,8 @@
1
1
  import { E } from '@endo/far';
2
2
  import { deeplyFulfilled } from '@endo/marshal';
3
+ import { makeTracer } from '@agoric/internal';
4
+
5
+ const trace = makeTracer('UpgradeProvisionPool');
3
6
 
4
7
  /**
5
8
  * @param {BootstrapPowers & {
@@ -16,6 +19,10 @@ export const upgradeProvisionPool = async (
16
19
  economicCommitteeCreatorFacet: electorateCreatorFacet,
17
20
  instancePrivateArgs: instancePrivateArgsP,
18
21
  provisionPoolStartResult: provisionPoolStartResultP,
22
+ bankManager,
23
+ namesByAddressAdmin: namesByAddressAdminP,
24
+ walletFactoryStartResult: walletFactoryStartResultP,
25
+ provisionWalletBridgeManager: provisionWalletBridgeManagerP,
19
26
  },
20
27
  },
21
28
  options,
@@ -23,13 +30,28 @@ export const upgradeProvisionPool = async (
23
30
  const { provisionPoolRef } = options.options;
24
31
 
25
32
  assert(provisionPoolRef.bundleID);
26
- console.log(`PROVISION POOL BUNDLE ID: `, provisionPoolRef.bundleID);
33
+ trace(`PROVISION POOL BUNDLE ID: `, provisionPoolRef);
27
34
 
28
- const [provisionPoolStartResult, instancePrivateArgs] = await Promise.all([
35
+ const [
36
+ provisionPoolStartResult,
37
+ instancePrivateArgs,
38
+ namesByAddressAdmin,
39
+ walletFactoryStartResult,
40
+ provisionWalletBridgeManager,
41
+ ] = await Promise.all([
29
42
  provisionPoolStartResultP,
30
43
  instancePrivateArgsP,
44
+ namesByAddressAdminP,
45
+ walletFactoryStartResultP,
46
+ provisionWalletBridgeManagerP,
31
47
  ]);
32
- const { adminFacet, instance } = provisionPoolStartResult;
48
+ const {
49
+ adminFacet,
50
+ instance,
51
+ creatorFacet: ppCreatorFacet,
52
+ publicFacet: ppPublicFacet,
53
+ } = provisionPoolStartResult;
54
+ const { creatorFacet: wfCreatorFacet } = walletFactoryStartResult;
33
55
 
34
56
  const [originalPrivateArgs, poserInvitation] = await Promise.all([
35
57
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -38,9 +60,16 @@ export const upgradeProvisionPool = async (
38
60
  E(electorateCreatorFacet).getPoserInvitation(),
39
61
  ]);
40
62
 
63
+ const params = await E(ppPublicFacet).getGovernedParams();
64
+ const governedParamOverrides = harden({
65
+ PerAccountInitialAmount: params.PerAccountInitialAmount.value,
66
+ });
67
+ trace('governedParamOverrides: ', { governedParamOverrides });
68
+
41
69
  const newPrivateArgs = harden({
42
70
  ...originalPrivateArgs,
43
71
  initialPoserInvitation: poserInvitation,
72
+ governedParamOverrides,
44
73
  });
45
74
 
46
75
  const upgradeResult = await E(adminFacet).upgradeContract(
@@ -48,7 +77,25 @@ export const upgradeProvisionPool = async (
48
77
  newPrivateArgs,
49
78
  );
50
79
 
51
- console.log('ProvisionPool upgraded: ', upgradeResult);
80
+ trace('ProvisionPool upgraded: ', upgradeResult);
81
+
82
+ const references = {
83
+ bankManager,
84
+ namesByAddressAdmin,
85
+ walletFactory: wfCreatorFacet,
86
+ };
87
+
88
+ trace('Calling setReferences with: ', references);
89
+ await E(ppCreatorFacet).setReferences(references);
90
+
91
+ trace('Creating bridgeHandler...');
92
+ const bridgeHandler = await E(ppCreatorFacet).makeHandler();
93
+
94
+ trace('Setting new bridgeHandler...');
95
+ // @ts-expect-error casting
96
+ await E(provisionWalletBridgeManager).setHandler(bridgeHandler);
97
+
98
+ trace('Done.');
52
99
  };
53
100
 
54
101
  export const getManifestForUpgradingProvisionPool = (
@@ -61,6 +108,10 @@ export const getManifestForUpgradingProvisionPool = (
61
108
  economicCommitteeCreatorFacet: true,
62
109
  instancePrivateArgs: true,
63
110
  provisionPoolStartResult: true,
111
+ bankManager: true,
112
+ namesByAddressAdmin: true,
113
+ walletFactoryStartResult: true,
114
+ provisionWalletBridgeManager: true,
64
115
  },
65
116
  produce: {},
66
117
  },