feat(vault): add user vault and factory contracts
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
const hre = require("hardhat");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
async function main() {
|
||||
const [deployer] = await hre.ethers.getSigners();
|
||||
console.log("Deploying VaultFactory with account:", deployer.address);
|
||||
|
||||
const Factory = await hre.ethers.getContractFactory("main/src/vault/WTFVaultFactory.sol:WTFVaultFactory");
|
||||
const factory = await Factory.deploy();
|
||||
await factory.waitForDeployment();
|
||||
const factoryAddress = await factory.getAddress();
|
||||
console.log("WTFVaultFactory deployed at:", factoryAddress);
|
||||
|
||||
// Update robinhoodTestnet.json
|
||||
const deployFile = path.join(__dirname, "../deployments/robinhoodTestnet.json");
|
||||
const data = JSON.parse(fs.readFileSync(deployFile, "utf-8"));
|
||||
data.contracts.vaultFactory = factoryAddress;
|
||||
fs.writeFileSync(deployFile, JSON.stringify(data, null, 2));
|
||||
|
||||
// Sync to frontend packages/contracts
|
||||
const frontendDeployFile = path.join(__dirname, "../../wtf-frontend/packages/contracts/src/robinhoodTestnet.json");
|
||||
if (fs.existsSync(frontendDeployFile)) {
|
||||
fs.writeFileSync(frontendDeployFile, JSON.stringify(data, null, 2));
|
||||
}
|
||||
|
||||
// Export ABIs
|
||||
const factoryArtifact = await hre.artifacts.readArtifact("main/src/vault/WTFVaultFactory.sol:WTFVaultFactory");
|
||||
const vaultArtifact = await hre.artifacts.readArtifact("main/src/vault/WTFUserVault.sol:WTFUserVault");
|
||||
|
||||
const frontendAbiDir = path.join(__dirname, "../../wtf-frontend/packages/contracts/src/abis");
|
||||
fs.writeFileSync(path.join(frontendAbiDir, "WTFVaultFactory.json"), JSON.stringify(factoryArtifact.abi, null, 2));
|
||||
fs.writeFileSync(path.join(frontendAbiDir, "WTFUserVault.json"), JSON.stringify(vaultArtifact.abi, null, 2));
|
||||
|
||||
console.log("VaultFactory successfully deployed & synced!");
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
Reference in New Issue
Block a user