
Repository
https://github.com/steemit/steem-ruby
Issue
https://github.com/steemit/steem-ruby/issues/16
Details
In steem-ruby
, the method Steem::NetworkBroadcastApi#broadcast_transaction_synchronous
was never officially available as an RPC. Early versions of AppBase provided this method and steem-ruby
would pass it along, but when AppBase dropped it, it also became unavailable in steem-ruby
.
Prior to this, steem-ruby
didn't even need a concrete class for Steem::NetworkBroadcastApi
because it is dynamically defined at runtime with all available methods.
For now, the workaround is to use Steem::CondenserApi#broadcast_transaction_synchronous
, but this is not a good long-term solution.
Instead, we should actually add the concrete class called Steem::NetworkBroadcastApi
with an instance method of broadcast_transaction_synchronous
to simulate the desired behavior by internally polling broadcasts with Steem::TransactionStatusApi#find_transaction
.
https://developers.steem.io/apidefinitions/#apidefinitions-transaction-status-api
When the new Steem::NetworkBroadcastApi#broadcast_transaction_synchronous
method polls for the transaction, it should poll for within_reversible_block
and include block_num
in the result like Steem::CondenserApi#broadcast_transaction_synchronous
currently does.
Components
- Create concrete class
lib/steem/network_broadcast_api.rb
with an instance methodbroadcast_transaction_synchronous
that handles polling - Define tests in
test/steem/network_broadcast_api_test.rb
Communication
https://github.com/steemit/steem-ruby/blob/master/CONTRIBUTING.md