feat(useragent): bootstrap / unseal flow implementattion
This commit is contained in:
27
useragent/lib/providers/vault_state.dart
Normal file
27
useragent/lib/providers/vault_state.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/providers/connection/connection_manager.dart';
|
||||
import 'package:mtcore/markettakers.dart';
|
||||
import 'package:protobuf/well_known_types/google/protobuf/empty.pb.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'vault_state.g.dart';
|
||||
|
||||
@riverpod
|
||||
Future<VaultState?> vaultState(Ref ref) async {
|
||||
final conn = await ref.watch(connectionManagerProvider.future);
|
||||
if (conn == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
await conn.send(UserAgentRequest(queryVaultState: Empty()));
|
||||
|
||||
final resp = await conn.receive();
|
||||
if (resp.whichPayload() != UserAgentResponse_Payload.vaultState) {
|
||||
talker.warning('Expected vault state response, got ${resp.whichPayload()}');
|
||||
return null;
|
||||
}
|
||||
|
||||
final vaultState = resp.vaultState;
|
||||
|
||||
return vaultState;
|
||||
}
|
||||
Reference in New Issue
Block a user