Skip to content

Commit

Permalink
Support muxed accounts by default. (#399)
Browse files Browse the repository at this point in the history
* Support muxed accounts by default.

Previously, in #348 we added opt in support for muxed.
But, by default, we rendered muxed accounts in their non muxed encoding.
We are now changing the default behavior so that muxed accounts are rendered using ther 'M' address encoding.
  • Loading branch information
tamirms authored Jan 10, 2022
1 parent 312092d commit ae4f0d1
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 30 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ As this project is pre 1.0, breaking changes may happen for minor version bumps.
### Breaking changes
* org.stellar.sdk.Asset.createNonNativeAsset() is now private. ([#398](https://github.com/stellar/java-stellar-sdk/pull/398)).
* org.stellar.sdk.responses.effects.TrustlineCUDResponse, removed non-default public constructor, it wasn't needed. ([#398](https://github.com/stellar/java-stellar-sdk/pull/398)).
* Muxed accounts are now supported by default. Previously we added opt in support for muxed accounts. But now we are changing the default behavior so that muxed accounts are rendered using their 'M' address encoding ([#399](https://github.com/stellar/java-stellar-sdk/pull/399)).

## 0.30.0

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/stellar/sdk/AbstractTransaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public static AbstractTransaction fromEnvelopeXdr(AccountConverter accountConver
* @return
*/
public static AbstractTransaction fromEnvelopeXdr(TransactionEnvelope envelope, Network network) {
return fromEnvelopeXdr(AccountConverter.disableMuxed(), envelope, network);
return fromEnvelopeXdr(AccountConverter.enableMuxed(), envelope, network);
}

/**
Expand All @@ -150,7 +150,7 @@ public static AbstractTransaction fromEnvelopeXdr(AccountConverter accountConver
* @throws IOException
*/
public static AbstractTransaction fromEnvelopeXdr(String envelope, Network network) throws IOException {
return fromEnvelopeXdr(AccountConverter.disableMuxed(), envelope, network);
return fromEnvelopeXdr(AccountConverter.enableMuxed(), envelope, network);
}

public static byte[] getTransactionSignatureBase(TransactionSignaturePayload.TransactionSignaturePayloadTaggedTransaction taggedTransaction,
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/stellar/sdk/FeeBumpTransaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static FeeBumpTransaction fromFeeBumpTransactionEnvelope(AccountConverter
}

public static FeeBumpTransaction fromFeeBumpTransactionEnvelope(FeeBumpTransactionEnvelope envelope, Network network) {
return fromFeeBumpTransactionEnvelope(AccountConverter.disableMuxed(), envelope, network);
return fromFeeBumpTransactionEnvelope(AccountConverter.enableMuxed(), envelope, network);
}

private org.stellar.sdk.xdr.FeeBumpTransaction toXdr() {
Expand Down Expand Up @@ -140,7 +140,7 @@ public Builder(AccountConverter accountConverter, Transaction inner) {
* @param inner The inner transaction which will be fee bumped.
*/
public Builder(Transaction inner) {
this(AccountConverter.disableMuxed(), inner);
this(AccountConverter.enableMuxed(), inner);
}

public FeeBumpTransaction.Builder setBaseFee(long baseFee) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/stellar/sdk/Operation.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public org.stellar.sdk.xdr.Operation toXdr(AccountConverter accountConverter) {
* Generates Operation XDR object.
*/
public org.stellar.sdk.xdr.Operation toXdr() {
return toXdr(AccountConverter.disableMuxed());
return toXdr(AccountConverter.enableMuxed());
}

/**
Expand All @@ -70,7 +70,7 @@ public String toXdrBase64(AccountConverter accountConverter) {
* Returns base64-encoded Operation XDR object.
*/
public String toXdrBase64() {
return toXdrBase64(AccountConverter.disableMuxed());
return toXdrBase64(AccountConverter.enableMuxed());
}


Expand Down Expand Up @@ -199,7 +199,7 @@ public static Operation fromXdr(AccountConverter accountConverter, org.stellar.s
* @param xdr XDR object
*/
public static Operation fromXdr(org.stellar.sdk.xdr.Operation xdr) {
return fromXdr(AccountConverter.disableMuxed(), xdr);
return fromXdr(AccountConverter.enableMuxed(), xdr);
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/stellar/sdk/Sep10Challenge.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public static Transaction newChallenge(
.setSourceAccount(sourceAccount.getAccountId())
.build();

Transaction.Builder builder = new Transaction.Builder(AccountConverter.disableMuxed(), sourceAccount, network)
Transaction.Builder builder = new Transaction.Builder(AccountConverter.enableMuxed(), sourceAccount, network)
.addTimeBounds(timebounds)
.setBaseFee(100)
.addOperation(domainNameOperation)
Expand Down Expand Up @@ -137,7 +137,7 @@ public static ChallengeTransaction readChallengeTransaction(String challengeXdr,
}

// decode the received input as a base64-urlencoded XDR representation of Stellar transaction envelope
AbstractTransaction parsed = Transaction.fromEnvelopeXdr(AccountConverter.disableMuxed(), challengeXdr, network);
AbstractTransaction parsed = Transaction.fromEnvelopeXdr(AccountConverter.enableMuxed(), challengeXdr, network);
if (!(parsed instanceof Transaction)) {
throw new InvalidSep10ChallengeException("Transaction cannot be a fee bump transaction");
}
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/org/stellar/sdk/Transaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ private TransactionV0 toXdr() {
// operations
org.stellar.sdk.xdr.Operation[] operations = new org.stellar.sdk.xdr.Operation[mOperations.length];
for (int i = 0; i < mOperations.length; i++) {
operations[i] = mOperations[i].toXdr(AccountConverter.disableMuxed());
operations[i] = mOperations[i].toXdr(AccountConverter.enableMuxed());
}
// ext
TransactionV0.TransactionV0Ext ext = new TransactionV0.TransactionV0Ext();
Expand Down Expand Up @@ -223,7 +223,7 @@ public static Transaction fromV0EnvelopeXdr(AccountConverter accountConverter, T
}

public static Transaction fromV0EnvelopeXdr(TransactionV0Envelope envelope, Network network) {
return fromV0EnvelopeXdr(AccountConverter.disableMuxed(), envelope, network);
return fromV0EnvelopeXdr(AccountConverter.enableMuxed(), envelope, network);
}

public static Transaction fromV1EnvelopeXdr(AccountConverter accountConverter, TransactionV1Envelope envelope, Network network) {
Expand Down Expand Up @@ -254,7 +254,7 @@ public static Transaction fromV1EnvelopeXdr(AccountConverter accountConverter, T
}

public static Transaction fromV1EnvelopeXdr(TransactionV1Envelope envelope, Network network) {
return fromV1EnvelopeXdr(AccountConverter.disableMuxed(), envelope, network);
return fromV1EnvelopeXdr(AccountConverter.enableMuxed(), envelope, network);
}

/**
Expand Down Expand Up @@ -320,7 +320,7 @@ public Builder(AccountConverter accountConverter, TransactionBuilderAccount sour
* will be incremented.
*/
public Builder(TransactionBuilderAccount sourceAccount, Network network) {
this(AccountConverter.disableMuxed(), sourceAccount, network);
this(AccountConverter.enableMuxed(), sourceAccount, network);
}

public int getOperationsCount() {
Expand Down
34 changes: 17 additions & 17 deletions src/test/java/org/stellar/sdk/OperationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ public void testMuxedPaymentOperation() throws FormatException, IOException, Ass
assertEquals(destination, parsedOperation.getDestination());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (PaymentOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
assertEquals("GDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKTL3", parsedOperation.getDestination());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
parsedOperation = (PaymentOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals("MDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKAAAAAAMV7V2XYGQO", parsedOperation.getDestination());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand Down Expand Up @@ -200,9 +200,9 @@ public void testMuxedPathPaymentStrictReceiveOperation() throws FormatException,
assertEquals(destination, parsedOperation.getDestination());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (PathPaymentStrictReceiveOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
assertEquals("GDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKTL3", parsedOperation.getDestination());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
parsedOperation = (PathPaymentStrictReceiveOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals("MDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKAAAAAAMV7V2XYGQO", parsedOperation.getDestination());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand Down Expand Up @@ -316,9 +316,9 @@ public void testMuxedPathPaymentStrictSendOperation() throws FormatException, IO
assertEquals(destination, parsedOperation.getDestination());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (PathPaymentStrictSendOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
assertEquals("GDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKTL3", parsedOperation.getDestination());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
parsedOperation = (PathPaymentStrictSendOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals("MDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKAAAAAAMV7V2XYGQO", parsedOperation.getDestination());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand Down Expand Up @@ -729,9 +729,9 @@ public void testMuxedAccountMergeOperation() throws IOException, FormatException
assertEquals(destination, parsedOperation.getDestination());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (AccountMergeOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
assertEquals("GDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKTL3", parsedOperation.getDestination());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
parsedOperation = (AccountMergeOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals("MDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKAAAAAAMV7V2XYGQO", parsedOperation.getDestination());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand Down Expand Up @@ -1044,9 +1044,9 @@ public void testMuxedClawbackOperation() throws IOException, FormatException {
assertEquals(from, parsedOperation.getFrom());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (ClawbackOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
assertEquals("GDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKTL3", parsedOperation.getFrom());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
parsedOperation = (ClawbackOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals("MDQNY3PBOJOKYZSRMK2S7LHHGWZIUISD4QORETLMXEWXBI7KFZZMKAAAAAAMV7V2XYGQO", parsedOperation.getFrom());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand All @@ -1064,9 +1064,9 @@ public void testMixedMuxedClawbackOperation() throws IOException, FormatExceptio
assertEquals(from, parsedOperation.getFrom());
assertEquals(source, parsedOperation.getSourceAccount());

parsedOperation = (ClawbackOperation) Operation.fromXdr(AccountConverter.disableMuxed(), xdr);
parsedOperation = (ClawbackOperation) Operation.fromXdr(AccountConverter.enableMuxed(), xdr);
assertEquals(from, parsedOperation.getFrom());
assertEquals("GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", parsedOperation.getSourceAccount());
assertEquals("MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", parsedOperation.getSourceAccount());
}

@Test
Expand Down

0 comments on commit ae4f0d1

Please sign in to comment.