/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { MockElection, MockElectionInterface } from "../MockElection"; const _abi = [ { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "candidate", type: "address", }, { indexed: false, internalType: "address", name: "voter", type: "address", }, { indexed: false, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "Claimed", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8", }, ], name: "Initialized", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IMajorCandidates", name: "majorCandidates", type: "address", }, ], name: "MajorCandidatesUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IRewarder", name: "rewarder", type: "address", }, ], name: "RewarderUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "candidate", type: "address", }, ], name: "ShareUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IStake", name: "stake", type: "address", }, ], name: "StakeUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IERC20", name: "token", type: "address", }, ], name: "TokenUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "candidate", type: "address", }, { indexed: false, internalType: "address", name: "voter", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "Vote", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "period", type: "uint256", }, ], name: "VoteFrozenPeriodUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "candidate", type: "address", }, { indexed: false, internalType: "address", name: "voter", type: "address", }, { indexed: false, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "Withdrawn", type: "event", }, { inputs: [], name: "ACC_PRECISION", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "accPerShares", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "address", name: "to", type: "address", }, ], name: "claim", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract IERC20", name: "_token", type: "address", }, { internalType: "contract IRewarder", name: "_rewarder", type: "address", }, { internalType: "contract IStake", name: "_stake", type: "address", }, { internalType: "contract IMajorCandidates", name: "_majorCandidates", type: "address", }, ], name: "init", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract IERC20", name: "_token", type: "address", }, { internalType: "contract IRewarder", name: "_rewarder", type: "address", }, { internalType: "contract IStake", name: "_stake", type: "address", }, { internalType: "contract IMajorCandidates", name: "_majorCandidates", type: "address", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "lastVoteTime", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "majorCandidates", outputs: [ { internalType: "contract IMajorCandidates", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "onAllocate", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "address", name: "voter", type: "address", }, ], name: "pendingReward", outputs: [ { internalType: "uint256", name: "pending", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "rewarder", outputs: [ { internalType: "contract IRewarder", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "stake", outputs: [ { internalType: "contract IStake", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "token", outputs: [ { internalType: "contract IERC20", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "address", name: "voter", type: "address", }, ], name: "unfrozenAt", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "address", name: "voter", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "address", name: "anchor", type: "address", }, { internalType: "uint256", name: "maxSlippage", type: "uint256", }, ], name: "vote", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "voteFrozenPeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "voteSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "voters", outputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "int256", name: "rewardDebt", type: "int256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "address", name: "to", type: "address", }, { internalType: "address", name: "anchor", type: "address", }, { internalType: "uint256", name: "maxSlippage", type: "uint256", }, ], name: "withdraw", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "address", name: "to", type: "address", }, { internalType: "address", name: "anchor", type: "address", }, { internalType: "uint256", name: "maxSlippage", type: "uint256", }, ], name: "withdrawAndClaim", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x608060405234801561001057600080fd5b50611bc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636d40c721116100ad578063dcc3e06e11610071578063dcc3e06e14610293578063f0bfbcb6146102a6578063f562c29b146102b9578063f8c8765e146102d9578063fc0c546a146102ec57600080fd5b80636d40c7211461023e57806378438db7146102475780639ced7e761461025a578063a398a7781461026d578063b17479e91461028057600080fd5b806321c0b342116100f457806321c0b342146101c457806332fcd966146101d75780633a4b66f1146101e05780634e7968e3146102005780635501f1c61461022b57600080fd5b806306552ff3146101265780630a08ba721461013b57806312d00cee1461014e5780631cc59aa314610184575b600080fd5b610139610134366004611535565b6102ff565b005b6101396101493660046115be565b610332565b61016e61015c3660046115fb565b603a6020526000908152604090205481565b60405161017b919061162c565b60405180910390f35b6101b661019236600461163a565b60396020908152600092835260408084209091529082529020805460019091015482565b60405161017b92919061166d565b6101396101d236600461163a565b61042f565b61016e60375481565b6035546101f3906001600160a01b031681565b60405161017b919061169c565b61016e61020e36600461163a565b603c60209081526000928352604080842090915290825290205481565b6101396102393660046116aa565b6105d3565b61016e60385481565b6101396102553660046116aa565b6108f7565b61016e61026836600461163a565b610d06565b61016e61027b36600461163a565b610e78565b6036546101f3906001600160a01b031681565b6034546101f3906001600160a01b031681565b6101396102b4366004611722565b610ef6565b61016e6102c73660046115fb565b603b6020526000908152604090205481565b6101396102e7366004611535565b611261565b6033546101f3906001600160a01b031681565b61030884611365565b610311836113bb565b61031a82611406565b61032381611451565b505064e8d4a510006037555050565b6035546001600160a01b031633146103655760405162461bcd60e51b815260040161035c906117b2565b60405180910390fd5b6001600160a01b0382166000908152603a60205260409020541561042b576001600160a01b0382166000908152603a60205260409020546037546103a990836117d8565b6103b3919061180d565b6001600160a01b0383166000908152603b60205260409020546103d69190611821565b6001600160a01b0383166000908152603b60205260409081902091909155517fe7e3d547051a0e581a3e50cc654fcfa1aad33db6c549b0a9ca485544b190f97590610422908490611842565b60405180910390a15b5050565b600260015414156104525760405162461bcd60e51b815260040161035c90611887565b6002600155603554604051632969b12160e11b81526001600160a01b03909116906352d3624290610487908590600401611842565b600060405180830381600087803b1580156104a157600080fd5b505af11580156104b5573d6000803e3d6000fd5b505050506001600160a01b03821660008181526039602090815260408083203384528252808320603754948452603b90925282205481549193916104f991906117d8565b610503919061180d565b9050600061051f83600101548361051a9190611897565b61149c565b600184018390556034546040516340c10f1960e01b81529192506001600160a01b0316906340c10f199061055990879085906004016118d8565b600060405180830381600087803b15801561057357600080fd5b505af1158015610587573d6000803e3d6000fd5b505050507f913c992353dc81b7a8ba31496c484e9b6306bd2f6c509a649a38fdf5e1c953b2853386846040516105c094939291906118e6565b60405180910390a1505060018055505050565b600260015414156105f65760405162461bcd60e51b815260040161035c90611887565b6002600155426106068633610e78565b116106235760405162461bcd60e51b815260040161035c90611958565b603554604051632969b12160e11b81526001600160a01b03909116906352d3624290610653908890600401611842565b600060405180830381600087803b15801561066d57600080fd5b505af1158015610681573d6000803e3d6000fd5b5050506001600160a01b03861660008181526039602090815260408083203384528252808320603754948452603b909252909120549092506106c390876117d8565b6106cd919061180d565b81600101546106dc9190611897565b600182015580546106ee908690611968565b81556001600160a01b0386166000908152603a6020526040902054610714908690611968565b6001600160a01b038088166000908152603a602052604090819020929092556035549151631e3d9b8b60e31b815291169063f1ecdc5890610759908990600401611842565b60206040518083038186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a9919061198d565b15610829576036546001600160a01b038781166000908152603a602052604090819020549051633a7a74bd60e21b8152919092169163e9e9d2f4916107f6918a91889088906004016119ae565b600060405180830381600087803b15801561081057600080fd5b505af1158015610824573d6000803e3d6000fd5b505050505b60335460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061085b90879089906004016118d8565b602060405180830381600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad919061198d565b507fa4195c37c2947bbe89165f03e320b6903116f0b10d8cfdb522330f7ce6f9fa24863386886040516108e394939291906118e6565b60405180910390a150506001805550505050565b6002600154141561091a5760405162461bcd60e51b815260040161035c90611887565b60026001554261092a8633610e78565b116109475760405162461bcd60e51b815260040161035c90611958565b603554604051632969b12160e11b81526001600160a01b03909116906352d3624290610977908890600401611842565b600060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505050506001600160a01b03851660008181526039602090815260408083203384528252808320603754948452603b90925282205481549193916109e991906117d8565b6109f3919061180d565b90506000610a0a83600101548361051a9190611897565b6037546001600160a01b038a166000908152603b602052604090205491925090610a3490896117d8565b610a3e919061180d565b610a489083611897565b60018401558254610a5a908890611968565b83556001600160a01b0388166000908152603a6020526040902054610a80908890611968565b6001600160a01b03808a166000908152603a602052604090819020929092556035549151631e3d9b8b60e31b815291169063f1ecdc5890610ac5908b90600401611842565b60206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b15919061198d565b15610b95576036546001600160a01b038981166000908152603a602052604090819020549051633a7a74bd60e21b8152919092169163e9e9d2f491610b62918c918a908a906004016119ae565b600060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050505b6034546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990610bc790899085906004016118d8565b600060405180830381600087803b158015610be157600080fd5b505af1158015610bf5573d6000803e3d6000fd5b505060335460405163a9059cbb60e01b81526001600160a01b03909116925063a9059cbb9150610c2b9089908b906004016118d8565b602060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061198d565b507f913c992353dc81b7a8ba31496c484e9b6306bd2f6c509a649a38fdf5e1c953b288338884604051610cb394939291906118e6565b60405180910390a17fa4195c37c2947bbe89165f03e320b6903116f0b10d8cfdb522330f7ce6f9fa248833888a604051610cf094939291906118e6565b60405180910390a1505060018055505050505050565b6001600160a01b0382166000908152603a602052604081205415610e72576035546040516301686a8f60e51b81526000916001600160a01b031690632d0d51e090610d55908790600401611842565b60206040518083038186803b158015610d6d57600080fd5b505afa158015610d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da591906119d4565b6001600160a01b038086166000818152603960209081526040808320948916835293815283822060010154928252603a9052918220546037549394509092610ded90856117d8565b610df7919061180d565b6001600160a01b0387166000908152603b6020526040902054610e1a9190611821565b6037546001600160a01b038089166000908152603960209081526040808320938b1683529290522054919250610e6c91849190610e589085906117d8565b610e62919061180d565b61051a9190611897565b93505050505b92915050565b6001600160a01b038083166000908152603c60209081526040808320938516835292905290812054610ebc5760405162461bcd60e51b815260040161035c90611a29565b6038546001600160a01b038085166000908152603c6020908152604080832093871683529290522054610eef9190611821565b9392505050565b60026001541415610f195760405162461bcd60e51b815260040161035c90611887565b6002600155603554604051631e3d9b8b60e31b81526001600160a01b039091169063f1ecdc5890610f4e908890600401611842565b60206040518083038186803b158015610f6657600080fd5b505afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e919061198d565b610fba5760405162461bcd60e51b815260040161035c90611a6d565b6033546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610fee90339030908890600401611a7d565b602060405180830381600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611040919061198d565b50603554604051632969b12160e11b81526001600160a01b03909116906352d3624290611071908890600401611842565b600060405180830381600087803b15801561108b57600080fd5b505af115801561109f573d6000803e3d6000fd5b5050506001600160a01b038087166000908152603960209081526040808320938916835292905220546110d491508490611821565b6001600160a01b038087166000818152603960209081526040808320948a16835293815283822094909455603754918152603b90935291205461111790856117d8565b611121919061180d565b6001600160a01b038087166000908152603960209081526040808320938916835292905220600101546111549190611aa5565b6001600160a01b038087166000818152603960209081526040808320948a16835293815283822060010194909455908152603a909252902054611198908490611821565b6001600160a01b038087166000818152603a60208181526040808420968755603c82528084208b871685528252808420429055603654949093525292549251633a7a74bd60e21b815291169163e9e9d2f4916111fc918991879087906004016119ae565b600060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b505050507f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc8585856040516105c093929190611a7d565b600054610100900460ff16158080156112815750600054600160ff909116105b8061129b5750303b15801561129b575060005460ff166001145b6112b75760405162461bcd60e51b815260040161035c90611b2c565b6000805460ff1916600117905580156112da576000805461ff0019166101001790555b6112e385611365565b6112ec846113bb565b6112f583611406565b6112fe82611451565b61130a62093a806114c2565b64e8d4a51000603755801561135e576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061135590600190611b50565b60405180910390a15b5050505050565b603380546001600160a01b0319166001600160a01b0383161790556040517f5ba6b30cd4b2f9e9e67f4feb9b9df10d5da3b057598e6901b217b7d590345e30906113b090839061169c565b60405180910390a150565b603480546001600160a01b0319166001600160a01b0383161790556040517f47c9042c3be42a955f60f9b75006522826af1a3bed83e26646997d3bcccda77c906113b090839061169c565b603580546001600160a01b0319166001600160a01b0383161790556040517f27a2474ca8353642fab173d2cadd631382797bbd4f01c76aa56f932bceaf580f906113b090839061169c565b603680546001600160a01b0319166001600160a01b0383161790556040517f476e1ab7433dee921bc37cd453322068187c39ca4847e6a0d4aa36f559b8461c906113b090839061169c565b6000808212156114be5760405162461bcd60e51b815260040161035c90611b80565b5090565b60388190556040517ff83cccf9d4c5f0b2f475a2b0a0157a3ec7c2ebdfe2c11ba256779ab21e4ba543906113b090839061162c565b60006001600160a01b038216610e72565b6000610e72826114f7565b61151c81611508565b811461152757600080fd5b50565b8035610e7281611513565b6000806000806080858703121561154e5761154e600080fd5b600061155a878761152a565b945050602061156b8782880161152a565b935050604061157c8782880161152a565b925050606061158d8782880161152a565b91505092959194509250565b61151c816114f7565b8035610e7281611599565b8061151c565b8035610e72816115ad565b600080604083850312156115d4576115d4600080fd5b60006115e085856115a2565b92505060206115f1858286016115b3565b9150509250929050565b60006020828403121561161057611610600080fd5b600061161c84846115a2565b949350505050565b805b82525050565b60208101610e728284611624565b6000806040838503121561165057611650600080fd5b600061165c85856115a2565b92505060206115f1858286016115a2565b6040810161167b8285611624565b610eef6020830184611624565b6000610e7282611508565b61162681611688565b60208101610e728284611693565b600080600080600060a086880312156116c5576116c5600080fd5b60006116d188886115a2565b95505060206116e2888289016115b3565b94505060406116f3888289016115a2565b9350506060611704888289016115a2565b9250506080611715888289016115b3565b9150509295509295909350565b600080600080600060a0868803121561173d5761173d600080fd5b600061174988886115a2565b955050602061175a888289016115a2565b94505060406116f3888289016115b3565b602781526000602082017f456c656374696f6e3a2063616c6c6572206d757374206265205374616b6520638152661bdb9d1c9858dd60ca1b602082015291505b5060400190565b60208082528101610e728161176b565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156117f2576117f26117c2565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261181c5761181c6117f7565b500490565b60008219821115611834576118346117c2565b500190565b611626816114f7565b60208101610e728284611839565b601f81526000602082017f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815291505b5060200190565b60208082528101610e7281611850565b600082600160ff1b018212600084121516156118b5576118b56117c2565b826001600160ff1b030182136000841216156118d3576118d36117c2565b500390565b6040810161167b8285611839565b608081016118f48287611839565b6119016020830186611839565b61190e6040830185611839565b61191b6060830184611624565b95945050505050565b601881526000602082017f456c656374696f6e3a20766f74652069732066726f7a656e000000000000000081529150611880565b60208082528101610e7281611924565b6000828210156118d3576118d36117c2565b80151561151c565b8051610e728161197a565b6000602082840312156119a2576119a2600080fd5b600061161c8484611982565b608081016119bc8287611839565b6119016020830186611624565b8051610e72816115ad565b6000602082840312156119e9576119e9600080fd5b600061161c84846119c9565b601a81526000602082017f456c656374696f6e3a206e6f6e6578697374656e7420766f746500000000000081529150611880565b60208082528101610e72816119f5565b601f81526000602082017f456c656374696f6e3a206e6f6e6578697374656e742063616e6469646174650081529150611880565b60208082528101610e7281611a39565b60608101611a8b8286611839565b611a986020830185611839565b61161c6040830184611624565b6000816001600160ff1b0303831360008312151615611ac657611ac66117c2565b81600160ff1b038312600083121615611834576118346117c2565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291506117ab565b60208082528101610e7281611ae1565b600060ff8216610e72565b61162681611b3c565b60208101610e728284611b47565b600b81526000602082016a0496e7465676572203c20360ac1b81529150611880565b60208082528101610e7281611b5e56fea2646970667358221220102237694698ea761f1779cf65568fb486ebd154365b0e0b327cf933c751dc4d64736f6c63430008090033"; export class MockElection__factory extends ContractFactory { constructor( ...args: [signer: Signer] | ConstructorParameters ) { if (args.length === 1) { super(_abi, _bytecode, args[0]); } else { super(...args); } } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): MockElection { return super.attach(address) as MockElection; } connect(signer: Signer): MockElection__factory { return super.connect(signer) as MockElection__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): MockElectionInterface { return new utils.Interface(_abi) as MockElectionInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): MockElection { return new Contract(address, _abi, signerOrProvider) as MockElection; } }