Skip to content

Commit

Permalink
improving and adding scripts to simplyfix setup
Browse files Browse the repository at this point in the history
  • Loading branch information
josojo committed Feb 11, 2024
1 parent 8f78b97 commit 59e731b
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/scripts/depositForkonomicTokenIntoBridge.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ async function main() {
);

const depositAmount = ethers.utils.parseEther('10');
const tx0 = await forkonomicToken.connect(deployer).mint(polygonZkEVMBridgeAddress, ethers.utils.parseEther('100000'), { gasLimit: 500000 });
console.log('Mint forkonomic tokens');
console.log('by the following tx: ', tx0.hash);
const balance = await forkonomicToken.connect(deployer).balanceOf(deployer.address);
if (balance.lt(depositAmount)) {
throw new Error('Not enough tokens');
}

const tx1 = await forkonomicToken.connect(deployer).approve(polygonZkEVMBridgeAddress, depositAmount, { gasLimit: 500000 });
console.log('Approved bridge to spend forkonomic tokens');
Expand Down
61 changes: 61 additions & 0 deletions src/scripts/mintForkonomicTokens.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/* eslint-disable import/no-dynamic-require, global-require */
/* eslint-disable no-console, no-inner-declarations, no-undef, import/no-unresolved, no-restricted-syntax */
const path = require('path');
const { ethers } = require('hardhat');
require('dotenv').config({ path: path.resolve(__dirname, '../.env') });
const common = require('../common/common');

async function main() {
/*
* Check deploy parameters
* Check that every necessary parameter is fullfilled
*/
const args = process.argv.slice(2);
const deploymentName = args[0];
const deployParameters = require(`../../deployments/${deploymentName}/deploy_parameters.json`);
const deploymentOutput = require(`../../deployments/${deploymentName}/deploy_output.json`);

const mandatoryDeploymentOutput = [
'maticTokenAddress',
'trustedSequencer',
'deployerAddress',
];
for (const parameterName of mandatoryDeploymentOutput) {
if (deploymentOutput[parameterName] === undefined || deploymentOutput[parameterName] === '') {
throw new Error(`Missing parameter: ${parameterName}`);
}
}
const {
maticTokenAddress,
trustedSequencer,
deployerAddress,
} = deploymentOutput;

const forkonomicTokenAddress = maticTokenAddress;
const currentProvider = await common.loadProvider(deployParameters, process.env);
const deployer = await common.loadDeployer(currentProvider, deployParameters);

if (deployerAddress === undefined || deployerAddress.toLowerCase() !== deployer.address.toLowerCase()) {
throw new Error('Wrong deployer address');
}

const forkonomicToken = (await ethers.getContractAt(
'contracts/ForkonomicToken.sol:ForkonomicToken',
forkonomicTokenAddress,
)).connect(deployer);

const tx0 = await forkonomicToken.connect(deployer).mint(deployer.address, ethers.utils.parseEther('100000'), { gasLimit: 500000 });
await tx0.wait();
console.log('Mint forkonomic tokens for deployer');
console.log('by the following tx: ', tx0.hash);

const tx1 = await forkonomicToken.connect(deployer).mint(trustedSequencer, ethers.utils.parseEther('100000'), { gasLimit: 500000 });
await tx1.wait();
console.log('Mint forkonomic tokens for trusted sequencer');
console.log('by the following tx: ', tx1.hash);
}

main().catch((e) => {
console.error(e);
process.exit(1);
});
57 changes: 57 additions & 0 deletions src/scripts/prepareSequencer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/* eslint-disable no-await-in-loop, no-use-before-define, no-lonely-if, import/no-dynamic-require, global-require */
/* eslint-disable no-console, no-inner-declarations, no-undef, import/no-unresolved, no-restricted-syntax */
const path = require('path');
const { ethers } = require('hardhat');
require('dotenv').config({ path: path.resolve(__dirname, '../.env') });
const common = require('../common/common');

async function main() {
/*
* Check deploy parameters
* Check that every necessary parameter is fullfilled
*/
const args = process.argv.slice(2);
const deploymentName = args[0];
const deployParameters = require(`../../deployments/${deploymentName}/deploy_parameters.json`);
const deploymentOutput = require(`../../deployments/${deploymentName}/deploy_output.json`);

const mandatoryDeploymentOutput = [
'polygonZkEVMAddress',
'maticTokenAddress',
'trustedSequencer',
];
for (const parameterName of mandatoryDeploymentOutput) {
if (deploymentOutput[parameterName] === undefined || deploymentOutput[parameterName] === '') {
throw new Error(`Missing parameter: ${parameterName}`);
}
}
const {
polygonZkEVMAddress,
maticTokenAddress,
trustedSequencer,
} = deploymentOutput;

const forkonomicTokenAddress = maticTokenAddress;
const currentProvider = await common.loadProvider(deployParameters, process.env);
const deployer = await common.loadDeployer(currentProvider, deployParameters);

if (trustedSequencer === undefined || trustedSequencer.toLowerCase() !== deployer.address.toLowerCase()) {
throw new Error('Wrong deployer address');
}
console.log('polygonZkEVMAddress: ', polygonZkEVMAddress);

const forkonomicToken = (await ethers.getContractAt(
'contracts/ForkonomicToken.sol:ForkonomicToken',
forkonomicTokenAddress,
)).connect(deployer);

const tx1 = await forkonomicToken.approve(polygonZkEVMAddress, ethers.constants.MaxUint256);
await tx1.wait();
console.log('Approved zkevm by the sequencer to spend forkonomic tokens');
console.log('by the following tx: ', tx1.hash);
}

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

0 comments on commit 59e731b

Please sign in to comment.