diff --git a/packages/addresses-tools/package.json b/packages/addresses-tools/package.json index 9c96df5f..868556c2 100644 --- a/packages/addresses-tools/package.json +++ b/packages/addresses-tools/package.json @@ -18,6 +18,7 @@ "prepublishOnly": "npx tsc" }, "devDependencies": { - "@zetachain/addresses": "workspace:^" + "@zetachain/addresses": "workspace:^", + "@zetachain/protocol-contracts": "^1.0.1-athens3" } -} \ No newline at end of file +} diff --git a/packages/addresses-tools/src/addresses.helpers.ts b/packages/addresses-tools/src/addresses.helpers.ts index 3e7d79e6..8b0289f3 100644 --- a/packages/addresses-tools/src/addresses.helpers.ts +++ b/packages/addresses-tools/src/addresses.helpers.ts @@ -21,6 +21,8 @@ import { ZetaNetworkName, ZetaTestnetNetworkName } from "@zetachain/addresses"; +import { ZetaProtocolNetwork } from "@zetachain/protocol-contracts/dist/lib"; +import { ProtocolNetworkNetworkNameMap } from "@zetachain/protocol-contracts/dist/lib/address.helpers"; import dotenv from "dotenv"; import { readdirSync, readFileSync, writeFileSync } from "fs"; import { network } from "hardhat"; @@ -31,7 +33,7 @@ import { deepCloneSerializable } from "./misc.helpers"; const LOCAL_PKG = "addresses-tools"; const PUBLIC_PKG = "addresses"; -const dirname = __dirname.replace(LOCAL_PKG, PUBLIC_PKG); +const dirname = __dirname.replace(LOCAL_PKG, PUBLIC_PKG).replace("dist", "src"); export const getScanVariable = ({ customNetworkName }: { customNetworkName?: string } = {}): string => { const networkName = customNetworkName || network.name; @@ -290,3 +292,8 @@ export const loadAddressFromFile = async ( throw new Error(`Invalid ZETA_NETWORK + network combination ${ZETA_NETWORK} ${networkName}.`); }; + +export const getProtocolNetwork = (value: NetworkName): ZetaProtocolNetwork | undefined => { + //@ts-expect-error + return Object.keys(ProtocolNetworkNetworkNameMap).find(key => ProtocolNetworkNetworkNameMap[key] === value); +}; diff --git a/packages/addresses/package.json b/packages/addresses/package.json index 7a93a196..91690818 100644 --- a/packages/addresses/package.json +++ b/packages/addresses/package.json @@ -10,7 +10,7 @@ "files": [ "dist" ], - "main": "", + "main": "./dist/", "exports": { ".": "./dist/index.js" }, @@ -22,4 +22,4 @@ "vite": "^3.1.0", "vite-plugin-dts": "^1.4.1" } -} \ No newline at end of file +} diff --git a/packages/addresses/src/addresses.athens.json b/packages/addresses/src/addresses.athens.json index 6fe05a65..cf5c2285 100644 --- a/packages/addresses/src/addresses.athens.json +++ b/packages/addresses/src/addresses.athens.json @@ -131,7 +131,7 @@ "immutableCreate2Factory": "", "multiChainSwap": "", "multiChainSwapZetaConnector": "", - "multiChainValue": "", + "multiChainValue": "0x14BeC0E4A8e7bF7A02Af54Ad81a57a9fcA4D37Fd", "tridentPoolFactory": "", "tss": "", "tssUpdater": "", diff --git a/packages/zeta-app-contracts/package.json b/packages/zeta-app-contracts/package.json index 118bd45a..9fa1def8 100644 --- a/packages/zeta-app-contracts/package.json +++ b/packages/zeta-app-contracts/package.json @@ -32,7 +32,7 @@ "@openzeppelin/contracts": "^4.8.3", "@zetachain/addresses": "workspace:^", "@zetachain/addresses-tools": "workspace:^", - "@zetachain/protocol-contracts": "^0.0.6", + "@zetachain/protocol-contracts": "^1.0.1-athens3", "ethers": "5.6.8" } } diff --git a/packages/zeta-app-contracts/scripts/multi-chain-value/deploy.ts b/packages/zeta-app-contracts/scripts/multi-chain-value/deploy.ts index fa8c33eb..1408ac04 100644 --- a/packages/zeta-app-contracts/scripts/multi-chain-value/deploy.ts +++ b/packages/zeta-app-contracts/scripts/multi-chain-value/deploy.ts @@ -1,9 +1,9 @@ -import { getChainId, isNetworkName, isZetaTestnet } from "@zetachain/addresses"; -import { saveAddress } from "@zetachain/addresses-tools"; -import { network } from "hardhat"; +import { getChainId, isNetworkName, isZetaTestnet, NetworkName } from "@zetachain/addresses"; +import { getProtocolNetwork, saveAddress } from "@zetachain/addresses-tools"; +import { getAddress } from "@zetachain/protocol-contracts/dist/lib"; +import { ethers, network } from "hardhat"; -import { getMultiChainValue } from "../../lib/multi-chain-value/MultiChainValue.helpers"; -import { getAddress } from "../../lib/shared/address.helpers"; +import { MultiChainValue, MultiChainValue__factory } from "../../typechain-types"; const networkName = network.name; const { ZETA_NETWORK } = process.env; @@ -11,31 +11,39 @@ const { ZETA_NETWORK } = process.env; async function main() { if (!isNetworkName(networkName)) throw new Error("Invalid network name"); - const multiChainValueContract = await getMultiChainValue(getAddress("multiChainValue")); + const protocolNetwork = getProtocolNetwork(networkName); + if (!protocolNetwork) throw new Error("Invalid network name"); + + const connectorAddress = getAddress("connector", protocolNetwork); + const zetaTokenAddress = getAddress("zetaToken", protocolNetwork); + + const Factory = (await ethers.getContractFactory("MultiChainValue")) as MultiChainValue__factory; + const contract = (await Factory.deploy(connectorAddress, zetaTokenAddress)) as MultiChainValue; + await contract.deployed(); + + //@ts-expect-error + console.log("MultiChainValue deployed to:", contract.address); if (isZetaTestnet(ZETA_NETWORK)) { networkName !== "goerli" && - (await (await multiChainValueContract.addAvailableChainId(getChainId("goerli"))) - .wait() - .catch(e => console.error(e))); + (await (await contract.addAvailableChainId(getChainId("goerli"))).wait().catch((e: any) => console.error(e))); networkName !== "polygon-mumbai" && - (await (await multiChainValueContract.addAvailableChainId(getChainId("polygon-mumbai"))) + (await (await contract.addAvailableChainId(getChainId("polygon-mumbai"))) .wait() - .catch(e => console.error(e))); + .catch((e: any) => console.error(e))); networkName !== "bsc-testnet" && - (await (await multiChainValueContract.addAvailableChainId(getChainId("bsc-testnet"))) + (await (await contract.addAvailableChainId(getChainId("bsc-testnet"))) .wait() - .catch(e => console.error(e))); + .catch((e: any) => console.error(e))); - networkName !== "ropsten" && - (await (await multiChainValueContract.addAvailableChainId(getChainId("ropsten"))) - .wait() - .catch(e => console.error(e))); + networkName !== "athens" && + (await (await contract.addAvailableChainId(getChainId("athens"))).wait().catch((e: any) => console.error(e))); } - saveAddress("multiChainValue", multiChainValueContract.address); + //@ts-expect-error + saveAddress("multiChainValue", contract.address); } main().catch(error => { diff --git a/yarn.lock b/yarn.lock index feb5c4ff..8e0d4099 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2703,6 +2703,7 @@ __metadata: resolution: "@zetachain/addresses-tools@workspace:packages/addresses-tools" dependencies: "@zetachain/addresses": "workspace:^" + "@zetachain/protocol-contracts": ^1.0.1-athens3 languageName: unknown linkType: soft @@ -2747,6 +2748,13 @@ __metadata: languageName: node linkType: hard +"@zetachain/protocol-contracts@npm:^1.0.1-athens3": + version: 1.0.1-athens3 + resolution: "@zetachain/protocol-contracts@npm:1.0.1-athens3" + checksum: b0877c78160ae233ef3786e2e62fa8352592c97711903c10bad9a9fe74683a4a28eaa242d4a5091f0aa594ea8879eb8e0cee108c3a1f61262756a04bb6e5a1a2 + languageName: node + linkType: hard + "@zetachain/zeta-app-contracts@workspace:packages/zeta-app-contracts": version: 0.0.0-use.local resolution: "@zetachain/zeta-app-contracts@workspace:packages/zeta-app-contracts" @@ -2755,7 +2763,7 @@ __metadata: "@openzeppelin/contracts": ^4.8.3 "@zetachain/addresses": "workspace:^" "@zetachain/addresses-tools": "workspace:^" - "@zetachain/protocol-contracts": ^0.0.6 + "@zetachain/protocol-contracts": ^1.0.1-athens3 ethers: 5.6.8 hardhat-gas-reporter: ^1.0.8 solidity-coverage: ^0.7.20