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 a185009
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 5 deletions.
5 changes: 3 additions & 2 deletions deployment/v2/3_deployContracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -529,14 +529,15 @@ 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,
zkEVMDeployerContract: zkEVMDeployerContract.target,
deployerAddress: deployer.address,
timelockContractAddress: timelockContract.target,
deploymentBlockNumber,
deploymenRollupManagerBlockNumber: deploymentBlockNumber,
upgradeToULxLyBlockNumber: deploymentBlockNumber,
admin,
trustedAggregator,
proxyAdminAddress,
Expand Down
4 changes: 2 additions & 2 deletions 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 Expand Up @@ -329,7 +329,7 @@ async function main() {

outputJson.firstBatchData = batchData;
outputJson.genesis = genesis.root;
outputJson.createRollupBlock = blockDeploymentRollup.number;
outputJson.createRollupBlockNumber = blockDeploymentRollup.number;
outputJson.rollupAddress = newZKEVMAddress;
outputJson.verifierAddress = verifierContract.target;
outputJson.consensusContract = consensusContract;
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
83 changes: 83 additions & 0 deletions tools/getRollupData/getRollupData.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/* 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 filterInit = rollupManager.filters.Initialized(undefined);
const eventsInit = await rollupManager.queryFilter(filterInit, 0, "latest");
const deploymenRollupManagerBlockNumber = eventsInit[0].blockNumber;

// Filter first initialization (deployment)
const filter = rollupManager.filters.AddExistingRollup(1);
const eventsAddRollup = await rollupManager.queryFilter(filter, 0, "latest");
const upgradeToULxLyBlockNumber = eventsAddRollup[0].blockNumber;
const deployOutput = {
polygonRollupManagerAddress: rollupManager.target,
polygonZkEVMBridgeAddress,
polygonZkEVMGlobalExitRootAddress,
polTokenAddress,
deploymenRollupManagerBlockNumber,
upgradeToULxLyBlockNumber,
};
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.createRollupBlockNumber = eventsCreateNewRollup[0].blockNumber;
outputCreateRollup.rollupAddress = rollupAddress;
outputCreateRollup.consensusContract = description;
outputCreateRollup.rollupID = Number(rollupID);
outputCreateRollup.L2ChainID = Number(chainID);
outputCreateRollup.gasTokenAddress = gasTokenAddress;

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

main().catch((e) => {
console.error(e);
process.exit(1);
});
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 a185009

Please sign in to comment.