createSubAccount method

Future createSubAccount({
  1. required List<String> symbols,
  2. required String name,
  3. required String email,
  4. required String phone,
  5. Map<String, dynamic>? metadata,
})

Implementation

Future<dynamic> createSubAccount({
  required List<String> symbols,
  required String name,
  required String email,
  required String phone,
  Map<String, dynamic>? metadata,
}) async {
  // 🔍 Validate each symbol against the enum values
  final invalidSymbols =
      symbols
          .where(
            (symbol) => !CurrenciesEnum.values.any((e) => e.value == symbol),
          )
          .toList();

  if (invalidSymbols.isNotEmpty) {
    throw ArgumentError(
      'Invalid currency symbol(s): ${invalidSymbols.join(', ')}',
    );
  }
  final owner = {"name": name, "email": email, "phone": phone};
  final body = json.encode({
    "symbols": symbols,
    "networks": ['bsc'],
    "owner": owner,
    "metadata": metadata,
  });
  final req = await NetworkService.sendRequest(
    requestId: 'createSubAccount',
    requestType: RequestType.post,
    url: Endpoints.verifyRoute,
    body: body,
  );
  return NetworkHelper.filterResponse(
    callBack: (json) {
      log("response is $json");
      return (json);
    },
    response: req,
    onFailureCallBackWithMessage: (errType, msg) {
      log('error type is $errType');
      log('error message is $msg');
      throw msg.toString();
    },
  );
}