sendRequest method
Future<Json>
sendRequest(
- dynamic request
)
override
Implementation
@override
Future<Json> sendRequest(dynamic request) async {
if (_gateway == null || _session.walletPublicKey == null) {
throw TonConnectError('Trying to send bridge request without session.');
}
final keyConnection = await _storage.getItem(key: IStorage.keyConnection, defaultValue: '{}');
var connection = jsonDecode(keyConnection!) as Json;
var id = connection['next_rpc_request_id'] != null
? connection['next_rpc_request_id'].toString()
: '0';
connection['next_rpc_request_id'] = (int.parse(id) + 1).toString();
await _storage.setItem(key: IStorage.keyConnection, value: jsonEncode(connection));
request['id'] = id;
logger.d('Provider send http-bridge request: $request');
final encodedRequest = _session.sessionCrypto.encrypt(
jsonEncode(request),
_session.walletPublicKey!,
);
await _gateway!.send(encodedRequest, _session.walletPublicKey!, request['method']);
final completer = Completer<Json>();
_pendingRequests[id] = completer;
return _pendingRequests;
}