"use strict";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ITally__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "uint256[]",
                        name: "voteOptionIndices",
                        type: "uint256[]",
                    },
                    {
                        internalType: "uint256[]",
                        name: "tallyResults",
                        type: "uint256[]",
                    },
                    {
                        internalType: "uint256[][][]",
                        name: "tallyResultProofs",
                        type: "uint256[][][]",
                    },
                    {
                        internalType: "uint256",
                        name: "totalSpent",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "totalSpentSalt",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "tallyResultSalt",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "newResultsCommitment",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "spentVoiceCreditsHash",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "perVOSpentVoiceCreditsHash",
                        type: "uint256",
                    },
                ],
                internalType: "struct ITally.AddTallyResultsArgs",
                name: "args",
                type: "tuple",
            },
        ],
        name: "addTallyResults",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_batchStartIndex",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_newTallyCommitment",
                type: "uint256",
            },
        ],
        name: "getPublicCircuitInputs",
        outputs: [
            {
                internalType: "uint256[]",
                name: "publicInputs",
                type: "uint256[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getTallyResults",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "value",
                        type: "uint256",
                    },
                    {
                        internalType: "bool",
                        name: "isSet",
                        type: "bool",
                    },
                ],
                internalType: "struct ITally.TallyResult",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "isTallied",
        outputs: [
            {
                internalType: "bool",
                name: "tallied",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "sbCommitment",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "tallyBatchNum",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "tallyCommitment",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_newTallyCommitment",
                type: "uint256",
            },
            {
                internalType: "uint256[8]",
                name: "_proof",
                type: "uint256[8]",
            },
        ],
        name: "tallyVotes",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "totalSpent",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "totalTallyResults",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "updateSbCommitment",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_voteOptionIndex",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_spent",
                type: "uint256",
            },
            {
                internalType: "uint256[][]",
                name: "_spentProof",
                type: "uint256[][]",
            },
            {
                internalType: "uint256",
                name: "_spentSalt",
                type: "uint256",
            },
            {
                internalType: "uint8",
                name: "_voteOptionTreeDepth",
                type: "uint8",
            },
            {
                internalType: "uint256",
                name: "_spentVoiceCreditsHash",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_resultCommitment",
                type: "uint256",
            },
        ],
        name: "verifyPerVoteOptionSpentVoiceCredits",
        outputs: [
            {
                internalType: "bool",
                name: "isValid",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_totalSpent",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_totalSpentSalt",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_resultCommitment",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_perVoteOptionSpentVoiceCreditsHash",
                type: "uint256",
            },
        ],
        name: "verifySpentVoiceCredits",
        outputs: [
            {
                internalType: "bool",
                name: "isValid",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_batchStartIndex",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_newTallyCommitment",
                type: "uint256",
            },
            {
                internalType: "uint256[8]",
                name: "_proof",
                type: "uint256[8]",
            },
        ],
        name: "verifyTallyProof",
        outputs: [
            {
                internalType: "bool",
                name: "isValid",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "_voteOptionIndex",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_tallyResult",
                type: "uint256",
            },
            {
                internalType: "uint256[][]",
                name: "_tallyResultProof",
                type: "uint256[][]",
            },
            {
                internalType: "uint256",
                name: "_tallyResultSalt",
                type: "uint256",
            },
            {
                internalType: "uint8",
                name: "_voteOptionTreeDepth",
                type: "uint8",
            },
            {
                internalType: "uint256",
                name: "_spentVoiceCreditsHash",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "_perVoteOptionSpentVoiceCreditsHash",
                type: "uint256",
            },
        ],
        name: "verifyTallyResult",
        outputs: [
            {
                internalType: "bool",
                name: "isValid",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
];
class ITally__factory {
    static createInterface() {
        return new ethers_1.Interface(_abi);
    }
    static connect(address, runner) {
        return new ethers_1.Contract(address, _abi, runner);
    }
}
exports.ITally__factory = ITally__factory;
ITally__factory.abi = _abi;
//# sourceMappingURL=ITally__factory.js.map