diff --git a/libraries/wallet/include/graphene/wallet/wallet.hpp b/libraries/wallet/include/graphene/wallet/wallet.hpp index 20c46065..689bf1c6 100644 --- a/libraries/wallet/include/graphene/wallet/wallet.hpp +++ b/libraries/wallet/include/graphene/wallet/wallet.hpp @@ -1647,6 +1647,15 @@ class wallet_api asset_id_type asset_id, bool broadcast = false); + signed_transaction propose_update_betting_market_group( + const string& proposing_account, + fc::time_point_sec expiration_time, + betting_market_group_id_type betting_market_group_id, + fc::optional description, + fc::optional event_id, + fc::optional rules_id, + bool broadcast = false); + signed_transaction propose_create_betting_market( const string& proposing_account, fc::time_point_sec expiration_time, @@ -1654,6 +1663,14 @@ class wallet_api internationalized_string_type payout_condition, bool broadcast = false); + signed_transaction propose_update_betting_market( + const string& proposing_account, + fc::time_point_sec expiration_time, + betting_market_id_type market_id, + fc::optional group_id, + fc::optional payout_condition, + bool broadcast = false); + signed_transaction place_bet( const string& betting_account, betting_market_id_type betting_market_id, diff --git a/libraries/wallet/wallet.cpp b/libraries/wallet/wallet.cpp index ac2a4a14..9f7fb385 100644 --- a/libraries/wallet/wallet.cpp +++ b/libraries/wallet/wallet.cpp @@ -5297,6 +5297,40 @@ signed_transaction wallet_api::propose_create_betting_market_group( return my->sign_transaction(tx, broadcast); } +signed_transaction wallet_api::propose_update_betting_market_group( + const string& proposing_account, + fc::time_point_sec expiration_time, + betting_market_group_id_type betting_market_group_id, + fc::optional description, + fc::optional event_id, + fc::optional rules_id, + bool broadcast /*= false*/) +{ + FC_ASSERT( !is_locked() ); + const chain_parameters& current_params = get_global_properties().parameters; + + betting_market_group_update_operation betting_market_group_update_op; + betting_market_group_update_op.betting_market_group_id = betting_market_group_id; + betting_market_group_update_op.new_description = description; + betting_market_group_update_op.new_event_id = event_id; + betting_market_group_update_op.new_rules_id = rules_id; + //betting_market_group_create_op.asset_id = asset_id; + + proposal_create_operation prop_op; + prop_op.expiration_time = expiration_time; + prop_op.review_period_seconds = current_params.committee_proposal_review_period; + prop_op.fee_paying_account = get_account(proposing_account).id; + prop_op.proposed_ops.emplace_back( betting_market_group_update_op ); + current_params.current_fees->set_fee( prop_op.proposed_ops.back().op ); + + signed_transaction tx; + tx.operations.push_back(prop_op); + my->set_operation_fees(tx, current_params.current_fees); + tx.validate(); + + return my->sign_transaction(tx, broadcast); +} + signed_transaction wallet_api::propose_create_betting_market( const string& proposing_account, fc::time_point_sec expiration_time, @@ -5326,6 +5360,37 @@ signed_transaction wallet_api::propose_create_betting_market( return my->sign_transaction(tx, broadcast); } +signed_transaction wallet_api::propose_update_betting_market( + const string& proposing_account, + fc::time_point_sec expiration_time, + betting_market_id_type market_id, + fc::optional group_id, + fc::optional payout_condition, + bool broadcast /*= false*/) +{ + FC_ASSERT( !is_locked() ); + const chain_parameters& current_params = get_global_properties().parameters; + + betting_market_update_operation betting_market_update_op; + betting_market_update_op.betting_market_id = market_id; + betting_market_update_op.new_group_id = group_id; + betting_market_update_op.new_payout_condition = payout_condition; + + proposal_create_operation prop_op; + prop_op.expiration_time = expiration_time; + prop_op.review_period_seconds = current_params.committee_proposal_review_period; + prop_op.fee_paying_account = get_account(proposing_account).id; + prop_op.proposed_ops.emplace_back( betting_market_update_op ); + current_params.current_fees->set_fee( prop_op.proposed_ops.back().op ); + + signed_transaction tx; + tx.operations.push_back(prop_op); + my->set_operation_fees(tx, current_params.current_fees); + tx.validate(); + + return my->sign_transaction(tx, broadcast); +} + signed_transaction wallet_api::place_bet( const string& betting_account, betting_market_id_type betting_market_id,