fromXdr method

Asset fromXdr (
  1. XdrAsset xdrAsset
)

Generates an Asset object from a given XDR object xdr_asset.

Implementation

static Asset fromXdr(XdrAsset xdrAsset) {
  switch (xdrAsset.discriminant) {
    case XdrAssetType.ASSET_TYPE_NATIVE:
      return new AssetTypeNative();
    case XdrAssetType.ASSET_TYPE_CREDIT_ALPHANUM4:
      String assetCode4 =
          Util.paddedByteArrayToString(xdrAsset.alphaNum4.assetCode);
      KeyPair issuer4 =
          KeyPair.fromXdrPublicKey(xdrAsset.alphaNum4.issuer.accountID);
      return AssetTypeCreditAlphaNum4(assetCode4, issuer4.accountId);
    case XdrAssetType.ASSET_TYPE_CREDIT_ALPHANUM12:
      String assetCode12 =
          Util.paddedByteArrayToString(xdrAsset.alphaNum12.assetCode);
      KeyPair issuer12 =
          KeyPair.fromXdrPublicKey(xdrAsset.alphaNum12.issuer.accountID);
      return AssetTypeCreditAlphaNum12(assetCode12, issuer12.accountId);
    default:
      throw Exception(
          "Unknown asset type ${xdrAsset.discriminant.toString()}");
  }
}