Skip to content
Snippets Groups Projects
Commit 6495f4bc authored by vjrj's avatar vjrj
Browse files

Allow to conditionally raise an exception or not

parent ae180ae2
No related branches found
No related tags found
1 merge request!1History, deps updated and correct exception parsing
......@@ -21,3 +21,4 @@ export 'src/crypto/dewif.dart'
show Dewif, randomSecretCode, ChecksumException, NewWallet;
export 'src/crypto/cesium_wallet.dart' show CesiumWallet;
export 'src/gva/gva.dart' show Gva;
export 'src/gva/transaction.dart' show GraphQLException;
......@@ -96,7 +96,7 @@ class Gva {
int? derivation,
String comment = '',
bool ud = false,
bool useMempool = false}) async {
bool useMempool = false, bool raiseException = false}) async {
Transaction transaction;
if (ud) {
......@@ -120,7 +120,7 @@ class Gva {
client: _client);
// Execute transaction
return await transaction.process();
return await transaction.process(raiseException);
}
Future<Map<String,dynamic>?> history(String pubkey,[ int? pageSize, String? cursor]) async {
......@@ -140,6 +140,7 @@ class Gva {
} else if (result.data != null) {
return result.data;
}
return null;
}
}
......
......@@ -193,7 +193,7 @@ class Transaction {
return false;
}
Future<String> process() async {
Future<String> process([bool raiseException = false]) async {
try {
final List transDocs = await _generateTransactionDocument();
if (_checkTransactionDocument(transDocs)) {
......@@ -204,6 +204,9 @@ class Transaction {
return 'Transaction document is not valid.';
}
} on GraphQLException catch (e) {
if (raiseException) {
rethrow;
}
List<String> eCause = e.cause.split('message: ');
return eCause.isNotEmpty? eCause[eCause.length>1? 1:0].split(',')[0]:'Transaction failed for unknown reason';
} on MySelfException catch (e) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment