import { readFile } from "node:fs/promises"; import { createRequire } from "node:module"; const require = createRequire(import.meta.url); const expectedVersion = "1.46.0"; const pluginSource = await readFile( new URL("../lib/openzeppelin-foundry-upgrades/src/internal/Versions.sol", import.meta.url), "utf8" ); const lockfile = JSON.parse( await readFile(new URL("../package-lock.json", import.meta.url), "utf8") ); const lockedVersion = lockfile.packages?.["node_modules/@openzeppelin/upgrades-core"]?.version; const installedVersion = require("@openzeppelin/upgrades-core/package.json").version; if (!pluginSource.includes('UPGRADES_CORE = "^1.45.0"')) { throw new Error('Expected the vendored plugin to declare UPGRADES_CORE = "^1.45.0".'); } if (lockedVersion !== expectedVersion) { throw new Error(`Expected package-lock.json to resolve @openzeppelin/upgrades-core to ${expectedVersion}, found ${lockedVersion}.`); } if (installedVersion !== expectedVersion) { throw new Error(`Expected installed @openzeppelin/upgrades-core to report ${expectedVersion}, found ${installedVersion}.`); } console.log(`@openzeppelin/upgrades-core ${expectedVersion} is pinned and installed.`);