fromXdr static method
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.CREATE_CLAIMABLE_BALANCE:
operation = CreateClaimableBalanceOperation.builder(
body.createClaimableBalanceOp!)
.build();
break;
case XdrOperationType.CLAIM_CLAIMABLE_BALANCE:
operation = ClaimClaimableBalanceOperation.builder(
body.claimClaimableBalanceOp!)
.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;
case XdrOperationType.REVOKE_SPONSORSHIP:
operation =
RevokeSponsorshipOperation.fromXdr(body.revokeSponsorshipOp!)!;
break;
case XdrOperationType.CLAWBACK:
operation = ClawbackOperation.builder(body.clawbackOp!).build();
break;
case XdrOperationType.CLAWBACK_CLAIMABLE_BALANCE:
operation = ClawbackClaimableBalanceOperation.builder(
body.clawbackClaimableBalanceOp!)
.build();
break;
case XdrOperationType.SET_TRUST_LINE_FLAGS:
operation =
SetTrustLineFlagsOperation.builder(body.setTrustLineFlagsOp!)
.build();
break;
case XdrOperationType.LIQUIDITY_POOL_DEPOSIT:
operation =
LiquidityPoolDepositOperation.builder(body.liquidityPoolDepositOp!)
.build();
break;
case XdrOperationType.LIQUIDITY_POOL_WITHDRAW:
operation = LiquidityPoolWithdrawOperation.builder(
body.liquidityPoolWithdrawOp!)
.build();
break;
case XdrOperationType.INVOKE_HOST_FUNCTION:
operation =
InvokeHostFunctionOperation.builder(body.invokeHostFunctionOp!)
.build();
break;
case XdrOperationType.EXTEND_FOOTPRINT_TTL:
operation =
ExtendFootprintTTLOperation.builder(body.bumpExpirationOp!)
.build();
break;
case XdrOperationType.RESTORE_FOOTPRINT:
operation =
RestoreFootprintOperation.builder(body.restoreFootprintOp!)
.build();
break;
default:
throw Exception("Unknown operation body ${body.discriminant}");
}
if (xdrOp.sourceAccount != null) {
operation.sourceAccount = MuxedAccount.fromXdr(xdrOp.sourceAccount!);
}
return operation;
}