3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-13 02:35:52 +00:00

DeterministicKey, ECKey: In toString(), add a comment so that the role of the key in a keychain becomes clear.

This commit is contained in:
Andreas Schildbach 2019-02-19 11:58:05 +01:00
parent 09d5d33313
commit 4baeeaf44a
4 changed files with 25 additions and 6 deletions

View File

@ -1290,7 +1290,7 @@ public class ECKey implements EncryptableItem {
}
public void formatKeyWithAddress(boolean includePrivateKeys, @Nullable KeyParameter aesKey, StringBuilder builder,
NetworkParameters params, Script.ScriptType outputScriptType) {
NetworkParameters params, Script.ScriptType outputScriptType, @Nullable String comment) {
builder.append(" addr:");
if (outputScriptType != null) {
builder.append(Address.fromKey(params, this, outputScriptType));
@ -1306,6 +1306,8 @@ public class ECKey implements EncryptableItem {
if (creationTimeSeconds > 0)
builder.append(" creationTimeSeconds:").append(creationTimeSeconds).append(" [")
.append(Utils.dateTimeFormat(creationTimeSeconds * 1000)).append("]");
if (comment != null)
builder.append(" (").append(comment).append(")");
builder.append("\n");
if (includePrivateKeys) {
builder.append(" ");

View File

@ -632,10 +632,13 @@ public class DeterministicKey extends ECKey {
@Override
public void formatKeyWithAddress(boolean includePrivateKeys, @Nullable KeyParameter aesKey, StringBuilder builder,
NetworkParameters params, Script.ScriptType outputScriptType) {
NetworkParameters params, Script.ScriptType outputScriptType, @Nullable String comment) {
builder.append(" addr:").append(Address.fromKey(params, this, outputScriptType).toString());
builder.append(" hash160:").append(Utils.HEX.encode(getPubKeyHash()));
builder.append(" (").append(getPathAsString()).append(")\n");
builder.append(" (").append(getPathAsString());
if (comment != null)
builder.append(", ").append(comment);
builder.append(")\n");
if (includePrivateKeys) {
builder.append(" ").append(toStringWithPrivate(aesKey, params)).append("\n");
}

View File

@ -626,7 +626,7 @@ public class BasicKeyChain implements EncryptableKeyChain {
List<ECKey> keys = getKeys();
Collections.sort(keys, ECKey.AGE_COMPARATOR);
for (ECKey key : keys)
key.formatKeyWithAddress(includePrivateKeys, aesKey, builder, params, null);
key.formatKeyWithAddress(includePrivateKeys, aesKey, builder, params, null, "imported");
return builder.toString();
}
}

View File

@ -1402,8 +1402,22 @@ public class DeterministicKeyChain implements EncryptableKeyChain {
protected void formatAddresses(boolean includePrivateKeys, @Nullable KeyParameter aesKey, NetworkParameters params,
StringBuilder builder) {
for (ECKey key : getKeys(false, true))
key.formatKeyWithAddress(includePrivateKeys, aesKey, builder, params, outputScriptType);
for (DeterministicKey key : getKeys(false, true)) {
String comment = null;
if (key.equals(rootKey))
comment = "root";
else if (key.equals(getWatchingKey()))
comment = "account";
else if (key.equals(internalParentKey))
comment = "internal";
else if (key.equals(externalParentKey))
comment = "external";
else if (internalParentKey.equals(key.getParent()) && key.getChildNumber().i() >= issuedInternalKeys)
comment = "*";
else if (externalParentKey.equals(key.getParent()) && key.getChildNumber().i() >= issuedExternalKeys)
comment = "*";
key.formatKeyWithAddress(includePrivateKeys, aesKey, builder, params, outputScriptType, comment);
}
}
/** The number of signatures required to spend coins received by this keychain. */