import { Contract, ContractFactory, Interface } from "ethers";
const _abi = [
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "Fr[16]",
                        "name": "pairingPointObject",
                        "type": "uint256[16]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "geminiMaskingPoly",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "w1",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "w2",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "w3",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "w4",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "lookupReadCounts",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "lookupReadTags",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "lookupInverses",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "zPerm",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point[3]",
                        "name": "libraCommitments",
                        "type": "tuple[3]"
                    },
                    {
                        "internalType": "Fr",
                        "name": "libraSum",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr[9][28]",
                        "name": "sumcheckUnivariates",
                        "type": "uint256[9][28]"
                    },
                    {
                        "internalType": "Fr",
                        "name": "libraEvaluation",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr[42]",
                        "name": "sumcheckEvaluations",
                        "type": "uint256[42]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point[27]",
                        "name": "geminiFoldComms",
                        "type": "tuple[27]"
                    },
                    {
                        "internalType": "Fr[28]",
                        "name": "geminiAEvaluations",
                        "type": "uint256[28]"
                    },
                    {
                        "internalType": "Fr[4]",
                        "name": "libraPolyEvals",
                        "type": "uint256[4]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "shplonkQ",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "x",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "y",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.G1Point",
                        "name": "kzgQuotient",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct Honk.ZKProof",
                "name": "proof",
                "type": "tuple"
            },
            {
                "internalType": "bytes32[]",
                "name": "publicInputs",
                "type": "bytes32[]"
            },
            {
                "internalType": "uint256",
                "name": "vkHash",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "publicInputsSize",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "logN",
                "type": "uint256"
            }
        ],
        "name": "generateTranscript",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "Fr",
                                "name": "eta",
                                "type": "uint256"
                            },
                            {
                                "internalType": "Fr",
                                "name": "etaTwo",
                                "type": "uint256"
                            },
                            {
                                "internalType": "Fr",
                                "name": "etaThree",
                                "type": "uint256"
                            },
                            {
                                "internalType": "Fr",
                                "name": "beta",
                                "type": "uint256"
                            },
                            {
                                "internalType": "Fr",
                                "name": "gamma",
                                "type": "uint256"
                            },
                            {
                                "internalType": "Fr",
                                "name": "publicInputsDelta",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct Honk.RelationParameters",
                        "name": "relationParameters",
                        "type": "tuple"
                    },
                    {
                        "internalType": "Fr[27]",
                        "name": "alphas",
                        "type": "uint256[27]"
                    },
                    {
                        "internalType": "Fr[28]",
                        "name": "gateChallenges",
                        "type": "uint256[28]"
                    },
                    {
                        "internalType": "Fr",
                        "name": "libraChallenge",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr[28]",
                        "name": "sumCheckUChallenges",
                        "type": "uint256[28]"
                    },
                    {
                        "internalType": "Fr",
                        "name": "rho",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr",
                        "name": "geminiR",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr",
                        "name": "shplonkNu",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr",
                        "name": "shplonkZ",
                        "type": "uint256"
                    },
                    {
                        "internalType": "Fr",
                        "name": "publicInputsDelta",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ZKTranscript",
                "name": "t",
                "type": "tuple"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    }
];
const _bytecode = " ";
const isSuperArgs = (xs) => xs.length > 1;
export class ZKTranscriptLib__factory extends ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            super(_abi, _bytecode, args[0]);
        }
    }
    getDeployTransaction(overrides) {
        return super.getDeployTransaction(overrides || {});
    }
    ;
    deploy(overrides) {
        return super.deploy(overrides || {});
    }
    connect(runner) {
        return super.connect(runner);
    }
    static bytecode = _bytecode;
    static abi = _abi;
    static createInterface() {
        return new Interface(_abi);
    }
    attach(address) {
        return super.attach(address);
    }
    static connect(address, runner) {
        return new Contract(address, _abi, runner);
    }
}
