From 41c3bab77759ed9237f81ce1f9fec16c21dbc5b3 Mon Sep 17 00:00:00 2001 From: Andres Aiello Date: Fri, 4 Oct 2024 13:36:49 -0300 Subject: [PATCH] add upgrade script --- .../scripts/xp-nft/upgrade-v2.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/zevm-app-contracts/scripts/xp-nft/upgrade-v2.ts diff --git a/packages/zevm-app-contracts/scripts/xp-nft/upgrade-v2.ts b/packages/zevm-app-contracts/scripts/xp-nft/upgrade-v2.ts new file mode 100644 index 0000000..e16ba1c --- /dev/null +++ b/packages/zevm-app-contracts/scripts/xp-nft/upgrade-v2.ts @@ -0,0 +1,36 @@ +import { isProtocolNetworkName } from "@zetachain/protocol-contracts"; +import { ethers, network, upgrades } from "hardhat"; + +import addresses from "../../data/addresses.json"; +import { ZetaXP__factory } from "../../typechain-types"; +import { saveAddress } from "../address.helpers"; +import { verifyContract } from "../explorer.helpers"; + +const networkName = network.name; + +const upgradeZetaXP = async () => { + if (!isProtocolNetworkName(networkName)) throw new Error("Invalid network name"); + + //@ts-ignore + const nftAddress = addresses[networkName].ZetaXP; + + const ZetaXPFactory = await ethers.getContractFactory("ZetaXP_V2"); + const zetaXP = await upgrades.upgradeProxy(nftAddress, ZetaXPFactory); + const implementationAddress = await upgrades.erc1967.getImplementationAddress(zetaXP.address); + + console.log("ZetaXP upgraded in:", zetaXP.address); + console.log("ZetaXP implementation deployed to:", implementationAddress); + + saveAddress("ZetaXP", zetaXP.address, networkName); + + await verifyContract(implementationAddress, []); +}; + +const main = async () => { + await upgradeZetaXP(); +}; + +main().catch((error) => { + console.error(error); + process.exit(1); +});