rippled
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ripple::RPC Namespace Reference

API version numbers used in later API versions. More...

Namespaces

namespace  common
 
namespace  detail
 
namespace  Tuning
 Tuned constants.
 

Classes

class  AccountLines_test
 
class  codeString_test
 
struct  Context
 The context of information needed to call an RPC. More...
 
struct  ErrorInfo
 Maps an rpc error code to its token, default message, and HTTP status. More...
 
class  fillJson_test
 
struct  GRPCContext
 
struct  Handler
 
struct  JsonContext
 
class  JSONRPC_test
 
struct  key_strings
 
class  LedgerHandler
 
class  LedgerRequestRPC_test
 
class  LegacyPathFind
 
struct  Request
 
struct  Status
 Status represents the results of an operation that might fail. More...
 
struct  TxnTestData
 
class  VersionHandler
 
class  WalletPropose_test
 

Typedefs

using ProcessTransactionFn = std::function< void(std::shared_ptr< Transaction > &transaction, bool bUnlimited, bool bLocal, NetworkOPs::FailHard failType)>
 
using Output = std::function< void(boost::string_ref const &)>
 

Enumerations

enum  Condition { NO_CONDITION = 0 , NEEDS_NETWORK_CONNECTION = 1 , NEEDS_CURRENT_LEDGER = 1 << 1 , NEEDS_CLOSED_LEDGER = 1 << 2 }
 
enum  LedgerShortcut { CURRENT , CLOSED , VALIDATED }
 

Functions

template<class JsonObject >
void setVersion (JsonObject &parent, unsigned int apiVersion, bool betaEnabled)
 
unsigned int getAPIVersionNumber (Json::Value const &jv, bool betaEnabled)
 Retrieve the api version number from the json value.
 
ErrorInfo const & get_error_info (error_code_i code)
 Returns an ErrorInfo that reflects the error code.
 
bool contains_error (Json::Value const &json)
 Returns true if the json contains an rpc error specification.
 
int error_code_http_status (error_code_i code)
 Returns http status that corresponds to the error code.
 
 BEAST_DEFINE_TESTSUITE (AccountLines, rpc, ripple)
 
 BEAST_DEFINE_TESTSUITE (JSONRPC, rpc, ripple)
 
 BEAST_DEFINE_TESTSUITE (WalletPropose, rpc, ripple)
 
 BEAST_DEFINE_TESTSUITE (LedgerRequestRPC, rpc, ripple)
 
 BEAST_DEFINE_TESTSUITE (codeString, rpc, RPC)
 
 BEAST_DEFINE_TESTSUITE (fillJson, rpc, RPC)
 
template<class L >
Json::Value computeBookChanges (std::shared_ptr< L const > const &lpAccepted)
 
std::optional< std::stringencodeCTID (uint32_t ledgerSeq, uint32_t txnIndex, uint32_t networkID) noexcept
 Encodes ledger sequence, transaction index, and network ID into a CTID string.
 
template<typename T >
std::optional< std::tuple< uint32_t, uint16_t, uint16_t > > decodeCTID (T const ctid) noexcept
 Decodes a CTID string or integer into its component parts.
 
template<class GetLedgerIndex , class GetCloseTime >
std::optional< STAmountgetDeliveredAmount (GetLedgerIndex const &getLedgerIndex, GetCloseTime const &getCloseTime, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &transactionMeta)
 
bool canHaveDeliveredAmount (std::shared_ptr< STTx const > const &serializedTx, TxMeta const &transactionMeta)
 
template<class GetLedgerIndex >
static std::optional< STAmountgetDeliveredAmount (RPC::Context const &context, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &transactionMeta, GetLedgerIndex const &getLedgerIndex)
 
Handler const * getHandler (unsigned version, bool betaEnabled, std::string const &name)
 
std::set< char const * > getHandlerNames ()
 Return names of all methods.
 
Handler const * getHandler (unsigned int version, bool betaEnabled, std::string const &)
 
template<class Value >
Json::Value makeObjectValue (Value const &value, Json::StaticString const &field=jss::message)
 Return a Json::objectValue with a single entry.
 
template<class T >
error_code_i conditionMet (Condition condition_required, T &context)
 
Status doCommand (RPC::JsonContext &, Json::Value &)
 Execute an RPC command and store the results in a Json::Value.
 
Role roleRequired (unsigned int version, bool betaEnabled, std::string const &method)
 
std::optional< AccountIDaccountFromStringStrict (std::string const &)
 Get an AccountID from an account ID or public key.
 
error_code_i accountFromStringWithCode (AccountID &result, std::string const &strIdent, bool bStrict=false)
 Decode account ID from string.
 
Json::Value accountFromString (AccountID &result, std::string const &strIdent, bool bStrict)
 
std::uint64_t getStartHint (std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
 Gets the start hint for traversing account objects.
 
bool isRelatedToAccount (ReadView const &ledger, std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
 Tests if a SLE is owned by accountID.
 
bool getAccountObjects (ReadView const &ledger, AccountID const &account, std::optional< std::vector< LedgerEntryType > > const &typeFilter, uint256 dirIndex, uint256 entryIndex, std::uint32_t const limit, Json::Value &jvResult)
 Gathers all objects for an account in a ledger.
 
template<class T , class R >
Status ledgerFromRequest (T &ledger, GRPCContext< R > &context)
 
template Status ledgerFromRequest (std::shared_ptr< ReadView const > &, GRPCContext< org::xrpl::rpc::v1::GetLedgerEntryRequest > &)
 
template Status ledgerFromRequest (std::shared_ptr< ReadView const > &, GRPCContext< org::xrpl::rpc::v1::GetLedgerDataRequest > &)
 
template Status ledgerFromRequest (std::shared_ptr< ReadView const > &, GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &)
 
template<class T >
Status ledgerFromSpecifier (T &ledger, org::xrpl::rpc::v1::LedgerSpecifier const &specifier, Context &context)
 
template<class T >
Status getLedger (T &ledger, uint256 const &ledgerHash, Context &context)
 Get ledger by hash If there is no error in the return value, the ledger pointer will have been filled.
 
template<class T >
Status getLedger (T &ledger, uint32_t ledgerIndex, Context &context)
 Get ledger by sequence If there is no error in the return value, the ledger pointer will have been filled.
 
template<class T >
Status getLedger (T &ledger, LedgerShortcut shortcut, Context &context)
 Get ledger specified in shortcut.
 
template Status getLedger (std::shared_ptr< ReadView const > &, uint32_t, Context &)
 
template Status getLedger (std::shared_ptr< ReadView const > &, LedgerShortcut shortcut, Context &)
 
template Status getLedger (std::shared_ptr< ReadView const > &, uint256 const &, Context &)
 
Status lookupLedger (std::shared_ptr< ReadView const > &, JsonContext &, Json::Value &result)
 Look up a ledger from a request and fill a Json::Result with the data representing a ledger.
 
Json::Value lookupLedger (std::shared_ptr< ReadView const > &, JsonContext &)
 Look up a ledger from a request and fill a Json::Result with either an error, or data representing a ledger.
 
hash_set< AccountIDparseAccountIds (Json::Value const &jvArray)
 
void injectSLE (Json::Value &jv, SLE const &sle)
 Inject JSON describing ledger entry.
 
std::optional< Json::ValuereadLimitField (unsigned int &limit, Tuning::LimitRange const &, JsonContext const &)
 Retrieve the limit value from a JsonContext, or set a default - then restrict the limit by max and min if not an ADMIN request.
 
std::optional< SeedparseRippleLibSeed (Json::Value const &value)
 
std::optional< SeedgetSeedFromRPC (Json::Value const &params, Json::Value &error)
 
std::optional< std::pair< PublicKey, SecretKey > > keypairForSignature (Json::Value const &params, Json::Value &error, unsigned int apiVersion)
 
std::pair< RPC::Status, LedgerEntryTypechooseLedgerEntryType (Json::Value const &params)
 
bool isAccountObjectsValidType (LedgerEntryType const &type)
 Check if the type is a valid filtering type for account_objects method.
 
std::variant< std::shared_ptr< Ledger const >, Json::ValuegetLedgerByContext (RPC::JsonContext &context)
 Return a ledger based on ledger_hash or ledger_index, or an RPC error.
 
bool isHexTxID (std::string const &txid)
 
static XRPAmount getTxFee (Application const &app, Config const &config, Json::Value tx)
 
Json::Value getCurrentNetworkFee (Role const role, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app, Json::Value const &tx, int mult, int div)
 
Json::Value checkFee (Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
 Fill in the fee on behalf of the client.
 
Json::Value transactionSign (Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
 Returns a Json::objectValue.
 
Json::Value transactionSubmit (Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
 Returns a Json::objectValue.
 
Json::Value transactionSignFor (Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
 Returns a Json::objectValue.
 
Json::Value transactionSubmitMultiSigned (Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
 Returns a Json::objectValue.
 
ProcessTransactionFn getProcessTxnFn (NetworkOPs &netOPs)
 
Output stringOutput (std::string &s)
 
template<class JsonValue >
void inject_error (error_code_i code, JsonValue &json)
 Add or update the json update to reflect the error code.
 
template<class JsonValue >
void inject_error (int code, JsonValue &json)
 
template<class JsonValue >
void inject_error (error_code_i code, std::string const &message, JsonValue &json)
 
Json::Value make_error (error_code_i code)
 Returns a new json object that reflects the error code.
 
Json::Value make_error (error_code_i code, std::string const &message)
 
Json::Value make_param_error (std::string const &message)
 Returns a new json object that indicates invalid parameters.
 
std::string missing_field_message (std::string const &name)
 
Json::Value missing_field_error (std::string const &name)
 
Json::Value missing_field_error (Json::StaticString name)
 
std::string object_field_message (std::string const &name)
 
Json::Value object_field_error (std::string const &name)
 
Json::Value object_field_error (Json::StaticString name)
 
std::string invalid_field_message (std::string const &name)
 
std::string invalid_field_message (Json::StaticString name)
 
Json::Value invalid_field_error (std::string const &name)
 
Json::Value invalid_field_error (Json::StaticString name)
 
std::string expected_field_message (std::string const &name, std::string const &type)
 
std::string expected_field_message (Json::StaticString name, std::string const &type)
 
Json::Value expected_field_error (std::string const &name, std::string const &type)
 
Json::Value expected_field_error (Json::StaticString name, std::string const &type)
 
Json::Value not_validator_error ()
 
void insertNFTSyntheticInJson (Json::Value &, std::shared_ptr< STTx const > const &, TxMeta const &)
 Adds common synthetic fields to transaction-related JSON responses.
 
void insertDeliverMax (Json::Value &tx_json, TxType txnType, unsigned int apiVersion)
 Copy Amount field to DeliverMax field in transaction output JSON.
 
void insertDeliveredAmount (Json::Value &meta, ReadView const &, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &)
 Add a delivered_amount field to the meta input/output parameter.
 
void insertDeliveredAmount (Json::Value &meta, RPC::JsonContext const &, std::shared_ptr< Transaction > const &, TxMeta const &)
 
void insertDeliveredAmount (Json::Value &meta, RPC::JsonContext const &, std::shared_ptr< STTx const > const &, TxMeta const &)
 
std::optional< STAmountgetDeliveredAmount (RPC::Context const &context, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &transactionMeta, LedgerIndex const &ledgerIndex)
 
bool canHaveMPTokenIssuanceID (std::shared_ptr< STTx const > const &serializedTx, TxMeta const &transactionMeta)
 Add a mpt_issuance_id field to the meta input/output parameter.
 
std::optional< uint192getIDFromCreatedIssuance (TxMeta const &transactionMeta)
 
void insertMPTokenIssuanceID (Json::Value &response, std::shared_ptr< STTx const > const &transaction, TxMeta const &transactionMeta)
 

Variables

template<unsigned int Version>
static constexpr std::integral_constant< unsigned, Version > apiVersion = {}
 
static constexpr auto apiInvalidVersion = apiVersion<0>
 
static constexpr auto apiMinimumSupportedVersion = apiVersion<1>
 
static constexpr auto apiMaximumSupportedVersion = apiVersion<2>
 
static constexpr auto apiVersionIfUnspecified = apiVersion<1>
 
static constexpr auto apiCommandLineVersion
 
static constexpr auto apiBetaVersion = apiVersion<3>
 
static constexpr auto apiMaximumValidVersion = apiBetaVersion
 
static constexpr TxnTestData txnTestArray []
 
static key_strings const secp256k1_strings
 
static key_strings const ed25519_strings
 
static key_strings const strong_brain_strings
 

Detailed Description

API version numbers used in later API versions.

Requests with a version number in the range [apiMinimumSupportedVersion, apiMaximumSupportedVersion] are supported.

If [beta_rpc_api] is enabled in config, the version numbers in the range [apiMinimumSupportedVersion, apiBetaVersion] are supported.

Network Requests without explicit version numbers use apiVersionIfUnspecified. apiVersionIfUnspecified is 1, because all the RPC requests with a version >= 2 must explicitly specify the version in the requests. Note that apiVersionIfUnspecified will be lower than apiMinimumSupportedVersion when we stop supporting API version 1.

Command line Requests use apiCommandLineVersion.

Typedef Documentation

◆ ProcessTransactionFn

using ripple::RPC::ProcessTransactionFn = typedef std::function<void( std::shared_ptr<Transaction>& transaction, bool bUnlimited, bool bLocal, NetworkOPs::FailHard failType)>

Definition at line 87 of file TransactionSign.h.

◆ Output

using ripple::RPC::Output = typedef std::function<void(boost::string_ref const&)>

Definition at line 28 of file src/xrpld/rpc/Output.h.

Enumeration Type Documentation

◆ Condition

Enumerator
NO_CONDITION 
NEEDS_NETWORK_CONNECTION 
NEEDS_CURRENT_LEDGER 
NEEDS_CLOSED_LEDGER 

Definition at line 39 of file Handler.h.

◆ LedgerShortcut

Enumerator
CURRENT 
CLOSED 
VALIDATED 

Definition at line 130 of file RPCHelpers.h.

Function Documentation

◆ setVersion()

template<class JsonObject >
void ripple::RPC::setVersion ( JsonObject &  parent,
unsigned int  apiVersion,
bool  betaEnabled 
)

Definition at line 82 of file ApiVersion.h.

◆ getAPIVersionNumber()

unsigned int ripple::RPC::getAPIVersionNumber ( Json::Value const &  jv,
bool  betaEnabled 
)

Retrieve the api version number from the json value.

Note that APIInvalidVersion will be returned if 1) the version number field has a wrong format 2) the version number retrieved is out of the supported range 3) the version number is unspecified and APIVersionIfUnspecified is out of the supported range

Parameters
jva Json value that may or may not specifies the api version number
betaEnabledif the beta API version is enabled
Returns
the api version number

Definition at line 123 of file ApiVersion.h.

◆ get_error_info()

ErrorInfo const & ripple::RPC::get_error_info ( error_code_i  code)

Returns an ErrorInfo that reflects the error code.

Definition at line 183 of file ErrorCodes.cpp.

◆ inject_error() [1/3]

template<class JsonValue >
void ripple::RPC::inject_error ( error_code_i  code,
JsonValue &  json 
)

Add or update the json update to reflect the error code.

Definition at line 233 of file ErrorCodes.h.

◆ inject_error() [2/3]

template<class JsonValue >
void ripple::RPC::inject_error ( int  code,
JsonValue &  json 
)

Definition at line 243 of file ErrorCodes.h.

◆ inject_error() [3/3]

template<class JsonValue >
void ripple::RPC::inject_error ( error_code_i  code,
std::string const &  message,
JsonValue &  json 
)

Definition at line 250 of file ErrorCodes.h.

◆ make_error() [1/2]

Json::Value ripple::RPC::make_error ( error_code_i  code)

Returns a new json object that reflects the error code.

Definition at line 191 of file ErrorCodes.cpp.

◆ make_error() [2/2]

Json::Value ripple::RPC::make_error ( error_code_i  code,
std::string const &  message 
)

Definition at line 199 of file ErrorCodes.cpp.

◆ make_param_error()

Json::Value ripple::RPC::make_param_error ( std::string const &  message)

Returns a new json object that indicates invalid parameters.

Definition at line 271 of file ErrorCodes.h.

◆ missing_field_message()

std::string ripple::RPC::missing_field_message ( std::string const &  name)

Definition at line 277 of file ErrorCodes.h.

◆ missing_field_error() [1/2]

Json::Value ripple::RPC::missing_field_error ( std::string const &  name)

Definition at line 283 of file ErrorCodes.h.

◆ missing_field_error() [2/2]

Json::Value ripple::RPC::missing_field_error ( Json::StaticString  name)

Definition at line 289 of file ErrorCodes.h.

◆ object_field_message()

std::string ripple::RPC::object_field_message ( std::string const &  name)

Definition at line 295 of file ErrorCodes.h.

◆ object_field_error() [1/2]

Json::Value ripple::RPC::object_field_error ( std::string const &  name)

Definition at line 301 of file ErrorCodes.h.

◆ object_field_error() [2/2]

Json::Value ripple::RPC::object_field_error ( Json::StaticString  name)

Definition at line 307 of file ErrorCodes.h.

◆ invalid_field_message() [1/2]

std::string ripple::RPC::invalid_field_message ( std::string const &  name)

Definition at line 313 of file ErrorCodes.h.

◆ invalid_field_message() [2/2]

std::string ripple::RPC::invalid_field_message ( Json::StaticString  name)

Definition at line 319 of file ErrorCodes.h.

◆ invalid_field_error() [1/2]

Json::Value ripple::RPC::invalid_field_error ( std::string const &  name)

Definition at line 325 of file ErrorCodes.h.

◆ invalid_field_error() [2/2]

Json::Value ripple::RPC::invalid_field_error ( Json::StaticString  name)

Definition at line 331 of file ErrorCodes.h.

◆ expected_field_message() [1/2]

std::string ripple::RPC::expected_field_message ( std::string const &  name,
std::string const &  type 
)

Definition at line 337 of file ErrorCodes.h.

◆ expected_field_message() [2/2]

std::string ripple::RPC::expected_field_message ( Json::StaticString  name,
std::string const &  type 
)

Definition at line 343 of file ErrorCodes.h.

◆ expected_field_error() [1/2]

Json::Value ripple::RPC::expected_field_error ( std::string const &  name,
std::string const &  type 
)

Definition at line 349 of file ErrorCodes.h.

◆ expected_field_error() [2/2]

Json::Value ripple::RPC::expected_field_error ( Json::StaticString  name,
std::string const &  type 
)

Definition at line 355 of file ErrorCodes.h.

◆ not_validator_error()

Json::Value ripple::RPC::not_validator_error ( )

Definition at line 361 of file ErrorCodes.h.

◆ contains_error()

bool ripple::RPC::contains_error ( Json::Value const &  json)

Returns true if the json contains an rpc error specification.

Definition at line 207 of file ErrorCodes.cpp.

◆ error_code_http_status()

int ripple::RPC::error_code_http_status ( error_code_i  code)

Returns http status that corresponds to the error code.

Definition at line 215 of file ErrorCodes.cpp.

◆ insertNFTSyntheticInJson()

void ripple::RPC::insertNFTSyntheticInJson ( Json::Value response,
std::shared_ptr< STTx const > const &  transaction,
TxMeta const &  transactionMeta 
)

Adds common synthetic fields to transaction-related JSON responses.

Definition at line 34 of file NFTSyntheticSerializer.cpp.

◆ BEAST_DEFINE_TESTSUITE() [1/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( AccountLines  ,
rpc  ,
ripple   
)

◆ BEAST_DEFINE_TESTSUITE() [2/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( JSONRPC  ,
rpc  ,
ripple   
)

◆ BEAST_DEFINE_TESTSUITE() [3/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( WalletPropose  ,
rpc  ,
ripple   
)

◆ BEAST_DEFINE_TESTSUITE() [4/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( LedgerRequestRPC  ,
rpc  ,
ripple   
)

◆ BEAST_DEFINE_TESTSUITE() [5/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( codeString  ,
rpc  ,
RPC   
)

◆ BEAST_DEFINE_TESTSUITE() [6/6]

ripple::RPC::BEAST_DEFINE_TESTSUITE ( fillJson  ,
rpc  ,
RPC   
)

◆ insertDeliverMax()

void ripple::RPC::insertDeliverMax ( Json::Value tx_json,
TxType  txnType,
unsigned int  apiVersion 
)

Copy Amount field to DeliverMax field in transaction output JSON.

This only applies to Payment transaction type, all others are ignored.

When apiVersion > 1 will also remove Amount field, forcing users to access this value using new DeliverMax field only.

Definition at line 28 of file DeliverMax.cpp.

◆ computeBookChanges()

template<class L >
Json::Value ripple::RPC::computeBookChanges ( std::shared_ptr< L const > const &  lpAccepted)

Definition at line 47 of file BookChanges.h.

◆ encodeCTID()

std::optional< std::string > ripple::RPC::encodeCTID ( uint32_t  ledgerSeq,
uint32_t  txnIndex,
uint32_t  networkID 
)
noexcept

Encodes ledger sequence, transaction index, and network ID into a CTID string.

Parameters
ledgerSeqLedger sequence number (max 0x0FFF'FFFF).
txnIndexTransaction index within the ledger (max 0xFFFF).
networkIDNetwork identifier (max 0xFFFF).
Returns
Optional CTID string in uppercase hexadecimal, or std::nullopt if inputs are out of range.

Definition at line 53 of file CTID.h.

◆ decodeCTID()

template<typename T >
std::optional< std::tuple< uint32_t, uint16_t, uint16_t > > ripple::RPC::decodeCTID ( T const  ctid)
noexcept

Decodes a CTID string or integer into its component parts.

Template Parameters
TType of the CTID input (string, string_view, char*, integral).
Parameters
ctidCTID value to decode.
Returns
Optional tuple of (ledgerSeq, txnIndex, networkID), or std::nullopt if invalid.

Definition at line 83 of file CTID.h.

◆ insertDeliveredAmount() [1/3]

void ripple::RPC::insertDeliveredAmount ( Json::Value meta,
ReadView const &  ledger,
std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta 
)

Add a delivered_amount field to the meta input/output parameter.

The field is only added to successful payment and check cash transactions. If a delivered amount field is available in the TxMeta parameter, that value is used. Otherwise, the transaction's Amount field is used. If neither is available, then the delivered amount is set to "unavailable".

Definition at line 104 of file DeliveredAmount.cpp.

◆ insertDeliveredAmount() [2/3]

void ripple::RPC::insertDeliveredAmount ( Json::Value meta,
RPC::JsonContext const &  context,
std::shared_ptr< Transaction > const &  transaction,
TxMeta const &  transactionMeta 
)

Definition at line 169 of file DeliveredAmount.cpp.

◆ insertDeliveredAmount() [3/3]

void ripple::RPC::insertDeliveredAmount ( Json::Value meta,
RPC::JsonContext const &  context,
std::shared_ptr< STTx const > const &  transaction,
TxMeta const &  transactionMeta 
)

Definition at line 180 of file DeliveredAmount.cpp.

◆ getDeliveredAmount() [1/3]

std::optional< STAmount > ripple::RPC::getDeliveredAmount ( RPC::Context const &  context,
std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta,
LedgerIndex const &  ledgerIndex 
)

Definition at line 156 of file DeliveredAmount.cpp.

◆ getDeliveredAmount() [2/3]

template<class GetLedgerIndex , class GetCloseTime >
std::optional< STAmount > ripple::RPC::getDeliveredAmount ( GetLedgerIndex const &  getLedgerIndex,
GetCloseTime const &  getCloseTime,
std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta 
)

Definition at line 44 of file DeliveredAmount.cpp.

◆ canHaveDeliveredAmount()

bool ripple::RPC::canHaveDeliveredAmount ( std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta 
)

Definition at line 84 of file DeliveredAmount.cpp.

◆ getDeliveredAmount() [3/3]

template<class GetLedgerIndex >
static std::optional< STAmount > ripple::RPC::getDeliveredAmount ( RPC::Context const &  context,
std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta,
GetLedgerIndex const &  getLedgerIndex 
)
static

Definition at line 135 of file DeliveredAmount.cpp.

◆ getHandler() [1/2]

Handler const * ripple::RPC::getHandler ( unsigned  version,
bool  betaEnabled,
std::string const &  name 
)

Definition at line 313 of file Handler.cpp.

◆ getHandlerNames()

std::set< char const * > ripple::RPC::getHandlerNames ( )

Return names of all methods.

Definition at line 319 of file Handler.cpp.

◆ getHandler() [2/2]

Handler const * ripple::RPC::getHandler ( unsigned int  version,
bool  betaEnabled,
std::string const &   
)

◆ makeObjectValue()

template<class Value >
Json::Value ripple::RPC::makeObjectValue ( Value const &  value,
Json::StaticString const &  field = jss::message 
)

Return a Json::objectValue with a single entry.

Definition at line 66 of file Handler.h.

◆ conditionMet()

template<class T >
error_code_i ripple::RPC::conditionMet ( Condition  condition_required,
T &  context 
)

Definition at line 81 of file Handler.h.

◆ canHaveMPTokenIssuanceID()

bool ripple::RPC::canHaveMPTokenIssuanceID ( std::shared_ptr< STTx const > const &  serializedTx,
TxMeta const &  transactionMeta 
)

Add a mpt_issuance_id field to the meta input/output parameter.

The field is only added to successful MPTokenIssuanceCreate transactions. The mpt_issuance_id is parsed from the sequence and the issuer in the MPTokenIssuance object.

Definition at line 27 of file MPTokenIssuanceID.cpp.

◆ getIDFromCreatedIssuance()

std::optional< uint192 > ripple::RPC::getIDFromCreatedIssuance ( TxMeta const &  transactionMeta)

Definition at line 46 of file MPTokenIssuanceID.cpp.

◆ insertMPTokenIssuanceID()

void ripple::RPC::insertMPTokenIssuanceID ( Json::Value response,
std::shared_ptr< STTx const > const &  transaction,
TxMeta const &  transactionMeta 
)

Definition at line 64 of file MPTokenIssuanceID.cpp.

◆ doCommand()

Status ripple::RPC::doCommand ( RPC::JsonContext context,
Json::Value result 
)

Execute an RPC command and store the results in a Json::Value.

Definition at line 222 of file RPCHandler.cpp.

◆ roleRequired()

Role ripple::RPC::roleRequired ( unsigned int  version,
bool  betaEnabled,
std::string const &  method 
)

Definition at line 261 of file RPCHandler.cpp.

◆ accountFromStringStrict()

std::optional< AccountID > ripple::RPC::accountFromStringStrict ( std::string const &  account)

Get an AccountID from an account ID or public key.

Definition at line 44 of file RPCHelpers.cpp.

◆ accountFromStringWithCode()

error_code_i ripple::RPC::accountFromStringWithCode ( AccountID result,
std::string const &  strIdent,
bool  bStrict = false 
)

Decode account ID from string.

Parameters
[out]resultaccount ID decoded from string
strIdentpublic key, account ID, or regular seed.
bStrictOnly allow account id or public key.
Returns
code representing error, or rpcSUCCES on success

Definition at line 60 of file RPCHelpers.cpp.

◆ accountFromString()

Json::Value ripple::RPC::accountFromString ( AccountID result,
std::string const &  strIdent,
bool  bStrict 
)

Definition at line 88 of file RPCHelpers.cpp.

◆ getStartHint()

std::uint64_t ripple::RPC::getStartHint ( std::shared_ptr< SLE const > const &  sle,
AccountID const &  accountID 
)

Gets the start hint for traversing account objects.

Parameters
sle- Ledger entry defined by the marker passed into the RPC.
accountID- The ID of the account whose objects you are traversing.

Definition at line 98 of file RPCHelpers.cpp.

◆ isRelatedToAccount()

bool ripple::RPC::isRelatedToAccount ( ReadView const &  ledger,
std::shared_ptr< SLE const > const &  sle,
AccountID const &  accountID 
)

Tests if a SLE is owned by accountID.

Parameters
ledger- The ledger used to search for the sle.
sle- The SLE to test for ownership.
account- The account being tested for SLE ownership.

Definition at line 115 of file RPCHelpers.cpp.

◆ getAccountObjects()

bool ripple::RPC::getAccountObjects ( ReadView const &  ledger,
AccountID const &  account,
std::optional< std::vector< LedgerEntryType > > const &  typeFilter,
uint256  dirIndex,
uint256  entryIndex,
std::uint32_t const  limit,
Json::Value jvResult 
)

Gathers all objects for an account in a ledger.

Parameters
ledgerLedger to search account objects.
accountAccountID to find objects for.
typeFilterGathers objects of these types. empty gathers all types.
dirIndexBegin gathering account objects from this directory.
entryIndexBegin gathering objects from this directory node.
limitMaximum number of objects to find.
jvResultA JSON result that holds the request objects.

Definition at line 153 of file RPCHelpers.cpp.

◆ ledgerFromRequest() [1/4]

template<class T , class R >
Status ripple::RPC::ledgerFromRequest ( T &  ledger,
GRPCContext< R > &  context 
)

Definition at line 411 of file RPCHelpers.cpp.

◆ ledgerFromRequest() [2/4]

template Status ripple::RPC::ledgerFromRequest ( std::shared_ptr< ReadView const > &  ,
GRPCContext< org::xrpl::rpc::v1::GetLedgerEntryRequest > &   
)

◆ ledgerFromRequest() [3/4]

template Status ripple::RPC::ledgerFromRequest ( std::shared_ptr< ReadView const > &  ,
GRPCContext< org::xrpl::rpc::v1::GetLedgerDataRequest > &   
)

◆ ledgerFromRequest() [4/4]

template Status ripple::RPC::ledgerFromRequest ( std::shared_ptr< ReadView const > &  ,
GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &   
)

◆ ledgerFromSpecifier()

template<class T >
Status ripple::RPC::ledgerFromSpecifier ( T &  ledger,
org::xrpl::rpc::v1::LedgerSpecifier const &  specifier,
Context context 
)

Definition at line 437 of file RPCHelpers.cpp.

◆ getLedger() [1/6]

template<class T >
Status ripple::RPC::getLedger ( T &  ledger,
uint256 const &  ledgerHash,
Context context 
)

Get ledger by hash If there is no error in the return value, the ledger pointer will have been filled.

Definition at line 491 of file RPCHelpers.cpp.

◆ getLedger() [2/6]

template<class T >
Status ripple::RPC::getLedger ( T &  ledger,
uint32_t  ledgerIndex,
Context context 
)

Get ledger by sequence If there is no error in the return value, the ledger pointer will have been filled.

Definition at line 501 of file RPCHelpers.cpp.

◆ getLedger() [3/6]

template<class T >
Status ripple::RPC::getLedger ( T &  ledger,
LedgerShortcut  shortcut,
Context context 
)

Get ledger specified in shortcut.

If there is no error in the return value, the ledger pointer will have been filled

Definition at line 530 of file RPCHelpers.cpp.

◆ getLedger() [4/6]

template Status ripple::RPC::getLedger ( std::shared_ptr< ReadView const > &  ,
uint32_t  ,
Context  
)

◆ getLedger() [5/6]

template Status ripple::RPC::getLedger ( std::shared_ptr< ReadView const > &  ,
LedgerShortcut  shortcut,
Context  
)

◆ getLedger() [6/6]

template Status ripple::RPC::getLedger ( std::shared_ptr< ReadView const > &  ,
uint256 const &  ,
Context  
)

◆ lookupLedger() [1/2]

Status ripple::RPC::lookupLedger ( std::shared_ptr< ReadView const > &  ,
JsonContext ,
Json::Value result 
)

Look up a ledger from a request and fill a Json::Result with the data representing a ledger.

If the returned Status is OK, the ledger pointer will have been filled.

Definition at line 625 of file RPCHelpers.cpp.

◆ lookupLedger() [2/2]

Json::Value ripple::RPC::lookupLedger ( std::shared_ptr< ReadView const > &  ,
JsonContext  
)

Look up a ledger from a request and fill a Json::Result with either an error, or data representing a ledger.

If there is no error in the return value, then the ledger pointer will have been filled.

Definition at line 650 of file RPCHelpers.cpp.

◆ parseAccountIds()

hash_set< AccountID > ripple::RPC::parseAccountIds ( Json::Value const &  jvArray)

Definition at line 660 of file RPCHelpers.cpp.

◆ injectSLE()

void ripple::RPC::injectSLE ( Json::Value jv,
SLE const &  sle 
)

Inject JSON describing ledger entry.

Effects: Adds the JSON description of sle to jv.

If sle holds an account root, also adds the urlgravatar field JSON if sfEmailHash is present.

Definition at line 676 of file RPCHelpers.cpp.

◆ readLimitField()

std::optional< Json::Value > ripple::RPC::readLimitField ( unsigned int &  limit,
Tuning::LimitRange const &  ,
JsonContext const &   
)

Retrieve the limit value from a JsonContext, or set a default - then restrict the limit by max and min if not an ADMIN request.

If there is an error, return it as JSON.

Definition at line 701 of file RPCHelpers.cpp.

◆ parseRippleLibSeed()

std::optional< Seed > ripple::RPC::parseRippleLibSeed ( Json::Value const &  value)

Definition at line 726 of file RPCHelpers.cpp.

◆ getSeedFromRPC()

std::optional< Seed > ripple::RPC::getSeedFromRPC ( Json::Value const &  params,
Json::Value error 
)

Definition at line 745 of file RPCHelpers.cpp.

◆ keypairForSignature()

std::optional< std::pair< PublicKey, SecretKey > > ripple::RPC::keypairForSignature ( Json::Value const &  params,
Json::Value error,
unsigned int  apiVersion 
)

Definition at line 804 of file RPCHelpers.cpp.

◆ chooseLedgerEntryType()

std::pair< RPC::Status, LedgerEntryType > ripple::RPC::chooseLedgerEntryType ( Json::Value const &  params)

Definition at line 940 of file RPCHelpers.cpp.

◆ isAccountObjectsValidType()

bool ripple::RPC::isAccountObjectsValidType ( LedgerEntryType const &  type)

Check if the type is a valid filtering type for account_objects method.

Since Amendments, DirectoryNode, FeeSettings, LedgerHashes can not be owned by an account, this function will return false in these situations.

Definition at line 995 of file RPCHelpers.cpp.

◆ getLedgerByContext()

std::variant< std::shared_ptr< Ledger const >, Json::Value > ripple::RPC::getLedgerByContext ( RPC::JsonContext context)

Return a ledger based on ledger_hash or ledger_index, or an RPC error.

Definition at line 1011 of file RPCHelpers.cpp.

◆ isHexTxID()

bool ripple::RPC::isHexTxID ( std::string const &  txid)

◆ getTxFee()

static XRPAmount ripple::RPC::getTxFee ( Application const &  app,
Config const &  config,
Json::Value  tx 
)
static

Definition at line 814 of file TransactionSign.cpp.

◆ getCurrentNetworkFee()

Json::Value ripple::RPC::getCurrentNetworkFee ( Role const  role,
Config const &  config,
LoadFeeTrack const &  feeTrack,
TxQ const &  txQ,
Application const &  app,
Json::Value const &  tx,
int  mult,
int  div 
)

Definition at line 888 of file TransactionSign.cpp.

◆ checkFee()

Json::Value ripple::RPC::checkFee ( Json::Value request,
Role const  role,
bool  doAutoFill,
Config const &  config,
LoadFeeTrack const &  feeTrack,
TxQ const &  txQ,
Application const &  app 
)

Fill in the fee on behalf of the client.

This is called when the client does not explicitly specify the fee. The client may also put a ceiling on the amount of the fee. This ceiling is expressed as a multiplier based on the current ledger's fee schedule.

JSON fields

"Fee" The fee paid by the transaction. Omitted when the client wants the fee filled in.

"fee_mult_max" A multiplier applied to the current ledger's transaction fee that caps the maximum fee the server should auto fill. If this optional field is not specified, then a default multiplier is used. "fee_div_max" A divider applied to the current ledger's transaction fee that caps the maximum fee the server should auto fill. If this optional field is not specified, then a default divider (1) is used. "fee_mult_max" and "fee_div_max" are both used such that the maximum fee will be base * fee_mult_max / fee_div_max as an integer.

Parameters
txThe JSON corresponding to the transaction to fill in.
ledgerA ledger for retrieving the current fee schedule.
rollIdentifies if this is called by an administrative endpoint.
Returns
A JSON object containing the error results, if any

Definition at line 929 of file TransactionSign.cpp.

◆ transactionSign()

Json::Value ripple::RPC::transactionSign ( Json::Value  jvRequest,
unsigned  apiVersion,
NetworkOPs::FailHard  failType,
Role  role,
std::chrono::seconds  validatedLedgerAge,
Application app 
)

Returns a Json::objectValue.

Definition at line 998 of file TransactionSign.cpp.

◆ transactionSubmit()

Json::Value ripple::RPC::transactionSubmit ( Json::Value  jvRequest,
unsigned  apiVersion,
NetworkOPs::FailHard  failType,
Role  role,
std::chrono::seconds  validatedLedgerAge,
Application app,
ProcessTransactionFn const &  processTransaction 
)

Returns a Json::objectValue.

Definition at line 1032 of file TransactionSign.cpp.

◆ transactionSignFor()

Json::Value ripple::RPC::transactionSignFor ( Json::Value  jvRequest,
unsigned  apiVersion,
NetworkOPs::FailHard  failType,
Role  role,
std::chrono::seconds  validatedLedgerAge,
Application app 
)

Returns a Json::objectValue.

Definition at line 1162 of file TransactionSign.cpp.

◆ transactionSubmitMultiSigned()

Json::Value ripple::RPC::transactionSubmitMultiSigned ( Json::Value  jvRequest,
unsigned  apiVersion,
NetworkOPs::FailHard  failType,
Role  role,
std::chrono::seconds  validatedLedgerAge,
Application app,
ProcessTransactionFn const &  processTransaction 
)

Returns a Json::objectValue.

Definition at line 1278 of file TransactionSign.cpp.

◆ getProcessTxnFn()

ProcessTransactionFn ripple::RPC::getProcessTxnFn ( NetworkOPs netOPs)

Definition at line 94 of file TransactionSign.h.

◆ stringOutput()

Output ripple::RPC::stringOutput ( std::string s)

Definition at line 31 of file src/xrpld/rpc/Output.h.

Variable Documentation

◆ apiVersion

template<unsigned int Version>
constexpr std::integral_constant<unsigned, Version> ripple::RPC::apiVersion = {}
staticconstexpr

Definition at line 58 of file ApiVersion.h.

◆ apiInvalidVersion

constexpr auto ripple::RPC::apiInvalidVersion = apiVersion<0>
staticconstexpr

Definition at line 60 of file ApiVersion.h.

◆ apiMinimumSupportedVersion

constexpr auto ripple::RPC::apiMinimumSupportedVersion = apiVersion<1>
staticconstexpr

Definition at line 61 of file ApiVersion.h.

◆ apiMaximumSupportedVersion

constexpr auto ripple::RPC::apiMaximumSupportedVersion = apiVersion<2>
staticconstexpr

Definition at line 62 of file ApiVersion.h.

◆ apiVersionIfUnspecified

constexpr auto ripple::RPC::apiVersionIfUnspecified = apiVersion<1>
staticconstexpr

Definition at line 63 of file ApiVersion.h.

◆ apiCommandLineVersion

constexpr auto ripple::RPC::apiCommandLineVersion
staticconstexpr
Initial value:
=
apiVersion<1>

Definition at line 64 of file ApiVersion.h.

◆ apiBetaVersion

constexpr auto ripple::RPC::apiBetaVersion = apiVersion<3>
staticconstexpr

Definition at line 66 of file ApiVersion.h.

◆ apiMaximumValidVersion

constexpr auto ripple::RPC::apiMaximumValidVersion = apiBetaVersion
staticconstexpr

Definition at line 67 of file ApiVersion.h.

◆ txnTestArray

constexpr TxnTestData ripple::RPC::txnTestArray[]
staticconstexpr

Definition at line 71 of file JSONRPC_test.cpp.

◆ secp256k1_strings

key_strings const ripple::RPC::secp256k1_strings
static
Initial value:
= {
"r4Vtj2jrfmTVZGfSP3gH9hQPMqFPQFin8f",
common::master_key,
common::master_seed,
common::master_seed_hex,
"aBQxK2YFNqzmAaXNczYcjqDjfiKkLsJUizsr1UBf44RCF8FHdrmX",
"038AAE247B2344B1837FBED8F57389C8C11774510A3F7D784F2A09F0CB6843236C",
"1949ECD889EA71324BC7A30C8E81F4E93CB73EE19D59E9082111E78CC3DDABC2",
common::passphrase,
"This wallet was generated using a user-supplied "
"passphrase that has low entropy and is vulnerable "
"to brute-force attacks.",
}

Definition at line 55 of file KeyGeneration_test.cpp.

◆ ed25519_strings

key_strings const ripple::RPC::ed25519_strings
static
Initial value:
= {
"r4qV6xTXerqaZav3MJfSY79ynmc1BSBev1",
common::master_key,
common::master_seed,
common::master_seed_hex,
"aKEQmgLMyZPMruJFejUuedp169LgW6DbJt1rej1DJ5hWUMH4pHJ7",
"ED54C3F5BEDA8BD588B203D23A27398FAD9D20F88A974007D6994659CD7273FE1D",
"77AAED2698D56D6676323629160F4EEF21CFD9EE3D0745CC78FA291461F98278",
common::passphrase,
"This wallet was generated using a user-supplied "
"passphrase that has low entropy and is vulnerable "
"to brute-force attacks.",
}

Definition at line 69 of file KeyGeneration_test.cpp.

◆ strong_brain_strings

key_strings const ripple::RPC::strong_brain_strings
static
Initial value:
= {
"rBcvXmNb7KPkNdMkpckdWPpbvkWgcV3nir",
"TED AVON CAVE HOUR BRAG JEFF RIFT NEAL TOLD FAT SEW SAN",
"shKdhWka8hS7Es3bpctCZXBiAwfUN",
"74BA8389B44F98CF41E795CD91F9C93F",
"aBRL2sqVuzrsM6zikPB4v8UBHGn1aKkrsxhYEffhcQxB2LKyywE5",
"03BD334FB9E06C58D69603E9922686528B18A754BC2F2E1ADA095FFE67DE952C64",
"84262FB16AA25BE407174C7EDAB531220C30FA4D8A28AA9D564673FB3D34502C",
"A4yKIRGdzrw0YQ$2%TFKYG9HP*&ok^!sy7E@RwICs",
"This wallet was generated using a user-supplied "
"passphrase. It may be vulnerable to brute-force "
"attacks.",
}

Definition at line 83 of file KeyGeneration_test.cpp.