getClaimableBalanceIdIdFromResult method

String? getClaimableBalanceIdIdFromResult(
  1. int position
)

Helper method that returns Claimable Balance Id for CreateClaimableBalance from TransactionResult Xdr. This is helpful when you need the created Claimable Balance ID to show it to the user

Implementation

String? getClaimableBalanceIdIdFromResult(int position) {
  if (!this.success) {
    return null;
  }

  XdrDataInputStream xdrInputStream =
      XdrDataInputStream(base64Decode(this.resultXdr!));
  XdrTransactionResult result;

  try {
    result = XdrTransactionResult.decode(xdrInputStream);
  } catch (e) {
    return null;
  }

  if (result.result.results[position] == null) {
    return null;
  }

  XdrOperationType? disc =
      (result.result.results[position] as XdrOperationResult)
          .tr!
          .discriminant;
  if (disc != XdrOperationType.CREATE_CLAIMABLE_BALANCE) {
    return null;
  }

  if ((result.result.results[position] as XdrOperationResult?)
          ?.tr!
          .createClaimableBalanceResult!
          .balanceID ==
      null) {
    return null;
  }

  return Util.bytesToHex((result.result.results[0] as XdrOperationResult)
      .tr!
      .createClaimableBalanceResult!
      .balanceID!
      .v0!
      .hash);
}