150 lines
6.6 KiB
JavaScript
150 lines
6.6 KiB
JavaScript
const { ethers } = require("hardhat");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
async function main() {
|
|
// Load deployed addresses
|
|
const deployedAddressesPath = path.join(__dirname, "deployedAddresses.json");
|
|
const deployedAddresses = JSON.parse(fs.readFileSync(deployedAddressesPath, "utf8"));
|
|
|
|
// Extract the proxy address
|
|
const proxyAddress = deployedAddresses.proxyAddress; // Adjust the key if named differently
|
|
|
|
// Get the Contract ABI and connect to the proxy
|
|
// Replace 'PacaFinanceWithBoostAndSchedule' with your contract name if different
|
|
const PacaContract = await ethers.getContractFactory("PacaFinanceWithBoostAndSchedule");
|
|
const proxy = await PacaContract.attach(proxyAddress);
|
|
|
|
// Address to impersonate
|
|
const impersonateAddress = "0xbf12D3b827a230F7390EbCc9b83b289FdC98ba81";
|
|
|
|
// Impersonate account
|
|
await network.provider.request({
|
|
method: "hardhat_impersonateAccount",
|
|
params: [impersonateAddress]
|
|
});
|
|
|
|
// Get impersonated signer
|
|
const impersonatedSigner = await ethers.getSigner(impersonateAddress);
|
|
|
|
// Prepare stake inputs
|
|
const stakeInputs = [
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Replace with a test address
|
|
amount: ethers.parseEther("100"), // 100 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 30, // 30 days from now
|
|
dailyRewardRate: 5, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
{
|
|
user: "0x1234567890123456789012345678901234567890", // Same user for multiple stakes
|
|
amount: ethers.parseEther("200"), // 200 tokens
|
|
unlockTime: Math.floor(Date.now() / 1000) + 86400 * 60, // 60 days from now
|
|
dailyRewardRate: 10, // Reward rate
|
|
},
|
|
|
|
];
|
|
|
|
// Call the createStakes function
|
|
// console.log("Sending transaction to create stakes from impersonated address...");
|
|
// const tx = await proxy.connect(impersonatedSigner).createStakes(stakeInputs);
|
|
// await tx.wait();
|
|
|
|
// console.log("Stakes created successfully!");
|
|
const tx = await proxy.connect(impersonatedSigner).getStakes("0xfe5FD43b5DD5E9dA362901C5B24EF7aEdC3914B0");
|
|
// await tx.wait();
|
|
console.log(tx);
|
|
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error(error);
|
|
process.exitCode = 1;
|
|
});
|