Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Pending

### Update:
- refactor: add validation for asset issuer. ([#725](https://github.com/stellar/java-stellar-sdk/pull/725))

## 2.0.0-beta1

### Update:
Expand Down
15 changes: 2 additions & 13 deletions src/main/java/org/stellar/sdk/Asset.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,24 +64,13 @@ public static Asset create(String type, String code, String issuer) {
* @param xdr XDR object
*/
public static Asset fromXdr(org.stellar.sdk.xdr.Asset xdr) {
String accountId;
switch (xdr.getDiscriminant()) {
case ASSET_TYPE_NATIVE:
return new AssetTypeNative();
case ASSET_TYPE_CREDIT_ALPHANUM4:
String assetCode4 =
Util.paddedByteArrayToString(xdr.getAlphaNum4().getAssetCode().getAssetCode4());
accountId =
StrKey.encodeEd25519PublicKey(
xdr.getAlphaNum4().getIssuer().getAccountID().getEd25519().getUint256());
return new AssetTypeCreditAlphaNum4(assetCode4, accountId);
return AssetTypeCreditAlphaNum4.fromXdr(xdr.getAlphaNum4());
case ASSET_TYPE_CREDIT_ALPHANUM12:
String assetCode12 =
Util.paddedByteArrayToString(xdr.getAlphaNum12().getAssetCode().getAssetCode12());
accountId =
StrKey.encodeEd25519PublicKey(
xdr.getAlphaNum12().getIssuer().getAccountID().getEd25519().getUint256());
return new AssetTypeCreditAlphaNum12(assetCode12, accountId);
return AssetTypeCreditAlphaNum12.fromXdr(xdr.getAlphaNum12());
default:
throw new IllegalArgumentException("Unknown asset type " + xdr.getDiscriminant());
}
Expand Down
19 changes: 17 additions & 2 deletions src/main/java/org/stellar/sdk/AssetTypeCreditAlphaNum.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.stellar.sdk;

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;
Expand All @@ -12,7 +11,6 @@
* href="https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/assets"
* target="_blank">Assets</a>
*/
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Getter
public abstract class AssetTypeCreditAlphaNum extends Asset {
Expand All @@ -22,6 +20,23 @@ public abstract class AssetTypeCreditAlphaNum extends Asset {
/** Asset issuer */
@NonNull protected final String issuer;

/**
* Class constructor
*
* @param code Asset code
* @param issuer Asset issuer
* @throws IllegalArgumentException when code is invalid or issuer is not a valid Ed25519 public
* key
*/
public AssetTypeCreditAlphaNum(@NonNull String code, @NonNull String issuer) {
if (!StrKey.isValidEd25519PublicKey(issuer)) {
throw new IllegalArgumentException("Invalid issuer: " + issuer);
}

this.code = code;
this.issuer = issuer;
}

@Override
public String toString() {
return getCode() + ":" + getIssuer();
Expand Down
238 changes: 0 additions & 238 deletions src/test/java/org/stellar/sdk/AssetTest.java

This file was deleted.

Loading