feat(useragent): initial impl

This commit is contained in:
hdbg
2026-03-04 15:27:27 +01:00
parent ccd657c9ec
commit 62c4bc5ade
78 changed files with 10635 additions and 223 deletions

View File

@@ -0,0 +1,118 @@
import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:sizer/sizer.dart';
const transitionDuration = Duration(milliseconds: 800);
class AdaptiveBuilders {
WidgetBuilder? buildSmall;
WidgetBuilder? buildMediumLarge;
WidgetBuilder? buildLarge;
WidgetBuilder? buildExtraLarge;
WidgetBuilder? build;
AdaptiveBuilders({
this.buildSmall,
this.buildMediumLarge,
this.buildLarge,
this.buildExtraLarge,
this.build,
});
}
class Destination {
final String label;
final String? tooltip;
final Icon icon;
final Icon? selectedIcon;
final AdaptiveBuilders main;
final AdaptiveBuilders? secondary;
Destination({
required this.label,
required this.icon,
this.selectedIcon,
required this.main,
this.secondary,
this.tooltip,
});
}
class Switcher extends StatelessWidget {
final Widget? child;
const Switcher({super.key, this.child});
@override
Widget build(BuildContext context) {
return AnimatedSwitcher(
duration: Duration(
milliseconds: transitionDuration.inMilliseconds ~/ 100,
),
transitionBuilder: (child, animation) {
return FadeTransition(opacity: animation, child: child);
},
child: child,
);
}
}
WidgetBuilder? patchAnimated(WidgetBuilder? input) {
if (input == null) return null;
return (context) => Switcher(child: input(context));
}
class HomeRouter extends HookWidget {
final List<Destination> destinations;
HomeRouter({super.key, required this.destinations})
: assert(destinations.isNotEmpty);
@override
Widget build(BuildContext context) {
final selectedIndex = useState(0);
final destination = useMemoized(() => destinations[selectedIndex.value], [
selectedIndex.value,
]);
final dispatcher = useMemoized(() => destination.main, [
selectedIndex.value,
]);
final secondaryDispatcher = useMemoized(() => destination.secondary, [
selectedIndex.value,
]);
return AdaptiveScaffold(
destinations: destinations
.map(
(destination) => NavigationDestination(
label: destination.label,
icon: destination.icon,
selectedIcon: destination.selectedIcon,
tooltip: destination.tooltip,
),
)
.toList(),
selectedIndex: selectedIndex.value,
onSelectedIndexChange: (index) => selectedIndex.value = index,
useDrawer: true,
smallBody: patchAnimated(dispatcher.buildSmall),
body: patchAnimated(dispatcher.build),
mediumLargeBody: patchAnimated(dispatcher.buildMediumLarge),
largeBody: patchAnimated(dispatcher.buildLarge),
extraLargeBody: patchAnimated(dispatcher.buildExtraLarge),
smallSecondaryBody: patchAnimated(secondaryDispatcher?.buildSmall),
secondaryBody: patchAnimated(secondaryDispatcher?.build),
mediumLargeSecondaryBody: patchAnimated(
secondaryDispatcher?.buildMediumLarge,
),
largeSecondaryBody: patchAnimated(secondaryDispatcher?.buildLarge),
extraLargeSecondaryBody: patchAnimated(
secondaryDispatcher?.buildExtraLarge,
),
);
}
}

View File

@@ -0,0 +1,26 @@
import 'dart:async';
import 'package:arbiter/providers/key.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:mtcore/markettakers.dart';
class Bootstrap extends HookConsumerWidget {
final Completer<void> completer;
const Bootstrap({required this.completer});
@override
Widget build(BuildContext context, WidgetRef ref) {
final container = ProviderScope.containerOf(context);
final stages = useMemoized(() {
return [KeyBootstrapper(ref: container)];
}, []);
final bootstrapper = useMemoized(
() => Bootstrapper(stages: stages, onCompleted: completer),
[stages],
);
return bootstrapper;
}
}

View File

@@ -0,0 +1,19 @@
import 'package:flutter/services.dart';
enum KeyAlgorithm {
rsa, ecdsa, ed25519
}
// The API to handle without storing the private key in memory.
//The implementation will use platform-specific secure storage and signing capabilities.
abstract class KeyHandle {
KeyAlgorithm get alg;
Future<List<int>> sign(List<int> data);
Future<List<int>> getPublicKey();
}
abstract class KeyManager {
Future<KeyHandle?> get();
Future<KeyHandle> create();
}

View File

@@ -0,0 +1,94 @@
import 'dart:convert';
import 'package:cryptography/cryptography.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:arbiter/features/pk_manager.dart';
final storage = FlutterSecureStorage(
aOptions: AndroidOptions.biometric(
enforceBiometrics: true,
biometricPromptTitle: 'Authentication Required',
),
mOptions: MacOsOptions(
accessibility: KeychainAccessibility.unlocked_this_device,
label: "Arbiter",
description: "Confirm your identity to access vault",
synchronizable: false,
accessControlFlags: [
AccessControlFlag.userPresence,
AccessControlFlag.privateKeyUsage,
],
usesDataProtectionKeychain: true,
),
);
final processor = Ed25519();
class SimpleEd25519 extends KeyHandle {
final SimpleKeyPair _keyPair;
SimpleEd25519({required SimpleKeyPair keyPair}) : _keyPair = keyPair;
@override
KeyAlgorithm get alg => KeyAlgorithm.ed25519;
@override
Future<List<int>> getPublicKey() async {
final publicKey = await _keyPair.extractPublicKey();
return publicKey.bytes;
}
@override
Future<List<int>> sign(List<int> data) async {
final signature = await processor.sign(data, keyPair: _keyPair);
return signature.bytes;
}
}
class SimpleEd25519Manager extends KeyManager {
static const _storageKey = "ed25519_identity";
static const _storagePublicKey = "ed25519_public_key";
@override
Future<KeyHandle> create() async {
final storedKey = await get();
if (storedKey != null) {
return storedKey;
}
final newKey = await processor.newKeyPair();
final rawKey = await newKey.extract();
final keyData = base64Encode(rawKey.bytes);
await storage.write(key: _storageKey, value: keyData);
final publicKeyData = base64Encode(rawKey.publicKey.bytes);
await storage.write(key: _storagePublicKey, value: publicKeyData);
return SimpleEd25519(keyPair: newKey);
}
@override
Future<KeyHandle?> get() async {
final storedKeyPair = await storage.read(key: _storageKey);
if (storedKeyPair == null) {
return null;
}
final publicKeyData = await storage.read(key: _storagePublicKey);
final publicKeyRaw = base64Decode(publicKeyData!);
final publicKey = SimplePublicKey(
publicKeyRaw,
type: processor.keyPairType,
);
final keyBytes = base64Decode(storedKeyPair);
final keypair = SimpleKeyPairData(
keyBytes,
publicKey: publicKey,
type: processor.keyPairType,
);
return SimpleEd25519(keyPair: keypair);
}
}

24
useragent/lib/home.dart Normal file
View File

@@ -0,0 +1,24 @@
import 'package:arbiter/features/adaptive_switcher.dart';
import 'package:arbiter/screens/about.dart';
import 'package:arbiter/screens/calc.dart';
import 'package:flutter/material.dart';
final _destinations = [
Destination(
label: "About",
icon: Icon(Icons.info_outline),
main: AdaptiveBuilders(build: (_) => About()),
),
Destination(
label: "Calc",
icon: Icon(Icons.calculate),
main: AdaptiveBuilders(build: (_) => CalcScreen()),
),
];
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return HomeRouter(destinations: _destinations);
}
}

View File

@@ -1,122 +1,11 @@
import 'package:flutter/material.dart';
import 'package:arbiter/router.dart';
import 'package:flutter/material.dart' hide Router;
import 'package:hooks_riverpod/hooks_riverpod.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: .fromSeed(seedColor: Colors.deepPurple),
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// TRY THIS: Try changing the color here to a specific color (to
// Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
// change color while the other colors stay the same.
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
//
// TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
// action in the IDE, or press "p" in the console), to see the
// wireframe for each widget.
mainAxisAlignment: .center,
children: [
const Text('You have pushed the button this many times:'),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
runApp(
MaterialApp(
home: ProviderScope(child: Scaffold(body: Router())),
),
);
}

View File

@@ -0,0 +1,107 @@
// This is a generated file - do not edit.
//
// Generated from arbiter.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:async' as $async;
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
import 'client.pb.dart' as $0;
import 'user_agent.pb.dart' as $1;
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
class ServerInfo extends $pb.GeneratedMessage {
factory ServerInfo({
$core.String? version,
$core.List<$core.int>? certPublicKey,
}) {
final result = create();
if (version != null) result.version = version;
if (certPublicKey != null) result.certPublicKey = certPublicKey;
return result;
}
ServerInfo._();
factory ServerInfo.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory ServerInfo.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'ServerInfo',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter'),
createEmptyInstance: create)
..aOS(1, _omitFieldNames ? '' : 'version')
..a<$core.List<$core.int>>(
2, _omitFieldNames ? '' : 'certPublicKey', $pb.PbFieldType.OY)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ServerInfo clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ServerInfo copyWith(void Function(ServerInfo) updates) =>
super.copyWith((message) => updates(message as ServerInfo)) as ServerInfo;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ServerInfo create() => ServerInfo._();
@$core.override
ServerInfo createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static ServerInfo getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<ServerInfo>(create);
static ServerInfo? _defaultInstance;
@$pb.TagNumber(1)
$core.String get version => $_getSZ(0);
@$pb.TagNumber(1)
set version($core.String value) => $_setString(0, value);
@$pb.TagNumber(1)
$core.bool hasVersion() => $_has(0);
@$pb.TagNumber(1)
void clearVersion() => $_clearField(1);
@$pb.TagNumber(2)
$core.List<$core.int> get certPublicKey => $_getN(1);
@$pb.TagNumber(2)
set certPublicKey($core.List<$core.int> value) => $_setBytes(1, value);
@$pb.TagNumber(2)
$core.bool hasCertPublicKey() => $_has(1);
@$pb.TagNumber(2)
void clearCertPublicKey() => $_clearField(2);
}
class ArbiterServiceApi {
final $pb.RpcClient _client;
ArbiterServiceApi(this._client);
$async.Future<$0.ClientResponse> client(
$pb.ClientContext? ctx, $0.ClientRequest request) =>
_client.invoke<$0.ClientResponse>(
ctx, 'ArbiterService', 'Client', request, $0.ClientResponse());
$async.Future<$1.UserAgentResponse> userAgent(
$pb.ClientContext? ctx, $1.UserAgentRequest request) =>
_client.invoke<$1.UserAgentResponse>(
ctx, 'ArbiterService', 'UserAgent', request, $1.UserAgentResponse());
}
const $core.bool _omitFieldNames =
$core.bool.fromEnvironment('protobuf.omit_field_names');
const $core.bool _omitMessageNames =
$core.bool.fromEnvironment('protobuf.omit_message_names');

View File

@@ -0,0 +1,11 @@
// This is a generated file - do not edit.
//
// Generated from arbiter.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports

View File

@@ -0,0 +1,124 @@
// This is a generated file - do not edit.
//
// Generated from arbiter.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
// ignore_for_file: unused_import
import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;
import 'package:protobuf/well_known_types/google/protobuf/empty.pbjson.dart'
as $3;
import 'package:protobuf/well_known_types/google/protobuf/timestamp.pbjson.dart'
as $4;
import 'client.pbjson.dart' as $0;
import 'evm.pbjson.dart' as $2;
import 'user_agent.pbjson.dart' as $1;
@$core.Deprecated('Use serverInfoDescriptor instead')
const ServerInfo$json = {
'1': 'ServerInfo',
'2': [
{'1': 'version', '3': 1, '4': 1, '5': 9, '10': 'version'},
{'1': 'cert_public_key', '3': 2, '4': 1, '5': 12, '10': 'certPublicKey'},
],
};
/// Descriptor for `ServerInfo`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List serverInfoDescriptor = $convert.base64Decode(
'CgpTZXJ2ZXJJbmZvEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24SJgoPY2VydF9wdWJsaWNfa2'
'V5GAIgASgMUg1jZXJ0UHVibGljS2V5');
const $core.Map<$core.String, $core.dynamic> ArbiterServiceBase$json = {
'1': 'ArbiterService',
'2': [
{
'1': 'Client',
'2': '.arbiter.client.ClientRequest',
'3': '.arbiter.client.ClientResponse',
'5': true,
'6': true
},
{
'1': 'UserAgent',
'2': '.arbiter.user_agent.UserAgentRequest',
'3': '.arbiter.user_agent.UserAgentResponse',
'5': true,
'6': true
},
],
};
@$core.Deprecated('Use arbiterServiceDescriptor instead')
const $core.Map<$core.String, $core.Map<$core.String, $core.dynamic>>
ArbiterServiceBase$messageJson = {
'.arbiter.client.ClientRequest': $0.ClientRequest$json,
'.arbiter.client.AuthChallengeRequest': $0.AuthChallengeRequest$json,
'.arbiter.client.AuthChallengeSolution': $0.AuthChallengeSolution$json,
'.arbiter.client.ClientResponse': $0.ClientResponse$json,
'.arbiter.client.AuthChallenge': $0.AuthChallenge$json,
'.arbiter.client.AuthOk': $0.AuthOk$json,
'.arbiter.evm.EvmSignTransactionResponse': $2.EvmSignTransactionResponse$json,
'.arbiter.evm.TransactionEvalError': $2.TransactionEvalError$json,
'.google.protobuf.Empty': $3.Empty$json,
'.arbiter.evm.NoMatchingGrantError': $2.NoMatchingGrantError$json,
'.arbiter.evm.SpecificMeaning': $2.SpecificMeaning$json,
'.arbiter.evm.EtherTransferMeaning': $2.EtherTransferMeaning$json,
'.arbiter.evm.TokenTransferMeaning': $2.TokenTransferMeaning$json,
'.arbiter.evm.TokenInfo': $2.TokenInfo$json,
'.arbiter.evm.PolicyViolationsError': $2.PolicyViolationsError$json,
'.arbiter.evm.EvalViolation': $2.EvalViolation$json,
'.arbiter.evm.GasLimitExceededViolation': $2.GasLimitExceededViolation$json,
'.arbiter.evm.EvmAnalyzeTransactionResponse':
$2.EvmAnalyzeTransactionResponse$json,
'.arbiter.client.ClientConnectError': $0.ClientConnectError$json,
'.arbiter.user_agent.UserAgentRequest': $1.UserAgentRequest$json,
'.arbiter.user_agent.AuthChallengeRequest': $1.AuthChallengeRequest$json,
'.arbiter.user_agent.AuthChallengeSolution': $1.AuthChallengeSolution$json,
'.arbiter.user_agent.UnsealStart': $1.UnsealStart$json,
'.arbiter.user_agent.UnsealEncryptedKey': $1.UnsealEncryptedKey$json,
'.arbiter.evm.EvmGrantCreateRequest': $2.EvmGrantCreateRequest$json,
'.arbiter.evm.SharedSettings': $2.SharedSettings$json,
'.google.protobuf.Timestamp': $4.Timestamp$json,
'.arbiter.evm.TransactionRateLimit': $2.TransactionRateLimit$json,
'.arbiter.evm.SpecificGrant': $2.SpecificGrant$json,
'.arbiter.evm.EtherTransferSettings': $2.EtherTransferSettings$json,
'.arbiter.evm.VolumeRateLimit': $2.VolumeRateLimit$json,
'.arbiter.evm.TokenTransferSettings': $2.TokenTransferSettings$json,
'.arbiter.evm.EvmGrantDeleteRequest': $2.EvmGrantDeleteRequest$json,
'.arbiter.evm.EvmGrantListRequest': $2.EvmGrantListRequest$json,
'.arbiter.user_agent.ClientConnectionResponse':
$1.ClientConnectionResponse$json,
'.arbiter.user_agent.UserAgentResponse': $1.UserAgentResponse$json,
'.arbiter.user_agent.AuthChallenge': $1.AuthChallenge$json,
'.arbiter.user_agent.AuthOk': $1.AuthOk$json,
'.arbiter.user_agent.UnsealStartResponse': $1.UnsealStartResponse$json,
'.arbiter.evm.WalletCreateResponse': $2.WalletCreateResponse$json,
'.arbiter.evm.WalletEntry': $2.WalletEntry$json,
'.arbiter.evm.WalletListResponse': $2.WalletListResponse$json,
'.arbiter.evm.WalletList': $2.WalletList$json,
'.arbiter.evm.EvmGrantCreateResponse': $2.EvmGrantCreateResponse$json,
'.arbiter.evm.EvmGrantDeleteResponse': $2.EvmGrantDeleteResponse$json,
'.arbiter.evm.EvmGrantListResponse': $2.EvmGrantListResponse$json,
'.arbiter.evm.EvmGrantList': $2.EvmGrantList$json,
'.arbiter.evm.GrantEntry': $2.GrantEntry$json,
'.arbiter.user_agent.ClientConnectionRequest':
$1.ClientConnectionRequest$json,
'.arbiter.user_agent.ClientConnectionCancel': $1.ClientConnectionCancel$json,
};
/// Descriptor for `ArbiterService`. Decode as a `google.protobuf.ServiceDescriptorProto`.
final $typed_data.Uint8List arbiterServiceDescriptor = $convert.base64Decode(
'Cg5BcmJpdGVyU2VydmljZRJLCgZDbGllbnQSHS5hcmJpdGVyLmNsaWVudC5DbGllbnRSZXF1ZX'
'N0Gh4uYXJiaXRlci5jbGllbnQuQ2xpZW50UmVzcG9uc2UoATABElwKCVVzZXJBZ2VudBIkLmFy'
'Yml0ZXIudXNlcl9hZ2VudC5Vc2VyQWdlbnRSZXF1ZXN0GiUuYXJiaXRlci51c2VyX2FnZW50Ll'
'VzZXJBZ2VudFJlc3BvbnNlKAEwAQ==');

View File

@@ -0,0 +1,56 @@
// This is a generated file - do not edit.
//
// Generated from arbiter.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:async' as $async;
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
import 'arbiter.pbjson.dart';
import 'client.pb.dart' as $0;
import 'user_agent.pb.dart' as $1;
export 'arbiter.pb.dart';
abstract class ArbiterServiceBase extends $pb.GeneratedService {
$async.Future<$0.ClientResponse> client(
$pb.ServerContext ctx, $0.ClientRequest request);
$async.Future<$1.UserAgentResponse> userAgent(
$pb.ServerContext ctx, $1.UserAgentRequest request);
$pb.GeneratedMessage createRequest($core.String methodName) {
switch (methodName) {
case 'Client':
return $0.ClientRequest();
case 'UserAgent':
return $1.UserAgentRequest();
default:
throw $core.ArgumentError('Unknown method: $methodName');
}
}
$async.Future<$pb.GeneratedMessage> handleCall($pb.ServerContext ctx,
$core.String methodName, $pb.GeneratedMessage request) {
switch (methodName) {
case 'Client':
return client(ctx, request as $0.ClientRequest);
case 'UserAgent':
return userAgent(ctx, request as $1.UserAgentRequest);
default:
throw $core.ArgumentError('Unknown method: $methodName');
}
}
$core.Map<$core.String, $core.dynamic> get $json => ArbiterServiceBase$json;
$core.Map<$core.String, $core.Map<$core.String, $core.dynamic>>
get $messageJson => ArbiterServiceBase$messageJson;
}

View File

@@ -0,0 +1,551 @@
// This is a generated file - do not edit.
//
// Generated from client.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
import 'client.pbenum.dart';
import 'evm.pb.dart' as $0;
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
export 'client.pbenum.dart';
class AuthChallengeRequest extends $pb.GeneratedMessage {
factory AuthChallengeRequest({
$core.List<$core.int>? pubkey,
}) {
final result = create();
if (pubkey != null) result.pubkey = pubkey;
return result;
}
AuthChallengeRequest._();
factory AuthChallengeRequest.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory AuthChallengeRequest.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'AuthChallengeRequest',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..a<$core.List<$core.int>>(
1, _omitFieldNames ? '' : 'pubkey', $pb.PbFieldType.OY)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallengeRequest clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallengeRequest copyWith(void Function(AuthChallengeRequest) updates) =>
super.copyWith((message) => updates(message as AuthChallengeRequest))
as AuthChallengeRequest;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static AuthChallengeRequest create() => AuthChallengeRequest._();
@$core.override
AuthChallengeRequest createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static AuthChallengeRequest getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<AuthChallengeRequest>(create);
static AuthChallengeRequest? _defaultInstance;
@$pb.TagNumber(1)
$core.List<$core.int> get pubkey => $_getN(0);
@$pb.TagNumber(1)
set pubkey($core.List<$core.int> value) => $_setBytes(0, value);
@$pb.TagNumber(1)
$core.bool hasPubkey() => $_has(0);
@$pb.TagNumber(1)
void clearPubkey() => $_clearField(1);
}
class AuthChallenge extends $pb.GeneratedMessage {
factory AuthChallenge({
$core.List<$core.int>? pubkey,
$core.int? nonce,
}) {
final result = create();
if (pubkey != null) result.pubkey = pubkey;
if (nonce != null) result.nonce = nonce;
return result;
}
AuthChallenge._();
factory AuthChallenge.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory AuthChallenge.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'AuthChallenge',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..a<$core.List<$core.int>>(
1, _omitFieldNames ? '' : 'pubkey', $pb.PbFieldType.OY)
..aI(2, _omitFieldNames ? '' : 'nonce')
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallenge clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallenge copyWith(void Function(AuthChallenge) updates) =>
super.copyWith((message) => updates(message as AuthChallenge))
as AuthChallenge;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static AuthChallenge create() => AuthChallenge._();
@$core.override
AuthChallenge createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static AuthChallenge getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<AuthChallenge>(create);
static AuthChallenge? _defaultInstance;
@$pb.TagNumber(1)
$core.List<$core.int> get pubkey => $_getN(0);
@$pb.TagNumber(1)
set pubkey($core.List<$core.int> value) => $_setBytes(0, value);
@$pb.TagNumber(1)
$core.bool hasPubkey() => $_has(0);
@$pb.TagNumber(1)
void clearPubkey() => $_clearField(1);
@$pb.TagNumber(2)
$core.int get nonce => $_getIZ(1);
@$pb.TagNumber(2)
set nonce($core.int value) => $_setSignedInt32(1, value);
@$pb.TagNumber(2)
$core.bool hasNonce() => $_has(1);
@$pb.TagNumber(2)
void clearNonce() => $_clearField(2);
}
class AuthChallengeSolution extends $pb.GeneratedMessage {
factory AuthChallengeSolution({
$core.List<$core.int>? signature,
}) {
final result = create();
if (signature != null) result.signature = signature;
return result;
}
AuthChallengeSolution._();
factory AuthChallengeSolution.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory AuthChallengeSolution.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'AuthChallengeSolution',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..a<$core.List<$core.int>>(
1, _omitFieldNames ? '' : 'signature', $pb.PbFieldType.OY)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallengeSolution clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthChallengeSolution copyWith(
void Function(AuthChallengeSolution) updates) =>
super.copyWith((message) => updates(message as AuthChallengeSolution))
as AuthChallengeSolution;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static AuthChallengeSolution create() => AuthChallengeSolution._();
@$core.override
AuthChallengeSolution createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static AuthChallengeSolution getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<AuthChallengeSolution>(create);
static AuthChallengeSolution? _defaultInstance;
@$pb.TagNumber(1)
$core.List<$core.int> get signature => $_getN(0);
@$pb.TagNumber(1)
set signature($core.List<$core.int> value) => $_setBytes(0, value);
@$pb.TagNumber(1)
$core.bool hasSignature() => $_has(0);
@$pb.TagNumber(1)
void clearSignature() => $_clearField(1);
}
class AuthOk extends $pb.GeneratedMessage {
factory AuthOk() => create();
AuthOk._();
factory AuthOk.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory AuthOk.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'AuthOk',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthOk clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
AuthOk copyWith(void Function(AuthOk) updates) =>
super.copyWith((message) => updates(message as AuthOk)) as AuthOk;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static AuthOk create() => AuthOk._();
@$core.override
AuthOk createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static AuthOk getDefault() =>
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<AuthOk>(create);
static AuthOk? _defaultInstance;
}
enum ClientRequest_Payload {
authChallengeRequest,
authChallengeSolution,
notSet
}
class ClientRequest extends $pb.GeneratedMessage {
factory ClientRequest({
AuthChallengeRequest? authChallengeRequest,
AuthChallengeSolution? authChallengeSolution,
}) {
final result = create();
if (authChallengeRequest != null)
result.authChallengeRequest = authChallengeRequest;
if (authChallengeSolution != null)
result.authChallengeSolution = authChallengeSolution;
return result;
}
ClientRequest._();
factory ClientRequest.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory ClientRequest.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static const $core.Map<$core.int, ClientRequest_Payload>
_ClientRequest_PayloadByTag = {
1: ClientRequest_Payload.authChallengeRequest,
2: ClientRequest_Payload.authChallengeSolution,
0: ClientRequest_Payload.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'ClientRequest',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..oo(0, [1, 2])
..aOM<AuthChallengeRequest>(
1, _omitFieldNames ? '' : 'authChallengeRequest',
subBuilder: AuthChallengeRequest.create)
..aOM<AuthChallengeSolution>(
2, _omitFieldNames ? '' : 'authChallengeSolution',
subBuilder: AuthChallengeSolution.create)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientRequest clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientRequest copyWith(void Function(ClientRequest) updates) =>
super.copyWith((message) => updates(message as ClientRequest))
as ClientRequest;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClientRequest create() => ClientRequest._();
@$core.override
ClientRequest createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static ClientRequest getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<ClientRequest>(create);
static ClientRequest? _defaultInstance;
@$pb.TagNumber(1)
@$pb.TagNumber(2)
ClientRequest_Payload whichPayload() =>
_ClientRequest_PayloadByTag[$_whichOneof(0)]!;
@$pb.TagNumber(1)
@$pb.TagNumber(2)
void clearPayload() => $_clearField($_whichOneof(0));
@$pb.TagNumber(1)
AuthChallengeRequest get authChallengeRequest => $_getN(0);
@$pb.TagNumber(1)
set authChallengeRequest(AuthChallengeRequest value) => $_setField(1, value);
@$pb.TagNumber(1)
$core.bool hasAuthChallengeRequest() => $_has(0);
@$pb.TagNumber(1)
void clearAuthChallengeRequest() => $_clearField(1);
@$pb.TagNumber(1)
AuthChallengeRequest ensureAuthChallengeRequest() => $_ensure(0);
@$pb.TagNumber(2)
AuthChallengeSolution get authChallengeSolution => $_getN(1);
@$pb.TagNumber(2)
set authChallengeSolution(AuthChallengeSolution value) =>
$_setField(2, value);
@$pb.TagNumber(2)
$core.bool hasAuthChallengeSolution() => $_has(1);
@$pb.TagNumber(2)
void clearAuthChallengeSolution() => $_clearField(2);
@$pb.TagNumber(2)
AuthChallengeSolution ensureAuthChallengeSolution() => $_ensure(1);
}
class ClientConnectError extends $pb.GeneratedMessage {
factory ClientConnectError({
ClientConnectError_Code? code,
}) {
final result = create();
if (code != null) result.code = code;
return result;
}
ClientConnectError._();
factory ClientConnectError.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory ClientConnectError.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'ClientConnectError',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..aE<ClientConnectError_Code>(1, _omitFieldNames ? '' : 'code',
enumValues: ClientConnectError_Code.values)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientConnectError clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientConnectError copyWith(void Function(ClientConnectError) updates) =>
super.copyWith((message) => updates(message as ClientConnectError))
as ClientConnectError;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClientConnectError create() => ClientConnectError._();
@$core.override
ClientConnectError createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static ClientConnectError getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<ClientConnectError>(create);
static ClientConnectError? _defaultInstance;
@$pb.TagNumber(1)
ClientConnectError_Code get code => $_getN(0);
@$pb.TagNumber(1)
set code(ClientConnectError_Code value) => $_setField(1, value);
@$pb.TagNumber(1)
$core.bool hasCode() => $_has(0);
@$pb.TagNumber(1)
void clearCode() => $_clearField(1);
}
enum ClientResponse_Payload {
authChallenge,
authOk,
evmSignTransaction,
evmAnalyzeTransaction,
clientConnectError,
notSet
}
class ClientResponse extends $pb.GeneratedMessage {
factory ClientResponse({
AuthChallenge? authChallenge,
AuthOk? authOk,
$0.EvmSignTransactionResponse? evmSignTransaction,
$0.EvmAnalyzeTransactionResponse? evmAnalyzeTransaction,
ClientConnectError? clientConnectError,
}) {
final result = create();
if (authChallenge != null) result.authChallenge = authChallenge;
if (authOk != null) result.authOk = authOk;
if (evmSignTransaction != null)
result.evmSignTransaction = evmSignTransaction;
if (evmAnalyzeTransaction != null)
result.evmAnalyzeTransaction = evmAnalyzeTransaction;
if (clientConnectError != null)
result.clientConnectError = clientConnectError;
return result;
}
ClientResponse._();
factory ClientResponse.fromBuffer($core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory ClientResponse.fromJson($core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static const $core.Map<$core.int, ClientResponse_Payload>
_ClientResponse_PayloadByTag = {
1: ClientResponse_Payload.authChallenge,
2: ClientResponse_Payload.authOk,
3: ClientResponse_Payload.evmSignTransaction,
4: ClientResponse_Payload.evmAnalyzeTransaction,
5: ClientResponse_Payload.clientConnectError,
0: ClientResponse_Payload.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'ClientResponse',
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.client'),
createEmptyInstance: create)
..oo(0, [1, 2, 3, 4, 5])
..aOM<AuthChallenge>(1, _omitFieldNames ? '' : 'authChallenge',
subBuilder: AuthChallenge.create)
..aOM<AuthOk>(2, _omitFieldNames ? '' : 'authOk', subBuilder: AuthOk.create)
..aOM<$0.EvmSignTransactionResponse>(
3, _omitFieldNames ? '' : 'evmSignTransaction',
subBuilder: $0.EvmSignTransactionResponse.create)
..aOM<$0.EvmAnalyzeTransactionResponse>(
4, _omitFieldNames ? '' : 'evmAnalyzeTransaction',
subBuilder: $0.EvmAnalyzeTransactionResponse.create)
..aOM<ClientConnectError>(5, _omitFieldNames ? '' : 'clientConnectError',
subBuilder: ClientConnectError.create)
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientResponse clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
ClientResponse copyWith(void Function(ClientResponse) updates) =>
super.copyWith((message) => updates(message as ClientResponse))
as ClientResponse;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClientResponse create() => ClientResponse._();
@$core.override
ClientResponse createEmptyInstance() => create();
@$core.pragma('dart2js:noInline')
static ClientResponse getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<ClientResponse>(create);
static ClientResponse? _defaultInstance;
@$pb.TagNumber(1)
@$pb.TagNumber(2)
@$pb.TagNumber(3)
@$pb.TagNumber(4)
@$pb.TagNumber(5)
ClientResponse_Payload whichPayload() =>
_ClientResponse_PayloadByTag[$_whichOneof(0)]!;
@$pb.TagNumber(1)
@$pb.TagNumber(2)
@$pb.TagNumber(3)
@$pb.TagNumber(4)
@$pb.TagNumber(5)
void clearPayload() => $_clearField($_whichOneof(0));
@$pb.TagNumber(1)
AuthChallenge get authChallenge => $_getN(0);
@$pb.TagNumber(1)
set authChallenge(AuthChallenge value) => $_setField(1, value);
@$pb.TagNumber(1)
$core.bool hasAuthChallenge() => $_has(0);
@$pb.TagNumber(1)
void clearAuthChallenge() => $_clearField(1);
@$pb.TagNumber(1)
AuthChallenge ensureAuthChallenge() => $_ensure(0);
@$pb.TagNumber(2)
AuthOk get authOk => $_getN(1);
@$pb.TagNumber(2)
set authOk(AuthOk value) => $_setField(2, value);
@$pb.TagNumber(2)
$core.bool hasAuthOk() => $_has(1);
@$pb.TagNumber(2)
void clearAuthOk() => $_clearField(2);
@$pb.TagNumber(2)
AuthOk ensureAuthOk() => $_ensure(1);
@$pb.TagNumber(3)
$0.EvmSignTransactionResponse get evmSignTransaction => $_getN(2);
@$pb.TagNumber(3)
set evmSignTransaction($0.EvmSignTransactionResponse value) =>
$_setField(3, value);
@$pb.TagNumber(3)
$core.bool hasEvmSignTransaction() => $_has(2);
@$pb.TagNumber(3)
void clearEvmSignTransaction() => $_clearField(3);
@$pb.TagNumber(3)
$0.EvmSignTransactionResponse ensureEvmSignTransaction() => $_ensure(2);
@$pb.TagNumber(4)
$0.EvmAnalyzeTransactionResponse get evmAnalyzeTransaction => $_getN(3);
@$pb.TagNumber(4)
set evmAnalyzeTransaction($0.EvmAnalyzeTransactionResponse value) =>
$_setField(4, value);
@$pb.TagNumber(4)
$core.bool hasEvmAnalyzeTransaction() => $_has(3);
@$pb.TagNumber(4)
void clearEvmAnalyzeTransaction() => $_clearField(4);
@$pb.TagNumber(4)
$0.EvmAnalyzeTransactionResponse ensureEvmAnalyzeTransaction() => $_ensure(3);
@$pb.TagNumber(5)
ClientConnectError get clientConnectError => $_getN(4);
@$pb.TagNumber(5)
set clientConnectError(ClientConnectError value) => $_setField(5, value);
@$pb.TagNumber(5)
$core.bool hasClientConnectError() => $_has(4);
@$pb.TagNumber(5)
void clearClientConnectError() => $_clearField(5);
@$pb.TagNumber(5)
ClientConnectError ensureClientConnectError() => $_ensure(4);
}
const $core.bool _omitFieldNames =
$core.bool.fromEnvironment('protobuf.omit_field_names');
const $core.bool _omitMessageNames =
$core.bool.fromEnvironment('protobuf.omit_message_names');

View File

@@ -0,0 +1,42 @@
// This is a generated file - do not edit.
//
// Generated from client.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class ClientConnectError_Code extends $pb.ProtobufEnum {
static const ClientConnectError_Code UNKNOWN =
ClientConnectError_Code._(0, _omitEnumNames ? '' : 'UNKNOWN');
static const ClientConnectError_Code APPROVAL_DENIED =
ClientConnectError_Code._(1, _omitEnumNames ? '' : 'APPROVAL_DENIED');
static const ClientConnectError_Code NO_USER_AGENTS_ONLINE =
ClientConnectError_Code._(
2, _omitEnumNames ? '' : 'NO_USER_AGENTS_ONLINE');
static const $core.List<ClientConnectError_Code> values =
<ClientConnectError_Code>[
UNKNOWN,
APPROVAL_DENIED,
NO_USER_AGENTS_ONLINE,
];
static final $core.List<ClientConnectError_Code?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 2);
static ClientConnectError_Code? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const ClientConnectError_Code._(super.value, super.name);
}
const $core.bool _omitEnumNames =
$core.bool.fromEnvironment('protobuf.omit_enum_names');

View File

@@ -0,0 +1,197 @@
// This is a generated file - do not edit.
//
// Generated from client.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
// ignore_for_file: unused_import
import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use authChallengeRequestDescriptor instead')
const AuthChallengeRequest$json = {
'1': 'AuthChallengeRequest',
'2': [
{'1': 'pubkey', '3': 1, '4': 1, '5': 12, '10': 'pubkey'},
],
};
/// Descriptor for `AuthChallengeRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeRequestDescriptor =
$convert.base64Decode(
'ChRBdXRoQ2hhbGxlbmdlUmVxdWVzdBIWCgZwdWJrZXkYASABKAxSBnB1YmtleQ==');
@$core.Deprecated('Use authChallengeDescriptor instead')
const AuthChallenge$json = {
'1': 'AuthChallenge',
'2': [
{'1': 'pubkey', '3': 1, '4': 1, '5': 12, '10': 'pubkey'},
{'1': 'nonce', '3': 2, '4': 1, '5': 5, '10': 'nonce'},
],
};
/// Descriptor for `AuthChallenge`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeDescriptor = $convert.base64Decode(
'Cg1BdXRoQ2hhbGxlbmdlEhYKBnB1YmtleRgBIAEoDFIGcHVia2V5EhQKBW5vbmNlGAIgASgFUg'
'Vub25jZQ==');
@$core.Deprecated('Use authChallengeSolutionDescriptor instead')
const AuthChallengeSolution$json = {
'1': 'AuthChallengeSolution',
'2': [
{'1': 'signature', '3': 1, '4': 1, '5': 12, '10': 'signature'},
],
};
/// Descriptor for `AuthChallengeSolution`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeSolutionDescriptor = $convert.base64Decode(
'ChVBdXRoQ2hhbGxlbmdlU29sdXRpb24SHAoJc2lnbmF0dXJlGAEgASgMUglzaWduYXR1cmU=');
@$core.Deprecated('Use authOkDescriptor instead')
const AuthOk$json = {
'1': 'AuthOk',
};
/// Descriptor for `AuthOk`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authOkDescriptor =
$convert.base64Decode('CgZBdXRoT2s=');
@$core.Deprecated('Use clientRequestDescriptor instead')
const ClientRequest$json = {
'1': 'ClientRequest',
'2': [
{
'1': 'auth_challenge_request',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.client.AuthChallengeRequest',
'9': 0,
'10': 'authChallengeRequest'
},
{
'1': 'auth_challenge_solution',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.client.AuthChallengeSolution',
'9': 0,
'10': 'authChallengeSolution'
},
],
'8': [
{'1': 'payload'},
],
};
/// Descriptor for `ClientRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientRequestDescriptor = $convert.base64Decode(
'Cg1DbGllbnRSZXF1ZXN0ElwKFmF1dGhfY2hhbGxlbmdlX3JlcXVlc3QYASABKAsyJC5hcmJpdG'
'VyLmNsaWVudC5BdXRoQ2hhbGxlbmdlUmVxdWVzdEgAUhRhdXRoQ2hhbGxlbmdlUmVxdWVzdBJf'
'ChdhdXRoX2NoYWxsZW5nZV9zb2x1dGlvbhgCIAEoCzIlLmFyYml0ZXIuY2xpZW50LkF1dGhDaG'
'FsbGVuZ2VTb2x1dGlvbkgAUhVhdXRoQ2hhbGxlbmdlU29sdXRpb25CCQoHcGF5bG9hZA==');
@$core.Deprecated('Use clientConnectErrorDescriptor instead')
const ClientConnectError$json = {
'1': 'ClientConnectError',
'2': [
{
'1': 'code',
'3': 1,
'4': 1,
'5': 14,
'6': '.arbiter.client.ClientConnectError.Code',
'10': 'code'
},
],
'4': [ClientConnectError_Code$json],
};
@$core.Deprecated('Use clientConnectErrorDescriptor instead')
const ClientConnectError_Code$json = {
'1': 'Code',
'2': [
{'1': 'UNKNOWN', '2': 0},
{'1': 'APPROVAL_DENIED', '2': 1},
{'1': 'NO_USER_AGENTS_ONLINE', '2': 2},
],
};
/// Descriptor for `ClientConnectError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientConnectErrorDescriptor = $convert.base64Decode(
'ChJDbGllbnRDb25uZWN0RXJyb3ISOwoEY29kZRgBIAEoDjInLmFyYml0ZXIuY2xpZW50LkNsaW'
'VudENvbm5lY3RFcnJvci5Db2RlUgRjb2RlIkMKBENvZGUSCwoHVU5LTk9XThAAEhMKD0FQUFJP'
'VkFMX0RFTklFRBABEhkKFU5PX1VTRVJfQUdFTlRTX09OTElORRAC');
@$core.Deprecated('Use clientResponseDescriptor instead')
const ClientResponse$json = {
'1': 'ClientResponse',
'2': [
{
'1': 'auth_challenge',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.client.AuthChallenge',
'9': 0,
'10': 'authChallenge'
},
{
'1': 'auth_ok',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.client.AuthOk',
'9': 0,
'10': 'authOk'
},
{
'1': 'client_connect_error',
'3': 5,
'4': 1,
'5': 11,
'6': '.arbiter.client.ClientConnectError',
'9': 0,
'10': 'clientConnectError'
},
{
'1': 'evm_sign_transaction',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmSignTransactionResponse',
'9': 0,
'10': 'evmSignTransaction'
},
{
'1': 'evm_analyze_transaction',
'3': 4,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmAnalyzeTransactionResponse',
'9': 0,
'10': 'evmAnalyzeTransaction'
},
],
'8': [
{'1': 'payload'},
],
};
/// Descriptor for `ClientResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientResponseDescriptor = $convert.base64Decode(
'Cg5DbGllbnRSZXNwb25zZRJGCg5hdXRoX2NoYWxsZW5nZRgBIAEoCzIdLmFyYml0ZXIuY2xpZW'
'50LkF1dGhDaGFsbGVuZ2VIAFINYXV0aENoYWxsZW5nZRIxCgdhdXRoX29rGAIgASgLMhYuYXJi'
'aXRlci5jbGllbnQuQXV0aE9rSABSBmF1dGhPaxJWChRjbGllbnRfY29ubmVjdF9lcnJvchgFIA'
'EoCzIiLmFyYml0ZXIuY2xpZW50LkNsaWVudENvbm5lY3RFcnJvckgAUhJjbGllbnRDb25uZWN0'
'RXJyb3ISWwoUZXZtX3NpZ25fdHJhbnNhY3Rpb24YAyABKAsyJy5hcmJpdGVyLmV2bS5Fdm1TaW'
'duVHJhbnNhY3Rpb25SZXNwb25zZUgAUhJldm1TaWduVHJhbnNhY3Rpb24SZAoXZXZtX2FuYWx5'
'emVfdHJhbnNhY3Rpb24YBCABKAsyKi5hcmJpdGVyLmV2bS5Fdm1BbmFseXplVHJhbnNhY3Rpb2'
'5SZXNwb25zZUgAUhVldm1BbmFseXplVHJhbnNhY3Rpb25CCQoHcGF5bG9hZA==');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
// This is a generated file - do not edit.
//
// Generated from evm.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class EvmError extends $pb.ProtobufEnum {
static const EvmError EVM_ERROR_UNSPECIFIED =
EvmError._(0, _omitEnumNames ? '' : 'EVM_ERROR_UNSPECIFIED');
static const EvmError EVM_ERROR_VAULT_SEALED =
EvmError._(1, _omitEnumNames ? '' : 'EVM_ERROR_VAULT_SEALED');
static const EvmError EVM_ERROR_INTERNAL =
EvmError._(2, _omitEnumNames ? '' : 'EVM_ERROR_INTERNAL');
static const $core.List<EvmError> values = <EvmError>[
EVM_ERROR_UNSPECIFIED,
EVM_ERROR_VAULT_SEALED,
EVM_ERROR_INTERNAL,
];
static final $core.List<EvmError?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 2);
static EvmError? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const EvmError._(super.value, super.name);
}
const $core.bool _omitEnumNames =
$core.bool.fromEnvironment('protobuf.omit_enum_names');

View File

@@ -0,0 +1,950 @@
// This is a generated file - do not edit.
//
// Generated from evm.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
// ignore_for_file: unused_import
import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use evmErrorDescriptor instead')
const EvmError$json = {
'1': 'EvmError',
'2': [
{'1': 'EVM_ERROR_UNSPECIFIED', '2': 0},
{'1': 'EVM_ERROR_VAULT_SEALED', '2': 1},
{'1': 'EVM_ERROR_INTERNAL', '2': 2},
],
};
/// Descriptor for `EvmError`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List evmErrorDescriptor = $convert.base64Decode(
'CghFdm1FcnJvchIZChVFVk1fRVJST1JfVU5TUEVDSUZJRUQQABIaChZFVk1fRVJST1JfVkFVTF'
'RfU0VBTEVEEAESFgoSRVZNX0VSUk9SX0lOVEVSTkFMEAI=');
@$core.Deprecated('Use walletEntryDescriptor instead')
const WalletEntry$json = {
'1': 'WalletEntry',
'2': [
{'1': 'address', '3': 1, '4': 1, '5': 12, '10': 'address'},
],
};
/// Descriptor for `WalletEntry`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List walletEntryDescriptor = $convert
.base64Decode('CgtXYWxsZXRFbnRyeRIYCgdhZGRyZXNzGAEgASgMUgdhZGRyZXNz');
@$core.Deprecated('Use walletListDescriptor instead')
const WalletList$json = {
'1': 'WalletList',
'2': [
{
'1': 'wallets',
'3': 1,
'4': 3,
'5': 11,
'6': '.arbiter.evm.WalletEntry',
'10': 'wallets'
},
],
};
/// Descriptor for `WalletList`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List walletListDescriptor = $convert.base64Decode(
'CgpXYWxsZXRMaXN0EjIKB3dhbGxldHMYASADKAsyGC5hcmJpdGVyLmV2bS5XYWxsZXRFbnRyeV'
'IHd2FsbGV0cw==');
@$core.Deprecated('Use walletCreateResponseDescriptor instead')
const WalletCreateResponse$json = {
'1': 'WalletCreateResponse',
'2': [
{
'1': 'wallet',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.WalletEntry',
'9': 0,
'10': 'wallet'
},
{
'1': 'error',
'3': 2,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `WalletCreateResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List walletCreateResponseDescriptor = $convert.base64Decode(
'ChRXYWxsZXRDcmVhdGVSZXNwb25zZRIyCgZ3YWxsZXQYASABKAsyGC5hcmJpdGVyLmV2bS5XYW'
'xsZXRFbnRyeUgAUgZ3YWxsZXQSLQoFZXJyb3IYAiABKA4yFS5hcmJpdGVyLmV2bS5Fdm1FcnJv'
'ckgAUgVlcnJvckIICgZyZXN1bHQ=');
@$core.Deprecated('Use walletListResponseDescriptor instead')
const WalletListResponse$json = {
'1': 'WalletListResponse',
'2': [
{
'1': 'wallets',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.WalletList',
'9': 0,
'10': 'wallets'
},
{
'1': 'error',
'3': 2,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `WalletListResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List walletListResponseDescriptor = $convert.base64Decode(
'ChJXYWxsZXRMaXN0UmVzcG9uc2USMwoHd2FsbGV0cxgBIAEoCzIXLmFyYml0ZXIuZXZtLldhbG'
'xldExpc3RIAFIHd2FsbGV0cxItCgVlcnJvchgCIAEoDjIVLmFyYml0ZXIuZXZtLkV2bUVycm9y'
'SABSBWVycm9yQggKBnJlc3VsdA==');
@$core.Deprecated('Use transactionRateLimitDescriptor instead')
const TransactionRateLimit$json = {
'1': 'TransactionRateLimit',
'2': [
{'1': 'count', '3': 1, '4': 1, '5': 13, '10': 'count'},
{'1': 'window_secs', '3': 2, '4': 1, '5': 3, '10': 'windowSecs'},
],
};
/// Descriptor for `TransactionRateLimit`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List transactionRateLimitDescriptor = $convert.base64Decode(
'ChRUcmFuc2FjdGlvblJhdGVMaW1pdBIUCgVjb3VudBgBIAEoDVIFY291bnQSHwoLd2luZG93X3'
'NlY3MYAiABKANSCndpbmRvd1NlY3M=');
@$core.Deprecated('Use volumeRateLimitDescriptor instead')
const VolumeRateLimit$json = {
'1': 'VolumeRateLimit',
'2': [
{'1': 'max_volume', '3': 1, '4': 1, '5': 12, '10': 'maxVolume'},
{'1': 'window_secs', '3': 2, '4': 1, '5': 3, '10': 'windowSecs'},
],
};
/// Descriptor for `VolumeRateLimit`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List volumeRateLimitDescriptor = $convert.base64Decode(
'Cg9Wb2x1bWVSYXRlTGltaXQSHQoKbWF4X3ZvbHVtZRgBIAEoDFIJbWF4Vm9sdW1lEh8KC3dpbm'
'Rvd19zZWNzGAIgASgDUgp3aW5kb3dTZWNz');
@$core.Deprecated('Use sharedSettingsDescriptor instead')
const SharedSettings$json = {
'1': 'SharedSettings',
'2': [
{'1': 'wallet_id', '3': 1, '4': 1, '5': 5, '10': 'walletId'},
{'1': 'chain_id', '3': 2, '4': 1, '5': 4, '10': 'chainId'},
{
'1': 'valid_from',
'3': 3,
'4': 1,
'5': 11,
'6': '.google.protobuf.Timestamp',
'9': 0,
'10': 'validFrom',
'17': true
},
{
'1': 'valid_until',
'3': 4,
'4': 1,
'5': 11,
'6': '.google.protobuf.Timestamp',
'9': 1,
'10': 'validUntil',
'17': true
},
{
'1': 'max_gas_fee_per_gas',
'3': 5,
'4': 1,
'5': 12,
'9': 2,
'10': 'maxGasFeePerGas',
'17': true
},
{
'1': 'max_priority_fee_per_gas',
'3': 6,
'4': 1,
'5': 12,
'9': 3,
'10': 'maxPriorityFeePerGas',
'17': true
},
{
'1': 'rate_limit',
'3': 7,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TransactionRateLimit',
'9': 4,
'10': 'rateLimit',
'17': true
},
],
'8': [
{'1': '_valid_from'},
{'1': '_valid_until'},
{'1': '_max_gas_fee_per_gas'},
{'1': '_max_priority_fee_per_gas'},
{'1': '_rate_limit'},
],
};
/// Descriptor for `SharedSettings`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List sharedSettingsDescriptor = $convert.base64Decode(
'Cg5TaGFyZWRTZXR0aW5ncxIbCgl3YWxsZXRfaWQYASABKAVSCHdhbGxldElkEhkKCGNoYWluX2'
'lkGAIgASgEUgdjaGFpbklkEj4KCnZhbGlkX2Zyb20YAyABKAsyGi5nb29nbGUucHJvdG9idWYu'
'VGltZXN0YW1wSABSCXZhbGlkRnJvbYgBARJACgt2YWxpZF91bnRpbBgEIAEoCzIaLmdvb2dsZS'
'5wcm90b2J1Zi5UaW1lc3RhbXBIAVIKdmFsaWRVbnRpbIgBARIxChNtYXhfZ2FzX2ZlZV9wZXJf'
'Z2FzGAUgASgMSAJSD21heEdhc0ZlZVBlckdhc4gBARI7ChhtYXhfcHJpb3JpdHlfZmVlX3Blcl'
'9nYXMYBiABKAxIA1IUbWF4UHJpb3JpdHlGZWVQZXJHYXOIAQESRQoKcmF0ZV9saW1pdBgHIAEo'
'CzIhLmFyYml0ZXIuZXZtLlRyYW5zYWN0aW9uUmF0ZUxpbWl0SARSCXJhdGVMaW1pdIgBAUINCg'
'tfdmFsaWRfZnJvbUIOCgxfdmFsaWRfdW50aWxCFgoUX21heF9nYXNfZmVlX3Blcl9nYXNCGwoZ'
'X21heF9wcmlvcml0eV9mZWVfcGVyX2dhc0INCgtfcmF0ZV9saW1pdA==');
@$core.Deprecated('Use etherTransferSettingsDescriptor instead')
const EtherTransferSettings$json = {
'1': 'EtherTransferSettings',
'2': [
{'1': 'targets', '3': 1, '4': 3, '5': 12, '10': 'targets'},
{
'1': 'limit',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.VolumeRateLimit',
'10': 'limit'
},
],
};
/// Descriptor for `EtherTransferSettings`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List etherTransferSettingsDescriptor = $convert.base64Decode(
'ChVFdGhlclRyYW5zZmVyU2V0dGluZ3MSGAoHdGFyZ2V0cxgBIAMoDFIHdGFyZ2V0cxIyCgVsaW'
'1pdBgCIAEoCzIcLmFyYml0ZXIuZXZtLlZvbHVtZVJhdGVMaW1pdFIFbGltaXQ=');
@$core.Deprecated('Use tokenTransferSettingsDescriptor instead')
const TokenTransferSettings$json = {
'1': 'TokenTransferSettings',
'2': [
{'1': 'token_contract', '3': 1, '4': 1, '5': 12, '10': 'tokenContract'},
{
'1': 'target',
'3': 2,
'4': 1,
'5': 12,
'9': 0,
'10': 'target',
'17': true
},
{
'1': 'volume_limits',
'3': 3,
'4': 3,
'5': 11,
'6': '.arbiter.evm.VolumeRateLimit',
'10': 'volumeLimits'
},
],
'8': [
{'1': '_target'},
],
};
/// Descriptor for `TokenTransferSettings`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List tokenTransferSettingsDescriptor = $convert.base64Decode(
'ChVUb2tlblRyYW5zZmVyU2V0dGluZ3MSJQoOdG9rZW5fY29udHJhY3QYASABKAxSDXRva2VuQ2'
'9udHJhY3QSGwoGdGFyZ2V0GAIgASgMSABSBnRhcmdldIgBARJBCg12b2x1bWVfbGltaXRzGAMg'
'AygLMhwuYXJiaXRlci5ldm0uVm9sdW1lUmF0ZUxpbWl0Ugx2b2x1bWVMaW1pdHNCCQoHX3Rhcm'
'dldA==');
@$core.Deprecated('Use specificGrantDescriptor instead')
const SpecificGrant$json = {
'1': 'SpecificGrant',
'2': [
{
'1': 'ether_transfer',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EtherTransferSettings',
'9': 0,
'10': 'etherTransfer'
},
{
'1': 'token_transfer',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TokenTransferSettings',
'9': 0,
'10': 'tokenTransfer'
},
],
'8': [
{'1': 'grant'},
],
};
/// Descriptor for `SpecificGrant`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List specificGrantDescriptor = $convert.base64Decode(
'Cg1TcGVjaWZpY0dyYW50EksKDmV0aGVyX3RyYW5zZmVyGAEgASgLMiIuYXJiaXRlci5ldm0uRX'
'RoZXJUcmFuc2ZlclNldHRpbmdzSABSDWV0aGVyVHJhbnNmZXISSwoOdG9rZW5fdHJhbnNmZXIY'
'AiABKAsyIi5hcmJpdGVyLmV2bS5Ub2tlblRyYW5zZmVyU2V0dGluZ3NIAFINdG9rZW5UcmFuc2'
'ZlckIHCgVncmFudA==');
@$core.Deprecated('Use etherTransferMeaningDescriptor instead')
const EtherTransferMeaning$json = {
'1': 'EtherTransferMeaning',
'2': [
{'1': 'to', '3': 1, '4': 1, '5': 12, '10': 'to'},
{'1': 'value', '3': 2, '4': 1, '5': 12, '10': 'value'},
],
};
/// Descriptor for `EtherTransferMeaning`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List etherTransferMeaningDescriptor = $convert.base64Decode(
'ChRFdGhlclRyYW5zZmVyTWVhbmluZxIOCgJ0bxgBIAEoDFICdG8SFAoFdmFsdWUYAiABKAxSBX'
'ZhbHVl');
@$core.Deprecated('Use tokenInfoDescriptor instead')
const TokenInfo$json = {
'1': 'TokenInfo',
'2': [
{'1': 'symbol', '3': 1, '4': 1, '5': 9, '10': 'symbol'},
{'1': 'address', '3': 2, '4': 1, '5': 12, '10': 'address'},
{'1': 'chain_id', '3': 3, '4': 1, '5': 4, '10': 'chainId'},
],
};
/// Descriptor for `TokenInfo`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List tokenInfoDescriptor = $convert.base64Decode(
'CglUb2tlbkluZm8SFgoGc3ltYm9sGAEgASgJUgZzeW1ib2wSGAoHYWRkcmVzcxgCIAEoDFIHYW'
'RkcmVzcxIZCghjaGFpbl9pZBgDIAEoBFIHY2hhaW5JZA==');
@$core.Deprecated('Use tokenTransferMeaningDescriptor instead')
const TokenTransferMeaning$json = {
'1': 'TokenTransferMeaning',
'2': [
{
'1': 'token',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TokenInfo',
'10': 'token'
},
{'1': 'to', '3': 2, '4': 1, '5': 12, '10': 'to'},
{'1': 'value', '3': 3, '4': 1, '5': 12, '10': 'value'},
],
};
/// Descriptor for `TokenTransferMeaning`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List tokenTransferMeaningDescriptor = $convert.base64Decode(
'ChRUb2tlblRyYW5zZmVyTWVhbmluZxIsCgV0b2tlbhgBIAEoCzIWLmFyYml0ZXIuZXZtLlRva2'
'VuSW5mb1IFdG9rZW4SDgoCdG8YAiABKAxSAnRvEhQKBXZhbHVlGAMgASgMUgV2YWx1ZQ==');
@$core.Deprecated('Use specificMeaningDescriptor instead')
const SpecificMeaning$json = {
'1': 'SpecificMeaning',
'2': [
{
'1': 'ether_transfer',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EtherTransferMeaning',
'9': 0,
'10': 'etherTransfer'
},
{
'1': 'token_transfer',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TokenTransferMeaning',
'9': 0,
'10': 'tokenTransfer'
},
],
'8': [
{'1': 'meaning'},
],
};
/// Descriptor for `SpecificMeaning`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List specificMeaningDescriptor = $convert.base64Decode(
'Cg9TcGVjaWZpY01lYW5pbmcSSgoOZXRoZXJfdHJhbnNmZXIYASABKAsyIS5hcmJpdGVyLmV2bS'
'5FdGhlclRyYW5zZmVyTWVhbmluZ0gAUg1ldGhlclRyYW5zZmVyEkoKDnRva2VuX3RyYW5zZmVy'
'GAIgASgLMiEuYXJiaXRlci5ldm0uVG9rZW5UcmFuc2Zlck1lYW5pbmdIAFINdG9rZW5UcmFuc2'
'ZlckIJCgdtZWFuaW5n');
@$core.Deprecated('Use gasLimitExceededViolationDescriptor instead')
const GasLimitExceededViolation$json = {
'1': 'GasLimitExceededViolation',
'2': [
{
'1': 'max_gas_fee_per_gas',
'3': 1,
'4': 1,
'5': 12,
'9': 0,
'10': 'maxGasFeePerGas',
'17': true
},
{
'1': 'max_priority_fee_per_gas',
'3': 2,
'4': 1,
'5': 12,
'9': 1,
'10': 'maxPriorityFeePerGas',
'17': true
},
],
'8': [
{'1': '_max_gas_fee_per_gas'},
{'1': '_max_priority_fee_per_gas'},
],
};
/// Descriptor for `GasLimitExceededViolation`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List gasLimitExceededViolationDescriptor = $convert.base64Decode(
'ChlHYXNMaW1pdEV4Y2VlZGVkVmlvbGF0aW9uEjEKE21heF9nYXNfZmVlX3Blcl9nYXMYASABKA'
'xIAFIPbWF4R2FzRmVlUGVyR2FziAEBEjsKGG1heF9wcmlvcml0eV9mZWVfcGVyX2dhcxgCIAEo'
'DEgBUhRtYXhQcmlvcml0eUZlZVBlckdhc4gBAUIWChRfbWF4X2dhc19mZWVfcGVyX2dhc0IbCh'
'lfbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz');
@$core.Deprecated('Use evalViolationDescriptor instead')
const EvalViolation$json = {
'1': 'EvalViolation',
'2': [
{
'1': 'invalid_target',
'3': 1,
'4': 1,
'5': 12,
'9': 0,
'10': 'invalidTarget'
},
{
'1': 'gas_limit_exceeded',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.GasLimitExceededViolation',
'9': 0,
'10': 'gasLimitExceeded'
},
{
'1': 'rate_limit_exceeded',
'3': 3,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'rateLimitExceeded'
},
{
'1': 'volumetric_limit_exceeded',
'3': 4,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'volumetricLimitExceeded'
},
{
'1': 'invalid_time',
'3': 5,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'invalidTime'
},
{
'1': 'invalid_transaction_type',
'3': 6,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'invalidTransactionType'
},
],
'8': [
{'1': 'kind'},
],
};
/// Descriptor for `EvalViolation`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evalViolationDescriptor = $convert.base64Decode(
'Cg1FdmFsVmlvbGF0aW9uEicKDmludmFsaWRfdGFyZ2V0GAEgASgMSABSDWludmFsaWRUYXJnZX'
'QSVgoSZ2FzX2xpbWl0X2V4Y2VlZGVkGAIgASgLMiYuYXJiaXRlci5ldm0uR2FzTGltaXRFeGNl'
'ZWRlZFZpb2xhdGlvbkgAUhBnYXNMaW1pdEV4Y2VlZGVkEkgKE3JhdGVfbGltaXRfZXhjZWVkZW'
'QYAyABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIRcmF0ZUxpbWl0RXhjZWVkZWQSVAoZ'
'dm9sdW1ldHJpY19saW1pdF9leGNlZWRlZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eU'
'gAUhd2b2x1bWV0cmljTGltaXRFeGNlZWRlZBI7CgxpbnZhbGlkX3RpbWUYBSABKAsyFi5nb29n'
'bGUucHJvdG9idWYuRW1wdHlIAFILaW52YWxpZFRpbWUSUgoYaW52YWxpZF90cmFuc2FjdGlvbl'
'90eXBlGAYgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SABSFmludmFsaWRUcmFuc2FjdGlv'
'blR5cGVCBgoEa2luZA==');
@$core.Deprecated('Use noMatchingGrantErrorDescriptor instead')
const NoMatchingGrantError$json = {
'1': 'NoMatchingGrantError',
'2': [
{
'1': 'meaning',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SpecificMeaning',
'10': 'meaning'
},
],
};
/// Descriptor for `NoMatchingGrantError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List noMatchingGrantErrorDescriptor = $convert.base64Decode(
'ChROb01hdGNoaW5nR3JhbnRFcnJvchI2CgdtZWFuaW5nGAEgASgLMhwuYXJiaXRlci5ldm0uU3'
'BlY2lmaWNNZWFuaW5nUgdtZWFuaW5n');
@$core.Deprecated('Use policyViolationsErrorDescriptor instead')
const PolicyViolationsError$json = {
'1': 'PolicyViolationsError',
'2': [
{
'1': 'meaning',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SpecificMeaning',
'10': 'meaning'
},
{
'1': 'violations',
'3': 2,
'4': 3,
'5': 11,
'6': '.arbiter.evm.EvalViolation',
'10': 'violations'
},
],
};
/// Descriptor for `PolicyViolationsError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List policyViolationsErrorDescriptor = $convert.base64Decode(
'ChVQb2xpY3lWaW9sYXRpb25zRXJyb3ISNgoHbWVhbmluZxgBIAEoCzIcLmFyYml0ZXIuZXZtLl'
'NwZWNpZmljTWVhbmluZ1IHbWVhbmluZxI6Cgp2aW9sYXRpb25zGAIgAygLMhouYXJiaXRlci5l'
'dm0uRXZhbFZpb2xhdGlvblIKdmlvbGF0aW9ucw==');
@$core.Deprecated('Use transactionEvalErrorDescriptor instead')
const TransactionEvalError$json = {
'1': 'TransactionEvalError',
'2': [
{
'1': 'contract_creation_not_supported',
'3': 1,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'contractCreationNotSupported'
},
{
'1': 'unsupported_transaction_type',
'3': 2,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'unsupportedTransactionType'
},
{
'1': 'no_matching_grant',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.evm.NoMatchingGrantError',
'9': 0,
'10': 'noMatchingGrant'
},
{
'1': 'policy_violations',
'3': 4,
'4': 1,
'5': 11,
'6': '.arbiter.evm.PolicyViolationsError',
'9': 0,
'10': 'policyViolations'
},
],
'8': [
{'1': 'kind'},
],
};
/// Descriptor for `TransactionEvalError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List transactionEvalErrorDescriptor = $convert.base64Decode(
'ChRUcmFuc2FjdGlvbkV2YWxFcnJvchJfCh9jb250cmFjdF9jcmVhdGlvbl9ub3Rfc3VwcG9ydG'
'VkGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SABSHGNvbnRyYWN0Q3JlYXRpb25Ob3RT'
'dXBwb3J0ZWQSWgocdW5zdXBwb3J0ZWRfdHJhbnNhY3Rpb25fdHlwZRgCIAEoCzIWLmdvb2dsZS'
'5wcm90b2J1Zi5FbXB0eUgAUhp1bnN1cHBvcnRlZFRyYW5zYWN0aW9uVHlwZRJPChFub19tYXRj'
'aGluZ19ncmFudBgDIAEoCzIhLmFyYml0ZXIuZXZtLk5vTWF0Y2hpbmdHcmFudEVycm9ySABSD2'
'5vTWF0Y2hpbmdHcmFudBJRChFwb2xpY3lfdmlvbGF0aW9ucxgEIAEoCzIiLmFyYml0ZXIuZXZt'
'LlBvbGljeVZpb2xhdGlvbnNFcnJvckgAUhBwb2xpY3lWaW9sYXRpb25zQgYKBGtpbmQ=');
@$core.Deprecated('Use evmGrantCreateRequestDescriptor instead')
const EvmGrantCreateRequest$json = {
'1': 'EvmGrantCreateRequest',
'2': [
{'1': 'client_id', '3': 1, '4': 1, '5': 5, '10': 'clientId'},
{
'1': 'shared',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SharedSettings',
'10': 'shared'
},
{
'1': 'specific',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SpecificGrant',
'10': 'specific'
},
],
};
/// Descriptor for `EvmGrantCreateRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantCreateRequestDescriptor = $convert.base64Decode(
'ChVFdm1HcmFudENyZWF0ZVJlcXVlc3QSGwoJY2xpZW50X2lkGAEgASgFUghjbGllbnRJZBIzCg'
'ZzaGFyZWQYAiABKAsyGy5hcmJpdGVyLmV2bS5TaGFyZWRTZXR0aW5nc1IGc2hhcmVkEjYKCHNw'
'ZWNpZmljGAMgASgLMhouYXJiaXRlci5ldm0uU3BlY2lmaWNHcmFudFIIc3BlY2lmaWM=');
@$core.Deprecated('Use evmGrantCreateResponseDescriptor instead')
const EvmGrantCreateResponse$json = {
'1': 'EvmGrantCreateResponse',
'2': [
{'1': 'grant_id', '3': 1, '4': 1, '5': 5, '9': 0, '10': 'grantId'},
{
'1': 'error',
'3': 2,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `EvmGrantCreateResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantCreateResponseDescriptor = $convert.base64Decode(
'ChZFdm1HcmFudENyZWF0ZVJlc3BvbnNlEhsKCGdyYW50X2lkGAEgASgFSABSB2dyYW50SWQSLQ'
'oFZXJyb3IYAiABKA4yFS5hcmJpdGVyLmV2bS5Fdm1FcnJvckgAUgVlcnJvckIICgZyZXN1bHQ=');
@$core.Deprecated('Use evmGrantDeleteRequestDescriptor instead')
const EvmGrantDeleteRequest$json = {
'1': 'EvmGrantDeleteRequest',
'2': [
{'1': 'grant_id', '3': 1, '4': 1, '5': 5, '10': 'grantId'},
],
};
/// Descriptor for `EvmGrantDeleteRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantDeleteRequestDescriptor =
$convert.base64Decode(
'ChVFdm1HcmFudERlbGV0ZVJlcXVlc3QSGQoIZ3JhbnRfaWQYASABKAVSB2dyYW50SWQ=');
@$core.Deprecated('Use evmGrantDeleteResponseDescriptor instead')
const EvmGrantDeleteResponse$json = {
'1': 'EvmGrantDeleteResponse',
'2': [
{
'1': 'ok',
'3': 1,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'ok'
},
{
'1': 'error',
'3': 2,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `EvmGrantDeleteResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantDeleteResponseDescriptor = $convert.base64Decode(
'ChZFdm1HcmFudERlbGV0ZVJlc3BvbnNlEigKAm9rGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLk'
'VtcHR5SABSAm9rEi0KBWVycm9yGAIgASgOMhUuYXJiaXRlci5ldm0uRXZtRXJyb3JIAFIFZXJy'
'b3JCCAoGcmVzdWx0');
@$core.Deprecated('Use grantEntryDescriptor instead')
const GrantEntry$json = {
'1': 'GrantEntry',
'2': [
{'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'},
{'1': 'client_id', '3': 2, '4': 1, '5': 5, '10': 'clientId'},
{
'1': 'shared',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SharedSettings',
'10': 'shared'
},
{
'1': 'specific',
'3': 4,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SpecificGrant',
'10': 'specific'
},
],
};
/// Descriptor for `GrantEntry`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List grantEntryDescriptor = $convert.base64Decode(
'CgpHcmFudEVudHJ5Eg4KAmlkGAEgASgFUgJpZBIbCgljbGllbnRfaWQYAiABKAVSCGNsaWVudE'
'lkEjMKBnNoYXJlZBgDIAEoCzIbLmFyYml0ZXIuZXZtLlNoYXJlZFNldHRpbmdzUgZzaGFyZWQS'
'NgoIc3BlY2lmaWMYBCABKAsyGi5hcmJpdGVyLmV2bS5TcGVjaWZpY0dyYW50UghzcGVjaWZpYw'
'==');
@$core.Deprecated('Use evmGrantListRequestDescriptor instead')
const EvmGrantListRequest$json = {
'1': 'EvmGrantListRequest',
'2': [
{
'1': 'wallet_id',
'3': 1,
'4': 1,
'5': 5,
'9': 0,
'10': 'walletId',
'17': true
},
],
'8': [
{'1': '_wallet_id'},
],
};
/// Descriptor for `EvmGrantListRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantListRequestDescriptor = $convert.base64Decode(
'ChNFdm1HcmFudExpc3RSZXF1ZXN0EiAKCXdhbGxldF9pZBgBIAEoBUgAUgh3YWxsZXRJZIgBAU'
'IMCgpfd2FsbGV0X2lk');
@$core.Deprecated('Use evmGrantListResponseDescriptor instead')
const EvmGrantListResponse$json = {
'1': 'EvmGrantListResponse',
'2': [
{
'1': 'grants',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantList',
'9': 0,
'10': 'grants'
},
{
'1': 'error',
'3': 2,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `EvmGrantListResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantListResponseDescriptor = $convert.base64Decode(
'ChRFdm1HcmFudExpc3RSZXNwb25zZRIzCgZncmFudHMYASABKAsyGS5hcmJpdGVyLmV2bS5Fdm'
'1HcmFudExpc3RIAFIGZ3JhbnRzEi0KBWVycm9yGAIgASgOMhUuYXJiaXRlci5ldm0uRXZtRXJy'
'b3JIAFIFZXJyb3JCCAoGcmVzdWx0');
@$core.Deprecated('Use evmGrantListDescriptor instead')
const EvmGrantList$json = {
'1': 'EvmGrantList',
'2': [
{
'1': 'grants',
'3': 1,
'4': 3,
'5': 11,
'6': '.arbiter.evm.GrantEntry',
'10': 'grants'
},
],
};
/// Descriptor for `EvmGrantList`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmGrantListDescriptor = $convert.base64Decode(
'CgxFdm1HcmFudExpc3QSLwoGZ3JhbnRzGAEgAygLMhcuYXJiaXRlci5ldm0uR3JhbnRFbnRyeV'
'IGZ3JhbnRz');
@$core.Deprecated('Use evmSignTransactionRequestDescriptor instead')
const EvmSignTransactionRequest$json = {
'1': 'EvmSignTransactionRequest',
'2': [
{'1': 'wallet_address', '3': 1, '4': 1, '5': 12, '10': 'walletAddress'},
{'1': 'rlp_transaction', '3': 2, '4': 1, '5': 12, '10': 'rlpTransaction'},
],
};
/// Descriptor for `EvmSignTransactionRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmSignTransactionRequestDescriptor =
$convert.base64Decode(
'ChlFdm1TaWduVHJhbnNhY3Rpb25SZXF1ZXN0EiUKDndhbGxldF9hZGRyZXNzGAEgASgMUg13YW'
'xsZXRBZGRyZXNzEicKD3JscF90cmFuc2FjdGlvbhgCIAEoDFIOcmxwVHJhbnNhY3Rpb24=');
@$core.Deprecated('Use evmSignTransactionResponseDescriptor instead')
const EvmSignTransactionResponse$json = {
'1': 'EvmSignTransactionResponse',
'2': [
{'1': 'signature', '3': 1, '4': 1, '5': 12, '9': 0, '10': 'signature'},
{
'1': 'eval_error',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TransactionEvalError',
'9': 0,
'10': 'evalError'
},
{
'1': 'error',
'3': 3,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `EvmSignTransactionResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmSignTransactionResponseDescriptor = $convert.base64Decode(
'ChpFdm1TaWduVHJhbnNhY3Rpb25SZXNwb25zZRIeCglzaWduYXR1cmUYASABKAxIAFIJc2lnbm'
'F0dXJlEkIKCmV2YWxfZXJyb3IYAiABKAsyIS5hcmJpdGVyLmV2bS5UcmFuc2FjdGlvbkV2YWxF'
'cnJvckgAUglldmFsRXJyb3ISLQoFZXJyb3IYAyABKA4yFS5hcmJpdGVyLmV2bS5Fdm1FcnJvck'
'gAUgVlcnJvckIICgZyZXN1bHQ=');
@$core.Deprecated('Use evmAnalyzeTransactionRequestDescriptor instead')
const EvmAnalyzeTransactionRequest$json = {
'1': 'EvmAnalyzeTransactionRequest',
'2': [
{'1': 'wallet_address', '3': 1, '4': 1, '5': 12, '10': 'walletAddress'},
{'1': 'rlp_transaction', '3': 2, '4': 1, '5': 12, '10': 'rlpTransaction'},
],
};
/// Descriptor for `EvmAnalyzeTransactionRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmAnalyzeTransactionRequestDescriptor =
$convert.base64Decode(
'ChxFdm1BbmFseXplVHJhbnNhY3Rpb25SZXF1ZXN0EiUKDndhbGxldF9hZGRyZXNzGAEgASgMUg'
'13YWxsZXRBZGRyZXNzEicKD3JscF90cmFuc2FjdGlvbhgCIAEoDFIOcmxwVHJhbnNhY3Rpb24=');
@$core.Deprecated('Use evmAnalyzeTransactionResponseDescriptor instead')
const EvmAnalyzeTransactionResponse$json = {
'1': 'EvmAnalyzeTransactionResponse',
'2': [
{
'1': 'meaning',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.evm.SpecificMeaning',
'9': 0,
'10': 'meaning'
},
{
'1': 'eval_error',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.evm.TransactionEvalError',
'9': 0,
'10': 'evalError'
},
{
'1': 'error',
'3': 3,
'4': 1,
'5': 14,
'6': '.arbiter.evm.EvmError',
'9': 0,
'10': 'error'
},
],
'8': [
{'1': 'result'},
],
};
/// Descriptor for `EvmAnalyzeTransactionResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List evmAnalyzeTransactionResponseDescriptor = $convert.base64Decode(
'Ch1Fdm1BbmFseXplVHJhbnNhY3Rpb25SZXNwb25zZRI4CgdtZWFuaW5nGAEgASgLMhwuYXJiaX'
'Rlci5ldm0uU3BlY2lmaWNNZWFuaW5nSABSB21lYW5pbmcSQgoKZXZhbF9lcnJvchgCIAEoCzIh'
'LmFyYml0ZXIuZXZtLlRyYW5zYWN0aW9uRXZhbEVycm9ySABSCWV2YWxFcnJvchItCgVlcnJvch'
'gDIAEoDjIVLmFyYml0ZXIuZXZtLkV2bUVycm9ySABSBWVycm9yQggKBnJlc3VsdA==');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,71 @@
// This is a generated file - do not edit.
//
// Generated from user_agent.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class UnsealResult extends $pb.ProtobufEnum {
static const UnsealResult UNSEAL_RESULT_UNSPECIFIED =
UnsealResult._(0, _omitEnumNames ? '' : 'UNSEAL_RESULT_UNSPECIFIED');
static const UnsealResult UNSEAL_RESULT_SUCCESS =
UnsealResult._(1, _omitEnumNames ? '' : 'UNSEAL_RESULT_SUCCESS');
static const UnsealResult UNSEAL_RESULT_INVALID_KEY =
UnsealResult._(2, _omitEnumNames ? '' : 'UNSEAL_RESULT_INVALID_KEY');
static const UnsealResult UNSEAL_RESULT_UNBOOTSTRAPPED =
UnsealResult._(3, _omitEnumNames ? '' : 'UNSEAL_RESULT_UNBOOTSTRAPPED');
static const $core.List<UnsealResult> values = <UnsealResult>[
UNSEAL_RESULT_UNSPECIFIED,
UNSEAL_RESULT_SUCCESS,
UNSEAL_RESULT_INVALID_KEY,
UNSEAL_RESULT_UNBOOTSTRAPPED,
];
static final $core.List<UnsealResult?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 3);
static UnsealResult? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const UnsealResult._(super.value, super.name);
}
class VaultState extends $pb.ProtobufEnum {
static const VaultState VAULT_STATE_UNSPECIFIED =
VaultState._(0, _omitEnumNames ? '' : 'VAULT_STATE_UNSPECIFIED');
static const VaultState VAULT_STATE_UNBOOTSTRAPPED =
VaultState._(1, _omitEnumNames ? '' : 'VAULT_STATE_UNBOOTSTRAPPED');
static const VaultState VAULT_STATE_SEALED =
VaultState._(2, _omitEnumNames ? '' : 'VAULT_STATE_SEALED');
static const VaultState VAULT_STATE_UNSEALED =
VaultState._(3, _omitEnumNames ? '' : 'VAULT_STATE_UNSEALED');
static const VaultState VAULT_STATE_ERROR =
VaultState._(4, _omitEnumNames ? '' : 'VAULT_STATE_ERROR');
static const $core.List<VaultState> values = <VaultState>[
VAULT_STATE_UNSPECIFIED,
VAULT_STATE_UNBOOTSTRAPPED,
VAULT_STATE_SEALED,
VAULT_STATE_UNSEALED,
VAULT_STATE_ERROR,
];
static final $core.List<VaultState?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 4);
static VaultState? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const VaultState._(super.value, super.name);
}
const $core.bool _omitEnumNames =
$core.bool.fromEnvironment('protobuf.omit_enum_names');

View File

@@ -0,0 +1,457 @@
// This is a generated file - do not edit.
//
// Generated from user_agent.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
// ignore_for_file: unused_import
import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use unsealResultDescriptor instead')
const UnsealResult$json = {
'1': 'UnsealResult',
'2': [
{'1': 'UNSEAL_RESULT_UNSPECIFIED', '2': 0},
{'1': 'UNSEAL_RESULT_SUCCESS', '2': 1},
{'1': 'UNSEAL_RESULT_INVALID_KEY', '2': 2},
{'1': 'UNSEAL_RESULT_UNBOOTSTRAPPED', '2': 3},
],
};
/// Descriptor for `UnsealResult`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List unsealResultDescriptor = $convert.base64Decode(
'CgxVbnNlYWxSZXN1bHQSHQoZVU5TRUFMX1JFU1VMVF9VTlNQRUNJRklFRBAAEhkKFVVOU0VBTF'
'9SRVNVTFRfU1VDQ0VTUxABEh0KGVVOU0VBTF9SRVNVTFRfSU5WQUxJRF9LRVkQAhIgChxVTlNF'
'QUxfUkVTVUxUX1VOQk9PVFNUUkFQUEVEEAM=');
@$core.Deprecated('Use vaultStateDescriptor instead')
const VaultState$json = {
'1': 'VaultState',
'2': [
{'1': 'VAULT_STATE_UNSPECIFIED', '2': 0},
{'1': 'VAULT_STATE_UNBOOTSTRAPPED', '2': 1},
{'1': 'VAULT_STATE_SEALED', '2': 2},
{'1': 'VAULT_STATE_UNSEALED', '2': 3},
{'1': 'VAULT_STATE_ERROR', '2': 4},
],
};
/// Descriptor for `VaultState`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List vaultStateDescriptor = $convert.base64Decode(
'CgpWYXVsdFN0YXRlEhsKF1ZBVUxUX1NUQVRFX1VOU1BFQ0lGSUVEEAASHgoaVkFVTFRfU1RBVE'
'VfVU5CT09UU1RSQVBQRUQQARIWChJWQVVMVF9TVEFURV9TRUFMRUQQAhIYChRWQVVMVF9TVEFU'
'RV9VTlNFQUxFRBADEhUKEVZBVUxUX1NUQVRFX0VSUk9SEAQ=');
@$core.Deprecated('Use authChallengeRequestDescriptor instead')
const AuthChallengeRequest$json = {
'1': 'AuthChallengeRequest',
'2': [
{'1': 'pubkey', '3': 1, '4': 1, '5': 12, '10': 'pubkey'},
{
'1': 'bootstrap_token',
'3': 2,
'4': 1,
'5': 9,
'9': 0,
'10': 'bootstrapToken',
'17': true
},
],
'8': [
{'1': '_bootstrap_token'},
],
};
/// Descriptor for `AuthChallengeRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeRequestDescriptor = $convert.base64Decode(
'ChRBdXRoQ2hhbGxlbmdlUmVxdWVzdBIWCgZwdWJrZXkYASABKAxSBnB1YmtleRIsCg9ib290c3'
'RyYXBfdG9rZW4YAiABKAlIAFIOYm9vdHN0cmFwVG9rZW6IAQFCEgoQX2Jvb3RzdHJhcF90b2tl'
'bg==');
@$core.Deprecated('Use authChallengeDescriptor instead')
const AuthChallenge$json = {
'1': 'AuthChallenge',
'2': [
{'1': 'pubkey', '3': 1, '4': 1, '5': 12, '10': 'pubkey'},
{'1': 'nonce', '3': 2, '4': 1, '5': 5, '10': 'nonce'},
],
};
/// Descriptor for `AuthChallenge`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeDescriptor = $convert.base64Decode(
'Cg1BdXRoQ2hhbGxlbmdlEhYKBnB1YmtleRgBIAEoDFIGcHVia2V5EhQKBW5vbmNlGAIgASgFUg'
'Vub25jZQ==');
@$core.Deprecated('Use authChallengeSolutionDescriptor instead')
const AuthChallengeSolution$json = {
'1': 'AuthChallengeSolution',
'2': [
{'1': 'signature', '3': 1, '4': 1, '5': 12, '10': 'signature'},
],
};
/// Descriptor for `AuthChallengeSolution`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authChallengeSolutionDescriptor = $convert.base64Decode(
'ChVBdXRoQ2hhbGxlbmdlU29sdXRpb24SHAoJc2lnbmF0dXJlGAEgASgMUglzaWduYXR1cmU=');
@$core.Deprecated('Use authOkDescriptor instead')
const AuthOk$json = {
'1': 'AuthOk',
};
/// Descriptor for `AuthOk`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List authOkDescriptor =
$convert.base64Decode('CgZBdXRoT2s=');
@$core.Deprecated('Use unsealStartDescriptor instead')
const UnsealStart$json = {
'1': 'UnsealStart',
'2': [
{'1': 'client_pubkey', '3': 1, '4': 1, '5': 12, '10': 'clientPubkey'},
],
};
/// Descriptor for `UnsealStart`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List unsealStartDescriptor = $convert.base64Decode(
'CgtVbnNlYWxTdGFydBIjCg1jbGllbnRfcHVia2V5GAEgASgMUgxjbGllbnRQdWJrZXk=');
@$core.Deprecated('Use unsealStartResponseDescriptor instead')
const UnsealStartResponse$json = {
'1': 'UnsealStartResponse',
'2': [
{'1': 'server_pubkey', '3': 1, '4': 1, '5': 12, '10': 'serverPubkey'},
],
};
/// Descriptor for `UnsealStartResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List unsealStartResponseDescriptor = $convert.base64Decode(
'ChNVbnNlYWxTdGFydFJlc3BvbnNlEiMKDXNlcnZlcl9wdWJrZXkYASABKAxSDHNlcnZlclB1Ym'
'tleQ==');
@$core.Deprecated('Use unsealEncryptedKeyDescriptor instead')
const UnsealEncryptedKey$json = {
'1': 'UnsealEncryptedKey',
'2': [
{'1': 'nonce', '3': 1, '4': 1, '5': 12, '10': 'nonce'},
{'1': 'ciphertext', '3': 2, '4': 1, '5': 12, '10': 'ciphertext'},
{'1': 'associated_data', '3': 3, '4': 1, '5': 12, '10': 'associatedData'},
],
};
/// Descriptor for `UnsealEncryptedKey`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List unsealEncryptedKeyDescriptor = $convert.base64Decode(
'ChJVbnNlYWxFbmNyeXB0ZWRLZXkSFAoFbm9uY2UYASABKAxSBW5vbmNlEh4KCmNpcGhlcnRleH'
'QYAiABKAxSCmNpcGhlcnRleHQSJwoPYXNzb2NpYXRlZF9kYXRhGAMgASgMUg5hc3NvY2lhdGVk'
'RGF0YQ==');
@$core.Deprecated('Use clientConnectionRequestDescriptor instead')
const ClientConnectionRequest$json = {
'1': 'ClientConnectionRequest',
'2': [
{'1': 'pubkey', '3': 1, '4': 1, '5': 12, '10': 'pubkey'},
],
};
/// Descriptor for `ClientConnectionRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientConnectionRequestDescriptor =
$convert.base64Decode(
'ChdDbGllbnRDb25uZWN0aW9uUmVxdWVzdBIWCgZwdWJrZXkYASABKAxSBnB1YmtleQ==');
@$core.Deprecated('Use clientConnectionResponseDescriptor instead')
const ClientConnectionResponse$json = {
'1': 'ClientConnectionResponse',
'2': [
{'1': 'approved', '3': 1, '4': 1, '5': 8, '10': 'approved'},
],
};
/// Descriptor for `ClientConnectionResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientConnectionResponseDescriptor =
$convert.base64Decode(
'ChhDbGllbnRDb25uZWN0aW9uUmVzcG9uc2USGgoIYXBwcm92ZWQYASABKAhSCGFwcHJvdmVk');
@$core.Deprecated('Use clientConnectionCancelDescriptor instead')
const ClientConnectionCancel$json = {
'1': 'ClientConnectionCancel',
};
/// Descriptor for `ClientConnectionCancel`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List clientConnectionCancelDescriptor =
$convert.base64Decode('ChZDbGllbnRDb25uZWN0aW9uQ2FuY2Vs');
@$core.Deprecated('Use userAgentRequestDescriptor instead')
const UserAgentRequest$json = {
'1': 'UserAgentRequest',
'2': [
{
'1': 'auth_challenge_request',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.AuthChallengeRequest',
'9': 0,
'10': 'authChallengeRequest'
},
{
'1': 'auth_challenge_solution',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.AuthChallengeSolution',
'9': 0,
'10': 'authChallengeSolution'
},
{
'1': 'unseal_start',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.UnsealStart',
'9': 0,
'10': 'unsealStart'
},
{
'1': 'unseal_encrypted_key',
'3': 4,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.UnsealEncryptedKey',
'9': 0,
'10': 'unsealEncryptedKey'
},
{
'1': 'query_vault_state',
'3': 5,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'queryVaultState'
},
{
'1': 'evm_wallet_create',
'3': 6,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'evmWalletCreate'
},
{
'1': 'evm_wallet_list',
'3': 7,
'4': 1,
'5': 11,
'6': '.google.protobuf.Empty',
'9': 0,
'10': 'evmWalletList'
},
{
'1': 'evm_grant_create',
'3': 8,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantCreateRequest',
'9': 0,
'10': 'evmGrantCreate'
},
{
'1': 'evm_grant_delete',
'3': 9,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantDeleteRequest',
'9': 0,
'10': 'evmGrantDelete'
},
{
'1': 'evm_grant_list',
'3': 10,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantListRequest',
'9': 0,
'10': 'evmGrantList'
},
{
'1': 'client_connection_response',
'3': 11,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.ClientConnectionResponse',
'9': 0,
'10': 'clientConnectionResponse'
},
],
'8': [
{'1': 'payload'},
],
};
/// Descriptor for `UserAgentRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List userAgentRequestDescriptor = $convert.base64Decode(
'ChBVc2VyQWdlbnRSZXF1ZXN0EmAKFmF1dGhfY2hhbGxlbmdlX3JlcXVlc3QYASABKAsyKC5hcm'
'JpdGVyLnVzZXJfYWdlbnQuQXV0aENoYWxsZW5nZVJlcXVlc3RIAFIUYXV0aENoYWxsZW5nZVJl'
'cXVlc3QSYwoXYXV0aF9jaGFsbGVuZ2Vfc29sdXRpb24YAiABKAsyKS5hcmJpdGVyLnVzZXJfYW'
'dlbnQuQXV0aENoYWxsZW5nZVNvbHV0aW9uSABSFWF1dGhDaGFsbGVuZ2VTb2x1dGlvbhJECgx1'
'bnNlYWxfc3RhcnQYAyABKAsyHy5hcmJpdGVyLnVzZXJfYWdlbnQuVW5zZWFsU3RhcnRIAFILdW'
'5zZWFsU3RhcnQSWgoUdW5zZWFsX2VuY3J5cHRlZF9rZXkYBCABKAsyJi5hcmJpdGVyLnVzZXJf'
'YWdlbnQuVW5zZWFsRW5jcnlwdGVkS2V5SABSEnVuc2VhbEVuY3J5cHRlZEtleRJEChFxdWVyeV'
'92YXVsdF9zdGF0ZRgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUg9xdWVyeVZhdWx0'
'U3RhdGUSRAoRZXZtX3dhbGxldF9jcmVhdGUYBiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdH'
'lIAFIPZXZtV2FsbGV0Q3JlYXRlEkAKD2V2bV93YWxsZXRfbGlzdBgHIAEoCzIWLmdvb2dsZS5w'
'cm90b2J1Zi5FbXB0eUgAUg1ldm1XYWxsZXRMaXN0Ek4KEGV2bV9ncmFudF9jcmVhdGUYCCABKA'
'syIi5hcmJpdGVyLmV2bS5Fdm1HcmFudENyZWF0ZVJlcXVlc3RIAFIOZXZtR3JhbnRDcmVhdGUS'
'TgoQZXZtX2dyYW50X2RlbGV0ZRgJIAEoCzIiLmFyYml0ZXIuZXZtLkV2bUdyYW50RGVsZXRlUm'
'VxdWVzdEgAUg5ldm1HcmFudERlbGV0ZRJICg5ldm1fZ3JhbnRfbGlzdBgKIAEoCzIgLmFyYml0'
'ZXIuZXZtLkV2bUdyYW50TGlzdFJlcXVlc3RIAFIMZXZtR3JhbnRMaXN0EmwKGmNsaWVudF9jb2'
'5uZWN0aW9uX3Jlc3BvbnNlGAsgASgLMiwuYXJiaXRlci51c2VyX2FnZW50LkNsaWVudENvbm5l'
'Y3Rpb25SZXNwb25zZUgAUhhjbGllbnRDb25uZWN0aW9uUmVzcG9uc2VCCQoHcGF5bG9hZA==');
@$core.Deprecated('Use userAgentResponseDescriptor instead')
const UserAgentResponse$json = {
'1': 'UserAgentResponse',
'2': [
{
'1': 'auth_challenge',
'3': 1,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.AuthChallenge',
'9': 0,
'10': 'authChallenge'
},
{
'1': 'auth_ok',
'3': 2,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.AuthOk',
'9': 0,
'10': 'authOk'
},
{
'1': 'unseal_start_response',
'3': 3,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.UnsealStartResponse',
'9': 0,
'10': 'unsealStartResponse'
},
{
'1': 'unseal_result',
'3': 4,
'4': 1,
'5': 14,
'6': '.arbiter.user_agent.UnsealResult',
'9': 0,
'10': 'unsealResult'
},
{
'1': 'vault_state',
'3': 5,
'4': 1,
'5': 14,
'6': '.arbiter.user_agent.VaultState',
'9': 0,
'10': 'vaultState'
},
{
'1': 'evm_wallet_create',
'3': 6,
'4': 1,
'5': 11,
'6': '.arbiter.evm.WalletCreateResponse',
'9': 0,
'10': 'evmWalletCreate'
},
{
'1': 'evm_wallet_list',
'3': 7,
'4': 1,
'5': 11,
'6': '.arbiter.evm.WalletListResponse',
'9': 0,
'10': 'evmWalletList'
},
{
'1': 'evm_grant_create',
'3': 8,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantCreateResponse',
'9': 0,
'10': 'evmGrantCreate'
},
{
'1': 'evm_grant_delete',
'3': 9,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantDeleteResponse',
'9': 0,
'10': 'evmGrantDelete'
},
{
'1': 'evm_grant_list',
'3': 10,
'4': 1,
'5': 11,
'6': '.arbiter.evm.EvmGrantListResponse',
'9': 0,
'10': 'evmGrantList'
},
{
'1': 'client_connection_request',
'3': 11,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.ClientConnectionRequest',
'9': 0,
'10': 'clientConnectionRequest'
},
{
'1': 'client_connection_cancel',
'3': 12,
'4': 1,
'5': 11,
'6': '.arbiter.user_agent.ClientConnectionCancel',
'9': 0,
'10': 'clientConnectionCancel'
},
],
'8': [
{'1': 'payload'},
],
};
/// Descriptor for `UserAgentResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List userAgentResponseDescriptor = $convert.base64Decode(
'ChFVc2VyQWdlbnRSZXNwb25zZRJKCg5hdXRoX2NoYWxsZW5nZRgBIAEoCzIhLmFyYml0ZXIudX'
'Nlcl9hZ2VudC5BdXRoQ2hhbGxlbmdlSABSDWF1dGhDaGFsbGVuZ2USNQoHYXV0aF9vaxgCIAEo'
'CzIaLmFyYml0ZXIudXNlcl9hZ2VudC5BdXRoT2tIAFIGYXV0aE9rEl0KFXVuc2VhbF9zdGFydF'
'9yZXNwb25zZRgDIAEoCzInLmFyYml0ZXIudXNlcl9hZ2VudC5VbnNlYWxTdGFydFJlc3BvbnNl'
'SABSE3Vuc2VhbFN0YXJ0UmVzcG9uc2USRwoNdW5zZWFsX3Jlc3VsdBgEIAEoDjIgLmFyYml0ZX'
'IudXNlcl9hZ2VudC5VbnNlYWxSZXN1bHRIAFIMdW5zZWFsUmVzdWx0EkEKC3ZhdWx0X3N0YXRl'
'GAUgASgOMh4uYXJiaXRlci51c2VyX2FnZW50LlZhdWx0U3RhdGVIAFIKdmF1bHRTdGF0ZRJPCh'
'Fldm1fd2FsbGV0X2NyZWF0ZRgGIAEoCzIhLmFyYml0ZXIuZXZtLldhbGxldENyZWF0ZVJlc3Bv'
'bnNlSABSD2V2bVdhbGxldENyZWF0ZRJJCg9ldm1fd2FsbGV0X2xpc3QYByABKAsyHy5hcmJpdG'
'VyLmV2bS5XYWxsZXRMaXN0UmVzcG9uc2VIAFINZXZtV2FsbGV0TGlzdBJPChBldm1fZ3JhbnRf'
'Y3JlYXRlGAggASgLMiMuYXJiaXRlci5ldm0uRXZtR3JhbnRDcmVhdGVSZXNwb25zZUgAUg5ldm'
'1HcmFudENyZWF0ZRJPChBldm1fZ3JhbnRfZGVsZXRlGAkgASgLMiMuYXJiaXRlci5ldm0uRXZt'
'R3JhbnREZWxldGVSZXNwb25zZUgAUg5ldm1HcmFudERlbGV0ZRJJCg5ldm1fZ3JhbnRfbGlzdB'
'gKIAEoCzIhLmFyYml0ZXIuZXZtLkV2bUdyYW50TGlzdFJlc3BvbnNlSABSDGV2bUdyYW50TGlz'
'dBJpChljbGllbnRfY29ubmVjdGlvbl9yZXF1ZXN0GAsgASgLMisuYXJiaXRlci51c2VyX2FnZW'
'50LkNsaWVudENvbm5lY3Rpb25SZXF1ZXN0SABSF2NsaWVudENvbm5lY3Rpb25SZXF1ZXN0EmYK'
'GGNsaWVudF9jb25uZWN0aW9uX2NhbmNlbBgMIAEoCzIqLmFyYml0ZXIudXNlcl9hZ2VudC5DbG'
'llbnRDb25uZWN0aW9uQ2FuY2VsSABSFmNsaWVudENvbm5lY3Rpb25DYW5jZWxCCQoHcGF5bG9h'
'ZA==');

View File

@@ -0,0 +1,60 @@
import 'package:hooks_riverpod/experimental/mutation.dart';
import 'package:mtcore/markettakers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:arbiter/features/pk_manager.dart';
import 'package:arbiter/features/simple_ed25519.dart';
part 'key.g.dart';
@riverpod
KeyManager keyManager(Ref ref) {
return SimpleEd25519Manager();
}
@riverpod
class Key extends _$Key {
@override
Future<KeyHandle?> build() async {
final manager = SimpleEd25519Manager();
final keyHandle = await manager.get();
return keyHandle;
}
Future<void> create() async {
if (state.value != null) {
return;
}
state = await AsyncValue.guard(() async {
final manager = SimpleEd25519Manager();
final newKeyHandle = await manager.create();
return newKeyHandle;
});
}
}
class KeyBootstrapper implements StageFactory {
final MutationTarget ref;
KeyBootstrapper({required this.ref});
@override
String get title => "Setting up your identity";
@override
Future<bool> get isAlreadyCompleted async {
final key = await ref.container.read(keyProvider.future);
return key != null;
}
@override
Future<void> start(StageController controller) async {
controller.setIndefiniteProgress();
final key = ref.container.read(keyProvider.notifier);
await key.create();
}
@override
void dispose() {}
}

View File

@@ -0,0 +1,94 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'key.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
@ProviderFor(keyManager)
final keyManagerProvider = KeyManagerProvider._();
final class KeyManagerProvider
extends $FunctionalProvider<KeyManager, KeyManager, KeyManager>
with $Provider<KeyManager> {
KeyManagerProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'keyManagerProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$keyManagerHash();
@$internal
@override
$ProviderElement<KeyManager> $createElement($ProviderPointer pointer) =>
$ProviderElement(pointer);
@override
KeyManager create(Ref ref) {
return keyManager(ref);
}
/// {@macro riverpod.override_with_value}
Override overrideWithValue(KeyManager value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<KeyManager>(value),
);
}
}
String _$keyManagerHash() => r'aa37bca34c01a39c11e29d57e320172b37c0b116';
@ProviderFor(Key)
final keyProvider = KeyProvider._();
final class KeyProvider extends $AsyncNotifierProvider<Key, KeyHandle?> {
KeyProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'keyProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$keyHash();
@$internal
@override
Key create() => Key();
}
String _$keyHash() => r'6d66204174c4d2d5c76e27f3a8de8f9a9c88a3e0';
abstract class _$Key extends $AsyncNotifier<KeyHandle?> {
FutureOr<KeyHandle?> build();
@$mustCallSuper
@override
void runBuild() {
final ref = this.ref as $Ref<AsyncValue<KeyHandle?>, KeyHandle?>;
final element =
ref.element
as $ClassProviderElement<
AnyNotifier<AsyncValue<KeyHandle?>, KeyHandle?>,
AsyncValue<KeyHandle?>,
Object?,
Object?
>;
element.handleCreate(ref, build);
}
}

32
useragent/lib/router.dart Normal file
View File

@@ -0,0 +1,32 @@
import 'dart:async';
import 'package:arbiter/features/bootstrap.dart';
import 'package:arbiter/home.dart';
import 'package:flutter/src/widgets/async.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
final _bootstapCompleter = Completer<void>();
class Router extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final bootstrapper = useMemoized(
() => Bootstrap(completer: _bootstapCompleter),
);
final bootstrapFuture = useFuture(_bootstapCompleter.future);
switch (bootstrapFuture.connectionState) {
case ConnectionState.none ||
ConnectionState.waiting ||
ConnectionState.active:
return bootstrapper;
case ConnectionState.done:
break;
}
return Home();
}
}

View File

@@ -0,0 +1,9 @@
import 'package:flutter/material.dart';
import 'package:mtcore/markettakers.dart';
class About extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AboutScreen(decription: "Arbiter is bla bla bla");
}
}

View File

@@ -0,0 +1,74 @@
import 'package:flutter/material.dart';
class CalcScreen extends StatefulWidget {
const CalcScreen({super.key});
@override
State<CalcScreen> createState() => _CalcScreenState();
}
class _CalcScreenState extends State<CalcScreen> {
int _count = 0;
void _increment() {
setState(() {
_count++;
});
}
void _decrement() {
setState(() {
_count--;
});
}
void _reset() {
setState(() {
_count = 0;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Counter'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('Current count'),
const SizedBox(height: 8),
Text(
'$_count',
style: Theme.of(context).textTheme.displaySmall,
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: _decrement,
icon: const Icon(Icons.remove_circle_outline),
tooltip: 'Decrement',
),
const SizedBox(width: 12),
ElevatedButton(
onPressed: _reset,
child: const Text('Reset'),
),
const SizedBox(width: 12),
IconButton(
onPressed: _increment,
icon: const Icon(Icons.add_circle_outline),
tooltip: 'Increment',
),
],
),
],
),
),
);
}
}