diff --git a/javascript/src/generators/hardhat.ts b/javascript/src/generators/hardhat.ts
index 45b0f3e..910686a 100644
--- a/javascript/src/generators/hardhat.ts
+++ b/javascript/src/generators/hardhat.ts
@@ -1,5 +1,43 @@
-
-
-export function generateHardHatInterface(abi: Object, name: string): string {
- return `console.log("${name}")`
+interface input {
+ internalType: String
+ name: String
+ type: String
+}
+interface abiItem {
+ name: string
+ inputs: Array
+ outputs: Array
+ stateMutability: String
+ type: String
+}
+
+export function generateHardHatInterface(
+ abi: Array,
+ name: string
+): string {
+ // return `console.log("${name}")`
+ const contractName = name
+ const contractInterface = abi.map((abiItem) => {
+ console.log("abiItem", abiItem.name)
+ if (!abiItem.name) return ""
+
+ const string =
+ `${abiItem.name} (address, ${abiItem.inputs.map(
+ (inputItem) => inputItem.name
+ )}) {
+ const Contract = await ethers.getContractFactory("${contractName}");
+ const contract = await Contract.attach(` +
+ "`${address}`" +
+ `);
+ await contract.${abiItem.name}(${abiItem.inputs.map(
+ (inputItem) => inputItem.name
+ )});
+ };
+ `
+ return string
+ })
+ return `export class Moonworm {
+ constructor () {}
+ ${contractInterface.join("")}
+ };`
}