UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

1,579 lines 80.4 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeneralDAOVoting__factory = void 0;
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
const ethers_1 = require("ethers");
const _abi = [
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "previousAdmin",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "newAdmin",
                type: "address",
            },
        ],
        name: "AdminChanged",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "beacon",
                type: "address",
            },
        ],
        name: "BeaconUpgraded",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "uint8",
                name: "version",
                type: "uint8",
            },
        ],
        name: "Initialized",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint256",
                name: "id",
                type: "uint256",
            },
            {
                indexed: true,
                internalType: "address",
                name: "proposer",
                type: "address",
            },
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "id",
                        type: "uint256",
                    },
                    {
                        internalType: "string",
                        name: "remark",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedExpertPanel",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedVotingSituation",
                        type: "string",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "enum VotingType",
                                name: "votingType",
                                type: "uint8",
                            },
                            {
                                internalType: "uint256",
                                name: "votingStartTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votingEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "proposalExecutionPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredQuorum",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredMajority",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredVetoQuorum",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingParams",
                        name: "params",
                        type: "tuple",
                    },
                    {
                        components: [
                            {
                                internalType: "uint256",
                                name: "votedFor",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votedAgainst",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoesCount",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingCounters",
                        name: "counters",
                        type: "tuple",
                    },
                    {
                        internalType: "bool",
                        name: "executed",
                        type: "bool",
                    },
                ],
                indexed: false,
                internalType: "struct IDAOVoting.DAOProposal",
                name: "proposal",
                type: "tuple",
            },
        ],
        name: "ProposalCreated",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint256",
                name: "id",
                type: "uint256",
            },
        ],
        name: "ProposalExecuted",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "implementation",
                type: "address",
            },
        ],
        name: "Upgraded",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint256",
                name: "id",
                type: "uint256",
            },
            {
                indexed: true,
                internalType: "address",
                name: "voter",
                type: "address",
            },
        ],
        name: "UserVetoed",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint256",
                name: "id",
                type: "uint256",
            },
            {
                indexed: true,
                internalType: "address",
                name: "voter",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "votingPower",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint8",
                name: "option",
                type: "uint8",
            },
        ],
        name: "UserVoted",
        type: "event",
    },
    {
        inputs: [],
        name: "DAO_VOTING_RESOURCE",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "votingToken_",
                type: "address",
            },
            {
                internalType: "string",
                name: "panelName_",
                type: "string",
            },
            {
                internalType: "string",
                name: "resource_",
                type: "string",
            },
        ],
        name: "__DAOVoting_init",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "member_",
                type: "address",
            },
            {
                internalType: "string",
                name: "permission_",
                type: "string",
            },
        ],
        name: "checkPermission",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "string",
                        name: "votingSituationName",
                        type: "string",
                    },
                    {
                        components: [
                            {
                                internalType: "uint256",
                                name: "votingPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "proposalExecutionPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredQuorum",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredMajority",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredVetoQuorum",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votingType",
                                type: "uint256",
                            },
                            {
                                internalType: "string",
                                name: "votingTarget",
                                type: "string",
                            },
                            {
                                internalType: "uint256",
                                name: "votingMinAmount",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.DAOVotingValues",
                        name: "votingValues",
                        type: "tuple",
                    },
                ],
                internalType: "struct IDAOVoting.InitialSituation",
                name: "conf_",
                type: "tuple",
            },
        ],
        name: "createDAOVotingSituation",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        components: [
                            {
                                internalType: "string",
                                name: "votingSituationName",
                                type: "string",
                            },
                            {
                                components: [
                                    {
                                        internalType: "uint256",
                                        name: "votingPeriod",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "vetoPeriod",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "proposalExecutionPeriod",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "requiredQuorum",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "requiredMajority",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "requiredVetoQuorum",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "votingType",
                                        type: "uint256",
                                    },
                                    {
                                        internalType: "string",
                                        name: "votingTarget",
                                        type: "string",
                                    },
                                    {
                                        internalType: "uint256",
                                        name: "votingMinAmount",
                                        type: "uint256",
                                    },
                                ],
                                internalType: "struct IDAOVoting.DAOVotingValues",
                                name: "votingValues",
                                type: "tuple",
                            },
                        ],
                        internalType: "struct IDAOVoting.InitialSituation",
                        name: "initialSituation",
                        type: "tuple",
                    },
                    {
                        internalType: "string",
                        name: "externalLink",
                        type: "string",
                    },
                ],
                internalType: "struct IDAOVoting.ExtendedSituation",
                name: "conf_",
                type: "tuple",
            },
        ],
        name: "createDAOVotingSituationWithLink",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string",
                name: "situation_",
                type: "string",
            },
            {
                internalType: "string",
                name: "remark_",
                type: "string",
            },
            {
                internalType: "bytes",
                name: "callData_",
                type: "bytes",
            },
        ],
        name: "createProposal",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "daoParameterStorage",
        outputs: [
            {
                internalType: "contract DAOParameterStorage",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "daoRegistry",
        outputs: [
            {
                internalType: "contract DAORegistry",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "daoVault",
        outputs: [
            {
                internalType: "contract DAOVault",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "executeProposal",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
            {
                internalType: "bytes",
                name: "signature_",
                type: "bytes",
            },
        ],
        name: "executeProposalWithSignature",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "getCurrentExecutingProposalId",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "getInjector",
        outputs: [
            {
                internalType: "address",
                name: "injector_",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "getProposal",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "id",
                        type: "uint256",
                    },
                    {
                        internalType: "string",
                        name: "remark",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedExpertPanel",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedVotingSituation",
                        type: "string",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "enum VotingType",
                                name: "votingType",
                                type: "uint8",
                            },
                            {
                                internalType: "uint256",
                                name: "votingStartTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votingEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "proposalExecutionPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredQuorum",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredMajority",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredVetoQuorum",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingParams",
                        name: "params",
                        type: "tuple",
                    },
                    {
                        components: [
                            {
                                internalType: "uint256",
                                name: "votedFor",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votedAgainst",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoesCount",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingCounters",
                        name: "counters",
                        type: "tuple",
                    },
                    {
                        internalType: "bool",
                        name: "executed",
                        type: "bool",
                    },
                ],
                internalType: "struct IDAOVoting.DAOProposal",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "offset_",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "limit_",
                type: "uint256",
            },
        ],
        name: "getProposalList",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "id",
                        type: "uint256",
                    },
                    {
                        internalType: "string",
                        name: "remark",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedExpertPanel",
                        type: "string",
                    },
                    {
                        internalType: "string",
                        name: "relatedVotingSituation",
                        type: "string",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "enum VotingType",
                                name: "votingType",
                                type: "uint8",
                            },
                            {
                                internalType: "uint256",
                                name: "votingStartTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votingEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoEndTime",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "proposalExecutionPeriod",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredQuorum",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredMajority",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "requiredVetoQuorum",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingParams",
                        name: "params",
                        type: "tuple",
                    },
                    {
                        components: [
                            {
                                internalType: "uint256",
                                name: "votedFor",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "votedAgainst",
                                type: "uint256",
                            },
                            {
                                internalType: "uint256",
                                name: "vetoesCount",
                                type: "uint256",
                            },
                        ],
                        internalType: "struct IDAOVoting.VotingCounters",
                        name: "counters",
                        type: "tuple",
                    },
                    {
                        internalType: "bool",
                        name: "executed",
                        type: "bool",
                    },
                ],
                internalType: "struct IDAOVoting.DAOProposal[]",
                name: "",
                type: "tuple[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "offset_",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "limit_",
                type: "uint256",
            },
        ],
        name: "getProposalSituationLinkList",
        outputs: [
            {
                internalType: "string[]",
                name: "",
                type: "string[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "getProposalStatus",
        outputs: [
            {
                internalType: "enum IDAOVoting.ProposalStatus",
                name: "",
                type: "uint8",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "getProposalVotingStats",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "requiredQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "currentQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredMajority",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "currentMajority",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "currentVetoQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredVetoQuorum",
                        type: "uint256",
                    },
                ],
                internalType: "struct IDAOVoting.VotingStats",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "getResource",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string",
                name: "situation_",
                type: "string",
            },
        ],
        name: "getVotingSituationExternalLink",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string",
                name: "situation_",
                type: "string",
            },
        ],
        name: "getVotingSituationInfo",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "votingPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "vetoPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "proposalExecutionPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredMajority",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredVetoQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "votingType",
                        type: "uint256",
                    },
                    {
                        internalType: "string",
                        name: "votingTarget",
                        type: "string",
                    },
                    {
                        internalType: "uint256",
                        name: "votingMinAmount",
                        type: "uint256",
                    },
                ],
                internalType: "struct IDAOVoting.DAOVotingValues",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string",
                name: "situation_",
                type: "string",
            },
        ],
        name: "getVotingSituationInfoWithLink",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "votingPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "vetoPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "proposalExecutionPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredMajority",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredVetoQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "votingType",
                        type: "uint256",
                    },
                    {
                        internalType: "string",
                        name: "votingTarget",
                        type: "string",
                    },
                    {
                        internalType: "uint256",
                        name: "votingMinAmount",
                        type: "uint256",
                    },
                ],
                internalType: "struct IDAOVoting.DAOVotingValues",
                name: "",
                type: "tuple",
            },
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "getVotingSituations",
        outputs: [
            {
                internalType: "string[]",
                name: "",
                type: "string[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "user",
                type: "address",
            },
        ],
        name: "hasUserVetoed",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "user",
                type: "address",
            },
        ],
        name: "hasUserVoted",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "implementation",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "permissionManager",
        outputs: [
            {
                internalType: "contract PermissionManager",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "proposalCount",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "proposalSituationLink",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        name: "proposals",
        outputs: [
            {
                internalType: "uint256",
                name: "id",
                type: "uint256",
            },
            {
                internalType: "string",
                name: "remark",
                type: "string",
            },
            {
                internalType: "string",
                name: "relatedExpertPanel",
                type: "string",
            },
            {
                internalType: "string",
                name: "relatedVotingSituation",
                type: "string",
            },
            {
                internalType: "bytes",
                name: "callData",
                type: "bytes",
            },
            {
                internalType: "address",
                name: "target",
                type: "address",
            },
            {
                components: [
                    {
                        internalType: "enum VotingType",
                        name: "votingType",
                        type: "uint8",
                    },
                    {
                        internalType: "uint256",
                        name: "votingStartTime",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "votingEndTime",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "vetoEndTime",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "proposalExecutionPeriod",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredQuorum",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredMajority",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "requiredVetoQuorum",
                        type: "uint256",
                    },
                ],
                internalType: "struct IDAOVoting.VotingParams",
                name: "params",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "uint256",
                        name: "votedFor",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "votedAgainst",
                        type: "uint256",
                    },
                    {
                        internalType: "uint256",
                        name: "vetoesCount",
                        type: "uint256",
                    },
                ],
                internalType: "struct IDAOVoting.VotingCounters",
                name: "counters",
                type: "tuple",
            },
            {
                internalType: "bool",
                name: "executed",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "proxiableUUID",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string",
                name: "situation_",
                type: "string",
            },
        ],
        name: "removeVotingSituation",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "registryAddress_",
                type: "address",
            },
            {
                internalType: "bytes",
                name: "",
                type: "bytes",
            },
        ],
        name: "setDependencies",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "injector_",
                type: "address",
            },
        ],
        name: "setInjector",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes4",
                name: "interfaceId",
                type: "bytes4",
            },
        ],
        name: "supportsInterface",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "targetPanel",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "newImplementation",
                type: "address",
            },
        ],
        name: "upgradeTo",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "newImplementation",
                type: "address",
            },
            {
                internalType: "bytes",
                name: "data",
                type: "bytes",
            },
        ],
        name: "upgradeToAndCall",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "veto",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "voteAgainst",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "proposalId_",
                type: "uint256",
            },
        ],
        name: "voteFor",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "votingToken",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
];
const _bytecode = "0x60a080604052346100315730608052613dda9081610037823960805181818161171e015281816117e20152611c970152f35b600080fdfe608060408181526004908136101561001657600080fd5b60009283803560e01c918262707322146126315750508063013cf08b146124e157806301ffc9a71461247157806307325a301461236757806309914cba146123425780630d61b5191461231757806311911cae146122de5780631d28dec7146120665780632a2b6ba01461203d5780632b52b07e146120145780633605f30714611f425780633659cfe614611c71578381633885bfeb14611bea575080633e3b5b1914611bb4578063401853b714611b6f5780634e68c99b14610a525780634f1ef286146117cb57806352d1902d146117095780635903bd6c146116e05780635c60da1b146116aa57806369130451146115395783816371834626146114675750806373708b1b146113f1578063750e443a1461126a57806375706ff2146111da57806377f8e93b146110f157806386a5053514610e7a5780638cb941cc14610e45578063ab663d0f14610e07578063b034012314610dde578063b66bfb5f14610a77578063bb65dc8314610a52578063c7f758a81461095c578063cc7a204914610933578063d047d8771461084b578063d12a79211461081f578063d8ad4e1c1461075c578063da35c6641461073e578063dc296ae1146106f8578063e83d587314610688578063eb741a24146106425763f5fcd084146101f757600080fd5b3461063e57606036600319011261063e57610210612d18565b6001600160401b0360243581811161063a5761022f903690860161283b565b60443582811161063657610246903690870161283b565b9086549560ff8760081c161594858096610629575b8015610612575b156105b857600197868960ff198316178b556105a7575b508351858111610594578061028e8a54612952565b95601f96878111610527575b506020908783116001146104aa578c9261049f575b5050600019600383901b1c191690891b1788555b60018060a01b03166bffffffffffffffffffffffff60a01b6003541617600355815193841161048c57509082916102fb600254612952565b82811161041c575b50602091831160011461039d578792610392575b5050600019600383901b1c191690841b176002555b6000197f69ff26ae7567e3e590df6e0174c58cf39f6d291d404355c047056a744cc2c45755610359578280f35b825461ff0019168355519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a138808280f35b015190503880610317565b600288528693507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9190601f198416895b818110610404575084116103eb575b505050811b0160025561032c565b015160001960f88460031b161c191690553880806103dd565b828401518555899690940193602093840193016103ce565b90919250600288527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8380860160051c82019260208710610483575b9186958a929594930160051c01915b828110610475575050610303565b8a8155869550899101610467565b92508192610458565b634e487b7160e01b885260419052602487fd5b0151905038806102af565b8b8d528b93507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69190601f1984168e5b81811061050f575084116104f6575b505050811b0188556102c3565b015160001960f88460031b161c191690553880806104e9565b8284015185558e9690940193602093840193016104da565b9091508a8c527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68780850160051c8201926020861061058b575b918d91869594930160051c01915b82811061057d57505061029a565b8e81558594508d910161056f565b92508192610561565b634e487b7160e01b8a526041835260248afd5b61ffff191661010117895538610279565b865162461bcd60e51b8152602081840152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156102625750600160ff891614610262565b50600160ff89161061025b565b8680fd5b8580fd5b8280fd5b50903461063e578160031936011261063e5781602093610660612d2e565b92358152600d8552209060018060a01b0316600052825260ff81600020541690519015158152f35b50903461063e57602036600319011261063e57906106e2816106f4946106db943581527f69ff26ae7567e3e590df6e0174c58cf39f6d291d404355c047056a744cc2c45660205220825193848092612acf565b03836127ff565b51918291602083526020830190612c36565b0390f35b50903461063e578160031936011261063e5781602093610716612d2e565b92358152600c8552209060018060a01b0316600052825260ff81600020541690519015158152f35b50903461063e578260031936011261063e5760209250549051908152f35b503461063e578060031936011261063e57610775612d18565b602435906001600160401b03821161081b576107c59361079a6020933690830161283b565b6007548551633ca8e36d60e11b81529687946001600160a01b03909216938593849390918401613613565b03915afa91821561081157602093926107e2575b50519015158152f35b610803919250833d851161080a575b6107fb81836127ff565b8101906135fb565b90386107d9565b503d6107f1565b81513d85823e3d90fd5b8480fd5b838234610847576106f49061083c61083636612d86565b906134cd565b905191829182612e51565b5080fd5b503461063e57602036600319011261063e576001600160401b038383358281116108475761087e6020913690870161283b565b94610887612f52565b506108a98551968793849363d047d87760e01b85528401526024830190612c36565b038173__$c79b64498c17dd34c719581fd9a6e3e96c$__5af49283156109295784936108e5575b8251602080825281906106f490820187612caf565b909192503d8085833e6108f881836127ff565b81019360208286031261092657815192831161092657509261091e916106f49401612fda565b9038806108d0565b80fd5b82513d86823e3d90fd5b83823461084757816003193601126108475760075490516001600160a01b039091168152602090f35b503461063e57602036600319011261063e5760ff6011826106f49561097f613248565b5085358152600b602052206109b36109fb85519661099c88612791565b8354885286516109ba816109b38160018901612acf565b03826127ff565b602089015286516109d2816109b38160028901612acf565b8789015286516109e9816109b38160038901612acf565b60608901528651928380928601612acf565b608086015260058101546001600160a01b031660a0860152610a1f60068201612b85565b60c0860152610a30600e8201612beb565b60e0860152015416151561010083015251918291602083526020830190612d9c565b83823461084757816003193601126108475780516106f4916106e2826106db81612a40565b50829034610847576003199260603685011261063e576001600160401b0392813584811161084757610aac903690840161283b565b9460243585811161063e57610ac4903690850161283b565b9460443590811161063e57610b1696610b59610ae6610b3a933690880161283b565b93875194610af386612732565b600d865260209a866c4352454154455f564f54494e4760981b8d80990152613647565b610b4a89519a8b96879663a864fa5160e01b885260608c8901526064880190612c36565b9084878303016024880152612c36565b91848303016044850152612c36565b038173__$4d8892694447b0a4da3b0c8b08fb630088$__5af4938415610dd2578194610d9e575b50838152600b85528281209073__$c79b64498c17dd34c719581fd9a6e3e96c$__803b156108475781602491865192838092630accbf1760e31b825287898301525af48015610d9457610d80575b505060ff60068201541691610be283612b65565b82610d1f5784917f1c9828afe76db05bdceea92afda76c15aa3022db889ea29f3ca1b1905ed3e50a9160ff60118751938a855280548b860152610c7a61024094858b880152610c38610260880160018501612acf565b90610c69610c56601f1993848b82030160608c015260028701612acf565b838a82030160808b015260038601612acf565b918883030160a08901528301612acf565b60058201546001600160a01b031660c087015297610c9781612b65565b60e0860152600781015461010086015260088101546101208601526009810154610140860152600a810154610160860152600b810154610180860152600c8101546101a0860152600d8101546101c0860152600e8101546101e0860152600f81015461020086015260108101546102208601520154161515908201528033940390a351908152f35b835162461bcd60e51b8152908101869052603560248201527f5b5147444b2d3031383031325d2d546865207265737472696374656420766f7460448201527434b7339034b9903737ba1039bab83837b93a32b21760591b6064820152608490fd5b610d8a8291612763565b6109265780610bce565b85513d84823e3d90fd5b9093508481813d8311610dcb575b610db681836127ff565b81010312610dc657519285610b80565b600080fd5b503d610dac565b508251903d90823e3d90fd5b83823461084757816003193601126108475760035490516001600160a01b039091168152602090f35b8382346108475781600319360112610847576020907f69ff26ae7567e3e590df6e0174c58cf39f6d291d404355c047056a744cc2c457549051908152f35b833461092657602036600319011261092657610e5f612d18565b610e676139f4565b600080516020613d8e8339815191525580f35b503461063e57602090816003193601126110ed57823591610e9a83613a6e565b610ea38361314c565b600a8110156110d8576001036110705782600052600c81528160002033600052815260ff82600020541661101c5782600052600c81528160002033600052815281600020600160ff1982541617905560018060a01b0393818560055416956003541685600052600b8252606460088660002001549160008751998a94859363369e7ed560e01b85523389860152602485015260448401525af1948515610fe257600095610fed575b5073__$4d8892694447b0a4da3b0c8b08fb630088$__90813b15610dc6578460646000928651948593849263bbb2eab960e01b8452830152896024830152600160448301525af48015610fe257916001917fff18b10a639bdb3188534561961f4bc58baec877ac42e92260a369ae1ba7bb3c9493610fd3575b5082519586528501523393a380f35b610fdc90612763565b38610fc4565b83513d6000823e3d90fd5b9094508181813d8311611015575b61100581836127ff565b81010312610dc657519338610f4b565b503d610ffb565b8390608492519162461bcd60e51b8352820152602960248201527f5b5147444b2d3031383031305d2d54686520757365722068617320616c726561604482015268323c903b37ba32b21760b91b6064820152fd5b8390608492519162461bcd60e51b8352820152603760248201527f5b5147444b2d3031383030395d2d5468652070726f706f73616c206d7573742060448201527f62652070656e64696e6720746f20626520766f7465642e0000000000000000006064820152fd5b602185634e487b7160e01b6000525260246000fd5b8380fd5b50903461063e57602090816003193601126110ed579260c09335908060a0855161111a81612776565b828152828682015282878201528260608201528260808201520152818152600b83528381209361114e600b86015495613924565b93838352600b815281832090600d8361116b600c85015494613995565b95878152600b845261117e828220613bb1565b978152600b84522001549560a0845161119681612776565b8981528381019283528581019485526060810196875260808101978852019687528351978852519087015251908501525160608401525160808301525160a0820152f35b5082346109265780600319360112610926576009546111f881613231565b91611205845193846127ff565b8183526009815260207f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af8185015b848410611247578651806106f48882612e51565b6001838192895161125c816109b38189612acf565b815201920193019290611233565b503461063e57602090816003193601126110ed5782359161128a83613a6e565b6112938361314c565b600a8110156110d8576001036110705782600052600c81528160002033600052815260ff82600020541661101c5782600052600c81528160002033600052815281600020600160ff1982541617905560018060a01b0393818560055416956003541685600052600b8252606460088660002001549160008751998a94859363369e7ed560e01b85523389860152602485015260448401525af1948515610fe2576000956113c2575b5073__$4d8892694447b0a4da3b0c8b08fb630088$__90813b15610dc6578460646000928651948593849263bbb2eab960e01b8452830152896024830152600260448301525af48015610fe257916002917fff18b10a639bdb3188534561961f4bc58baec877ac42e92260a369ae1ba7bb3c9493610fd3575082519586528501523393a380f35b9094508181813d83116113ea575b6113da81836127ff565b81010312610dc65751933861133b565b503d6113d0565b5082346109265761140a61140436612d86565b90613313565b8251916020808401906020855283518092526020868601968360051b870101940192955b82871061143b5785850386f35b909192938280611457600193603f198a82030186528851612d9c565b960192019601959291909261142e565b808484346115355760203660031901126115355781356001600160401b03811161153057611498903690840161283b565b916114bf82516114a781612732565b600681526544454c45544560d01b6020820152613647565b73__$c79b64498c17dd34c719581fd9a6e3e96c$__92833b1561081b5761150493602086938551968794859384936338c1a31360e11b85528401526024830190612c36565b03915af490811561152757506115175750f35b61152090612763565b6109265780f35b513d84823e3d90fd5b505050fd5b5050fd5b503461063e5761154836612d44565b50906115526139f4565b600680546001600160a01b03198082166001600160a01b0395861690811790935583516309a06df560e41b81529095926020928816179082818581855afa90811561168357908691899161168d575b5016866007541617600755835163065ab60960e41b815282848201528281806115cc6024820161298c565b0381855afa9081156116835783929187918a91611666575b50168760085416176008558451938480926306bdb01960e21b82525afa92831561165d57508592611630575b50501690600554161760055533600080516020613d8e8339815191525580f35b61164f9250803d10611656575b61164781836127ff565b810190613212565b3880611610565b503d61163d565b513d87823e3d90fd5b61167d9150843d86116116565761164781836127ff565b386115e4565b85513d8a823e3d90fd5b6116a49150843d86116116565761164781836127ff565b386115a1565b838234610847578160031936011261084757600080516020613dae8339815191525490516001600160a01b039091168152602090f35b83823461084757816003193601126108475760055490516001600160a01b039091168152602090f35b509134610926578060031936011261092657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036117635760208251600080516020613dae8339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b506117d536612d44565b90916001600160a01b03917f0000000000000000000000000000000000000000000000000000000000000000831661180f30821415613067565b61182c600080516020613dae8339815191529185835416146130c8565b83600754169383518095631082599b60e31b8252818960209889935afa908115611b2857829187918b91611b32575b5089875180948193633441847f60e21b8352165afa908115611b28579082918a91611b0b575b50163303611ab7577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156118c55750505050506118c29150613c38565b80f35b85939495169084516352d1902d60e01b815286818981865afa60009181611a88575b5061194657855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9691929594939603611a33575061195c85613c38565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2825115801590611a2b575b611998575b5050505080f35b611a17936000808351956119ab876127c9565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c86880152660819985a5b195960ca1b858801528581519101845af4913d15611a21573d611a086119ff82612820565b925192836127ff565b8152600081943d92013e613cf0565b5038808080611991565b5060609250613cf0565b50600161198c565b825162461bcd60e51b8152908101849052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d8311611ab0575b611aa081836127ff565b81010312610dc6575190386118e7565b503d611a96565b835162461bcd60e51b8152808801869052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b611b229150873d89116116565761164781836127ff565b38611881565b85513d8b823e3d90fd5b92505081813d8311611b68575b611b4981836127ff565b81010312611b6457518181168103611b64578582913861185b565b8880fd5b503d611b3f565b5082903461084757602036600319011261084757611b8d833561314c565b905191600a821015611ba157602083838152f35b634e487b7160e01b815260218452602490fd5b838234610847578160031936011261084757600080516020613d8e8339815191525490516001600160a01b039091168152602090f35b808484346115355760203660031901126115355781356001600160401b03811161153057611c1b9036908401612882565b91611c2c611c27612eb5565b613647565b73__$c79b64498c17dd34c719581fd9a6e3e96c$__92833b1561081b57611504936020869385519687948593849363cebf536160e01b85528401526024830190612ed7565b503461063e576020806003193601126110ed57611c8c612d18565b916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116611cc430821415613067565b611ce1600080516020613dae8339815191529183835416146130c8565b85848360075416855192838092631082599b60e31b82525afa908115611efb57839186918a91611f05575b5088865180948193633441847f60e21b8352165afa908115611efb579083918991611ede575b50163303611e8a57825191611d46836127e4565b8783527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d825750505050506118c29150613c38565b85939495169084516352d1902d60e01b815286818981865afa60009181611e5b575b50611e0357855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9691929594939603611a335750611e1985613c38565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2825115801590611e5357611998575050505080f35b50600061198c565b9091508781813d8311611e83575b611e7381836127ff565b81010312610dc657519038611da4565b503d611e69565b825162461bcd60e51b8152808701859052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b611ef59150863d88116116565761164781836127ff565b38611d32565b84513d8a823e3d90fd5b92505081813d8311611f3b575b611f1c81836127ff565b81010312611f3757518281168103611f375784839138611d0c565b8780fd5b503d611f12565b503461063e57602036600319011261063e576001600160401b0383833582811161084757611f756020913690870161283b565b94611f9785519687938493633605f30760e01b85528401526024830190612c36565b038173__$c79b64498c17dd34c719581fd9a6e3e96c$__5af4928315610929578493611fd3575b8251602080825281906106f490820187612c36565b909192503d8085833e611fe681836127ff565b81019360208286031261092657815192831161092657509261200c916106f49401612f98565b903880611fbe565b83823461084757816003193601126108475760085490516001600160a01b039091168152602090f35b83823461084757816003193601126108475760065490516001600160a01b039091168152602090f35b50903461063e57602090816003193601126110ed57803592612087846138c1565b838552600b835260018060a01b039283600583882001541693600754169382519063057773bf60e21b8252848201528181604481602498338a8301525afa9081156122d45787916122b7575b501561225c576120e28561314c565b600a81101561224a576003036121e457848652600d815281862033600052815260ff8260002054166121885790600b601092868852600d815282882033600052815282600020600160ff1982541617905586885252852001918254916000198314612177575050600101905533907f59a6343aec3a223000a52d9a446fb85a49747ac9e42e9a838d670359355370b48380a380f35b634e487b7160e01b86526011905284fd5b92608493603392519362461bcd60e51b85528401528201527f5b5147444b2d3031383030355d2d54686520656c696769626c652075736572206044820152723430b99030b63932b0b23c903b32ba37b2b21760691b6064820152fd5b92608493603992519362461bcd60e51b85528401528201527f5b5147444b2d3031383030365d2d5468652070726f706f73616c206d7573742060448201527f626520616363657074656420746f206265207665746f65642e000000000000006064820152fd5b634e487b7160e01b8752602184528487fd5b92608493603292519362461bcd60e51b85528401528201527f5b5147444b2d3031383031375d2d5468652073656e646572206973206e6f742060448201527134b7103a3432903b32ba379033b937bab81760711b6064820152fd5b6122ce9150823d841161080a576107fb81836127ff565b386120d3565b83513d89823e3d90fd5b503461063e5736600319011261084757602435906001600160401b03821161063e576123106118c2923690830161283b565b903561373b565b50903461063e57602036600319011261063e576118c2915190612339826127e4565b8382523561373b565b83823461084757816003193601126108475780516106f4916106e2826106db8161298c565b50903461063e57602036600319011261063e576001600160401b0392813584811161084757602061239c83923690860161283b565b936123a5612f52565b506123c686519586938493627325a360e41b85528401526024830190612c36565b038173__$c79b64498c17dd34c719581fd9a6e3e96c$__5af4918215610dd25781948293612417575b5050506106f4906124098351948486958652850190612caf565b908382036020850152612c36565b91945091503d8085843e61242b81846127ff565b820191838184031261081b57805182811161063a578361244c918301612fda565b946020820151928311610926575091612469916106f49301612f98565b9038806123ef565b50903461063e57602036600319011261063e57359063ffffffff60e01b821680920361063e57602092506001621fceb760e21b031982149182156124d0575b82156124bf5750519015158152f35b6301ffc9a760e01b149150386107d9565b6363c8929f60e01b811492506124b0565b50823461092657602036600319011261092657819083358152600b60205220918254918051938480600183019061251791612acf565b0361252290866127ff565b8151806125328160028501612acf565b0361253d90826127ff565b8251938461254e8160038601612acf565b0361255990866127ff565b835180809285019061256a91612acf565b0361257590826127ff565b60058301546001600160a01b03169461259060068501612b85565b9261259d600e8601612beb565b946011015460ff16958051998a99610240908b528060208c01528a016125c291612c36565b90898203908a01526125d391612c36565b87810360608901526125e491612c36565b86810360808801526125f591612c36565b9360a086015260c0850161260891612c5b565b80516101c085015260208101516101e08501526040015161020084015215156102208301520390f35b909150346108475760031960203682011261063e5784356001600160401b039182821161081b57859082360301126110ed5761266c83612732565b8086013582811161081b5761268690873691840101612882565b835260248101359182116110ed57856126a2923692010161283b565b602082019081526126b4611c27612eb5565b73__$c79b64498c17dd34c719581fd9a6e3e96c$__90813b156110ed57612702956127156020928751988996879586956358261d4360e11b8752860152518960248601526064850190612ed7565b9051838203602319016044850152612c36565b03915af49081156115275750612729575080f35b6118c290612763565b604081019081106001600160401b0382111761274d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161274d57604052565b60c081019081106001600160401b0382111761274d57604052565b61012081019081106001600160401b0382111761274d57604052565b61010081019081106001600160401b0382111761274d57604052565b606081019081106001600160401b0382111761274d57604052565b602081019081106001600160401b0382111761274d57604052565b90601f801991011681019081106001600160401b0382111761274d57604052565b6001600160401b03811161274d57601f01601f191660200190565b81601f82011215610dc65780359061285282612820565b9261286060405194856127ff565b82845260208383010111610dc657816000926020809301838601378301015290565b919091604081840312610dc6576040519261289c84612732565b838235926001600160401b0393848111610dc657836128bc91830161283b565b8252602081013590848211610dc6570161012081840312610dc657604051936128e485612791565b813585526020820135602086015260408201356040860152606082013560608601526080820135608086015260a082013560a086015260c082013560c086015260e0820135908111610dc65760209361293e91830161283b565b60e085015261010080910135908401520152565b90600182811c92168015612982575b602083101461296c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612961565b6002546000929161299c82612952565b80825291602090600190818116908115612a1b57506001146129bf575b50505050565b9293945060026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace926000935b858510612a085750505060209250010190388080806129b9565b80548585018401529382019381016129ee565b92505050602093945060ff929192191683830152151560051b010190388080806129b9565b90600091600190600154612a5381612952565b8083529260209160018116908115612a1b5750600114612a735750505050565b9293945060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000935b858510612abc5750505060209250010190388080806129b9565b8054858501840152938201938101612aa2565b805460009392612ade82612952565b91828252602093600191600181169081600014612b465750600114612b05575b5050505050565b90939495506000929192528360002092846000945b838610612b3257505050500101903880808080612afe565b805485870183015294019385908201612b1a565b60ff19168685015250505090151560051b010191503880808080612afe565b60031115612b6f57565b634e487b7160e01b600052602160045260246000fd5b90604051612b92816127ad565b60e06007829460ff815416612ba681612b65565b845260018101546020850152600281015460408501526003810154606085015260048101546080850152600581015460a0850152600681015460c08501520154910152565b90604051612bf8816127c9565b60406002829480548452600181015460208501520154910152565b60005b838110612c265750506000910152565b8181015183820152602001612c16565b90602091612c4f81518092818552858086019101612c13565b601f01601f1916010190565b60e080918051612c6a81612b65565b84526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b90612d0a610120835183526020840151602084015260408401516040840152606084015160608401526080840151608084015260a084015160a084015260c084015160c084015260e0840151908060e0850152830190612c36565b916101008091015191015290565b600435906001600160a01b0382168203610dc657565b602435906001600160a01b0382168203610dc657565b906040600319830112610dc6576004356001600160a01b0381168103610dc65791602435906001600160401b038211610dc657612d839160040161283b565b90565b6040906003190112610dc6576004359060243590565b90610220610100612e00612dee612ddc612dca610240885188526020890151908060208a0152880190612c36565b60408801518782036040890152612c36565b60608701518682036060880152612c36565b60808601518582036080870152612c36565b9360018060a01b0360a08201511660a0850152612e2560c082015160c0860190612c5b565b60e081015180516101c086015260208101516101e0860152604001516102008501520151151591015290565b6020808201906020835283518092526040830192602060408460051b8301019501936000915b848310612e875750505050505090565b9091929394958480612ea5600193603f198682030187528a51612c36565b9801930193019194939290612e77565b60405190612ec282612732565b600682526543524541544560d01b6020830152565b6020612eec8251604085526040850190612c36565b910151916020818303910152612d0a610120835183526020840151602084015260408401516040840152606084015160608401526080840151608084015260a084015160a084015260c084015160c084015260e0840151908060e0850152830190612c36565b60405190612f5f82612791565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201520152565b81601f82011215610dc6578051612fae81612820565b92612fbc60405194856127ff565b81845260208284010111610dc657612d839160208085019101612c13565b91909161012081840312610dc65760405190612ff582612791565b8193815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015260c082015160c084015260e0820151906001600160401b038211610dc657613056918301612f98565b60e083015261010080910151910152565b1561306e57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156130cf57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b9190820180921161313657565b634e487b7160e01b600052601160045260246000fd5b600052600b60205260406000206008810154801561320b5760ff6011830154166132045742106131fe5761317f81613924565b600b820154108015906131e8575b6131e25761319a816139d7565b600a811015612b6f57600981036131dd575060098101548042106131d657600a6131c692015490613129565b42116131d157600490565b600690565b5050600390565b905090565b50600290565b506131f281613995565b600c820154101561318d565b50600190565b5050600590565b5050600090565b90816020910312610dc657516001600160a01b0381168103610dc65790565b6001600160401b03811161274d5760051b60200190565b60409081519161325783612791565b610100836000928382526060806020840152808284015280808401528060808401528460a08401528482519161328c836127ad565b81835281602084015281848401528201528460808201528460a08201528460c08201528460e082015260c0830152838151916132c7836127c9565b81835281602084015282015260e08201520152565b9190820391821161313657565b80518210156132fd5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600490600454808410156134b65761332c8285613129565b81106134a4575b61333c82613231565b9360409161334c835196876127ff565b838652601f1961335b85613231565b0160005b81811061348d575050600019810190811160005b858110613384575050505050505090565b81613478578061339f60019261339a87876132dc565b6132dc565b6000526020600b815260ff6011886000208951936133bc85612791565b815485528a51906133d3826106db818b8701612acf565b85015289516133e9816109b38160028601612acf565b8a8501528951613400816109b38160038601612acf565b60608501526109b36134198d8c51928380928601612acf565b6080850152858060a01b0360058201541660a085015261343b60068201612b85565b60c085015261344c600e8201612beb565b60e08501520154161515610100820152613466828b6132e9565b52613471818a6132e9565b5001613373565b601187634e487b7160e01b6000525260246000fd5b602090613498613248565b82828b0101520161335f565b90506134b083826132dc565b90613333565b505050506040516134c6816127e4565b6000815290565b91906004805493848110156135ea576134e68382613129565b85106135d8575b6134f983959495613231565b9360409261350a60405196876127ff565b848652601f1961351986613231565b0160005b8181106135c5575050600019820191821160005b868110613542575050505050505090565b816135b0578061355860019261339a88886132dc565b6000527f69ff26ae7567e3e590df6e0174c58cf39f6d291d404355c047056a744cc2c4566020526109b361359488600020895192838092612acf565b61359e828b6132e9565b526135a9818a6132e9565b5001613531565b601183634e487b7160e01b6000525260246000fd5b60606020828a018101919091520161351d565b91506135e482856132dc565b916134ed565b50505090506040516134c6816127e4565b90816020910312610dc657518015158103610dc65790565b6001600160a01b039091168152606060208201819052612d839290613639908301612a40565b916040818403910152612c36565b60206136749160018060a01b03600754166040518080958194633ca8e36d60e11b83523360048401613613565b03915afa90811561372f57600091613710575b501561368f57565b60405162461bcd60e51b815260206004820152604d60248201527f5b5147444b2d3031383031345d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f20706572666f726d2074686520616374696f6e2c206160648201526c31b1b2b9b9903232b734b2b21760991b608482015260a490fd5b613729915060203d60201161080a576107fb81836127ff565b38613687565b6040513d6000823e3d90fd5b9190916000818152600b60205260408120906137568361314c565b600a8110156138ad576004036138425760118201805460ff191660011790557f69ff26ae7567e3e590df6e0174c58cf39f6d291d404355c047056a744cc2c4578381559173__$4d8892694447b0a4da3b0c8b08fb630088$__90813b1561063e579582916137e79760405180998194829363cf926f9f60e01b84526004840152604060248401526044830190612c36565b03915af4948515613835577f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f939495613826575b5060001990915580a2565b61382f90612763565b3861381b565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152603960248201527f5b5147444b2d3031383030375d2d5468652070726f706f73616c206d7573742060448201527f62652070617373656420746f2062652065786563757465642e000000000000006064820152608490fd5b634e487b7160e01b82526021600452602482fd5b60045411156138cc57565b60405162461bcd60e51b815260206004820152602a60248201527f5b5147444b2d3031383031335d2d5468652070726f706f73616c20646f6573206044820152693737ba1032bc34b9ba1760b11b6064820152608490fd5b60405190631737d95960e11b8252600482015260208160248173__$4d8892694447b0a4da3b0c8b08fb630088$__5af490811561372f57600091613966575090565b90506020813d60201161398d575b81613981602093836127ff565b81010312610dc6575190565b3d9150613974565b60405190630d58497360e01b8252600482015260208160248173__$4d8892694447b0a4da3b0c8b08fb630088$__5af490811561372f57600091613966575090565b600d6139e282613bb1565b910154106139ef57600990565b600290565b600080516020613d8e833981519152546001600160a01b03168015908115613a64575b5015613a1f57565b60405162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a206e6f7420616e20696e6a6563746f720000000000006044820152606490fd5b9050331438613a17565b613a77816138c1565b6000526020600b81526040613add8260018060a01b03600584600020015416835190613aa282612732565b60088252672b27aa22afa327a960c11b838301528451808095819463362b538760e21b83523360048401528860248401526044830190612c36565b03915afa908115613ba657600091613b89575b5015613afa575050565b60a49250519062461bcd60e51b82526004820152605b60248201527f5b5147444b2d3031383031365d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f20706572666f726d2074686520616374696f6e206f6e60648201527f20746865207461726765742c206163636573732064656e6965642e00000000006084820152fd5b613ba09150833d851161080a576107fb81836127ff565b38613af0565b82513d6000823e3d90fd5b6007546005820154604051632927315960e11b81526001600160a01b039182166004820152929160209184916024918391165afa91821561372f57600092613c03575b50906010612d83920154613cc8565b91506020823d602011613c30575b81613c1e602093836127ff565b81010312610dc6579051906010613bf4565b3d9150613c11565b803b15613c6d57600080516020613dae83398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b811561320b576b033b2e3c9fd0803ce800000090818102918183041490151715613136570490565b91929015613d525750815115613d04575090565b3b15613d0d5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015613d655750805190602001fd5b60405162461bcd60e51b815260206004820152908190613d89906024830190612c36565b0390fdfe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000818000a";
const isSuperArgs = (xs) => {
    return (typeof xs[0] === "string" ||
        Array.isArray(xs[0]) ||
        "_isInterface" in xs[0]);
};
class GeneralDAOVoting__factory extends ethers_1.ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            const [linkLibraryAddresses, signer] = args;
            super(_abi, GeneralDAOVoting__factory.linkBytecode(linkLibraryAddresses), signer);
        }
        this.contractName = "GeneralDAOVoting";
    }
    static linkBytecode(linkLibraryAddresses) {
        let linkedBytecode = _bytecode;
        linkedBytecode = linkedBytecode.replace(new RegExp("__\\$c79b64498c17dd34c719581fd9a6e3e96c\\$__", "g"), linkLibraryAddresses["contracts/libs/governance/DAOVotingSituation.sol:DAOVotingSituation"]
            .replace(/^0x/, "")
            .toLowerCase());
        linkedBytecode = linkedBytecode.replace(new RegExp("__\\$4d8892694447b0a4da3b0c8b08fb630088\\$__", "g"), linkLibraryAddresses["contracts/libs/governance/SingleChoiceProposal.sol:SingleChoiceProposal"]
            .replace(/^0x/, "")
            .toLowerCase());
        return linkedBytecode;
    }
    deploy(overrides) {
        return super.deploy(overrides || {});
    }
    getDeployTransaction(overrides) {
        return super.getDeployTransaction(overrides || {});
    }
    attach(address) {
        return super.attach(address);
    }
    connect(signer) {
        return super.connect(signer);
    }
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.GeneralDAOVoting__factory = GeneralDAOVoting__factory;
GeneralDAOVoting__factory.bytecode = _bytecode;
GeneralDAOVoting__factory.abi = _abi;
//# sourceMappingURL=GeneralDAOVoting__factory.js.map