mirror of
https://github.com/sparrowwallet/drongo.git
synced 2024-12-25 17:46:44 +00:00
support serialization of psbts without non witness utxo input entries
This commit is contained in:
parent
0f78efc373
commit
7eab644cec
2 changed files with 7 additions and 6 deletions
|
@ -461,10 +461,10 @@ public class PSBT {
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] serialize() {
|
public byte[] serialize() {
|
||||||
return serialize(true);
|
return serialize(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] serialize(boolean includeXpubs) {
|
public byte[] serialize(boolean includeXpubs, boolean includeNonWitnessUtxos) {
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
|
||||||
baos.writeBytes(Utils.hexToBytes(PSBT_MAGIC_HEX));
|
baos.writeBytes(Utils.hexToBytes(PSBT_MAGIC_HEX));
|
||||||
|
@ -481,8 +481,9 @@ public class PSBT {
|
||||||
for(PSBTInput psbtInput : getPsbtInputs()) {
|
for(PSBTInput psbtInput : getPsbtInputs()) {
|
||||||
List<PSBTEntry> inputEntries = psbtInput.getInputEntries();
|
List<PSBTEntry> inputEntries = psbtInput.getInputEntries();
|
||||||
for(PSBTEntry entry : inputEntries) {
|
for(PSBTEntry entry : inputEntries) {
|
||||||
if(includeXpubs || (entry.getKeyType() != PSBT_IN_BIP32_DERIVATION && entry.getKeyType() != PSBT_IN_PROPRIETARY
|
if((includeXpubs || (entry.getKeyType() != PSBT_IN_BIP32_DERIVATION && entry.getKeyType() != PSBT_IN_PROPRIETARY
|
||||||
&& entry.getKeyType() != PSBT_IN_TAP_INTERNAL_KEY && entry.getKeyType() != PSBT_IN_TAP_BIP32_DERIVATION)) {
|
&& entry.getKeyType() != PSBT_IN_TAP_INTERNAL_KEY && entry.getKeyType() != PSBT_IN_TAP_BIP32_DERIVATION))
|
||||||
|
&& (includeNonWitnessUtxos || entry.getKeyType() != PSBT_IN_NON_WITNESS_UTXO)) {
|
||||||
entry.serializeToStream(baos);
|
entry.serializeToStream(baos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -630,7 +631,7 @@ public class PSBT {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toBase64String(boolean includeXpubs) {
|
public String toBase64String(boolean includeXpubs) {
|
||||||
return Base64.toBase64String(serialize(includeXpubs));
|
return Base64.toBase64String(serialize(includeXpubs, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isPSBT(byte[] b) {
|
public static boolean isPSBT(byte[] b) {
|
||||||
|
|
|
@ -51,7 +51,7 @@ public enum WalletModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean alwaysIncludeNonWitnessUtxo() {
|
public boolean alwaysIncludeNonWitnessUtxo() {
|
||||||
if(this == COLDCARD || this == COBO_VAULT || this == PASSPORT || this == KEYSTONE || this == GORDIAN_SEED_TOOL) {
|
if(this == COLDCARD || this == COBO_VAULT || this == PASSPORT || this == KEYSTONE || this == GORDIAN_SEED_TOOL || this == SEEDSIGNER) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue