@@ -6,6 +6,7 @@ import 'package:tbdex/src/http_client/exceptions/validation_exceptions.dart';
6
6
import 'package:tbdex/src/http_client/models/create_exchange_request.dart' ;
7
7
import 'package:tbdex/src/http_client/models/exchange.dart' ;
8
8
import 'package:tbdex/src/http_client/models/get_offerings_filter.dart' ;
9
+ import 'package:tbdex/src/http_client/models/submit_cancel_request.dart' ;
9
10
import 'package:tbdex/src/http_client/models/submit_close_request.dart' ;
10
11
import 'package:tbdex/src/http_client/models/submit_order_request.dart' ;
11
12
import 'package:tbdex/src/protocol/models/balance.dart' ;
@@ -15,6 +16,7 @@ import 'package:tbdex/src/protocol/models/order.dart';
15
16
import 'package:tbdex/src/protocol/models/rfq.dart' ;
16
17
import 'package:tbdex/src/protocol/parser.dart' ;
17
18
import 'package:tbdex/src/protocol/validator.dart' ;
19
+ import 'package:tbdex/tbdex.dart' ;
18
20
import 'package:typeid/typeid.dart' ;
19
21
import 'package:web5/web5.dart' ;
20
22
@@ -247,6 +249,20 @@ class TbdexHttpClient {
247
249
await _submitMessage (pfiDid, body, exchangeId: exchangeId);
248
250
}
249
251
252
+ static Future <void > submitCancel (Cancel cancel) async {
253
+ try {
254
+ Validator .validateMessage (cancel);
255
+ } on Exception catch (e) {
256
+ throw ValidationError (message: 'invalid cancel message' , cause: e);
257
+ }
258
+
259
+ final pfiDid = cancel.metadata.to;
260
+ final exchangeId = cancel.metadata.exchangeId;
261
+ final body = jsonEncode (SubmitCancelRequest (cancel: cancel));
262
+
263
+ await _submitMessage (pfiDid, body, exchangeId: exchangeId);
264
+ }
265
+
250
266
static Future <void > _submitMessage (
251
267
String pfiDid,
252
268
String requestBody, {
0 commit comments