sbv2-solana/programs/anchor-vrf-parser/client/errors/custom.ts

61 lines
1.5 KiB
TypeScript

export type CustomError =
| InvalidSwitchboardVrfAccount
| MaxResultExceedsMaximum
| EmptyCurrentRoundResult
| InvalidAuthorityError
export class InvalidSwitchboardVrfAccount extends Error {
readonly code = 6000
readonly name = "InvalidSwitchboardVrfAccount"
readonly msg = "Not a valid Switchboard VRF account"
constructor() {
super("6000: Not a valid Switchboard VRF account")
}
}
export class MaxResultExceedsMaximum extends Error {
readonly code = 6001
readonly name = "MaxResultExceedsMaximum"
readonly msg = "The max result must not exceed u64"
constructor() {
super("6001: The max result must not exceed u64")
}
}
export class EmptyCurrentRoundResult extends Error {
readonly code = 6002
readonly name = "EmptyCurrentRoundResult"
readonly msg = "Current round result is empty"
constructor() {
super("6002: Current round result is empty")
}
}
export class InvalidAuthorityError extends Error {
readonly code = 6003
readonly name = "InvalidAuthorityError"
readonly msg = "Invalid authority account provided."
constructor() {
super("6003: Invalid authority account provided.")
}
}
export function fromCode(code: number): CustomError | null {
switch (code) {
case 6000:
return new InvalidSwitchboardVrfAccount()
case 6001:
return new MaxResultExceedsMaximum()
case 6002:
return new EmptyCurrentRoundResult()
case 6003:
return new InvalidAuthorityError()
}
return null
}