fromXdr method
- 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;
}