test task

This commit is contained in:
Moon Man 2025-01-18 09:52:29 -05:00
parent efe2fee40e
commit 6a5f6835e8
5 changed files with 55 additions and 3 deletions

View File

@ -3,6 +3,7 @@ import { resolve } from "path";
import type { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox-viem";
import { env } from "./lib/common";
import "./tasks/test";
[
`.env.${process.env.APP_ENV}.contracts`,
@ -22,6 +23,7 @@ const config: HardhatUserConfig = {
networks: {
localhost: {
url: LOCAL_NODE_URL,
chainId: 31337,
accounts: {
mnemonic: process.env.MNEMONIC || TEST_MNEMONIC
}

20
lib/task-helper.ts Normal file
View File

@ -0,0 +1,20 @@
import { task } from "hardhat/config";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import path from "path";
import fs from "fs";
import config from "../hardhat.config";
export const getDeployedContractAddress = async (hre: HardhatRuntimeEnvironment, contractName: string, network: string) => {
const chainId = config.networks?.[network]?.chainId;
if (!chainId) {
throw new Error(`Chain ID for network ${network} not found in hardhat.config.ts`);
}
const artifactsPath = path.join(__dirname, `../ignition/deployments/chain-${chainId}/deployed_addresses.json`);
const deploymentData = JSON.parse(fs.readFileSync(artifactsPath, 'utf8'));
const deployedAddress = deploymentData[`${contractName}#${contractName}`];
if (!deployedAddress) {
throw new Error(`Contract ${contractName} not found in deployment data for network ${network}`);
}
return deployedAddress as `0x${string}` | null;
}

4
package-lock.json generated
View File

@ -9,6 +9,7 @@
"version": "0.0.1",
"license": "MIT",
"devDependencies": {
"@nomicfoundation/hardhat-network-helpers": "^1.0.12",
"@nomicfoundation/hardhat-toolbox-viem": "^3.0.0",
"@openzeppelin/contracts": "^5.2.0",
"dotenv": "^16.4.7",
@ -1356,7 +1357,6 @@
"integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"ethereumjs-util": "^7.1.4"
},
@ -1370,7 +1370,6 @@
"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@ -1395,7 +1394,6 @@
"integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dev": true,
"license": "MPL-2.0",
"peer": true,
"dependencies": {
"@types/bn.js": "^5.1.0",
"bn.js": "^5.1.2",

View File

@ -12,6 +12,7 @@
"author": "moon.eth",
"license": "MIT",
"devDependencies": {
"@nomicfoundation/hardhat-network-helpers": "^1.0.12",
"@nomicfoundation/hardhat-toolbox-viem": "^3.0.0",
"@openzeppelin/contracts": "^5.2.0",
"dotenv": "^16.4.7",

31
tasks/test.ts Normal file
View File

@ -0,0 +1,31 @@
import { task } from "hardhat/config";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import config from "../hardhat.config";
import { getDeployedContractAddress } from "../lib/task-helper";
task("test-task", "Test task")
.setAction(async (taskArgs, hre: HardhatRuntimeEnvironment) => {
console.log("Transition mint task started");
const network = hre.network.name;
if (!config.networks?.[network]) {
throw new Error(`Network ${network} not configured in hardhat.config.ts`);
}
const chainId = config.networks[network].chainId;
if (!chainId) {
throw new Error(`Chain ID for network ${network} not found in hardhat.config.ts`);
}
const deployedAddress = await getDeployedContractAddress(hre, "TenGransToken", network);
if (!deployedAddress) {
throw new Error("TenGransToken address not found in deployment artifacts");
}
const tenGransToken = await hre.viem.getContractAt(
"TenGransToken",
deployedAddress
);
console.log("Connected to TenGransToken at:", deployedAddress);
console.log("Contract:", tenGransToken);
});