fix(useragent): upgraded to new protocol changes

This commit is contained in:
hdbg
2026-04-03 22:03:02 +02:00
parent bc45b9b9ce
commit e47ccc3108
74 changed files with 7446 additions and 4904 deletions

View File

@@ -1,22 +1,28 @@
import 'package:arbiter/features/connection/connection.dart';
import 'package:arbiter/proto/evm.pb.dart';
import 'package:arbiter/proto/user_agent/evm.pb.dart' as ua_evm;
import 'package:arbiter/proto/user_agent.pb.dart';
import 'package:fixnum/fixnum.dart';
import 'package:protobuf/well_known_types/google/protobuf/timestamp.pb.dart';
Future<List<GrantEntry>> listEvmGrants(Connection connection) async {
final request = EvmGrantListRequest();
final response = await connection.ask(
UserAgentRequest(evmGrantList: request),
UserAgentRequest(evm: ua_evm.Request(grantList: request)),
);
if (!response.hasEvmGrantList()) {
if (!response.hasEvm()) {
throw Exception(
'Expected EVM grant list response, got ${response.whichPayload()}',
'Expected EVM response, got ${response.whichPayload()}',
);
}
final result = response.evmGrantList;
final evmResponse = response.evm;
if (!evmResponse.hasGrantList()) {
throw Exception(
'Expected EVM grant list response, got ${evmResponse.whichPayload()}',
);
}
final result = evmResponse.grantList;
switch (result.whichResult()) {
case EvmGrantListResponse_Result.grants:
return result.grants.grants.toList(growable: false);
@@ -33,36 +39,56 @@ Future<int> createEvmGrant(
required SpecificGrant specific,
}) async {
final request = UserAgentRequest(
evmGrantCreate: EvmGrantCreateRequest(
shared: sharedSettings,
specific: specific,
evm: ua_evm.Request(
grantCreate: EvmGrantCreateRequest(
shared: sharedSettings,
specific: specific,
),
),
);
final resp = await connection.ask(request);
if (!resp.hasEvmGrantCreate()) {
if (!resp.hasEvm()) {
throw Exception(
'Expected EVM grant create response, got ${resp.whichPayload()}',
'Expected EVM response, got ${resp.whichPayload()}',
);
}
final result = resp.evmGrantCreate;
final evmResponse = resp.evm;
if (!evmResponse.hasGrantCreate()) {
throw Exception(
'Expected EVM grant create response, got ${evmResponse.whichPayload()}',
);
}
final result = evmResponse.grantCreate;
return result.grantId;
}
Future<void> deleteEvmGrant(Connection connection, int grantId) async {
final response = await connection.ask(
UserAgentRequest(evmGrantDelete: EvmGrantDeleteRequest(grantId: grantId)),
UserAgentRequest(
evm: ua_evm.Request(
grantDelete: EvmGrantDeleteRequest(grantId: grantId),
),
),
);
if (!response.hasEvmGrantDelete()) {
if (!response.hasEvm()) {
throw Exception(
'Expected EVM grant delete response, got ${response.whichPayload()}',
'Expected EVM response, got ${response.whichPayload()}',
);
}
final result = response.evmGrantDelete;
final evmResponse = response.evm;
if (!evmResponse.hasGrantDelete()) {
throw Exception(
'Expected EVM grant delete response, got ${evmResponse.whichPayload()}',
);
}
final result = evmResponse.grantDelete;
switch (result.whichResult()) {
case EvmGrantDeleteResponse_Result.ok:
return;
@@ -73,13 +99,6 @@ Future<void> deleteEvmGrant(Connection connection, int grantId) async {
}
}
Timestamp _toTimestamp(DateTime value) {
final utc = value.toUtc();
return Timestamp()
..seconds = Int64(utc.millisecondsSinceEpoch ~/ 1000)
..nanos = (utc.microsecondsSinceEpoch % 1000000) * 1000;
}
String _describeGrantError(EvmError error) {
return switch (error) {
EvmError.EVM_ERROR_VAULT_SEALED =>