Removing ::balance_calculated as balance is stored in sideband.
This commit is contained in:
parent
dcb4dbc34b
commit
b7f23708e8
8 changed files with 36 additions and 75 deletions
|
@ -161,38 +161,6 @@ nano::store_iterator<nano::block_hash, nano::block_w_sideband> nano::lmdb::block
|
|||
return nano::store_iterator<nano::block_hash, nano::block_w_sideband> (nullptr);
|
||||
}
|
||||
|
||||
nano::uint128_t nano::lmdb::block_store::balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block (get (transaction_a, hash_a));
|
||||
release_assert (block);
|
||||
nano::uint128_t result (balance_calculated (block));
|
||||
return result;
|
||||
}
|
||||
|
||||
nano::uint128_t nano::lmdb::block_store::balance_calculated (std::shared_ptr<nano::block> const & block_a) const
|
||||
{
|
||||
nano::uint128_t result;
|
||||
switch (block_a->type ())
|
||||
{
|
||||
case nano::block_type::open:
|
||||
case nano::block_type::receive:
|
||||
case nano::block_type::change:
|
||||
result = block_a->sideband ().balance.number ();
|
||||
break;
|
||||
case nano::block_type::send:
|
||||
result = boost::polymorphic_downcast<nano::send_block *> (block_a.get ())->hashables.balance.number ();
|
||||
break;
|
||||
case nano::block_type::state:
|
||||
result = boost::polymorphic_downcast<nano::state_block *> (block_a.get ())->hashables.balance.number ();
|
||||
break;
|
||||
case nano::block_type::invalid:
|
||||
case nano::block_type::not_a_block:
|
||||
release_assert (false);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nano::epoch nano::lmdb::block_store::version (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block = get (transaction_a, hash_a);
|
||||
|
|
|
@ -31,8 +31,6 @@ namespace lmdb
|
|||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> end () const override;
|
||||
nano::uint128_t balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
nano::uint128_t balance_calculated (std::shared_ptr<nano::block> const & block_a) const override;
|
||||
nano::epoch version (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const override;
|
||||
// Converts a block hash to a block height
|
||||
|
|
|
@ -1061,11 +1061,11 @@ boost::optional<nano::mdb_val> nano::lmdb::store::block_raw_get_by_type_v18 (nan
|
|||
return result;
|
||||
}
|
||||
|
||||
nano::uint128_t nano::lmdb::store::block_balance_v18 (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const
|
||||
nano::uint128_t nano::lmdb::store::block_balance_v18 (nano::transaction const & transaction, nano::block_hash const & hash) const
|
||||
{
|
||||
auto block (block_get_v18 (transaction_a, hash_a));
|
||||
release_assert (block);
|
||||
nano::uint128_t result (this->block.balance_calculated (block));
|
||||
auto block_l = block_get_v18 (transaction, hash);
|
||||
release_assert (block_l);
|
||||
nano::uint128_t result = block.balance (*block_l);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -1344,7 +1344,7 @@ void nano::node::process_confirmed_data (nano::transaction const & transaction_a
|
|||
auto previous (block_a->previous ());
|
||||
bool error (false);
|
||||
auto previous_balance (ledger.balance_safe (transaction_a, previous, error));
|
||||
auto block_balance (store.block.balance_calculated (block_a));
|
||||
auto block_balance = store.block.balance (*block_a);
|
||||
if (hash_a != ledger.constants.genesis->account ())
|
||||
{
|
||||
if (!error)
|
||||
|
|
|
@ -161,38 +161,6 @@ nano::store_iterator<nano::block_hash, nano::block_w_sideband> nano::rocksdb::bl
|
|||
return nano::store_iterator<nano::block_hash, nano::block_w_sideband> (nullptr);
|
||||
}
|
||||
|
||||
nano::uint128_t nano::rocksdb::block_store::balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block (get (transaction_a, hash_a));
|
||||
release_assert (block);
|
||||
nano::uint128_t result (balance_calculated (block));
|
||||
return result;
|
||||
}
|
||||
|
||||
nano::uint128_t nano::rocksdb::block_store::balance_calculated (std::shared_ptr<nano::block> const & block_a) const
|
||||
{
|
||||
nano::uint128_t result;
|
||||
switch (block_a->type ())
|
||||
{
|
||||
case nano::block_type::open:
|
||||
case nano::block_type::receive:
|
||||
case nano::block_type::change:
|
||||
result = block_a->sideband ().balance.number ();
|
||||
break;
|
||||
case nano::block_type::send:
|
||||
result = boost::polymorphic_downcast<nano::send_block *> (block_a.get ())->hashables.balance.number ();
|
||||
break;
|
||||
case nano::block_type::state:
|
||||
result = boost::polymorphic_downcast<nano::state_block *> (block_a.get ())->hashables.balance.number ();
|
||||
break;
|
||||
case nano::block_type::invalid:
|
||||
case nano::block_type::not_a_block:
|
||||
release_assert (false);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nano::epoch nano::rocksdb::block_store::version (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block = get (transaction_a, hash_a);
|
||||
|
|
|
@ -31,8 +31,6 @@ namespace rocksdb
|
|||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> end () const override;
|
||||
nano::uint128_t balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
nano::uint128_t balance_calculated (std::shared_ptr<nano::block> const & block_a) const override;
|
||||
nano::epoch version (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const override;
|
||||
// Converts a block hash to a block height
|
||||
|
|
|
@ -125,6 +125,35 @@ nano::account nano::block_store::account (nano::transaction const & transaction,
|
|||
return account (*block);
|
||||
}
|
||||
|
||||
nano::uint128_t nano::block_store::balance (nano::block const & block) const
|
||||
{
|
||||
nano::uint128_t result;
|
||||
switch (block.type ())
|
||||
{
|
||||
case nano::block_type::open:
|
||||
case nano::block_type::receive:
|
||||
case nano::block_type::change:
|
||||
result = block.sideband ().balance.number ();
|
||||
break;
|
||||
case nano::block_type::send:
|
||||
case nano::block_type::state:
|
||||
result = block.balance ().number ();
|
||||
break;
|
||||
case nano::block_type::invalid:
|
||||
case nano::block_type::not_a_block:
|
||||
release_assert (false);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nano::uint128_t nano::block_store::balance (nano::transaction const & transaction, nano::block_hash const & hash) const
|
||||
{
|
||||
auto block = get (transaction, hash);
|
||||
debug_assert (block != nullptr);
|
||||
return balance (*block);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
nano::store::store (
|
||||
nano::block_store & block_store_a,
|
||||
|
|
|
@ -758,8 +758,8 @@ public:
|
|||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> begin (nano::transaction const &, nano::block_hash const &) const = 0;
|
||||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> begin (nano::transaction const &) const = 0;
|
||||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> end () const = 0;
|
||||
virtual nano::uint128_t balance (nano::transaction const &, nano::block_hash const &) = 0;
|
||||
virtual nano::uint128_t balance_calculated (std::shared_ptr<nano::block> const &) const = 0;
|
||||
nano::uint128_t balance (nano::block const & block) const;
|
||||
nano::uint128_t balance (nano::transaction const & transaction, nano::block_hash const & hash) const;
|
||||
virtual nano::epoch version (nano::transaction const &, nano::block_hash const &) = 0;
|
||||
virtual void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const = 0;
|
||||
virtual uint64_t account_height (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue