Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions deploy/012-converters-configurations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { ethers } from "hardhat";
import { DeployFunction } from "hardhat-deploy/types";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { ACMCommandsAggregator } from "typechain";

import { UNICHAINSEPOLIA_CONVERTER_NETWORK, UNICHAINSEPOLIA_XVS_VAULT_TREASURY } from "../helpers/Addresses";
import {
getConverterNetworkPermissions,
getConverterPermissions,
getXVSVaultTreasuryPermissions,
} from "../helpers/permissions";

const grantPermissions = [
...getConverterNetworkPermissions(UNICHAINSEPOLIA_CONVERTER_NETWORK),
...getConverterPermissions(),
...getXVSVaultTreasuryPermissions(UNICHAINSEPOLIA_XVS_VAULT_TREASURY),
];
export enum AccountType {
NORMAL_TIMELOCK = "NormalTimelock",
FAST_TRACK_TIMELOCK = "FastTrackTimelock",
CRITICAL_TIMELOCK = "CriticalTimelock",
}
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
const acmCommandsAggregator: ACMCommandsAggregator = await ethers.getContract("ACMCommandsAggregator");
for (const permission of grantPermissions) {
if (Object.values(AccountType).includes(permission[2] as AccountType)) {
const timelock = await ethers.getContract(permission[2]);
permission[2] = timelock.address;
}
}
const _grantPermissions: ACMCommandsAggregator.PermissionStruct[] = grantPermissions.map(permission => ({
contractAddress: permission[0],
functionSig: permission[1],
account: permission[2],
}));

try {
// Add grant permissions
const tx = await acmCommandsAggregator.addGrantPermissions(_grantPermissions);
const receipt = await tx.wait();
const events = receipt.events?.filter(event => event.event === "GrantPermissionsAdded");
console.log(`Grant Permissions for ${hre.network.name} added with indexes:`, events?.[0].args?.index.toString());
} catch (error) {
console.error("Error adding permissions:", error);
}
};

func.tags = ["converter-permissions"];

func.skip = async (hre: HardhatRuntimeEnvironment) => hre.network.name === "hardhat";

export default func;
6 changes: 6 additions & 0 deletions helpers/Addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,9 @@ export const ARBITRUMSEPOLIA_GUARDIAN = "0x1426A5Ae009c4443188DA8793751024E358A6
export const ARBITRUMSEPOLIA_OMNICHAIN_EXECUTOR_OWNER = "0xfCA70dd553b7dF6eB8F813CFEA6a9DD039448878";
export const SEPOLIA_OMNICHAIN_EXECUTOR_OWNER = "0xf964158C67439D01e5f17F0A3F39DfF46823F27A";
export const OPBNBTESTNET_OMNICHAIN_EXECUTOR_OWNER = "0x4F570240FF6265Fbb1C79cE824De6408F1948913";

export const UNICHAINSEPOLIA_CONVERTER_NETWORK = "0xfD57cc379D74d2d4A94D653f989F8EEb6b078aBF";
export const UNICHAINSEPOLIA_USDC_PRIME_CONVERTER = "0x599708901Cee4921EDb7E0816A76fE8861C5D059";
export const UNICHAINSEPOLIA_WETH_PRIME_CONVERTER = "0x49ace012A451219290B54f07385880727e86D376";
export const UNICHAINSEPOLIA_XVS_VAULT_CONVERTER = "0x835F8A6C29d539cd7B78DCb8B9DaeAb643Ff9f0E";
export const UNICHAINSEPOLIA_XVS_VAULT_TREASURY = "0xA2c492f85aad1847dc21a44650cc687b94CdD6B3";
35 changes: 12 additions & 23 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3476,29 +3476,7 @@ __metadata:
languageName: node
linkType: hard

"@venusprotocol/governance-contracts@npm:^1.4.0":
version: 1.4.0
resolution: "@venusprotocol/governance-contracts@npm:1.4.0"
dependencies:
"@venusprotocol/solidity-utilities": ^1.1.0
hardhat-deploy-ethers: ^0.3.0-beta.13
module-alias: ^2.2.2
checksum: 85c6b6a815edb0befa4c38e3652a58464827d390620210b99575c16960ee6505e95e7c2192ebc972da7ed758d3c62e150d32fbdd1f01acab1731f29b11d1884e
languageName: node
linkType: hard

"@venusprotocol/governance-contracts@npm:^2.0.0":
version: 2.11.0
resolution: "@venusprotocol/governance-contracts@npm:2.11.0"
dependencies:
"@venusprotocol/solidity-utilities": 2.0.0
hardhat-deploy-ethers: ^0.3.0-beta.13
module-alias: ^2.2.2
checksum: 1b4704ebf701f5c444b70ef1c4e2a528f7bf061f839881f3db82bac2bf5b330635999d78294bb3d5cc61703f38b603386cd019db7dde16c709d4bed30aedb554
languageName: node
linkType: hard

"@venusprotocol/governance-contracts@workspace:.":
"@venusprotocol/governance-contracts@^2.0.0, @venusprotocol/governance-contracts@workspace:.":
version: 0.0.0-use.local
resolution: "@venusprotocol/governance-contracts@workspace:."
dependencies:
Expand Down Expand Up @@ -3580,6 +3558,17 @@ __metadata:
languageName: unknown
linkType: soft

"@venusprotocol/governance-contracts@npm:^1.4.0":
version: 1.4.0
resolution: "@venusprotocol/governance-contracts@npm:1.4.0"
dependencies:
"@venusprotocol/solidity-utilities": ^1.1.0
hardhat-deploy-ethers: ^0.3.0-beta.13
module-alias: ^2.2.2
checksum: 85c6b6a815edb0befa4c38e3652a58464827d390620210b99575c16960ee6505e95e7c2192ebc972da7ed758d3c62e150d32fbdd1f01acab1731f29b11d1884e
languageName: node
linkType: hard

"@venusprotocol/protocol-reserve@npm:^1.4.0":
version: 1.5.0
resolution: "@venusprotocol/protocol-reserve@npm:1.5.0"
Expand Down
Loading