@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.
- package/CHANGELOG.md +24 -0
- package/package.json +29 -29
- package/scripts/build-bundles.d.ts +3 -0
- package/scripts/build-bundles.d.ts.map +1 -0
- package/src/bridge-target.d.ts +4 -4
- package/src/bridge-target.d.ts.map +1 -1
- package/src/bridge.d.ts +1 -1
- package/src/bridge.d.ts.map +1 -1
- package/src/core/basic-behaviors.d.ts +1 -14
- package/src/core/basic-behaviors.d.ts.map +1 -1
- package/src/core/basic-behaviors.js +5 -24
- package/src/core/boot-chain.d.ts +10 -30
- package/src/core/boot-chain.d.ts.map +1 -1
- package/src/core/lib-boot.d.ts +2 -2
- package/src/core/lib-boot.d.ts.map +1 -1
- package/src/core/lib-boot.js +1 -2
- package/src/core/promise-space.d.ts +3 -9
- package/src/core/promise-space.d.ts.map +1 -1
- package/src/core/startWalletFactory.d.ts +1 -1
- package/src/core/startWalletFactory.d.ts.map +1 -1
- package/src/core/utils.d.ts +9 -18
- package/src/core/utils.d.ts.map +1 -1
- package/src/crc.d.ts +2 -2
- package/src/crc.d.ts.map +1 -1
- package/src/lib-board.d.ts +3 -3
- package/src/lib-board.d.ts.map +1 -1
- package/src/localchain.d.ts +0 -1
- package/src/localchain.d.ts.map +1 -1
- package/src/proposals/network-proposal.d.ts +1 -1
- package/src/proposals/network-proposal.d.ts.map +1 -1
- package/src/proposals/testUpgradedBoard.d.ts +26 -0
- package/src/proposals/testUpgradedBoard.d.ts.map +1 -0
- package/src/proposals/testUpgradedBoard.js +35 -0
- package/src/proposals/upgrade-agoricNames-proposal.d.ts +27 -0
- package/src/proposals/upgrade-agoricNames-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-agoricNames-proposal.js +47 -0
- package/src/proposals/upgrade-asset-reserve-proposal.d.ts +33 -0
- package/src/proposals/upgrade-asset-reserve-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-asset-reserve-proposal.js +93 -0
- package/src/proposals/upgrade-board-proposal.d.ts +27 -0
- package/src/proposals/upgrade-board-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-board-proposal.js +50 -0
- package/src/proposals/upgrade-mintHolder-proposal.d.ts +24 -0
- package/src/proposals/upgrade-mintHolder-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-mintHolder-proposal.js +74 -0
- package/src/proposals/upgrade-paRegistry-proposal.d.ts +29 -0
- package/src/proposals/upgrade-paRegistry-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-paRegistry-proposal.js +57 -0
- package/src/proposals/upgrade-provisionPool-proposal.d.ts +5 -1
- package/src/proposals/upgrade-provisionPool-proposal.d.ts.map +1 -1
- package/src/proposals/upgrade-provisionPool-proposal.js +55 -4
- package/src/proposals/{upgrade-orch-core-proposal.d.ts → upgrade-vats-generic-proposal.d.ts} +8 -3
- package/src/proposals/upgrade-vats-generic-proposal.d.ts.map +1 -0
- package/src/proposals/{upgrade-orch-core-proposal.js → upgrade-vats-generic-proposal.js} +15 -7
- package/src/proposals/upgrade-vaultFactory-proposal.d.ts +25 -0
- package/src/proposals/upgrade-vaultFactory-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-vaultFactory-proposal.js +124 -0
- package/src/repl.d.ts.map +1 -1
- package/src/repl.js +0 -1
- package/src/transfer.d.ts +0 -26
- package/src/transfer.d.ts.map +1 -1
- package/src/types.d.ts.map +1 -1
- package/src/types.ts +0 -1
- package/src/vat-bank.d.ts +6 -6
- package/src/vat-bank.d.ts.map +1 -1
- package/src/vat-board.d.ts +4 -4
- package/src/vat-board.d.ts.map +1 -1
- package/src/vat-bridge.d.ts.map +1 -1
- package/src/vat-network.d.ts +6 -6
- package/src/vat-network.d.ts.map +1 -1
- package/src/vat-transfer.d.ts +6 -6
- package/src/vat-transfer.d.ts.map +1 -1
- package/src/virtual-purse.d.ts.map +1 -1
- package/src/virtual-purse.js +1 -19
- package/tools/bank-utils.d.ts +2 -2
- package/tools/bank-utils.d.ts.map +1 -1
- package/tools/board-utils.d.ts +2 -2
- package/tools/board-utils.d.ts.map +1 -1
- package/tools/bootstrap-chain-reflective.js +194 -0
- package/tools/fake-bridge.d.ts +3 -3
- package/tools/fake-bridge.d.ts.map +1 -1
- package/tools/fake-bridge.js +7 -2
- 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":"
|
|
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
|
-
|
|
33
|
+
trace(`PROVISION POOL BUNDLE ID: `, provisionPoolRef);
|
|
27
34
|
|
|
28
|
-
const [
|
|
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 {
|
|
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
|
-
|
|
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
|
},
|