033b00dd1c
Fix panic caused by nil pointer dereference. Create new error type for invalid tx vout (gettxout).
175 lines
3.8 KiB
Go
175 lines
3.8 KiB
Go
// Copyright (c) 2013-2014 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",
|
|
}
|
|
)
|
|
|
|
// Peer-to-peer client errors
|
|
var (
|
|
ErrClientNotConnected = Error{
|
|
Code: -9,
|
|
Message: "Bitcoin is not connected",
|
|
}
|
|
ErrClientInInitialDownload = Error{
|
|
Code: -10,
|
|
Message: "Bitcoin is downloading blocks...",
|
|
}
|
|
)
|
|
|
|
// 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",
|
|
}
|
|
ErrInvalidTxVout = Error{
|
|
Code: -5,
|
|
Message: "Ouput index number (vout) does not exist for transaction.",
|
|
}
|
|
ErrRawTxString = Error{
|
|
Code: -32602,
|
|
Message: "Raw tx is not a string",
|
|
}
|
|
ErrDecodeHexString = Error{
|
|
Code: -22,
|
|
Message: "Unable to decode hex string",
|
|
}
|
|
)
|
|
|
|
// Errors that are specific to btcd.
|
|
var (
|
|
ErrNoWallet = Error{
|
|
Code: -1,
|
|
Message: "This implementation does not implement wallet commands",
|
|
}
|
|
ErrUnimplemented = Error{
|
|
Code: -1,
|
|
Message: "Command unimplemented",
|
|
}
|
|
)
|