12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env node
- const fs = require('fs');
- const { getStorageUpgradeReport } = require('@openzeppelin/upgrades-core/dist/storage');
- const { hideBin } = require('yargs/helpers');
- const { argv } = require('yargs/yargs')(hideBin(process.argv))
- .env('')
- .options({
- ref: { type: 'string', required: true },
- head: { type: 'string', required: true },
- });
- const oldLayout = JSON.parse(fs.readFileSync(argv.ref));
- const newLayout = JSON.parse(fs.readFileSync(argv.head));
- for (const name in oldLayout) {
- if (name in newLayout) {
- const report = getStorageUpgradeReport(oldLayout[name], newLayout[name], {});
- if (!report.ok) {
- console.log(`Storage layout incompatibility found in ${name}:`);
- console.log(report.explain());
- process.exitCode = 1;
- }
- } else {
- console.log(`WARNING: ${name} is missing from the current branch`);
- }
- }
|