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("")} + };` }