Skip to content

Commit

Permalink
chore: upgrade v8, the priceAuthorityRegistry
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris-Hibbert committed Nov 14, 2024
1 parent 493b453 commit b6eaff9
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 0 deletions.
20 changes: 20 additions & 0 deletions a3p-integration/proposals/n:upgrade-next/registry.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// @ts-check
import test from 'ava';
import '@endo/init/debug.js';

import {
getDetailsMatchingVats,
getIncarnation,
} from '@agoric/synthetic-chain';

/**
* @file
* A test of upgrading vat-priceAuthority, which is planned to ship in Upgrade 9
*/

test('priceAuthorityRegistry upgrade', async t => {
t.is(await getIncarnation('priceAuthority'), 1);

const priceAuthorityVats = await getDetailsMatchingVats('priceAuthority');
t.is(priceAuthorityVats.length, 1);
});
3 changes: 3 additions & 0 deletions golang/cosmos/app/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,9 @@ func unreleasedUpgradeHandler(app *GaiaApp, targetUpgrade string) func(sdk.Conte
vm.CoreProposalStepForModules(
"@agoric/builders/scripts/inter-protocol/replace-feeDistributor.js",
),
vm.CoreProposalStepForModules(
"@agoric/builders/scripts/vats/upgrade-paRegistry.js",
),
)
}

Expand Down
21 changes: 21 additions & 0 deletions packages/builders/scripts/vats/upgrade-paRegistry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { makeHelpers } from '@agoric/deploy-script-support';

/** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
export const defaultProposalBuilder = async ({ publishRef, install }) =>
harden({
sourceSpec: '@agoric/vats/src/proposals/upgrade-paRegistry-proposal.js',
getManifestCall: [
'getManifestForUpgradingRegistry',
{
registryRef: publishRef(
install('@agoric/vats/src/vat-priceAuthority.js'),
),
},
],
});

/** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
export default async (homeP, endowments) => {
const { writeCoreEval } = await makeHelpers(homeP, endowments);
await writeCoreEval('upgrade-paRegistry', defaultProposalBuilder);
};
65 changes: 65 additions & 0 deletions packages/vats/src/proposals/upgrade-paRegistry-proposal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// @ts-check
import { E } from '@endo/far';
import { AmountMath } from '@agoric/ertp';
import { Stable } from '@agoric/internal/src/tokens.js';

/**
* @param {BootstrapPowers & {
* consume: {
* vatAdminSvc: VatAdminSvc;
* vatStore: MapStore<
* string,
* import('@agoric/swingset-vat').CreateVatResults
* >;
* };
* }} powers
* @param {object} options
* @param {{ registryRef: VatSourceRef }} options.options
*/
export const upgradePriceAuthorityRegistry = async (
{
consume: { vatAdminSvc, vatStore, priceAuthority, agoricNames },
brand: {
consume: { [Stable.symbol]: stableBrandP },
},
},
options,
) => {
const { registryRef } = options.options;

assert(registryRef.bundleID);
console.log(`PriceAuthorityRegistry BUNDLE ID: `, registryRef.bundleID);

const [{ adminNode }, stableBrand, atomBrand, bundleCap] = await Promise.all([
E(vatStore).get('priceAuthority'),
stableBrandP,
E(agoricNames).lookup('brand', 'ATOM'),
E(vatAdminSvc).getBundleCap(registryRef.bundleID),
]);

await E(adminNode).upgrade(bundleCap, {});

const oneATOM = AmountMath.make(atomBrand, 1_000_000n);
const quoteAtom = await E(priceAuthority).quoteGiven(oneATOM, stableBrand);
console.log('paRegistry quote', quoteAtom);

assert(quoteAtom.quoteAmount.value, 'insist on getting a quote');
};

const par = 'paRegistry';
export const getManifestForUpgradingRegistry = (_powers, { registryRef }) => ({
manifest: {
[upgradePriceAuthorityRegistry.name]: {
consume: {
agoricNames: par,
vatAdminSvc: par,
vatStore: par,
priceAuthority: 'par',
},
brand: { consume: { [Stable.symbol]: par } },
},
},
options: {
registryRef,
},
});

0 comments on commit b6eaff9

Please sign in to comment.