fromXdr method

Operation fromXdr (
  1. XdrOperation xdrOp
)

Returns Operation object from an Operation XDR object xdrOp.

Implementation

static Operation fromXdr(XdrOperation xdrOp) {
  XdrOperationBody body = xdrOp.body;
  Operation operation;
  switch (body.discriminant) {
    case XdrOperationType.CREATE_ACCOUNT:
      operation =
          CreateAccountOperation.builder(body.createAccountOp).build();
      break;
    case XdrOperationType.PAYMENT:
      operation = PaymentOperation.builder(body.paymentOp).build();
      break;
    case XdrOperationType.PATH_PAYMENT_STRICT_RECEIVE:
      operation = PathPaymentStrictReceiveOperation.builder(
              body.pathPaymentStrictReceiveOp)
          .build();
      break;
    case XdrOperationType.MANAGE_SELL_OFFER:
      operation =
          ManageSellOfferOperation.builder(body.manageSellOfferOp).build();
      break;
    case XdrOperationType.CREATE_PASSIVE_SELL_OFFER:
      operation = CreatePassiveSellOfferOperation.builder(
              body.createPassiveSellOfferOp)
          .build();
      break;
    case XdrOperationType.SET_OPTIONS:
      operation = SetOptionsOperation.builder(body.setOptionsOp).build();
      break;
    case XdrOperationType.CHANGE_TRUST:
      operation = ChangeTrustOperation.builder(body.changeTrustOp).build();
      break;
    case XdrOperationType.ALLOW_TRUST:
      operation = AllowTrustOperation.builder(body.allowTrustOp).build();
      break;
    case XdrOperationType.ACCOUNT_MERGE:
      operation = AccountMergeOperation.builder(body).build();
      break;
    case XdrOperationType.MANAGE_DATA:
      operation = ManageDataOperation.builder(body.manageDataOp).build();
      break;
    case XdrOperationType.BUMP_SEQUENCE:
      operation = BumpSequenceOperation.builder(body.bumpSequenceOp).build();
      break;
    case XdrOperationType.MANAGE_BUY_OFFER:
      operation =
          ManageBuyOfferOperation.builder(body.manageBuyOfferOp).build();
      break;
    case XdrOperationType.PATH_PAYMENT_STRICT_SEND:
      operation =
          PathPaymentStrictSendOperation.builder(body.pathPaymentStrictSendOp)
              .build();
      break;
    case XdrOperationType.BEGIN_SPONSORING_FUTURE_RESERVES:
      final op = BeginSponsoringFutureReservesOperation.builder(
          body.beginSponsoringFutureReservesOp);
      operation =
          BeginSponsoringFutureReservesOperationBuilder(op.sponsoredId)
              .build();
      break;
    case XdrOperationType.END_SPONSORING_FUTURE_RESERVES:
      operation = EndSponsoringFutureReservesOperationBuilder().build();
      break;
    default:
      throw Exception("Unknown operation body ${body.discriminant}");
  }
  if (xdrOp.sourceAccount != null) {
    operation.sourceAccount = MuxedAccount.fromXdr(xdrOp.sourceAccount);
  }
  return operation;
}