Initial commit with 🏗️ create-eth @ 2.0.4
This commit is contained in:
47
packages/hardhat/deploy/02_deploy_optimistic.ts
Normal file
47
packages/hardhat/deploy/02_deploy_optimistic.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { HardhatRuntimeEnvironment } from "hardhat/types";
|
||||
import { DeployFunction } from "hardhat-deploy/types";
|
||||
|
||||
const deployOptimisticOracle: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
||||
const { deployments, getNamedAccounts } = hre;
|
||||
const { deploy } = deployments;
|
||||
const { deployer } = await getNamedAccounts();
|
||||
|
||||
console.log("Deploying OptimisticOracle...");
|
||||
// Get the deployer's current nonce
|
||||
const deployerNonce = await hre.ethers.provider.getTransactionCount(deployer);
|
||||
|
||||
const futureDeciderAddress = hre.ethers.getCreateAddress({
|
||||
from: deployer,
|
||||
nonce: deployerNonce + 1, // +1 because it will be our second deployment
|
||||
});
|
||||
// Deploy the OptimisticOracle contract with deployer as temporary decider
|
||||
const optimisticOracle = await deploy("OptimisticOracle", {
|
||||
contract: "OptimisticOracle",
|
||||
from: deployer,
|
||||
args: [futureDeciderAddress],
|
||||
log: true,
|
||||
autoMine: false,
|
||||
});
|
||||
|
||||
// Deploy the Decider contract
|
||||
const decider = await deploy("Decider", {
|
||||
contract: "Decider",
|
||||
from: deployer,
|
||||
args: [optimisticOracle.address],
|
||||
log: true,
|
||||
autoMine: false,
|
||||
});
|
||||
|
||||
// Check if the decider address matches the expected address
|
||||
if (decider.address !== futureDeciderAddress) {
|
||||
throw new Error("Decider address does not match expected address");
|
||||
}
|
||||
|
||||
console.log("OptimisticOracle deployed to:", optimisticOracle.address);
|
||||
console.log("Decider deployed to:", decider.address);
|
||||
};
|
||||
|
||||
deployOptimisticOracle.id = "deploy_optimistic_oracle";
|
||||
deployOptimisticOracle.tags = ["OptimisticOracle"];
|
||||
|
||||
export default deployOptimisticOracle;
|
||||
Reference in New Issue
Block a user