mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Compare commits
3 Commits
patch-ctid
...
patch-tsh
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2965d3d96c | ||
|
|
5400f43359 | ||
|
|
8cf7d485ab |
@@ -44,8 +44,7 @@ convertBlobsToTxResult(
|
||||
|
||||
auto tr = std::make_shared<Transaction>(txn, reason, app);
|
||||
|
||||
auto metaset =
|
||||
std::make_shared<TxMeta>(tr->getID(), tr->getLedger(), rawMeta);
|
||||
auto metaset = std::make_shared<TxMeta>(tr->getID(), ledger_index, rawMeta);
|
||||
|
||||
// if properly formed meta is available we can use it to generate ctid
|
||||
if (metaset->getAsObject().isFieldPresent(sfTransactionIndex))
|
||||
|
||||
@@ -1506,15 +1506,13 @@ Transactor::addWeakTSHFromSandbox(detail::ApplyViewBase const& pv)
|
||||
TER
|
||||
Transactor::doTSH(
|
||||
bool strong, // only strong iff true, only weak iff false
|
||||
std::vector<std::pair<AccountID, bool>> tsh,
|
||||
hook::HookStateMap& stateMap,
|
||||
std::vector<hook::HookResult>& results,
|
||||
std::shared_ptr<STObject const> const& provisionalMeta)
|
||||
{
|
||||
auto& view = ctx_.view();
|
||||
|
||||
std::vector<std::pair<AccountID, bool>> tsh =
|
||||
hook::getTransactionalStakeHolders(ctx_.tx, view);
|
||||
|
||||
// add the extra TSH marked out by the specific transactor (if applicable)
|
||||
if (!strong)
|
||||
for (auto& weakTsh : additionalWeakTSH_)
|
||||
@@ -1772,6 +1770,9 @@ Transactor::operator()()
|
||||
// application to the ledger
|
||||
std::map<AccountID, std::set<uint256>> aawMap;
|
||||
|
||||
std::vector<std::pair<AccountID, bool>> tsh =
|
||||
hook::getTransactionalStakeHolders(ctx_.tx, ctx_.view());
|
||||
|
||||
// Pre-application (Strong TSH) Hooks are executed here
|
||||
// These TSH have the right to rollback.
|
||||
// Weak TSH and callback are executed post-application.
|
||||
@@ -1800,7 +1801,7 @@ Transactor::operator()()
|
||||
// (who have the right to rollback the txn), any weak TSH will be
|
||||
// executed after doApply has been successful (callback as well)
|
||||
|
||||
result = doTSH(true, stateMap, hookResults, {});
|
||||
result = doTSH(true, tsh, stateMap, hookResults, {});
|
||||
}
|
||||
|
||||
// write state if all chains executed successfully
|
||||
@@ -2054,7 +2055,7 @@ Transactor::operator()()
|
||||
hook::HookStateMap stateMap;
|
||||
std::vector<hook::HookResult> weakResults;
|
||||
|
||||
doTSH(false, stateMap, weakResults, proMeta);
|
||||
doTSH(false, tsh, stateMap, weakResults, proMeta);
|
||||
|
||||
// execute any hooks that nominated for 'again as weak'
|
||||
for (auto const& [accID, hookHashes] : aawMap)
|
||||
|
||||
@@ -188,6 +188,7 @@ protected:
|
||||
TER
|
||||
doTSH(
|
||||
bool strong, // only do strong TSH iff true, otheriwse only weak
|
||||
std::vector<std::pair<AccountID, bool>> tsh,
|
||||
hook::HookStateMap& stateMap,
|
||||
std::vector<hook::HookResult>& result,
|
||||
std::shared_ptr<STObject const> const& provisionalMeta);
|
||||
|
||||
@@ -5469,7 +5469,11 @@ class Import_test : public beast::unit_test::suite
|
||||
// burn 100'000 coins
|
||||
{
|
||||
test::jtx::Env env{
|
||||
*this, network::makeNetworkVLConfig(21337, keys)};
|
||||
*this,
|
||||
network::makeNetworkVLConfig(21337, keys),
|
||||
nullptr,
|
||||
beast::severities::kDisabled,
|
||||
};
|
||||
|
||||
auto const envCoins = env.current()->info().drops;
|
||||
BEAST_EXPECT(envCoins == 100'000'000'000'000'000);
|
||||
@@ -5509,7 +5513,11 @@ class Import_test : public beast::unit_test::suite
|
||||
// burn all coins
|
||||
{
|
||||
test::jtx::Env env{
|
||||
*this, network::makeNetworkVLConfig(21337, keys)};
|
||||
*this,
|
||||
network::makeNetworkVLConfig(21337, keys),
|
||||
nullptr,
|
||||
beast::severities::kDisabled,
|
||||
};
|
||||
|
||||
auto const envCoins = env.current()->info().drops;
|
||||
BEAST_EXPECT(envCoins == 100'000'000'000'000'000);
|
||||
@@ -5549,7 +5557,11 @@ class Import_test : public beast::unit_test::suite
|
||||
// burn no coins
|
||||
{
|
||||
test::jtx::Env env{
|
||||
*this, network::makeNetworkVLConfig(21337, keys)};
|
||||
*this,
|
||||
network::makeNetworkVLConfig(21337, keys),
|
||||
nullptr,
|
||||
beast::severities::kDisabled,
|
||||
};
|
||||
|
||||
auto const envCoins = env.current()->info().drops;
|
||||
BEAST_EXPECT(envCoins == 100'000'000'000'000'000);
|
||||
|
||||
@@ -101,8 +101,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
{
|
||||
testcase("catalogue_create: Invalid parameters");
|
||||
using namespace test::jtx;
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
|
||||
// No parameters
|
||||
{
|
||||
@@ -177,8 +176,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment and some test ledgers
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
prepareLedgerData(env, 5);
|
||||
|
||||
boost::filesystem::path tempDir =
|
||||
@@ -217,8 +215,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
{
|
||||
testcase("catalogue_load: Invalid parameters");
|
||||
using namespace test::jtx;
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
|
||||
// No parameters
|
||||
{
|
||||
@@ -265,8 +262,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment and test data
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
prepareLedgerData(env, 5);
|
||||
|
||||
// Store some key state information before catalogue creation
|
||||
@@ -322,8 +318,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
*this,
|
||||
test::jtx::envconfig(test::jtx::port_increment, 3),
|
||||
features,
|
||||
nullptr,
|
||||
beast::severities::kInfo};
|
||||
};
|
||||
|
||||
// Now load the catalogue
|
||||
Json::Value params{Json::objectValue};
|
||||
@@ -518,8 +513,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
return cfg;
|
||||
}),
|
||||
features,
|
||||
nullptr,
|
||||
beast::severities::kInfo};
|
||||
};
|
||||
prepareLedgerData(env1, 5);
|
||||
|
||||
// Create catalogue with network ID 123
|
||||
@@ -544,8 +538,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
return cfg;
|
||||
}),
|
||||
features,
|
||||
nullptr,
|
||||
beast::severities::kInfo};
|
||||
};
|
||||
|
||||
{
|
||||
Json::Value params{Json::objectValue};
|
||||
@@ -568,8 +561,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment and test data
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
prepareLedgerData(env, 3);
|
||||
|
||||
boost::filesystem::path tempDir =
|
||||
@@ -660,8 +652,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment and test data
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
prepareLedgerData(env, 3);
|
||||
|
||||
boost::filesystem::path tempDir =
|
||||
@@ -736,8 +727,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment and test data
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
prepareLedgerData(env, 5);
|
||||
|
||||
boost::filesystem::path tempDir =
|
||||
@@ -826,8 +816,7 @@ class Catalogue_test : public beast::unit_test::suite
|
||||
using namespace test::jtx;
|
||||
|
||||
// Create environment
|
||||
Env env{
|
||||
*this, envconfig(), features, nullptr, beast::severities::kInfo};
|
||||
Env env{*this, envconfig(), features};
|
||||
|
||||
boost::filesystem::path tempDir =
|
||||
boost::filesystem::temp_directory_path() /
|
||||
|
||||
Reference in New Issue
Block a user