Skip to content

Commit 85ac7ac

Browse files
authored
Merge pull request #300 from VenusProtocol/feat/usdt-chainlink-oracle-deployment
[VPD-171 ] deploy usdt chainlink oracle for USDe oracle configuration
2 parents ed9fcd0 + 37a2bc6 commit 85ac7ac

15 files changed

+6329
-1
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import hre from "hardhat";
2+
import { DeployFunction } from "hardhat-deploy/dist/types";
3+
import { HardhatRuntimeEnvironment } from "hardhat/types";
4+
5+
import { ADDRESSES, SEQUENCER } from "../helpers/deploymentConfig";
6+
7+
const func: DeployFunction = async function ({ getNamedAccounts, deployments, network }: HardhatRuntimeEnvironment) {
8+
const { deploy } = deployments;
9+
const { deployer } = await getNamedAccounts();
10+
const proxyOwnerAddress = network.live ? ADDRESSES[network.name].timelock : deployer;
11+
const defaultProxyAdmin = await hre.artifacts.readArtifact(
12+
"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol:ProxyAdmin",
13+
);
14+
15+
const sequencer = SEQUENCER[network.name];
16+
let contractName = "ChainlinkOracle";
17+
if (sequencer !== undefined) contractName = "SequencerChainlinkOracle";
18+
19+
await deploy("USDTChainlinkOracle", {
20+
contract: network.live ? contractName : "MockChainlinkOracle",
21+
from: deployer,
22+
log: true,
23+
deterministicDeployment: false,
24+
skipIfAlreadyDeployed: true,
25+
args: sequencer ? [sequencer] : [],
26+
proxy: {
27+
owner: proxyOwnerAddress,
28+
proxyContract: "OptimizedTransparentUpgradeableProxy",
29+
execute: {
30+
methodName: "initialize",
31+
args: network.live ? [ADDRESSES[network.name].acm] : [],
32+
},
33+
viaAdminContract: {
34+
name: "DefaultProxyAdmin",
35+
artifact: defaultProxyAdmin,
36+
},
37+
},
38+
});
39+
40+
const usdtChainlinkOracle = await hre.ethers.getContract("USDTChainlinkOracle");
41+
const usdtChainlinkOracleOwner = await usdtChainlinkOracle.owner();
42+
43+
if (usdtChainlinkOracleOwner === deployer && network.live) {
44+
await usdtChainlinkOracle.transferOwnership(proxyOwnerAddress);
45+
console.log(`Ownership of ChainlinkOracle transfered from deployer to Timelock (${proxyOwnerAddress})`);
46+
}
47+
};
48+
49+
func.tags = ["deploy-usdt-chainlink-oracle"];
50+
func.skip = async env => !env.network.live;
51+
export default func;

0 commit comments

Comments
 (0)