use anchor_lang::error_code;
#[error_code]
pub enum DefiOSError {
#[msg("Invalid Signature")]
SignatureVerificationFailed,
#[msg("User not verified")]
UnauthorizedUser,
#[msg("Invalid Name Router")]
InvalidNameRouter,
#[msg("Token account mismatch")]
TokenAccountMismatch,
#[msg("Insufficient funds for staking")]
InsufficientStakingFunds,
#[msg("Cannot stake/unstake for a closed issue")]
IssueClosedAlready,
#[msg("Commit hashes do not match for reward eligibility")]
HashesMismatch,
#[msg("Tokens Already Claimed")]
AlreadyClaimed,
#[msg("Cannot stake/unstake on a closed objective")]
ObjectiveClosedAlready,
#[msg("Parent was not mentioned to which objective is to be added")]
NoParentEntered,
#[msg("Roadmap end time before roadmap creation time")]
RoadmapInvalidEndTime,
#[msg("Can not add PR of somebody else's commits")]
UnauthorizedPR,
#[msg("Math overflow")]
MathOverflow,
#[msg("Token Mint mismatch")]
MintMismatch,
#[msg("Vesting contract has not reached release time")]
VestingNotReachedRelease,
#[msg("Pull request not yet accepted")]
PullRequestNotYetAccepted,
#[msg("You are not authorized to merge this pull request")]
CanNotMergePullRequest,
#[msg("Unauthorized smart contract Action")]
UnauthorizedActionAttempted,
#[msg("No money was staked on this issue, Still thanks for the support to the community")]
NoMoneyStakedOnIssue,
#[msg("Insufficient funds")]
InsufficientFunds,
#[msg("Incorrect Inputs for buy/sell given")]
IncorrectMaths,
#[msg("Incorrect Metadata account provided")]
IncorrectMetadataAccount,
#[msg("Cannot vote on a closed issue")]
PullRequestVotingClosedAlready,
#[msg("Unauthorized objective addition")]
CantAddObjectiveToSomebodiesRoadmap,
#[msg("Cant enter time below 0")]
CantEnterTimeBelowZero,
#[msg("No PR on this issue to vote on")]
NoPRFound,
#[msg("Voting period has ended")]
VotingPeriodEnded,
#[msg("Can't unstake after voting")]
CantUnstakeAfterVoting,
#[msg("Either need to import to create a token")]
NoRepoTokenSpecified,
#[msg("Pull request account not sent to auto charge votes")]
PullRequestAutoUpdate,
#[msg("Invalid parent enetered")]
InvalidObjectiveParent,
#[msg("Not allowed to change repo token")]
RepoTokenChangeRejected,
#[msg("Not enough votes on PR to merge")]
NotEnoughVotesForIssueMerge,
#[msg("Voting period has not yet ended")]
VotingPeriodOnGoing,
#[msg("Issue cant be unstaked if never staked on")]
CantUnnstakeBeforeStaking,
}