dagger-contracts/deploy/marketplace.js

51 lines
1.5 KiB
JavaScript

const MARKETPLACE_HARDCODED_ADDRESS = "0x59b670e9fA9D0A427751Af201D676719a970857b"
async function deployMarketplace({ deployments, getNamedAccounts }) {
const token = await deployments.get("TestToken")
const verifier = await deployments.get("Verifier")
const configuration = {
collateral: {
repairRewardPercentage: 10,
maxNumberOfSlashes: 5,
slashCriterion: 3,
slashPercentage: 10,
},
proofs: {
period: 10,
timeout: 5,
downtime: 64,
},
}
const args = [token.address, configuration, verifier.address]
const { deployer } = await getNamedAccounts()
await deployments.deploy("Marketplace", { args, from: deployer })
}
async function mine256blocks({ network, ethers }) {
if (network.tags.local) {
await ethers.provider.send("hardhat_mine", ["0x100"])
}
}
async function aliasContract({deployments, network}) {
if (network.tags.local) {
const marketplaceDeployment = await deployments.get("Marketplace")
if (marketplaceDeployment.address === MARKETPLACE_HARDCODED_ADDRESS) {
return
}
console.log(`Aliasing marketplace from address ${marketplaceDeployment.address} to ${MARKETPLACE_HARDCODED_ADDRESS}`)
await ethers.provider.send("hardhat_setCode", [MARKETPLACE_HARDCODED_ADDRESS, marketplaceDeployment.address])
}
}
module.exports = async (environment) => {
await mine256blocks(environment)
await deployMarketplace(environment)
await aliasContract(environment)
}
module.exports.tags = ["Marketplace"]
module.exports.dependencies = ["TestToken", "Verifier"]