[bisq-network/bisq] [WIP] Extract btc to segwit addresses (#4509)

Oscar Guindzberg notifications at github.com
Wed Sep 9 20:56:29 UTC 2020


<!-- 
- make yourself familiar with the CONTRIBUTING.md if you have not already (https://github.com/bisq-network/bisq/blob/master/CONTRIBUTING.md)
- make sure you follow our [coding style guidelines][https://github.com/bisq-network/style/issues)
- pick a descriptive title
- provide some meaningful PR description below
- create the PR
- in case you receive a "Change request" and/or a NACK, please react within 30 days. If not, we will close your PR and it can not be up for compensation.
- After addressing the change request, __please re-request a review!__ Otherwise we might miss your PR as we tend to only look at pull requests tagged with a "review required".
-->

Allow users to extract their BTC funds to external segwit addresses.
Users can't use segwit addresses to receive funds yet.
Please, don't merge until https://github.com/bisq-network/bisq/pull/4504 is merged.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/4509

-- Commit Summary --

  * Use bitcoinj 0.15.8 (commit 86c7094)
  * bitcoinj 0.15: Update depencencies to match bitcoinj versions
  * bitcoinj 0.15: bitcoinj exclude dependency bcprov-jdk15on because already included by bisq.
  * bitcoinj 0.15: Update modified dependencies hashes.
  * bitcoinj 0.15: Futures.addCallback() in guava 28 requires an executor.
  * bitcoinj 0.15: Use new Wallet.toString() with includeLookAhead boolean param.
  * bitcoinj 0.15: bitcoinj moved from spongycastle to bouncycastle.
  * bitcoinj 0.15: NetworkParameters.acceptableAddressCodes was removed.
  * bitcoinj 0.15: ScriptException moved to another package.
  * bitcoinj 0.15: WalletEventListener was replaced by more granular listeners.
  * bitcoinj 0.15: Use LegacyAddress.fromBase58() instead of Address.fromBase58().
  * bitcoinj 0.15: replace ECKey.toAddress() with LegacyAddress.fromKey().
  * bitcoinj 0.15: Replace usage of bitcoinj's removed methods with new ones.
  * bitcoinj 0.15: Deal with methods throwing SignatureDecodeException.
  * bitcoinj 0.15: Replace Utils.closeUnchecked() to Closeables.closeQuietly() to match WalletAppKit.
  * bitcoinj 0.15: Use PeerAddress constructor with NetworkParameters parameter.
  * bitcoinj 0.15: PeerAddress: don't set addr when already using hostname.
  * bitcoinj 0.15: PeerAddress: Use InetSocketAddress constructor instead of InetAddress+port.
  * bitcoinj 0.15: PeerAddress: BtcNodeConverterTest fixes.
  * bitcoinj 0.15: Bip44 refactor.
  * bitcoinj 0.15: Remove call to PeerGroup.setIgnoreHttpSeeds(true).
  * bitcoinj 0.15: Replace deprecated Transaction.getHashAsString with Transaction.getTxId().toString().
  * bitcoinj 0.15: Replace deprecated Transaction.getHash() with Transaction.getTxId().
  * bitcoinj 0.15: Fix TransactionAwareTradeTest
  * bitcoinj 0.15: Replace deprecated Script methods with ScriptPattern methods.
  * bitcoinj 0.15: BisqRiskAnalisys: Add commented out code to match original DefaultRiskAnalysis.
  * Prevent seednode to use older guava version
  * Update btcd-cli4j to 27b9433
  * WalletConfig.preferredOutputScriptType: make it a method variable
  * Use bitcoinj 0.15.8 (commit 0d7762b)
  * Make it clear P2PKH is used always used
  * Use bitcoinj 0.15.8 (commit 0d98efb)
  * Revert "bitcoinj 0.15: Remove call to PeerGroup.setIgnoreHttpSeeds(true)."
  * Code polishing to make Codacy happy
  * Code polishing to make Codacy happier
  * Rename Base58BitcoinAddressValidator to Base58AddressValidator
  * Bitcoin Coin use BitcoinAddressValidator
  * Rename WalletService.emptyWallet() to emtyBtcWallet()
  * Declare returning type as LegacyAddress
  * Use Address.fromString() for btc addresses
  * WalletService.isOutputScriptConvertibleToAddress() include segwit outputs

-- File Changes --

    R assets/src/main/java/bisq/asset/Base58AddressValidator.java (14)
    A assets/src/main/java/bisq/asset/BitcoinAddressValidator.java (52)
    M assets/src/main/java/bisq/asset/coins/Actinium.java (5)
    M assets/src/main/java/bisq/asset/coins/Adeptio.java (5)
    M assets/src/main/java/bisq/asset/coins/Animecoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Australiacash.java (5)
    M assets/src/main/java/bisq/asset/coins/BSQ.java (4)
    M assets/src/main/java/bisq/asset/coins/Bitcoin.java (5)
    M assets/src/main/java/bisq/asset/coins/BitcoinRhodium.java (5)
    M assets/src/main/java/bisq/asset/coins/Bitmark.java (5)
    M assets/src/main/java/bisq/asset/coins/CTSCoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Chaucha.java (7)
    M assets/src/main/java/bisq/asset/coins/Credits.java (7)
    M assets/src/main/java/bisq/asset/coins/DSTRA.java (5)
    M assets/src/main/java/bisq/asset/coins/DarkPay.java (5)
    M assets/src/main/java/bisq/asset/coins/Dash.java (5)
    M assets/src/main/java/bisq/asset/coins/DeepOnion.java (5)
    M assets/src/main/java/bisq/asset/coins/Dextro.java (9)
    M assets/src/main/java/bisq/asset/coins/Dogecoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Doichain.java (7)
    M assets/src/main/java/bisq/asset/coins/Donu.java (5)
    M assets/src/main/java/bisq/asset/coins/Emercoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Faircoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Fujicoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Galilel.java (5)
    M assets/src/main/java/bisq/asset/coins/GambleCoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Genesis.java (5)
    M assets/src/main/java/bisq/asset/coins/Hatch.java (5)
    M assets/src/main/java/bisq/asset/coins/Helium.java (6)
    M assets/src/main/java/bisq/asset/coins/IdaPay.java (5)
    M assets/src/main/java/bisq/asset/coins/Kekcoin.java (7)
    M assets/src/main/java/bisq/asset/coins/KnowYourDeveloper.java (5)
    M assets/src/main/java/bisq/asset/coins/Kore.java (5)
    M assets/src/main/java/bisq/asset/coins/LBRYCredits.java (5)
    M assets/src/main/java/bisq/asset/coins/Litecoin.java (5)
    M assets/src/main/java/bisq/asset/coins/LitecoinPlus.java (5)
    M assets/src/main/java/bisq/asset/coins/Lytix.java (6)
    M assets/src/main/java/bisq/asset/coins/MobitGlobal.java (5)
    M assets/src/main/java/bisq/asset/coins/MonetaryUnit.java (5)
    M assets/src/main/java/bisq/asset/coins/Myce.java (7)
    M assets/src/main/java/bisq/asset/coins/Navcoin.java (5)
    M assets/src/main/java/bisq/asset/coins/PIVX.java (5)
    M assets/src/main/java/bisq/asset/coins/PZDC.java (5)
    M assets/src/main/java/bisq/asset/coins/Particl.java (7)
    M assets/src/main/java/bisq/asset/coins/Pinkcoin.java (5)
    M assets/src/main/java/bisq/asset/coins/QMCoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Qbase.java (5)
    M assets/src/main/java/bisq/asset/coins/Radium.java (7)
    M assets/src/main/java/bisq/asset/coins/SUB1X.java (5)
    M assets/src/main/java/bisq/asset/coins/SixEleven.java (21)
    M assets/src/main/java/bisq/asset/coins/Spectrecoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Starwels.java (4)
    M assets/src/main/java/bisq/asset/coins/TetherUSDOmni.java (4)
    M assets/src/main/java/bisq/asset/coins/UnitedCommunityCoin.java (5)
    M assets/src/main/java/bisq/asset/coins/Veil.java (5)
    M assets/src/main/java/bisq/asset/coins/Vertcoin.java (5)
    M build.gradle (21)
    M common/src/main/java/bisq/common/crypto/Hash.java (2)
    M core/src/main/java/bisq/core/api/CoreWalletsService.java (2)
    M core/src/main/java/bisq/core/app/BisqSetup.java (2)
    M core/src/main/java/bisq/core/app/WalletAppSetup.java (2)
    M core/src/main/java/bisq/core/btc/exceptions/TxBroadcastTimeoutException.java (2)
    M core/src/main/java/bisq/core/btc/model/AddressEntry.java (3)
    M core/src/main/java/bisq/core/btc/model/AddressEntryList.java (7)
    M core/src/main/java/bisq/core/btc/nodes/BtcNodeConverter.java (17)
    D core/src/main/java/bisq/core/btc/setup/BisqDeterministicKeyChain.java (81)
    M core/src/main/java/bisq/core/btc/setup/BisqKeyChainFactory.java (51)
    D core/src/main/java/bisq/core/btc/setup/BisqKeyChainGroup.java (49)
    A core/src/main/java/bisq/core/btc/setup/BisqKeyChainGroupStructure.java (79)
    D core/src/main/java/bisq/core/btc/setup/BsqWallet.java (29)
    D core/src/main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java (82)
    M core/src/main/java/bisq/core/btc/setup/WalletConfig.java (639)
    M core/src/main/java/bisq/core/btc/setup/WalletsSetup.java (46)
    M core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java (19)
    M core/src/main/java/bisq/core/btc/wallet/BsqCoinSelector.java (4)
    M core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java (110)
    M core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java (33)
    M core/src/main/java/bisq/core/btc/wallet/NonBsqCoinSelector.java (2)
    M core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java (39)
    M core/src/main/java/bisq/core/btc/wallet/TxBroadcaster.java (5)
    M core/src/main/java/bisq/core/btc/wallet/WalletService.java (113)
    M core/src/main/java/bisq/core/btc/wallet/WalletsManager.java (2)
    M core/src/main/java/bisq/core/crypto/ScryptUtil.java (2)
    M core/src/main/java/bisq/core/dao/governance/asset/AssetService.java (2)
    M core/src/main/java/bisq/core/dao/governance/blindvote/MyBlindVoteListService.java (4)
    M core/src/main/java/bisq/core/dao/governance/blindvote/network/RepublishGovernanceDataHandler.java (3)
    M core/src/main/java/bisq/core/dao/governance/bond/BondRepository.java (7)
    M core/src/main/java/bisq/core/dao/governance/bond/lockup/LockupTxService.java (2)
    M core/src/main/java/bisq/core/dao/governance/bond/role/BondedRolesRepository.java (4)
    M core/src/main/java/bisq/core/dao/governance/bond/unlock/UnlockTxService.java (2)
    M core/src/main/java/bisq/core/dao/governance/proofofburn/ProofOfBurnService.java (4)
    M core/src/main/java/bisq/core/dao/governance/proposal/BaseProposalFactory.java (2)
    M core/src/main/java/bisq/core/dao/governance/proposal/MyProposalListService.java (2)
    M core/src/main/java/bisq/core/dao/governance/votereveal/VoteRevealService.java (4)
    M core/src/main/java/bisq/core/dao/monitoring/network/RequestStateHashesHandler.java (3)
    M core/src/main/java/bisq/core/dao/node/explorer/ExportJsonFilesService.java (3)
    M core/src/main/java/bisq/core/dao/node/full/RpcService.java (7)
    M core/src/main/java/bisq/core/dao/node/full/network/GetBlocksRequestHandler.java (3)
    M core/src/main/java/bisq/core/dao/node/lite/network/RequestBlocksHandler.java (3)
    M core/src/main/java/bisq/core/dao/state/model/governance/CompensationProposal.java (5)
    M core/src/main/java/bisq/core/dao/state/model/governance/ReimbursementProposal.java (5)
    M core/src/main/java/bisq/core/dao/state/unconfirmed/UnconfirmedTxOutput.java (2)
    M core/src/main/java/bisq/core/filter/FilterManager.java (2)
    M core/src/main/java/bisq/core/notifications/MobileNotificationService.java (3)
    M core/src/main/java/bisq/core/offer/placeoffer/tasks/CreateMakerFeeTx.java (6)
    M core/src/main/java/bisq/core/provider/fee/FeeRequest.java (3)
    M core/src/main/java/bisq/core/provider/fee/FeeService.java (3)
    M core/src/main/java/bisq/core/provider/price/PriceFeedService.java (3)
    M core/src/main/java/bisq/core/provider/price/PriceRequest.java (3)
    M core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationManager.java (9)
    M core/src/main/java/bisq/core/trade/DelayedPayoutTxValidation.java (2)
    M core/src/main/java/bisq/core/trade/Trade.java (11)
    M core/src/main/java/bisq/core/trade/TradeManager.java (6)
    M core/src/main/java/bisq/core/trade/protocol/ProcessModel.java (2)
    M core/src/main/java/bisq/core/trade/protocol/tasks/taker/CreateTakerFeeTx.java (2)
    M core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerPublishFeeTx.java (2)
    M core/src/main/java/bisq/core/trade/txproof/xmr/XmrTxProofRequest.java (3)
    M core/src/main/java/bisq/core/util/coin/BsqFormatter.java (5)
    M core/src/main/java/bisq/core/util/validation/BtcAddressValidator.java (3)
    M core/src/test/java/bisq/core/btc/nodes/BtcNodeConverterTest.java (21)
    M core/src/test/java/bisq/core/locale/MockTestnetCoin.java (4)
    M desktop/src/main/java/bisq/desktop/components/TxConfidenceListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/send/BsqSendView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/tx/BsqTxListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/locked/LockedListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareOpenOffer.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareTrade.java (11)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java (6)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsView.java (95)
    M desktop/src/main/java/bisq/desktop/main/funds/withdrawal/WithdrawalView.java (4)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferDataModel.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/BtcEmptyWalletWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ManualPayoutTxWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/SelectDepositTxWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/TradeDetailsWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/WalletPasswordWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java (14)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java (2)
    M desktop/src/main/java/bisq/desktop/util/GUIUtil.java (3)
    M desktop/src/test/java/bisq/desktop/main/funds/transactions/TransactionAwareTradeTest.java (17)
    M gradle/witness/gradle-witness.gradle (147)
    M monitor/src/main/java/bisq/monitor/metric/P2PSeedNodeSnapshotBase.java (5)
    M p2p/src/main/java/bisq/network/p2p/P2PService.java (5)
    M p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java (5)
    M p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java (2)
    M p2p/src/main/java/bisq/network/p2p/peers/BroadcastHandler.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/getdata/GetDataRequestHandler.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/getdata/RequestDataHandler.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveHandler.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/keepalive/KeepAliveManager.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/peerexchange/GetPeersRequestHandler.java (3)
    M p2p/src/main/java/bisq/network/p2p/peers/peerexchange/PeerExchangeHandler.java (3)
    M p2p/src/test/java/bisq/network/p2p/network/TorNetworkNodeTest.java (5)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/4509.patch
https://github.com/bisq-network/bisq/pull/4509.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/4509
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200909/42ca671d/attachment-0001.html>


More information about the bisq-github mailing list