Define errors.
Define errors (previously done in btcwallet and btcd's rpcserver) in one place so they can just be called by name rather than generated in code using btcjson. Closes #5
This commit is contained in:
parent
850870f14b
commit
9ddb768c47
1 changed files with 147 additions and 0 deletions
147
jsonerr.go
Normal file
147
jsonerr.go
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
// Copyright (c) 2013 Conformal Systems LLC.
|
||||||
|
// Use of this source code is governed by an ISC
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package btcjson
|
||||||
|
|
||||||
|
// Standard JSON-RPC 2.0 errors
|
||||||
|
var (
|
||||||
|
ErrInvalidRequest = Error{
|
||||||
|
Code: -32600,
|
||||||
|
Message: "Invalid request",
|
||||||
|
}
|
||||||
|
ErrMethodNotFound = Error{
|
||||||
|
Code: -32601,
|
||||||
|
Message: "Method not found",
|
||||||
|
}
|
||||||
|
ErrInvalidParams = Error{
|
||||||
|
Code: -32602,
|
||||||
|
Message: "Invalid paramaters",
|
||||||
|
}
|
||||||
|
ErrInternal = Error{
|
||||||
|
Code: -32603,
|
||||||
|
Message: "Internal error",
|
||||||
|
}
|
||||||
|
ErrParse = Error{
|
||||||
|
Code: -32700,
|
||||||
|
Message: "Parse error",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// General application defined JSON errors
|
||||||
|
var (
|
||||||
|
ErrMisc = Error{
|
||||||
|
Code: -1,
|
||||||
|
Message: "Miscellaneous error",
|
||||||
|
}
|
||||||
|
ErrForbiddenBySafeMode = Error{
|
||||||
|
Code: -2,
|
||||||
|
Message: "Server is in safe mode, and command is not allowed in safe mode",
|
||||||
|
}
|
||||||
|
ErrType = Error{
|
||||||
|
Code: -3,
|
||||||
|
Message: "Unexpected type was passed as parameter",
|
||||||
|
}
|
||||||
|
ErrInvalidAddressOrKey = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "Invalid address or key",
|
||||||
|
}
|
||||||
|
ErrOutOfMemory = Error{
|
||||||
|
Code: -7,
|
||||||
|
Message: "Ran out of memory during operation",
|
||||||
|
}
|
||||||
|
ErrInvalidParameter = Error{
|
||||||
|
Code: -8,
|
||||||
|
Message: "Invalid, missing or duplicate parameter",
|
||||||
|
}
|
||||||
|
ErrDatabase = Error{
|
||||||
|
Code: -20,
|
||||||
|
Message: "Database error",
|
||||||
|
}
|
||||||
|
ErrDeserialization = Error{
|
||||||
|
Code: -22,
|
||||||
|
Message: "Error parsing or validating structure in raw format",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Wallet JSON errors
|
||||||
|
var (
|
||||||
|
ErrWallet = Error{
|
||||||
|
Code: -4,
|
||||||
|
Message: "Unspecified problem with wallet",
|
||||||
|
}
|
||||||
|
ErrWalletInsufficientFunds = Error{
|
||||||
|
Code: -6,
|
||||||
|
Message: "Not enough funds in wallet or account",
|
||||||
|
}
|
||||||
|
ErrWalletInvalidAccountName = Error{
|
||||||
|
Code: -11,
|
||||||
|
Message: "Invalid account name",
|
||||||
|
}
|
||||||
|
ErrWalletKeypoolRanOut = Error{
|
||||||
|
Code: -12,
|
||||||
|
Message: "Keypool ran out, call keypoolrefill first",
|
||||||
|
}
|
||||||
|
ErrWalletUnlockNeeded = Error{
|
||||||
|
Code: -13,
|
||||||
|
Message: "Enter the wallet passphrase with walletpassphrase first",
|
||||||
|
}
|
||||||
|
ErrWalletPassphraseIncorrect = Error{
|
||||||
|
Code: -14,
|
||||||
|
Message: "The wallet passphrase entered was incorrect",
|
||||||
|
}
|
||||||
|
ErrWalletWrongEncState = Error{
|
||||||
|
Code: -15,
|
||||||
|
Message: "Command given in wrong wallet encryption state",
|
||||||
|
}
|
||||||
|
ErrWalletEncryptionFailed = Error{
|
||||||
|
Code: -16,
|
||||||
|
Message: "Failed to encrypt the wallet",
|
||||||
|
}
|
||||||
|
ErrWalletAlreadyUnlocked = Error{
|
||||||
|
Code: -17,
|
||||||
|
Message: "Wallet is already unlocked",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Specific Errors related to commands. These are the ones a user of the rpc
|
||||||
|
// server are most likely to see. Generally, the codes should match one of the
|
||||||
|
// more general errors above.
|
||||||
|
var (
|
||||||
|
ErrBlockNotFound = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "Block not found",
|
||||||
|
}
|
||||||
|
ErrBlockCount = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "Error getting block count",
|
||||||
|
}
|
||||||
|
ErrBestBlockHash = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "Error getting best block hash",
|
||||||
|
}
|
||||||
|
ErrDifficulty = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "Error getting difficulty",
|
||||||
|
}
|
||||||
|
ErrOutOfRange = Error{
|
||||||
|
Code: -1,
|
||||||
|
Message: "Block number out of range",
|
||||||
|
}
|
||||||
|
ErrNoTxInfo = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "No information available about transaction",
|
||||||
|
}
|
||||||
|
ErrNoNewestBlockInfo = Error{
|
||||||
|
Code: -5,
|
||||||
|
Message: "No information about newest block",
|
||||||
|
}
|
||||||
|
ErrRawTxString = Error{
|
||||||
|
Code: -32602,
|
||||||
|
Message: "Raw tx is not a string",
|
||||||
|
}
|
||||||
|
ErrDecodeHexString = Error{
|
||||||
|
Code: -22,
|
||||||
|
Message: "Unable to decode hex string",
|
||||||
|
}
|
||||||
|
)
|
Loading…
Reference in a new issue