xrpld
Loading...
Searching...
No Matches
xrpl::test::jtx::Env Class Reference

A transaction testing environment. More...

#include <Env.h>

Collaboration diagram for xrpl::test::jtx::Env:

Classes

struct  ParsedResult
 Used by parseResult() and postConditions(). More...
struct  AppBundle
class  ParseFailureGuard
 RAII class to set and restore the parse failure flag (setParseFailureExpected). More...

Public Member Functions

 Env ()=delete
Envoperator= (Env const &)=delete
 Env (Env const &)=delete
 Env (beast::unit_test::Suite &suite, std::unique_ptr< Config > config, FeatureBitset features, std::unique_ptr< Logs > logs=nullptr, beast::Severity thresh=beast::Severity::Error)
 Create Env using suite, Config pointer, and explicit features.
 Env (beast::unit_test::Suite &suite, FeatureBitset features, std::unique_ptr< Logs > logs=nullptr)
 Create Env with default config and specified features.
 Env (beast::unit_test::Suite &suite, std::unique_ptr< Config > config, std::unique_ptr< Logs > logs=nullptr, beast::Severity thresh=beast::Severity::Error)
 Create Env using suite and Config pointer.
 Env (beast::unit_test::Suite &suite, beast::Severity thresh=beast::Severity::Error)
 Create Env with only the current test suite.
virtual ~Env ()=default
Applicationapp ()
Application const & app () const
ManualTimeKeepertimeKeeper ()
NetClock::time_point now ()
 Returns the current network time.
AbstractClientclient ()
 Returns the connected client.
template<class... Args>
json::Value rpc (unsigned apiVersion, std::unordered_map< std::string, std::string > const &headers, std::string const &cmd, Args &&... args)
 Execute an RPC command.
template<class... Args>
json::Value rpc (unsigned apiVersion, std::string const &cmd, Args &&... args)
template<class... Args>
json::Value rpc (std::unordered_map< std::string, std::string > const &headers, std::string const &cmd, Args &&... args)
template<class... Args>
json::Value rpc (std::string const &cmd, Args &&... args)
std::shared_ptr< OpenView const > current () const
 Returns the current ledger.
std::shared_ptr< ReadView const > closed ()
 Returns the last closed ledger.
bool close (NetClock::time_point closeTime, std::optional< std::chrono::milliseconds > consensusDelay=std::nullopt)
 Close and advance the ledger.
template<class Rep, class Period>
bool close (std::chrono::duration< Rep, Period > const &elapsed)
 Close and advance the ledger.
bool close ()
 Close and advance the ledger.
bool syncClose (std::chrono::steady_clock::duration timeout=std::chrono::seconds{1})
 Close and advance the ledger, then synchronize with the server's io_context to ensure all async operations initiated by the close have been started.
bool disconnectClient (std::chrono::steady_clock::duration timeout=std::chrono::seconds{1})
 Disconnect the Env's built-in client and wait for the server to register the dropped connection.
void trace (int howMany=-1)
 Turn on JSON tracing.
void notrace ()
 Turn off JSON tracing.
void setParseFailureExpected (bool b)
ParseFailureGuard getParseFailureGuard (bool b)
 Gets an RAII guard to set and restore the parse failure flag.
void disableSigs ()
 Turn off signature checks.
void setRetries (unsigned r=5)
unsigned retries () const
void memoize (Account const &account)
 Associate AccountID with account.
PrettyAmount balance (Account const &account) const
 Returns the XRP balance on an account.
std::uint32_t seq (Account const &account) const
 Returns the next sequence number on account.
PrettyAmount balance (Account const &account, Asset const &asset) const
 Return the balance on an account.
PrettyAmount limit (Account const &account, Issue const &issue) const
 Returns the IOU limit on an account.
std::uint32_t ownerCount (Account const &account) const
 Return the number of objects owned by an account.
std::uint32_t sponsoredOwnerCount (Account const &account) const
 Return the number of sponsored objects owned by an account.
std::uint32_t sponsoringOwnerCount (Account const &account) const
 Return the number of sponsoring objects owned by an account.
std::uint32_t sponsoringAccountCount (Account const &account) const
 Return the number of sponsoring accounts owned by an account.
SLE::const_pointer le (Account const &account) const
 Return an account root.
SLE::const_pointer le (Keylet const &k) const
 Return a ledger entry.
template<class JsonValue, class... FN>
JTx jt (JsonValue &&jv, FN const &... fN)
 Create a JTx from parameters.
template<class JsonValue, class... FN>
JTx jtnofill (JsonValue &&jv, FN const &... fN)
 Create a JTx from parameters.
template<class JsonValue, class... FN>
json::Value json (JsonValue &&jv, FN const &... fN)
 Create JSON from parameters.
template<class... Args>
void require (Args const &... args)
 Check a set of requirements.
virtual void submit (JTx const &jt, std::source_location const &loc=std::source_location::current())
 Submit an existing JTx.
void signAndSubmit (JTx const &jt, json::Value params=json::ValueType::Null, std::source_location const &loc=std::source_location::current())
 Use the submit RPC command with a provided JTx object.
void postconditions (JTx const &jt, ParsedResult const &parsed, json::Value const &jr=json::Value(), std::source_location const &loc=std::source_location::current())
 Check expected postconditions of JTx submission.
TER ter () const
 Return the TER for the last JTx.
std::shared_ptr< STObject const > meta ()
 Return metadata for the last JTx.
std::shared_ptr< STTx const > tx () const
 Return the tx data for the last JTx.
void enableFeature (uint256 const feature)
void disableFeature (uint256 const feature)
bool enabled (uint256 feature) const
template<class Arg, class... Args>
void fund (STAmount const &amount, Arg const &arg, Args const &... args)
 Create a new account with some XRP.
std::shared_ptr< STTx const > ust (JTx const &jt)
 Create a STTx from a JTx without sanitizing Use to inject bogus values into test transactions by first editing the JSON.
Account const & lookup (AccountID const &id) const
 Returns the Account given the AccountID.
Account const & lookup (std::string const &base58ID) const
template<class... FN>
Envapply (WithSourceLocation< json::Value > jv, FN const &... fN)
 Apply funclets and submit.
template<class... FN>
Envapply (WithSourceLocation< JTx > jv, FN const &... fN)
template<class... FN>
Envoperator() (WithSourceLocation< json::Value > jv, FN const &... fN)
template<class... FN>
Envoperator() (WithSourceLocation< JTx > jv, FN const &... fN)
void trust (STAmount const &amount, Account const &account)
 Establish trust lines.
template<class... Accounts>
void trust (STAmount const &amount, Account const &to0, Account const &to1, Accounts const &... toN)

Static Public Member Functions

static ParsedResult parseResult (json::Value const &jr)
 Gets the TER result and didApply flag from a RPC Json result object.

Public Attributes

beast::unit_test::Suitetest
Account const & master = Account::kMaster
beast::Journal const journal

Protected Member Functions

json::Value doRpc (unsigned apiVersion, std::vector< std::string > const &args, std::unordered_map< std::string, std::string > const &headers={})
void autofillSig (JTx &jt)
virtual void autofill (JTx &jt)
std::shared_ptr< STTx const > st (JTx const &jt)
 Create a STTx from a JTx The framework requires that JSON is valid.
template<class... FN>
void invoke (STTx &stx, FN const &... fN)
template<class... FN>
void invoke (JTx &jt, FN const &... fN)

Protected Attributes

int trace_ = 0
TestStopwatch stopwatch_
uint256 txid_
TER ter_ = tesSUCCESS
bool parseFailureExpected_ = false
unsigned retries_ = 5
std::unordered_map< AccountID, Accountmap_

Private Member Functions

bool drainServerIo (std::chrono::steady_clock::duration timeout)
 Drain the (single) server io_context thread once.
void fund (bool setDefaultRipple, STAmount const &amount, Account const &account)
void fundArg (STAmount const &amount, Account const &account)
template<std::size_t N>
void fundArg (STAmount const &amount, std::array< Account, N > const &list)

Private Attributes

AppBundle bundle_

Detailed Description

A transaction testing environment.

Definition at line 160 of file Env.h.

Constructor & Destructor Documentation

◆ Env() [1/6]

xrpl::test::jtx::Env::Env ( )
delete

◆ Env() [2/6]

xrpl::test::jtx::Env::Env ( Env const & )
delete

◆ Env() [3/6]

xrpl::test::jtx::Env::Env ( beast::unit_test::Suite & suite,
std::unique_ptr< Config > config,
FeatureBitset features,
std::unique_ptr< Logs > logs = nullptr,
beast::Severity thresh = beast::Severity::Error )

Create Env using suite, Config pointer, and explicit features.

This constructor will create an Env with the specified configuration and takes ownership the passed Config pointer. Features will be enabled according to rules described below (see next constructor).

Parameters
suitethe current unit_test::suite
configThe desired Config - ownership will be taken by moving the pointer. See envconfig and related functions for common config tweaks.
argswith_only_features() to explicitly enable or supported_features_except() to enable all and disable specific features.

Definition at line 226 of file Env.h.

◆ Env() [4/6]

xrpl::test::jtx::Env::Env ( beast::unit_test::Suite & suite,
FeatureBitset features,
std::unique_ptr< Logs > logs = nullptr )

Create Env with default config and specified features.

This constructor will create an Env with the standard Env configuration (from envconfig()) and features explicitly specified. Use with_only_features(...) or supported_features_except(...) to create a collection of features appropriate for passing here.

Parameters
suitethe current unit_test::suite
argscollection of features

Definition at line 255 of file Env.h.

◆ Env() [5/6]

xrpl::test::jtx::Env::Env ( beast::unit_test::Suite & suite,
std::unique_ptr< Config > config,
std::unique_ptr< Logs > logs = nullptr,
beast::Severity thresh = beast::Severity::Error )

Create Env using suite and Config pointer.

This constructor will create an Env with the specified configuration and takes ownership the passed Config pointer. All supported amendments are enabled by this version of the constructor.

Parameters
suitethe current unit_test::suite
configThe desired Config - ownership will be taken by moving the pointer. See envconfig and related functions for common config tweaks.

Definition at line 274 of file Env.h.

◆ Env() [6/6]

xrpl::test::jtx::Env::Env ( beast::unit_test::Suite & suite,
beast::Severity thresh = beast::Severity::Error )

Create Env with only the current test suite.

This constructor will create an Env with the standard test Env configuration (from envconfig()) and all supported amendments enabled.

Parameters
suitethe current unit_test::suite

Definition at line 291 of file Env.h.

◆ ~Env()

virtual xrpl::test::jtx::Env::~Env ( )
virtualdefault

Member Function Documentation

◆ operator=()

Env & xrpl::test::jtx::Env::operator= ( Env const & )
delete

◆ app() [1/2]

Application & xrpl::test::jtx::Env::app ( )

Definition at line 300 of file Env.h.

◆ app() [2/2]

Application const & xrpl::test::jtx::Env::app ( ) const
nodiscard

Definition at line 306 of file Env.h.

◆ timeKeeper()

ManualTimeKeeper & xrpl::test::jtx::Env::timeKeeper ( )

Definition at line 313 of file Env.h.

◆ now()

NetClock::time_point xrpl::test::jtx::Env::now ( )

Returns the current network time.

Note
This is manually advanced when ledgers close or by callers.

Definition at line 326 of file Env.h.

◆ client()

AbstractClient & xrpl::test::jtx::Env::client ( )

Returns the connected client.

Definition at line 336 of file Env.h.

◆ rpc() [1/4]

template<class... Args>
json::Value xrpl::test::jtx::Env::rpc ( unsigned apiVersion,
std::unordered_map< std::string, std::string > const & headers,
std::string const & cmd,
Args &&... args )

Execute an RPC command.

The command is examined and used to build the correct JSON as per the arguments.

Definition at line 1056 of file Env.h.

◆ rpc() [2/4]

template<class... Args>
json::Value xrpl::test::jtx::Env::rpc ( unsigned apiVersion,
std::string const & cmd,
Args &&... args )

Definition at line 1067 of file Env.h.

◆ rpc() [3/4]

template<class... Args>
json::Value xrpl::test::jtx::Env::rpc ( std::unordered_map< std::string, std::string > const & headers,
std::string const & cmd,
Args &&... args )

Definition at line 1078 of file Env.h.

◆ rpc() [4/4]

template<class... Args>
json::Value xrpl::test::jtx::Env::rpc ( std::string const & cmd,
Args &&... args )

Definition at line 1091 of file Env.h.

◆ current()

std::shared_ptr< OpenView const > xrpl::test::jtx::Env::current ( ) const
nodiscard

Returns the current ledger.

This is a non-modifiable snapshot of the open ledger at the moment of the call. Transactions applied after the call to open() will not be visible.

Definition at line 377 of file Env.h.

◆ closed()

std::shared_ptr< ReadView const > xrpl::test::jtx::Env::closed ( )

Returns the last closed ledger.

The open ledger is built on top of the last closed ledger. When the open ledger is closed, it becomes the new closed ledger and a new open ledger takes its place.

Definition at line 127 of file Env.cpp.

◆ close() [1/3]

bool xrpl::test::jtx::Env::close ( NetClock::time_point closeTime,
std::optional< std::chrono::milliseconds > consensusDelay = std::nullopt )

Close and advance the ledger.

The resulting close time will be different and greater than the previous close time, and at or after the passed-in close time.

Effects:

Creates a new closed ledger from the last
closed ledger.

All transactions that made it into the open
ledger are applied to the closed ledger.

The Application network time is set to
the close time of the resulting ledger.
Returns
true if no error, false if error

Definition at line 133 of file Env.cpp.

◆ close() [2/3]

template<class Rep, class Period>
bool xrpl::test::jtx::Env::close ( std::chrono::duration< Rep, Period > const & elapsed)

Close and advance the ledger.

The time is calculated as the duration from the previous ledger closing time.

Returns
true if no error, false if error

Definition at line 428 of file Env.h.

◆ close() [3/3]

bool xrpl::test::jtx::Env::close ( )

Close and advance the ledger.

The time is calculated as five seconds from the previous ledger closing time.

Returns
true if no error, false if error

Definition at line 443 of file Env.h.

◆ syncClose()

bool xrpl::test::jtx::Env::syncClose ( std::chrono::steady_clock::duration timeout = std::chrono::seconds{1})
nodiscard

Close and advance the ledger, then synchronize with the server's io_context to ensure all async operations initiated by the close have been started.

This function performs the same ledger close as close(), but additionally ensures that all tasks posted to the server's io_context (such as WebSocket subscription message sends) have been initiated before returning.

What it guarantees:

  • All async operations posted before syncClose() have been STARTED
  • For WebSocket sends: async_write_some() has been called
  • The actual I/O completion may still be pending (async)

What it does NOT guarantee:

  • Async operations have COMPLETED
  • WebSocket messages have been received by clients
  • However, for localhost connections, the remaining latency is typically microseconds, making tests reliable

Use this instead of close() when:

  • Test code immediately checks for subscription messages
  • Race conditions between test and worker threads must be avoided
  • Deterministic test behavior is required
Parameters
timeoutMaximum time to wait for the barrier task to execute
Returns
true if close succeeded and barrier executed within timeout, false otherwise

Definition at line 479 of file Env.h.

◆ disconnectClient()

bool xrpl::test::jtx::Env::disconnectClient ( std::chrono::steady_clock::duration timeout = std::chrono::seconds{1})
nodiscard

Disconnect the Env's built-in client and wait for the server to register the dropped connection.

Env holds one persistent client connection to the server's RPC port for its whole lifetime (see client()), and that connection counts against the port's connection limit. Tests that need a known starting occupancy can call this to deterministically release that slot instead of waiting out the server's localhost idle timeout.

The server decrements its per-port connection count in the peer's destructor, which runs when the io_context processes the end-of-stream on the closed socket. After closing the client this drains the server's io_context twice: the first barrier guarantees the reactor has reaped the closed socket and queued the peer's teardown, and the second guarantees that teardown (and therefore the count decrement) has run.

This is only sound when the server uses a single io_context thread, so that draining establishes ordering against the teardown - configure the Env with singleThreadIo() (as syncClose() also requires). Like syncClose(), it relies on loopback teardown latency being negligible.

Parameters
timeoutMaximum time to wait for each barrier task to execute
Returns
true if both barriers executed within timeout, false otherwise

Definition at line 514 of file Env.h.

◆ trace()

void xrpl::test::jtx::Env::trace ( int howMany = -1)

Turn on JSON tracing.

With no arguments, trace all

Definition at line 538 of file Env.h.

◆ notrace()

void xrpl::test::jtx::Env::notrace ( )

Turn off JSON tracing.

Definition at line 547 of file Env.h.

◆ setParseFailureExpected()

void xrpl::test::jtx::Env::setParseFailureExpected ( bool b)

Definition at line 553 of file Env.h.

◆ getParseFailureGuard()

ParseFailureGuard xrpl::test::jtx::Env::getParseFailureGuard ( bool b)
nodiscard

Gets an RAII guard to set and restore the parse failure flag.

Usage: auto const guard = env.getParseFailureGuard(true/false);

Definition at line 596 of file Env.h.

◆ disableSigs()

void xrpl::test::jtx::Env::disableSigs ( )

Turn off signature checks.

Definition at line 605 of file Env.h.

◆ setRetries()

void xrpl::test::jtx::Env::setRetries ( unsigned r = 5)

Definition at line 612 of file Env.h.

◆ retries()

unsigned xrpl::test::jtx::Env::retries ( ) const
nodiscard

Definition at line 619 of file Env.h.

◆ memoize()

void xrpl::test::jtx::Env::memoize ( Account const & account)

Associate AccountID with account.

Definition at line 174 of file Env.cpp.

◆ lookup() [1/2]

Account const & xrpl::test::jtx::Env::lookup ( AccountID const & id) const
nodiscard

Returns the Account given the AccountID.

Definition at line 180 of file Env.cpp.

◆ lookup() [2/2]

Account const & xrpl::test::jtx::Env::lookup ( std::string const & base58ID) const
nodiscard

Definition at line 192 of file Env.cpp.

◆ balance() [1/2]

PrettyAmount xrpl::test::jtx::Env::balance ( Account const & account) const
nodiscard

Returns the XRP balance on an account.

Returns 0 if the account does not exist.

Definition at line 201 of file Env.cpp.

◆ seq()

std::uint32_t xrpl::test::jtx::Env::seq ( Account const & account) const
nodiscard

Returns the next sequence number on account.

Exceptions
ifthe account does not exist

Definition at line 302 of file Env.cpp.

◆ balance() [2/2]

PrettyAmount xrpl::test::jtx::Env::balance ( Account const & account,
Asset const & asset ) const
nodiscard

Return the balance on an account.

Returns 0 if the trust line does not exist.

Definition at line 210 of file Env.cpp.

◆ limit()

PrettyAmount xrpl::test::jtx::Env::limit ( Account const & account,
Issue const & issue ) const
nodiscard

Returns the IOU limit on an account.

Returns 0 if the trust line does not exist.

Definition at line 254 of file Env.cpp.

◆ ownerCount()

std::uint32_t xrpl::test::jtx::Env::ownerCount ( Account const & account) const
nodiscard

Return the number of objects owned by an account.

Returns 0 if the account does not exist.

Definition at line 266 of file Env.cpp.

◆ sponsoredOwnerCount()

std::uint32_t xrpl::test::jtx::Env::sponsoredOwnerCount ( Account const & account) const
nodiscard

Return the number of sponsored objects owned by an account.

Exceptions
ifthe account does not exist.

Definition at line 275 of file Env.cpp.

◆ sponsoringOwnerCount()

std::uint32_t xrpl::test::jtx::Env::sponsoringOwnerCount ( Account const & account) const
nodiscard

Return the number of sponsoring objects owned by an account.

Exceptions
ifthe account does not exist.

Definition at line 284 of file Env.cpp.

◆ sponsoringAccountCount()

std::uint32_t xrpl::test::jtx::Env::sponsoringAccountCount ( Account const & account) const
nodiscard

Return the number of sponsoring accounts owned by an account.

Exceptions
ifthe account does not exist.

Definition at line 293 of file Env.cpp.

◆ le() [1/2]

SLE::const_pointer xrpl::test::jtx::Env::le ( Account const & account) const
nodiscard

Return an account root.

Returns
empty if the account does not exist.

Definition at line 311 of file Env.cpp.

◆ le() [2/2]

SLE::const_pointer xrpl::test::jtx::Env::le ( Keylet const & k) const
nodiscard

Return a ledger entry.

Returns
empty if the ledger entry does not exist

Definition at line 317 of file Env.cpp.

◆ jt()

template<class JsonValue, class... FN>
JTx xrpl::test::jtx::Env::jt ( JsonValue && jv,
FN const &... fN )

Create a JTx from parameters.

Definition at line 721 of file Env.h.

◆ jtnofill()

template<class JsonValue, class... FN>
JTx xrpl::test::jtx::Env::jtnofill ( JsonValue && jv,
FN const &... fN )

Create a JTx from parameters.

Definition at line 735 of file Env.h.

◆ json()

template<class JsonValue, class... FN>
json::Value xrpl::test::jtx::Env::json ( JsonValue && jv,
FN const &... fN )

Create JSON from parameters.

This will apply funclets and autofill.

Definition at line 750 of file Env.h.

◆ require()

template<class... Args>
void xrpl::test::jtx::Env::require ( Args const &... args)

Check a set of requirements.

The requirements are formed from condition functors.

Definition at line 764 of file Env.h.

◆ parseResult()

Env::ParsedResult xrpl::test::jtx::Env::parseResult ( json::Value const & jr)
static

Gets the TER result and didApply flag from a RPC Json result object.

Definition at line 373 of file Env.cpp.

◆ submit()

void xrpl::test::jtx::Env::submit ( JTx const & jt,
std::source_location const & loc = std::source_location::current() )
virtual

Submit an existing JTx.

This calls postconditions.

Definition at line 414 of file Env.cpp.

◆ signAndSubmit()

void xrpl::test::jtx::Env::signAndSubmit ( JTx const & jt,
json::Value params = json::ValueType::Null,
std::source_location const & loc = std::source_location::current() )

Use the submit RPC command with a provided JTx object.

This calls postconditions.

Definition at line 442 of file Env.cpp.

◆ postconditions()

void xrpl::test::jtx::Env::postconditions ( JTx const & jt,
ParsedResult const & parsed,
json::Value const & jr = json::Value(),
std::source_location const & loc = std::source_location::current() )

Check expected postconditions of JTx submission.

Definition at line 480 of file Env.cpp.

◆ apply() [1/2]

template<class... FN>
Env & xrpl::test::jtx::Env::apply ( WithSourceLocation< json::Value > jv,
FN const &... fN )

Apply funclets and submit.

Definition at line 809 of file Env.h.

◆ apply() [2/2]

template<class... FN>
Env & xrpl::test::jtx::Env::apply ( WithSourceLocation< JTx > jv,
FN const &... fN )

Definition at line 817 of file Env.h.

◆ operator()() [1/2]

template<class... FN>
Env & xrpl::test::jtx::Env::operator() ( WithSourceLocation< json::Value > jv,
FN const &... fN )

Definition at line 825 of file Env.h.

◆ operator()() [2/2]

template<class... FN>
Env & xrpl::test::jtx::Env::operator() ( WithSourceLocation< JTx > jv,
FN const &... fN )

Definition at line 832 of file Env.h.

◆ ter()

TER xrpl::test::jtx::Env::ter ( ) const
nodiscard

Return the TER for the last JTx.

Definition at line 842 of file Env.h.

◆ meta()

std::shared_ptr< STObject const > xrpl::test::jtx::Env::meta ( )

Return metadata for the last JTx.

NOTE: this has a side effect of closing the open ledger. The ledger will only be closed if it includes transactions.

Effects:

The open ledger is closed as if by a call
to close(). The metadata for the last
transaction ID, if any, is returned.

Definition at line 538 of file Env.cpp.

◆ tx()

std::shared_ptr< STTx const > xrpl::test::jtx::Env::tx ( ) const
nodiscard

Return the tx data for the last JTx.

Effects:

The tx data for the last transaction
ID, if any, is returned. No side
effects.
Note
Only necessary for JTx submitted with via sign-and-submit method.

Definition at line 560 of file Env.cpp.

◆ enableFeature()

void xrpl::test::jtx::Env::enableFeature ( uint256 const feature)

Definition at line 709 of file Env.cpp.

◆ disableFeature()

void xrpl::test::jtx::Env::disableFeature ( uint256 const feature)

Definition at line 717 of file Env.cpp.

◆ enabled()

bool xrpl::test::jtx::Env::enabled ( uint256 feature) const
nodiscard

Definition at line 884 of file Env.h.

◆ drainServerIo()

bool xrpl::test::jtx::Env::drainServerIo ( std::chrono::steady_clock::duration timeout)
nodiscardprivate

Drain the (single) server io_context thread once.

Posts a barrier task to the server's io_context and blocks until it runs, so every task queued before it has been processed. Only meaningful with a single io thread (see syncClose()/disconnectClient()).

Parameters
timeoutMaximum time to wait for the barrier task to execute
Returns
true if the barrier ran within timeout, false otherwise

Definition at line 901 of file Env.h.

◆ fund() [1/2]

void xrpl::test::jtx::Env::fund ( bool setDefaultRipple,
STAmount const & amount,
Account const & account )
private

Definition at line 323 of file Env.cpp.

◆ fundArg() [1/2]

void xrpl::test::jtx::Env::fundArg ( STAmount const & amount,
Account const & account )
private

Definition at line 913 of file Env.h.

◆ fundArg() [2/2]

template<std::size_t N>
void xrpl::test::jtx::Env::fundArg ( STAmount const & amount,
std::array< Account, N > const & list )
private

Definition at line 920 of file Env.h.

◆ fund() [2/2]

template<class Arg, class... Args>
void xrpl::test::jtx::Env::fund ( STAmount const & amount,
Arg const & arg,
Args const &... args )

Create a new account with some XRP.

These convenience functions are for easy set-up of the environment, they bypass fee, seq, and sig settings. The XRP is transferred from the master account.

Preconditions: The account must not already exist

Effects: The asfDefaultRipple on the account is set, and the sequence number is incremented, unless the account is wrapped with a call to noripple.

The account's XRP balance is set to amount.

Generates a test that the balance is set.

Parameters
amountThe amount of XRP to transfer to each account.
argsA heterogeneous list of accounts to fund or calls to noripple with lists of accounts to fund.

Definition at line 956 of file Env.h.

◆ trust() [1/2]

void xrpl::test::jtx::Env::trust ( STAmount const & amount,
Account const & account )

Establish trust lines.

These convenience functions are for easy set-up of the environment, they bypass fee, seq, and sig settings.

Preconditions: The account must already exist

Effects: A trust line is added for the account. The account's sequence number is incremented. The account is refunded for the transaction fee to set the trust line.

The refund comes from the master account.

Definition at line 354 of file Env.cpp.

◆ trust() [2/2]

template<class... Accounts>
void xrpl::test::jtx::Env::trust ( STAmount const & amount,
Account const & to0,
Account const & to1,
Accounts const &... toN )

Definition at line 987 of file Env.h.

◆ ust()

std::shared_ptr< STTx const > xrpl::test::jtx::Env::ust ( JTx const & jt)

Create a STTx from a JTx without sanitizing Use to inject bogus values into test transactions by first editing the JSON.

Definition at line 664 of file Env.cpp.

◆ doRpc()

json::Value xrpl::test::jtx::Env::doRpc ( unsigned apiVersion,
std::vector< std::string > const & args,
std::unordered_map< std::string, std::string > const & headers = {} )
protected

Definition at line 690 of file Env.cpp.

◆ autofillSig()

void xrpl::test::jtx::Env::autofillSig ( JTx & jt)
protected

Definition at line 566 of file Env.cpp.

◆ autofill()

void xrpl::test::jtx::Env::autofill ( JTx & jt)
protectedvirtual

Definition at line 609 of file Env.cpp.

◆ st()

std::shared_ptr< STTx const > xrpl::test::jtx::Env::st ( JTx const & jt)
protected

Create a STTx from a JTx The framework requires that JSON is valid.

On a parse error, the JSON is logged and an exception thrown.

Exceptions
ParseError

Definition at line 638 of file Env.cpp.

◆ invoke() [1/2]

template<class... FN>
void xrpl::test::jtx::Env::invoke ( STTx & stx,
FN const &... fN )
protected

Definition at line 1037 of file Env.h.

◆ invoke() [2/2]

template<class... FN>
void xrpl::test::jtx::Env::invoke ( JTx & jt,
FN const &... fN )
protected

Definition at line 1045 of file Env.h.

Member Data Documentation

◆ test

beast::unit_test::Suite& xrpl::test::jtx::Env::test

Definition at line 163 of file Env.h.

◆ master

Account const& xrpl::test::jtx::Env::master = Account::kMaster

Definition at line 165 of file Env.h.

◆ bundle_

AppBundle xrpl::test::jtx::Env::bundle_
private

Definition at line 201 of file Env.h.

◆ journal

beast::Journal const xrpl::test::jtx::Env::journal

Definition at line 204 of file Env.h.

◆ trace_

int xrpl::test::jtx::Env::trace_ = 0
protected

Definition at line 1003 of file Env.h.

◆ stopwatch_

TestStopwatch xrpl::test::jtx::Env::stopwatch_
protected

Definition at line 1004 of file Env.h.

◆ txid_

uint256 xrpl::test::jtx::Env::txid_
protected

Definition at line 1005 of file Env.h.

◆ ter_

TER xrpl::test::jtx::Env::ter_ = tesSUCCESS
protected

Definition at line 1006 of file Env.h.

◆ parseFailureExpected_

bool xrpl::test::jtx::Env::parseFailureExpected_ = false
protected

Definition at line 1007 of file Env.h.

◆ retries_

unsigned xrpl::test::jtx::Env::retries_ = 5
protected

Definition at line 1008 of file Env.h.

◆ map_

std::unordered_map<AccountID, Account> xrpl::test::jtx::Env::map_
protected

Definition at line 1051 of file Env.h.