Skip to content

Commit

Permalink
Merge remote-tracking branch 'graphene/develop' into bitshares
Browse files Browse the repository at this point in the history
  • Loading branch information
theoreticalbts committed Mar 26, 2016
2 parents 8835f4f + f049fce commit 3865dd1
Show file tree
Hide file tree
Showing 14 changed files with 98 additions and 9 deletions.
1 change: 1 addition & 0 deletions libraries/app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ INSTALL( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
INSTALL( FILES ${HEADERS} DESTINATION "include/graphene/app" )
4 changes: 4 additions & 0 deletions libraries/chain/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ set_source_files_properties( "${CMAKE_CURRENT_BINARY_DIR}/include/graphene/chain
add_dependencies( build_hardfork_hpp cat-parts )

file(GLOB HEADERS "include/graphene/chain/*.hpp")
file(GLOB PROTOCOL_HEADERS "include/graphene/chain/protocol/*.hpp")

if( GRAPHENE_DISABLE_UNITY_BUILD )
set( GRAPHENE_DB_FILES
Expand Down Expand Up @@ -90,6 +91,7 @@ add_library( graphene_chain
is_authorized_asset.cpp

${HEADERS}
${PROTOCOL_HEADERS}
"${CMAKE_CURRENT_BINARY_DIR}/include/graphene/chain/hardfork.hpp"
)

Expand All @@ -109,3 +111,5 @@ INSTALL( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
INSTALL( FILES ${HEADERS} DESTINATION "include/graphene/chain" )
INSTALL( FILES ${PROTOCOL_HEADERS} DESTINATION "include/graphene/chain/protocol" )
2 changes: 1 addition & 1 deletion libraries/chain/protocol/transaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ struct sign_state
if( approved_by.find(a.first) == approved_by.end() )
{
if( depth == max_recursion )
return false;
continue;
if( check_authority( get_active( a.first ), depth+1 ) )
{
approved_by.insert( a.first );
Expand Down
2 changes: 1 addition & 1 deletion libraries/chain/vesting_balance_object.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ asset linear_vesting_policy::get_allowed_withdraw( const vesting_policy_context&
}
}

return asset( allowed_withdraw, ctx.amount.asset_id );
return asset( allowed_withdraw, ctx.balance.asset_id );
}

void linear_vesting_policy::on_deposit(const vesting_policy_context& ctx)
Expand Down
1 change: 1 addition & 0 deletions libraries/db/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/db" )
1 change: 1 addition & 0 deletions libraries/deterministic_openssl_rand/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${headers} DESTINATION "include/graphene/deterministic_openssl_rand" )
2 changes: 1 addition & 1 deletion libraries/fc
1 change: 1 addition & 0 deletions libraries/net/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/net" )
1 change: 1 addition & 0 deletions libraries/p2p/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/p2p" )
1 change: 1 addition & 0 deletions libraries/time/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/time" )
1 change: 1 addition & 0 deletions libraries/utilities/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/utilities" )
3 changes: 2 additions & 1 deletion libraries/wallet/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ if( PERL_FOUND AND DOXYGEN_FOUND AND NOT "${CMAKE_GENERATOR}" STREQUAL "Ninja" )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/doxygen/perlmod/DoxyDocs.pm
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${DOXYGEN_EXECUTABLE}
DEPENDS Doxyfile include/graphene/wallet/wallet.hpp )
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile include/graphene/wallet/wallet.hpp )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/api_documentation.cpp
COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_api_documentation.pl ${CMAKE_CURRENT_BINARY_DIR}/api_documentation.cpp.new

Expand Down Expand Up @@ -37,3 +37,4 @@ install( TARGETS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install( FILES ${HEADERS} DESTINATION "include/graphene/wallet" )
14 changes: 9 additions & 5 deletions tests/common/database_fixture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,15 @@ void database_fixture::verify_asset_supplies( const database& db )
}
for( const asset_object& asset_obj : db.get_index_type<asset_index>().indices() )
{
total_balances[asset_obj.id] += asset_obj.dynamic_asset_data_id(db).accumulated_fees;
if( asset_obj.id != asset_id_type() )
BOOST_CHECK_EQUAL(total_balances[asset_obj.id].value, asset_obj.dynamic_asset_data_id(db).current_supply.value);
total_balances[asset_id_type()] += asset_obj.dynamic_asset_data_id(db).fee_pool;
const auto& dasset_obj = asset_obj.dynamic_asset_data_id(db);
total_balances[asset_obj.id] += dasset_obj.accumulated_fees;
total_balances[asset_id_type()] += dasset_obj.fee_pool;
if( asset_obj.is_market_issued() )
{
const auto& bad = asset_obj.bitasset_data(db);
total_balances[bad.options.short_backing_asset] += bad.settlement_fund;
}
total_balances[asset_obj.id] += dasset_obj.confidential_supply.value;
}
for( const vesting_balance_object& vbo : db.get_index_type< vesting_balance_index >().indices() )
total_balances[ vbo.balance.asset_id ] += vbo.balance.amount;
Expand All @@ -206,8 +206,12 @@ void database_fixture::verify_asset_supplies( const database& db )
BOOST_CHECK_EQUAL(item.first(db).dynamic_asset_data_id(db).current_supply.value, item.second.value);
}

for( const asset_object& asset_obj : db.get_index_type<asset_index>().indices() )
{
BOOST_CHECK_EQUAL(total_balances[asset_obj.id].value, asset_obj.dynamic_asset_data_id(db).current_supply.value);
}

BOOST_CHECK_EQUAL( core_in_orders.value , reported_core_in_orders.value );
BOOST_CHECK_EQUAL( total_balances[asset_id_type()].value , core_asset_data.current_supply.value - core_asset_data.confidential_supply.value);
// wlog("*** End asset supply verification ***");
}

Expand Down
73 changes: 73 additions & 0 deletions tests/tests/operation_tests2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1331,6 +1331,79 @@ BOOST_AUTO_TEST_CASE(zero_second_vbo)
} FC_LOG_AND_RETHROW()
}

BOOST_AUTO_TEST_CASE( vbo_withdraw_different )
{
try
{
ACTORS((alice)(izzy));
// don't pay witnesses so we have some worker budget to work with

// transfer(account_id_type(), alice_id, asset(1000));

asset_id_type stuff_id = create_user_issued_asset( "STUFF", izzy_id(db), 0 ).id;
issue_uia( alice_id, asset( 1000, stuff_id ) );

// deposit STUFF with linear vesting policy
vesting_balance_id_type vbid;
{
linear_vesting_policy_initializer pinit;
pinit.begin_timestamp = db.head_block_time();
pinit.vesting_cliff_seconds = 30;
pinit.vesting_duration_seconds = 30;

vesting_balance_create_operation create_op;
create_op.creator = alice_id;
create_op.owner = alice_id;
create_op.amount = asset(100, stuff_id);
create_op.policy = pinit;

signed_transaction create_tx;
create_tx.operations.push_back( create_op );
set_expiration( db, create_tx );
sign(create_tx, alice_private_key);

processed_transaction ptx = PUSH_TX( db, create_tx );
vbid = ptx.operation_results[0].get<object_id_type>();
}

// wait for VB to mature
generate_blocks( 30 );

BOOST_CHECK( vbid(db).get_allowed_withdraw( db.head_block_time() ) == asset(100, stuff_id) );

// bad withdrawal op (wrong asset)
{
vesting_balance_withdraw_operation op;

op.vesting_balance = vbid;
op.amount = asset(100);
op.owner = alice_id;

signed_transaction withdraw_tx;
withdraw_tx.operations.push_back(op);
set_expiration( db, withdraw_tx );
sign( withdraw_tx, alice_private_key );
GRAPHENE_CHECK_THROW( PUSH_TX( db, withdraw_tx ), fc::exception );
}

// good withdrawal op
{
vesting_balance_withdraw_operation op;

op.vesting_balance = vbid;
op.amount = asset(100, stuff_id);
op.owner = alice_id;

signed_transaction withdraw_tx;
withdraw_tx.operations.push_back(op);
set_expiration( db, withdraw_tx );
sign( withdraw_tx, alice_private_key );
PUSH_TX( db, withdraw_tx );
}
}
FC_LOG_AND_RETHROW()
}

// TODO: Write linear VBO tests

BOOST_AUTO_TEST_CASE( top_n_special )
Expand Down

0 comments on commit 3865dd1

Please sign in to comment.