提交 a1c38a83 编写于 作者: K Khaled Al-Hassanieh

Fixed warnings - #1889

上级 7bc2046d
......@@ -117,7 +117,7 @@ namespace eosiosystem {
require_auth( del.from );
//eosio_assert( is_account( del.receiver ), "can only delegate resources to an existing account" );
uint64_t storage_bytes = 0;
int64_t storage_bytes = 0;
if ( 0 < del.stake_storage_quantity.amount ) {
auto parameters = global_state_singleton::exists() ? global_state_singleton::get()
: common<SystemAccount>::get_default_parameters();
......@@ -127,17 +127,17 @@ namespace eosiosystem {
const eosio::asset token_supply = st.supply;
//make sure that there is no posibility of overflow here
uint64_t storage_bytes_estimated = ( parameters.max_storage_size - parameters.total_storage_bytes_reserved )
* parameters.storage_reserve_ratio * del.stake_storage_quantity
int64_t storage_bytes_estimated = int64_t( parameters.max_storage_size - parameters.total_storage_bytes_reserved )
* int64_t(parameters.storage_reserve_ratio) * del.stake_storage_quantity
/ ( token_supply - parameters.total_storage_stake ) / 1000 /* reserve ratio coefficient */;
storage_bytes = ( parameters.max_storage_size - parameters.total_storage_bytes_reserved - storage_bytes_estimated )
* parameters.storage_reserve_ratio * del.stake_storage_quantity
storage_bytes = ( int64_t(parameters.max_storage_size) - int64_t(parameters.total_storage_bytes_reserved) - storage_bytes_estimated )
* int64_t(parameters.storage_reserve_ratio) * del.stake_storage_quantity
/ ( token_supply - del.stake_storage_quantity - parameters.total_storage_stake ) / 1000 /* reserve ratio coefficient */;
eosio_assert( 0 < storage_bytes, "stake is too small to increase storage even by 1 byte" );
parameters.total_storage_bytes_reserved += storage_bytes;
parameters.total_storage_bytes_reserved += uint64_t(storage_bytes);
parameters.total_storage_stake += del.stake_storage_quantity;
global_state_singleton::set(parameters);
}
......@@ -151,7 +151,7 @@ namespace eosiosystem {
dbo.net_weight = del.stake_net_quantity;
dbo.cpu_weight = del.stake_cpu_quantity;
dbo.storage_stake = del.stake_storage_quantity;
dbo.storage_bytes = storage_bytes;
dbo.storage_bytes = uint64_t(storage_bytes);
});
}
else {
......@@ -159,7 +159,7 @@ namespace eosiosystem {
dbo.net_weight += del.stake_net_quantity;
dbo.cpu_weight += del.stake_cpu_quantity;
dbo.storage_stake += del.stake_storage_quantity;
dbo.storage_bytes += storage_bytes;
dbo.storage_bytes += uint64_t(storage_bytes);
});
}
......@@ -171,14 +171,14 @@ namespace eosiosystem {
tot.net_weight = del.stake_net_quantity;
tot.cpu_weight = del.stake_cpu_quantity;
tot.storage_stake = del.stake_storage_quantity;
tot.storage_bytes = storage_bytes;
tot.storage_bytes = uint64_t(storage_bytes);
});
} else {
totals_tbl.modify( tot_itr, del.from == del.receiver ? del.from : 0, [&]( auto& tot ) {
tot.net_weight += del.stake_net_quantity;
tot.cpu_weight += del.stake_cpu_quantity;
tot.storage_stake += del.stake_storage_quantity;
tot.storage_bytes += storage_bytes;
tot.storage_bytes += uint64_t(storage_bytes);
});
}
......@@ -210,7 +210,7 @@ namespace eosiosystem {
eosio::asset storage_stake_decrease(0, S(4,EOS));
if ( 0 < del.unstake_storage_bytes ) {
storage_stake_decrease = 0 < dbw.storage_bytes ?
dbw.storage_stake * del.unstake_storage_bytes / dbw.storage_bytes
dbw.storage_stake * int64_t(del.unstake_storage_bytes) / int64_t(dbw.storage_bytes)
: eosio::asset(0, S(4,EOS));
auto parameters = global_state_singleton::get();
......
......@@ -150,7 +150,7 @@ namespace eosiosystem {
if( global_state_singleton::exists() ) {
auto parameters = global_state_singleton::get();
// This will be improved in the future when total_votes becomes a double type.
auto share_of_eos_bucket = eosio::asset( static_cast<int64_t>( (prod->total_votes * parameters.eos_bucket.amount) / total_producer_votes ) );
auto share_of_eos_bucket = eosio::asset( static_cast<int64_t>( (prod->total_votes * uint64_t(parameters.eos_bucket.amount) ) / total_producer_votes ) );
rewards += share_of_eos_bucket;
parameters.eos_bucket -= share_of_eos_bucket;
global_state_singleton::set(parameters);
......
......@@ -141,6 +141,8 @@ namespace eosiosystem {
voters_table voters_tbl( SystemAccount, SystemAccount );
auto voter = voters_tbl.find( acnt );
eosio_assert( 0 <= amount.amount, "negative asset" );
if( voter == voters_tbl.end() ) {
voter = voters_tbl.emplace( acnt, [&]( voter_info& a ) {
a.owner = acnt;
......@@ -158,7 +160,7 @@ namespace eosiosystem {
if ( voter->proxy ) {
auto proxy = voters_tbl.find( voter->proxy );
eosio_assert( proxy != voters_tbl.end(), "selected proxy not found" ); //data corruption
voters_tbl.modify( proxy, 0, [&](voter_info& a) { a.proxied_votes += amount.amount; } );
voters_tbl.modify( proxy, 0, [&](voter_info& a) { a.proxied_votes += uint64_t(amount.amount); } );
if ( proxy->is_proxy ) { //only if proxy is still active. if proxy has been unregistered, we update proxied_votes, but don't propagate to producers
producers = &proxy->producers;
}
......@@ -172,7 +174,7 @@ namespace eosiosystem {
auto prod = producers_tbl.find( p );
eosio_assert( prod != producers_tbl.end(), "never existed producer" ); //data corruption
producers_tbl.modify( prod, 0, [&]( auto& v ) {
v.total_votes += amount.amount;
v.total_votes += uint64_t(amount.amount);
});
}
}
......@@ -194,7 +196,7 @@ namespace eosiosystem {
const std::vector<account_name>* producers = nullptr;
if ( voter->proxy ) {
auto proxy = voters_tbl.find( voter->proxy );
voters_tbl.modify( proxy, 0, [&](voter_info& a) { a.proxied_votes -= amount.amount; } );
voters_tbl.modify( proxy, 0, [&](voter_info& a) { a.proxied_votes -= uint64_t(amount.amount); } );
if ( proxy->is_proxy ) { //only if proxy is still active. if proxy has been unregistered, we update proxied_votes, but don't propagate to producers
producers = &proxy->producers;
}
......@@ -208,7 +210,7 @@ namespace eosiosystem {
auto prod = producers_tbl.find( p );
eosio_assert( prod != producers_tbl.end(), "never existed producer" ); //data corruption
producers_tbl.modify( prod, 0, [&]( auto& v ) {
v.total_votes -= amount.amount;
v.total_votes -= uint64_t(amount.amount);
});
}
}
......@@ -417,6 +419,7 @@ namespace eosiosystem {
voters_table voters_tbl( SystemAccount, SystemAccount );
auto voter = voters_tbl.find( vp.voter );
eosio_assert( 0 <= voter->staked.amount, "negative stake" );
eosio_assert( voter != voters_tbl.end() && ( 0 < voter->staked.amount || ( voter->is_proxy && 0 < voter->proxied_votes ) ), "no stake to vote" );
if ( voter->is_proxy ) {
eosio_assert( vp.proxy == 0 , "account registered as a proxy is not allowed to use a proxy" );
......@@ -430,7 +433,7 @@ namespace eosiosystem {
}
auto old_proxy = voters_tbl.find( voter->proxy );
eosio_assert( old_proxy != voters_tbl.end(), "old proxy not found" ); //data corruption
voters_tbl.modify( old_proxy, 0, [&](auto& a) { a.proxied_votes -= voter->staked.amount; } );
voters_tbl.modify( old_proxy, 0, [&](auto& a) { a.proxied_votes -= uint64_t(voter->staked.amount); } );
if ( old_proxy->is_proxy ) { //if proxy stoped being proxy, the votes were already taken back from producers by on( const unregister_proxy& )
old_producers = &old_proxy->producers;
}
......@@ -443,14 +446,14 @@ namespace eosiosystem {
if ( vp.proxy ) {
auto new_proxy = voters_tbl.find( vp.proxy );
eosio_assert( new_proxy != voters_tbl.end() && new_proxy->is_proxy, "proxy not found" );
voters_tbl.modify( new_proxy, 0, [&](auto& a) { a.proxied_votes += voter->staked.amount; } );
voters_tbl.modify( new_proxy, 0, [&](auto& a) { a.proxied_votes += uint64_t(voter->staked.amount); } );
new_producers = &new_proxy->producers;
} else {
new_producers = &vp.producers;
}
producers_table producers_tbl( SystemAccount, SystemAccount );
uint128_t votes = voter->staked.amount;
uint128_t votes = uint64_t(voter->staked.amount);
if ( voter->is_proxy ) {
votes += voter->proxied_votes;
}
......
......@@ -97,6 +97,7 @@ extern "C" {
if (action == N(onerror)) {
apply_onerror(receiver, deferred_transaction::from_current_action());
} if( action == N(transfer) ) {
// Comment this out for now so that the contract compiles, this will change with refactoring to use eosio.token
// apply_transfer(receiver, code, unpack_action_data<eosiosystem::contract<N(eosio.system)>::currency::transfer_memo>());
}
} else if ( code == N(currency) ) {
......
......@@ -1120,6 +1120,10 @@ BOOST_AUTO_TEST_CASE(get_required_keys)
// Commitment for the shard itself is a merkle tree over the transactions commitments inside that shard.
// The transaction commitment is digest of the concentanation of region_id, cycle_index, shard_index, tx_index,
// transaction_receipt and packed_trx_digest (if the tx is an input tx, which doesn't include implicit/ deferred tx)
// Deactivating this test. on_block transaction hash should not be hardcoded as the the work done following onblock action
// can change. As chain controller is being refactored, this test will have to be changed.
#if 0
BOOST_AUTO_TEST_CASE(transaction_mroot)
{ try {
validating_tester chain;
......@@ -1156,6 +1160,6 @@ BOOST_AUTO_TEST_CASE(transaction_mroot)
BOOST_TEST(expected_tx_mroot.str() == head_block_tx_mroot.str());
} FC_LOG_AND_RETHROW() }
#endif
BOOST_AUTO_TEST_SUITE_END()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册