/** * Gets the destination address from this script, if it's in the required form (see getPubKey). * * @param forcePayToPubKey * If true, allow payToPubKey to be casted to the corresponding address. This is useful if you prefer * showing addresses rather than pubkeys. */ public Address getToAddress(NetworkParameters params, boolean forcePayToPubKey) throws ScriptException { if (isSentToAddress()) return new Address(params, getPubKeyHash()); else if (isPayToScriptHash()) return Address.fromP2SHScript(params, this); else if (isSentToP2WPKH()) return Address.fromP2WPKHHash(params, getPubKeyHash()); else if (isSentToP2WSH()) return Address.fromP2WSHHash(params, getPubKeyHash()); else if (forcePayToPubKey && isSentToRawPubKey()) return ECKey.fromPublicOnly(getPubKey()).toAddress(params); else throw new ScriptException("Cannot cast this script to a pay-to-address type"); }