pub enum SatrushError {
Show 77 variants
Unauthorized = 6_000,
RoundInProgress = 6_001,
InvalidRoundId = 6_002,
InvalidRoundDuration = 6_003,
InvalidEntropy = 6_004,
RoundNotActive = 6_005,
InvalidDeploymentAmount = 6_006,
InvalidSelectionMask = 6_007,
MathOverflow = 6_008,
MathUnderflow = 6_009,
AlreadyRevealed = 6_010,
InvalidSlotHash = 6_011,
RoundNotRevealed = 6_012,
RoundNotFinished = 6_013,
RoundNotSettled = 6_014,
InvalidSwapProgram = 6_015,
AlreadySwapped = 6_016,
SwapOverspent = 6_017,
SlippageExceeded = 6_018,
InvalidShareAmount = 6_019,
InsufficientShares = 6_020,
StrikeAlreadyTriggered = 6_021,
EpochNotOpen = 6_022,
EpochWindowNotElapsed = 6_023,
EpochNotSettling = 6_024,
EpochNotSealed = 6_025,
EpochNotSettled = 6_026,
EpochInvalidPage = 6_027,
EpochNotAWinner = 6_028,
EpochAlreadyDistributed = 6_029,
EpochMaxParticipants = 6_030,
InvalidTicketsCount = 6_031,
InsufficientHashrate = 6_032,
OneBtcNotOpen = 6_033,
OneBtcNotSettled = 6_034,
OneBtcNotSealed = 6_035,
OneBtcNotTriggerable = 6_036,
OneBtcNoParticipants = 6_037,
OneBtcNotAWinner = 6_038,
OneBtcWinningTicketLocked = 6_039,
EpochPageAlreadySealed = 6_040,
EpochPageNotSealed = 6_041,
EpochSealMismatch = 6_042,
TreasuryEmpty = 6_043,
InvalidClaimAmount = 6_044,
InsufficientUnclaimedUsd = 6_045,
InsufficientAutomationBalance = 6_046,
InvalidAutomationAmount = 6_047,
InvalidAutomationStrategyMask = 6_048,
DeployAmountBelowMinimum = 6_049,
InvalidEpochIterationDuration = 6_050,
InvalidUnclaimedHashrateBps = 6_051,
InvalidStrikeTriggerModulus = 6_052,
InvalidSwapBps = 6_053,
InvalidMintData = 6_054,
InvalidDeployFees = 6_055,
InvalidGrubstakeAmount = 6_056,
InsufficientGrubstake = 6_057,
InvalidGrubstakeExpiration = 6_058,
GrubstakeAirdropExpired = 6_059,
GrubstakeAirdropNotExpired = 6_060,
GrubstakeExpired = 6_061,
InsufficientMinerGrubstake = 6_062,
GrubstakeNotExpired = 6_063,
NotGrubstakeFunded = 6_064,
InvalidAffiliateTag = 6_065,
SelfReferralNotAllowed = 6_066,
AffiliateMismatch = 6_067,
InsufficientAffiliatePoints = 6_068,
InsufficientTreasuryBalance = 6_069,
InvalidAffiliateRate = 6_070,
InvalidRngProgram = 6_071,
InvalidRngConfig = 6_072,
InvalidRotor = 6_073,
RotorNotSettled = 6_074,
InvalidMinerAccount = 6_075,
MinerAlreadyMigrated = 6_076,
}Variants§
6000 - Signer is not authorized to execute this instruction
RoundInProgress = 6_001
6001 - Ongoing round is not yet finished
InvalidRoundId = 6_002
6002 - Invalid round id supplied to create round
InvalidRoundDuration = 6_003
6003 - Round duration must be greater than zero
InvalidEntropy = 6_004
6004 - Entropy value is invalid
RoundNotActive = 6_005
6005 - Round is not accepting deploys
InvalidDeploymentAmount = 6_006
6006 - Deployment amount must be greater than zero
InvalidSelectionMask = 6_007
6007 - Selection mask must pick between 1 and 21 tiles within the 21-bit range
MathOverflow = 6_008
6008 - Arithmetic overflow
MathUnderflow = 6_009
6009 - Arithmetic underflow
AlreadyRevealed = 6_010
6010 - Round winning tile has already been revealed
InvalidSlotHash = 6_011
6011 - Slot hash entropy is unavailable or invalid
RoundNotRevealed = 6_012
6012 - Round winning tile has not been revealed yet
RoundNotFinished = 6_013
6013 - Round is not in the finished state
RoundNotSettled = 6_014
6014 - Round is not in the settled state
InvalidSwapProgram = 6_015
6015 - Swap program account does not match the configured swap program
AlreadySwapped = 6_016
6016 - Round stake has already been swapped into BTC
SwapOverspent = 6_017
6017 - Swap spent more USD than the budgeted amount
SlippageExceeded = 6_018
6018 - Swap output is below the minimum acceptable amount
6019 - Share amount must be greater than zero
6020 - Miner does not hold enough Sats Vault shares
StrikeAlreadyTriggered = 6_021
6021 - Strike jackpot was already triggered on the provided round
EpochNotOpen = 6_022
6022 - Epoch iteration is not accepting ticket purchases
EpochWindowNotElapsed = 6_023
6023 - Epoch iteration window has not elapsed yet
EpochNotSettling = 6_024
6024 - Epoch iteration is not in the settling state
EpochNotSealed = 6_025
6025 - Epoch iteration is not sealed awaiting entropy
EpochNotSettled = 6_026
6026 - Epoch iteration is not in the settled state
EpochInvalidPage = 6_027
6027 - Supplied page does not contain the current winning ticket
EpochNotAWinner = 6_028
6028 - Signer is not a winner of this epoch draw
EpochAlreadyDistributed = 6_029
6029 - Epoch reward has already been distributed
EpochMaxParticipants = 6_030
6030 - Epoch iteration has reached the maximum number of participants
InvalidTicketsCount = 6_031
6031 - Tickets count must be greater than zero
InsufficientHashrate = 6_032
6032 - Miner does not have enough hashrate
OneBtcNotOpen = 6_033
6033 - 1 BTC Vault iteration is not accepting ticket purchases
OneBtcNotSettled = 6_034
6034 - 1 BTC Vault iteration is not in the settled state
OneBtcNotSealed = 6_035
6035 - 1 BTC Vault iteration is not sealed awaiting entropy
OneBtcNotTriggerable = 6_036
6036 - 1 BTC Vault has not accumulated enough BTC to trigger a draw
OneBtcNoParticipants = 6_037
6037 - 1 BTC Vault draw has no participants
OneBtcNotAWinner = 6_038
6038 - Ticket does not hold the winning ticket for this draw
OneBtcWinningTicketLocked = 6_039
6039 - The winning ticket cannot be closed until the prize is claimed
EpochPageAlreadySealed = 6_040
6040 - Epoch page has already been sealed
EpochPageNotSealed = 6_041
6041 - Epoch page is not sealed yet
EpochSealMismatch = 6_042
6042 - Epoch sealed page chain does not reconcile with the iteration’s ticket total
TreasuryEmpty = 6_043
6043 - Treasury has no accrued fees to withdraw
InvalidClaimAmount = 6_044
6044 - Claim amount must be greater than zero
InsufficientUnclaimedUsd = 6_045
6045 - Miner does not hold enough unclaimed USD
InsufficientAutomationBalance = 6_046
6046 - Automation balance cannot cover the per-round deploy amount
InvalidAutomationAmount = 6_047
6047 - Automation amount must be greater than zero
InvalidAutomationStrategyMask = 6_048
6048 - Selection mask does not match the automation strategy
DeployAmountBelowMinimum = 6_049
6049 - Deploy amount is below the 1 USD minimum
InvalidEpochIterationDuration = 6_050
6050 - Epoch iteration duration must be greater than zero
InvalidUnclaimedHashrateBps = 6_051
6051 - Unclaimed hashrate bps must not exceed 10_000
InvalidStrikeTriggerModulus = 6_052
6052 - Strike trigger modulus must be greater than zero
InvalidSwapBps = 6_053
6053 - Sats Vault round fee bps plus deploy fee bps must stay below 10_000
InvalidMintData = 6_054
6054 - Mint account data is too short to contain the decimals field
InvalidDeployFees = 6_055
6055 - Deploy fee legs must each be at least 1 bps and sum to exactly 800 bps
InvalidGrubstakeAmount = 6_056
6056 - Grubstake amount must be greater than zero
InsufficientGrubstake = 6_057
6057 - Withdrawal exceeds the unreserved grubstake balance
InvalidGrubstakeExpiration = 6_058
6058 - Grubstake airdrop expiration must be in the future
GrubstakeAirdropExpired = 6_059
6059 - Grubstake airdrop has expired and can only be reclaimed
GrubstakeAirdropNotExpired = 6_060
6060 - Grubstake airdrop has not expired yet
GrubstakeExpired = 6_061
6061 - Miner’s grubstake spend window has expired
InsufficientMinerGrubstake = 6_062
6062 - Amount exceeds the miner’s grubstake balance
GrubstakeNotExpired = 6_063
6063 - Miner’s grubstake spend window has not expired yet
NotGrubstakeFunded = 6_064
6064 - Automation is not grubstake-funded
InvalidAffiliateTag = 6_065
6065 - Affiliate tag must be 3-16 characters of a-z, 0-9, ‘_’ or ‘-’
SelfReferralNotAllowed = 6_066
6066 - An affiliate cannot refer their own miner
AffiliateMismatch = 6_067
6067 - Affiliate account does not match the miner’s bound affiliate
InsufficientAffiliatePoints = 6_068
6068 - Redemption exceeds the affiliate’s unclaimed points
InsufficientTreasuryBalance = 6_069
6069 - Treasury has not accrued enough to cover the redemption
InvalidAffiliateRate = 6_070
6070 - Affiliate rate cannot exceed 10000 bps
InvalidRngProgram = 6_071
6071 - Account is not the configured rng program
InvalidRngConfig = 6_072
6072 - Account is not the rng program’s config PDA
InvalidRotor = 6_073
6073 - Account is not the expected rotor of the rng program
RotorNotSettled = 6_074
6074 - Rotor has not settled fresh randomness past the arm-time snapshot
InvalidMinerAccount = 6_075
6075 - Account is not a program-owned miner account
MinerAlreadyMigrated = 6_076
6076 - Miner account already carries the v2 layout
Trait Implementations§
Source§impl Clone for SatrushError
impl Clone for SatrushError
Source§fn clone(&self) -> SatrushError
fn clone(&self) -> SatrushError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SatrushError
impl Debug for SatrushError
Source§impl Display for SatrushError
impl Display for SatrushError
impl Eq for SatrushError
Source§impl Error for SatrushError
impl Error for SatrushError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<SatrushError> for ProgramError
impl From<SatrushError> for ProgramError
Source§fn from(e: SatrushError) -> Self
fn from(e: SatrushError) -> Self
Source§impl FromPrimitive for SatrushError
impl FromPrimitive for SatrushError
Source§fn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
i64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
u64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
isize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
i8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
i16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
i32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
u8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
u16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
u32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§impl PartialEq for SatrushError
impl PartialEq for SatrushError
impl StructuralPartialEq for SatrushError
Auto Trait Implementations§
impl Freeze for SatrushError
impl RefUnwindSafe for SatrushError
impl Send for SatrushError
impl Sync for SatrushError
impl Unpin for SatrushError
impl UnsafeUnpin for SatrushError
impl UnwindSafe for SatrushError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more