Skip to content

Commit

Permalink
fetch rollup data
Browse files Browse the repository at this point in the history
  • Loading branch information
invocamanman committed Feb 20, 2024
1 parent 15660cf commit d78f74e
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 3 deletions.
2 changes: 1 addition & 1 deletion deployment/v2/3_deployContracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ async function main() {
expect(await upgrades.erc1967.getAdminAddress(proxyBridgeAddress)).to.be.equal(proxyAdminAddress);

const outputJson = {
polygonRollupManager: polygonRollupManagerContract.target,
polygonRollupManagerAddress: polygonRollupManagerContract.target,
polygonZkEVMBridgeAddress: polygonZkEVMBridgeContract.target,
polygonZkEVMGlobalExitRootAddress: polygonZkEVMGlobalExitRoot?.target,
polTokenAddress,
Expand Down
2 changes: 1 addition & 1 deletion deployment/v2/4_createRollup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ async function main() {
await (await polygonDataCommittee?.transferOwnership(adminZkEVM)).wait();
}

outputJson.polygonDataCommittee = polygonDataCommittee?.target;
outputJson.polygonDataCommitteeAddress = polygonDataCommittee?.target;
}

// Assert admin address
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ async function main() {
await (await proxyAdmin.transferOwnership(deployParameters.admin)).wait();
await (await polygonDataCommittee?.transferOwnership(deployParameters.admin)).wait();

outputJson.polygonDataCommittee = polygonDataCommittee?.target;
outputJson.polygonDataCommitteeAddress = polygonDataCommittee?.target;
outputJson.proxyAdmin = proxyAdmin.target;

fs.writeFileSync(pathOutput, JSON.stringify(outputJson, null, 1));
Expand Down
92 changes: 92 additions & 0 deletions tools/getRollupData/getRollupData.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/* eslint-disable no-await-in-loop, no-use-before-define, no-lonely-if */
/* eslint-disable no-console, no-inner-declarations, no-undef, import/no-unresolved */
import {expect} from "chai";
import path = require("path");
import fs = require("fs");

import * as dotenv from "dotenv";
dotenv.config({path: path.resolve(__dirname, "../../../.env")});
import {ethers, upgrades} from "hardhat";
const getRollupParams = require("./rollupDataParams.json");
import {PolygonRollupManager} from "../../typechain-types";
const pathOutputJson = path.join(__dirname, "./deploy_output.json");
const pathCreateRollupOutput = path.join(__dirname, "./create_rollup_output.json");

async function main() {
const RollupManagerFactory = await ethers.getContractFactory("PolygonRollupManager");

const rollupManager = (await RollupManagerFactory.attach(
getRollupParams.polygonRollupManagerAddress
)) as PolygonRollupManager;

const polygonZkEVMBridgeAddress = await rollupManager.bridgeAddress();
const polygonZkEVMGlobalExitRootAddress = await rollupManager.globalExitRootManager();
const polTokenAddress = await rollupManager.pol();

// FIlter first rollup ID ( the one on migration)
const filter = rollupManager.filters.AddExistingRollup(1, undefined, undefined, undefined, undefined, undefined);
const eventsAddRollup = await rollupManager.queryFilter(filter, 0, "latest");

const deploymentBlockNumber = eventsAddRollup[0].blockNumber;

const deployOutput = {
polygonRollupManagerAddress: rollupManager.target,
polygonZkEVMBridgeAddress,
polygonZkEVMGlobalExitRootAddress,
polTokenAddress,
deploymentBlockNumber,
};
fs.writeFileSync(pathOutputJson, JSON.stringify(deployOutput, null, 1));

const filter2 = rollupManager.filters.CreateNewRollup(
getRollupParams.rollupID,
undefined,
undefined,
undefined,
undefined
);
const eventsCreateNewRollup = await rollupManager.queryFilter(filter2, 0, "latest");
const {rollupID, rollupAddress, chainID, gasTokenAddress, rollupTypeID} = eventsCreateNewRollup[0].args;

const filter3 = rollupManager.filters.AddNewRollupType(
rollupTypeID,
undefined,
undefined,
undefined,
undefined,
undefined
);

const eventsAddRollupType = await rollupManager.queryFilter(filter3, 0, "latest");
const {forkID, genesis, description} = eventsAddRollupType[0].args;

// Add the first batch of the created rollup
const outputCreateRollup = {} as any;
outputCreateRollup.genesis = genesis;
outputCreateRollup.createRollupBlock = eventsCreateNewRollup[0].blockNumber;
outputCreateRollup.rollupAddress = rollupAddress;
outputCreateRollup.consensusContract = description;

fs.writeFileSync(pathCreateRollupOutput, JSON.stringify(outputCreateRollup, null, 1));
}

main().catch((e) => {
console.error(e);
process.exit(1);
});

// OZ test functions
function genOperation(target: any, value: any, data: any, predecessor: any, salt: any) {
const id = ethers.solidityPackedKeccak256(
["address", "uint256", "bytes", "uint256", "bytes32"],
[target, value, data, predecessor, salt]
);
return {
id,
target,
value,
data,
predecessor,
salt,
};
}
4 changes: 4 additions & 0 deletions tools/getRollupData/rollupDataParams.json.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"polygonRollupManagerAddress":"",
"rollupID":0
}

0 comments on commit d78f74e

Please sign in to comment.