Skip to content

Commit

Permalink
Allow version information when converting from script to payment
Browse files Browse the repository at this point in the history
address
  • Loading branch information
thecodefactory committed Sep 15, 2017
1 parent 1104a55 commit e973df8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
8 changes: 6 additions & 2 deletions include/bitcoin/bitcoin/chain/output.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,14 @@ class BC_API output
void set_script(chain::script&& value);

/// The first payment address extracted (may be invalid).
wallet::payment_address address() const;
wallet::payment_address address(
uint8_t p2kh_version=wallet::payment_address::mainnet_p2kh,
uint8_t p2sh_version=wallet::payment_address::mainnet_p2sh) const;

/// The payment addresses extracted from this output as a standard script.
wallet::payment_address::list addresses() const;
wallet::payment_address::list addresses(
uint8_t p2kh_version=wallet::payment_address::mainnet_p2kh,
uint8_t p2sh_version=wallet::payment_address::mainnet_p2sh) const;

// Validation.
//-------------------------------------------------------------------------
Expand Down
8 changes: 4 additions & 4 deletions src/chain/output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -274,13 +274,13 @@ void output::invalidate_cache() const
///////////////////////////////////////////////////////////////////////////
}

payment_address output::address() const
payment_address output::address(uint8_t p2kh_version, uint8_t p2sh_version) const
{
const auto value = addresses();
const auto value = addresses(p2kh_version, p2sh_version);
return value.empty() ? payment_address{} : value.front();
}

payment_address::list output::addresses() const
payment_address::list output::addresses(uint8_t p2kh_version, uint8_t p2sh_version) const
{
///////////////////////////////////////////////////////////////////////////
// Critical Section
Expand All @@ -291,7 +291,7 @@ payment_address::list output::addresses() const
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mutex_.unlock_upgrade_and_lock();
addresses_ = std::make_shared<payment_address::list>(
payment_address::extract_output(script_));
payment_address::extract_output(script_, p2kh_version, p2sh_version));
mutex_.unlock_and_lock_upgrade();
//---------------------------------------------------------------------
}
Expand Down

0 comments on commit e973df8

Please sign in to comment.