createSubAccount method
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();
},
);
}