UNPKG

@hubbleprotocol/farms-sdk

Version:
777 lines (666 loc) 21.9 kB
export type CustomError = | StakeZero | UnstakeZero | NothingToUnstake | NoRewardToHarvest | NoRewardInList | RewardAlreadyInitialized | MaxRewardNumberReached | RewardDoesNotExist | WrongRewardVaultAccount | RewardVaultMismatch | RewardVaultAuthorityMismatch | NothingStaked | IntegerOverflow | ConversionFailure | UnexpectedAccount | OperationForbidden | MathOverflow | MinClaimDurationNotReached | RewardsVaultHasDelegate | RewardsVaultHasCloseAuthority | FarmVaultHasDelegate | FarmVaultHasCloseAuthority | RewardsTreasuryVaultHasDelegate | RewardsTreasuryVaultHasCloseAuthority | UserAtaRewardVaultMintMissmatch | UserAtaFarmTokenMintMissmatch | TokenFarmTokenMintMissmatch | RewardAtaRewardMintMissmatch | RewardAtaOwnerNotPayer | InvalidGlobalConfigMode | RewardIndexOutOfRange | NothingToWithdraw | UserDelegatedFarmNonDelegatedMissmatch | AuthorityFarmDelegateMissmatch | FarmNotDelegated | FarmDelegated | UnstakeNotElapsed | PendingWithdrawalNotWithdrawnYet | DepositZero | InvalidConfigValue | InvalidPenaltyPercentage | EarlyWithdrawalNotAllowed | InvalidLockingTimestamps | InvalidRpsCurvePoint | InvalidTimestamp | DepositCapReached | MissingScopePrices | ScopeOraclePriceTooOld | InvalidOracleConfig | CouldNotDeserializeScope | RewardAtaOwnerNotAdmin | WithdrawRewardZeroAvailable | RewardScheduleCurveSet | UnsupportedTokenExtension; export class StakeZero extends Error { static readonly code = 6000; readonly code = 6000; readonly name = "StakeZero"; readonly msg = "Cannot stake 0 amount"; constructor(readonly logs?: string[]) { super("6000: Cannot stake 0 amount"); } } export class UnstakeZero extends Error { static readonly code = 6001; readonly code = 6001; readonly name = "UnstakeZero"; readonly msg = "Cannot unstake 0 amount"; constructor(readonly logs?: string[]) { super("6001: Cannot unstake 0 amount"); } } export class NothingToUnstake extends Error { static readonly code = 6002; readonly code = 6002; readonly name = "NothingToUnstake"; readonly msg = "Nothing to unstake"; constructor(readonly logs?: string[]) { super("6002: Nothing to unstake"); } } export class NoRewardToHarvest extends Error { static readonly code = 6003; readonly code = 6003; readonly name = "NoRewardToHarvest"; readonly msg = "No reward to harvest"; constructor(readonly logs?: string[]) { super("6003: No reward to harvest"); } } export class NoRewardInList extends Error { static readonly code = 6004; readonly code = 6004; readonly name = "NoRewardInList"; readonly msg = "Reward not present in reward list"; constructor(readonly logs?: string[]) { super("6004: Reward not present in reward list"); } } export class RewardAlreadyInitialized extends Error { static readonly code = 6005; readonly code = 6005; readonly name = "RewardAlreadyInitialized"; readonly msg = "Reward already initialized"; constructor(readonly logs?: string[]) { super("6005: Reward already initialized"); } } export class MaxRewardNumberReached extends Error { static readonly code = 6006; readonly code = 6006; readonly name = "MaxRewardNumberReached"; readonly msg = "Max number of reward tokens reached"; constructor(readonly logs?: string[]) { super("6006: Max number of reward tokens reached"); } } export class RewardDoesNotExist extends Error { static readonly code = 6007; readonly code = 6007; readonly name = "RewardDoesNotExist"; readonly msg = "Reward does not exist"; constructor(readonly logs?: string[]) { super("6007: Reward does not exist"); } } export class WrongRewardVaultAccount extends Error { static readonly code = 6008; readonly code = 6008; readonly name = "WrongRewardVaultAccount"; readonly msg = "Reward vault exists but the account is wrong"; constructor(readonly logs?: string[]) { super("6008: Reward vault exists but the account is wrong"); } } export class RewardVaultMismatch extends Error { static readonly code = 6009; readonly code = 6009; readonly name = "RewardVaultMismatch"; readonly msg = "Reward vault pubkey does not match staking pool vault"; constructor(readonly logs?: string[]) { super("6009: Reward vault pubkey does not match staking pool vault"); } } export class RewardVaultAuthorityMismatch extends Error { static readonly code = 6010; readonly code = 6010; readonly name = "RewardVaultAuthorityMismatch"; readonly msg = "Reward vault authority pubkey does not match staking pool vault"; constructor(readonly logs?: string[]) { super( "6010: Reward vault authority pubkey does not match staking pool vault", ); } } export class NothingStaked extends Error { static readonly code = 6011; readonly code = 6011; readonly name = "NothingStaked"; readonly msg = "Nothing staked, cannot collect any rewards"; constructor(readonly logs?: string[]) { super("6011: Nothing staked, cannot collect any rewards"); } } export class IntegerOverflow extends Error { static readonly code = 6012; readonly code = 6012; readonly name = "IntegerOverflow"; readonly msg = "Integer overflow"; constructor(readonly logs?: string[]) { super("6012: Integer overflow"); } } export class ConversionFailure extends Error { static readonly code = 6013; readonly code = 6013; readonly name = "ConversionFailure"; readonly msg = "Conversion failure"; constructor(readonly logs?: string[]) { super("6013: Conversion failure"); } } export class UnexpectedAccount extends Error { static readonly code = 6014; readonly code = 6014; readonly name = "UnexpectedAccount"; readonly msg = "Unexpected account in instruction"; constructor(readonly logs?: string[]) { super("6014: Unexpected account in instruction"); } } export class OperationForbidden extends Error { static readonly code = 6015; readonly code = 6015; readonly name = "OperationForbidden"; readonly msg = "Operation forbidden"; constructor(readonly logs?: string[]) { super("6015: Operation forbidden"); } } export class MathOverflow extends Error { static readonly code = 6016; readonly code = 6016; readonly name = "MathOverflow"; readonly msg = "Mathematical operation with overflow"; constructor(readonly logs?: string[]) { super("6016: Mathematical operation with overflow"); } } export class MinClaimDurationNotReached extends Error { static readonly code = 6017; readonly code = 6017; readonly name = "MinClaimDurationNotReached"; readonly msg = "Minimum claim duration has not been reached"; constructor(readonly logs?: string[]) { super("6017: Minimum claim duration has not been reached"); } } export class RewardsVaultHasDelegate extends Error { static readonly code = 6018; readonly code = 6018; readonly name = "RewardsVaultHasDelegate"; readonly msg = "Reward vault has a delegate"; constructor(readonly logs?: string[]) { super("6018: Reward vault has a delegate"); } } export class RewardsVaultHasCloseAuthority extends Error { static readonly code = 6019; readonly code = 6019; readonly name = "RewardsVaultHasCloseAuthority"; readonly msg = "Reward vault has a close authority"; constructor(readonly logs?: string[]) { super("6019: Reward vault has a close authority"); } } export class FarmVaultHasDelegate extends Error { static readonly code = 6020; readonly code = 6020; readonly name = "FarmVaultHasDelegate"; readonly msg = "Farm vault has a delegate"; constructor(readonly logs?: string[]) { super("6020: Farm vault has a delegate"); } } export class FarmVaultHasCloseAuthority extends Error { static readonly code = 6021; readonly code = 6021; readonly name = "FarmVaultHasCloseAuthority"; readonly msg = "Farm vault has a close authority"; constructor(readonly logs?: string[]) { super("6021: Farm vault has a close authority"); } } export class RewardsTreasuryVaultHasDelegate extends Error { static readonly code = 6022; readonly code = 6022; readonly name = "RewardsTreasuryVaultHasDelegate"; readonly msg = "Reward vault has a delegate"; constructor(readonly logs?: string[]) { super("6022: Reward vault has a delegate"); } } export class RewardsTreasuryVaultHasCloseAuthority extends Error { static readonly code = 6023; readonly code = 6023; readonly name = "RewardsTreasuryVaultHasCloseAuthority"; readonly msg = "Reward vault has a close authority"; constructor(readonly logs?: string[]) { super("6023: Reward vault has a close authority"); } } export class UserAtaRewardVaultMintMissmatch extends Error { static readonly code = 6024; readonly code = 6024; readonly name = "UserAtaRewardVaultMintMissmatch"; readonly msg = "User ata and reward vault have different mints"; constructor(readonly logs?: string[]) { super("6024: User ata and reward vault have different mints"); } } export class UserAtaFarmTokenMintMissmatch extends Error { static readonly code = 6025; readonly code = 6025; readonly name = "UserAtaFarmTokenMintMissmatch"; readonly msg = "User ata and farm token have different mints"; constructor(readonly logs?: string[]) { super("6025: User ata and farm token have different mints"); } } export class TokenFarmTokenMintMissmatch extends Error { static readonly code = 6026; readonly code = 6026; readonly name = "TokenFarmTokenMintMissmatch"; readonly msg = "Token mint and farm token have different mints"; constructor(readonly logs?: string[]) { super("6026: Token mint and farm token have different mints"); } } export class RewardAtaRewardMintMissmatch extends Error { static readonly code = 6027; readonly code = 6027; readonly name = "RewardAtaRewardMintMissmatch"; readonly msg = "Reward ata mint is different than reward mint"; constructor(readonly logs?: string[]) { super("6027: Reward ata mint is different than reward mint"); } } export class RewardAtaOwnerNotPayer extends Error { static readonly code = 6028; readonly code = 6028; readonly name = "RewardAtaOwnerNotPayer"; readonly msg = "Reward ata owner is different than payer"; constructor(readonly logs?: string[]) { super("6028: Reward ata owner is different than payer"); } } export class InvalidGlobalConfigMode extends Error { static readonly code = 6029; readonly code = 6029; readonly name = "InvalidGlobalConfigMode"; readonly msg = "Mode to update global_config is invalid"; constructor(readonly logs?: string[]) { super("6029: Mode to update global_config is invalid"); } } export class RewardIndexOutOfRange extends Error { static readonly code = 6030; readonly code = 6030; readonly name = "RewardIndexOutOfRange"; readonly msg = "Reward Index is higher than number of rewards"; constructor(readonly logs?: string[]) { super("6030: Reward Index is higher than number of rewards"); } } export class NothingToWithdraw extends Error { static readonly code = 6031; readonly code = 6031; readonly name = "NothingToWithdraw"; readonly msg = "No tokens available to withdraw"; constructor(readonly logs?: string[]) { super("6031: No tokens available to withdraw"); } } export class UserDelegatedFarmNonDelegatedMissmatch extends Error { static readonly code = 6032; readonly code = 6032; readonly name = "UserDelegatedFarmNonDelegatedMissmatch"; readonly msg = "user, user_ref, authority and payer must match for non-delegated farm"; constructor(readonly logs?: string[]) { super( "6032: user, user_ref, authority and payer must match for non-delegated farm", ); } } export class AuthorityFarmDelegateMissmatch extends Error { static readonly code = 6033; readonly code = 6033; readonly name = "AuthorityFarmDelegateMissmatch"; readonly msg = "Authority must match farm delegate authority"; constructor(readonly logs?: string[]) { super("6033: Authority must match farm delegate authority"); } } export class FarmNotDelegated extends Error { static readonly code = 6034; readonly code = 6034; readonly name = "FarmNotDelegated"; readonly msg = "Farm not delegated, can not set stake"; constructor(readonly logs?: string[]) { super("6034: Farm not delegated, can not set stake"); } } export class FarmDelegated extends Error { static readonly code = 6035; readonly code = 6035; readonly name = "FarmDelegated"; readonly msg = "Operation not allowed for delegated farm"; constructor(readonly logs?: string[]) { super("6035: Operation not allowed for delegated farm"); } } export class UnstakeNotElapsed extends Error { static readonly code = 6036; readonly code = 6036; readonly name = "UnstakeNotElapsed"; readonly msg = "Unstake lockup period is not elapsed. Deposit is locked until end of unstake period"; constructor(readonly logs?: string[]) { super( "6036: Unstake lockup period is not elapsed. Deposit is locked until end of unstake period", ); } } export class PendingWithdrawalNotWithdrawnYet extends Error { static readonly code = 6037; readonly code = 6037; readonly name = "PendingWithdrawalNotWithdrawnYet"; readonly msg = "Pending withdrawal already exist and not withdrawn yet"; constructor(readonly logs?: string[]) { super("6037: Pending withdrawal already exist and not withdrawn yet"); } } export class DepositZero extends Error { static readonly code = 6038; readonly code = 6038; readonly name = "DepositZero"; readonly msg = "Cannot deposit zero amount directly to farm vault"; constructor(readonly logs?: string[]) { super("6038: Cannot deposit zero amount directly to farm vault"); } } export class InvalidConfigValue extends Error { static readonly code = 6039; readonly code = 6039; readonly name = "InvalidConfigValue"; readonly msg = "Invalid config value"; constructor(readonly logs?: string[]) { super("6039: Invalid config value"); } } export class InvalidPenaltyPercentage extends Error { static readonly code = 6040; readonly code = 6040; readonly name = "InvalidPenaltyPercentage"; readonly msg = "Invalid penalty percentage"; constructor(readonly logs?: string[]) { super("6040: Invalid penalty percentage"); } } export class EarlyWithdrawalNotAllowed extends Error { static readonly code = 6041; readonly code = 6041; readonly name = "EarlyWithdrawalNotAllowed"; readonly msg = "Early withdrawal not allowed"; constructor(readonly logs?: string[]) { super("6041: Early withdrawal not allowed"); } } export class InvalidLockingTimestamps extends Error { static readonly code = 6042; readonly code = 6042; readonly name = "InvalidLockingTimestamps"; readonly msg = "Invalid locking timestamps"; constructor(readonly logs?: string[]) { super("6042: Invalid locking timestamps"); } } export class InvalidRpsCurvePoint extends Error { static readonly code = 6043; readonly code = 6043; readonly name = "InvalidRpsCurvePoint"; readonly msg = "Invalid reward rate curve point"; constructor(readonly logs?: string[]) { super("6043: Invalid reward rate curve point"); } } export class InvalidTimestamp extends Error { static readonly code = 6044; readonly code = 6044; readonly name = "InvalidTimestamp"; readonly msg = "Invalid timestamp"; constructor(readonly logs?: string[]) { super("6044: Invalid timestamp"); } } export class DepositCapReached extends Error { static readonly code = 6045; readonly code = 6045; readonly name = "DepositCapReached"; readonly msg = "Deposit cap reached"; constructor(readonly logs?: string[]) { super("6045: Deposit cap reached"); } } export class MissingScopePrices extends Error { static readonly code = 6046; readonly code = 6046; readonly name = "MissingScopePrices"; readonly msg = "Missing Scope Prices"; constructor(readonly logs?: string[]) { super("6046: Missing Scope Prices"); } } export class ScopeOraclePriceTooOld extends Error { static readonly code = 6047; readonly code = 6047; readonly name = "ScopeOraclePriceTooOld"; readonly msg = "Scope Oracle Price Too Old"; constructor(readonly logs?: string[]) { super("6047: Scope Oracle Price Too Old"); } } export class InvalidOracleConfig extends Error { static readonly code = 6048; readonly code = 6048; readonly name = "InvalidOracleConfig"; readonly msg = "Invalid Oracle Config"; constructor(readonly logs?: string[]) { super("6048: Invalid Oracle Config"); } } export class CouldNotDeserializeScope extends Error { static readonly code = 6049; readonly code = 6049; readonly name = "CouldNotDeserializeScope"; readonly msg = "Could not deserialize scope"; constructor(readonly logs?: string[]) { super("6049: Could not deserialize scope"); } } export class RewardAtaOwnerNotAdmin extends Error { static readonly code = 6050; readonly code = 6050; readonly name = "RewardAtaOwnerNotAdmin"; readonly msg = "Reward ata owner is different than farm admin"; constructor(readonly logs?: string[]) { super("6050: Reward ata owner is different than farm admin"); } } export class WithdrawRewardZeroAvailable extends Error { static readonly code = 6051; readonly code = 6051; readonly name = "WithdrawRewardZeroAvailable"; readonly msg = "Cannot withdraw reward as available amount is zero"; constructor(readonly logs?: string[]) { super("6051: Cannot withdraw reward as available amount is zero"); } } export class RewardScheduleCurveSet extends Error { static readonly code = 6052; readonly code = 6052; readonly name = "RewardScheduleCurveSet"; readonly msg = "Cannot withdraw reward as reward schedule is set"; constructor(readonly logs?: string[]) { super("6052: Cannot withdraw reward as reward schedule is set"); } } export class UnsupportedTokenExtension extends Error { static readonly code = 6053; readonly code = 6053; readonly name = "UnsupportedTokenExtension"; readonly msg = "Cannot initialize farm while having a mint with token22 and requested extensions"; constructor(readonly logs?: string[]) { super( "6053: Cannot initialize farm while having a mint with token22 and requested extensions", ); } } export function fromCode(code: number, logs?: string[]): CustomError | null { switch (code) { case 6000: return new StakeZero(logs); case 6001: return new UnstakeZero(logs); case 6002: return new NothingToUnstake(logs); case 6003: return new NoRewardToHarvest(logs); case 6004: return new NoRewardInList(logs); case 6005: return new RewardAlreadyInitialized(logs); case 6006: return new MaxRewardNumberReached(logs); case 6007: return new RewardDoesNotExist(logs); case 6008: return new WrongRewardVaultAccount(logs); case 6009: return new RewardVaultMismatch(logs); case 6010: return new RewardVaultAuthorityMismatch(logs); case 6011: return new NothingStaked(logs); case 6012: return new IntegerOverflow(logs); case 6013: return new ConversionFailure(logs); case 6014: return new UnexpectedAccount(logs); case 6015: return new OperationForbidden(logs); case 6016: return new MathOverflow(logs); case 6017: return new MinClaimDurationNotReached(logs); case 6018: return new RewardsVaultHasDelegate(logs); case 6019: return new RewardsVaultHasCloseAuthority(logs); case 6020: return new FarmVaultHasDelegate(logs); case 6021: return new FarmVaultHasCloseAuthority(logs); case 6022: return new RewardsTreasuryVaultHasDelegate(logs); case 6023: return new RewardsTreasuryVaultHasCloseAuthority(logs); case 6024: return new UserAtaRewardVaultMintMissmatch(logs); case 6025: return new UserAtaFarmTokenMintMissmatch(logs); case 6026: return new TokenFarmTokenMintMissmatch(logs); case 6027: return new RewardAtaRewardMintMissmatch(logs); case 6028: return new RewardAtaOwnerNotPayer(logs); case 6029: return new InvalidGlobalConfigMode(logs); case 6030: return new RewardIndexOutOfRange(logs); case 6031: return new NothingToWithdraw(logs); case 6032: return new UserDelegatedFarmNonDelegatedMissmatch(logs); case 6033: return new AuthorityFarmDelegateMissmatch(logs); case 6034: return new FarmNotDelegated(logs); case 6035: return new FarmDelegated(logs); case 6036: return new UnstakeNotElapsed(logs); case 6037: return new PendingWithdrawalNotWithdrawnYet(logs); case 6038: return new DepositZero(logs); case 6039: return new InvalidConfigValue(logs); case 6040: return new InvalidPenaltyPercentage(logs); case 6041: return new EarlyWithdrawalNotAllowed(logs); case 6042: return new InvalidLockingTimestamps(logs); case 6043: return new InvalidRpsCurvePoint(logs); case 6044: return new InvalidTimestamp(logs); case 6045: return new DepositCapReached(logs); case 6046: return new MissingScopePrices(logs); case 6047: return new ScopeOraclePriceTooOld(logs); case 6048: return new InvalidOracleConfig(logs); case 6049: return new CouldNotDeserializeScope(logs); case 6050: return new RewardAtaOwnerNotAdmin(logs); case 6051: return new WithdrawRewardZeroAvailable(logs); case 6052: return new RewardScheduleCurveSet(logs); case 6053: return new UnsupportedTokenExtension(logs); } return null; }