import { ethers } from "ethers";
import standardZoneABI from "../assets/contracts/zones/standard/abi.json"

export const register = async (contractAddress: string, parent: string, label: string, signer: ethers.Signer) => {
    const parentHash = ethers.namehash(parent);
    
    const contract = new ethers.Contract(contractAddress, standardZoneABI, signer)
    const account = await signer.getAddress()

    try {
        const tx = await contract.register(account, parentHash, label)
        return tx;
        
    } catch (error) {
        return error.message;
    }
}

export const callStandardZone = async (args: Array<String>, contractAddress: string, functionName: string, provider: ethers.Provider | ethers.Signer) => {
    const contract = new ethers.Contract(contractAddress, standardZoneABI, provider);

    try {
        const result = await contract[functionName](...args);
        return result;
    } catch (error) {
        console.error(error);
        return error.reason;
    }
}