feat(useragent): initial impl
This commit is contained in:
118
useragent/lib/features/adaptive_switcher.dart
Normal file
118
useragent/lib/features/adaptive_switcher.dart
Normal 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,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
26
useragent/lib/features/bootstrap.dart
Normal file
26
useragent/lib/features/bootstrap.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
19
useragent/lib/features/pk_manager.dart
Normal file
19
useragent/lib/features/pk_manager.dart
Normal 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();
|
||||
}
|
||||
94
useragent/lib/features/simple_ed25519.dart
Normal file
94
useragent/lib/features/simple_ed25519.dart
Normal 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
24
useragent/lib/home.dart
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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())),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
107
useragent/lib/proto/arbiter.pb.dart
Normal file
107
useragent/lib/proto/arbiter.pb.dart
Normal 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');
|
||||
11
useragent/lib/proto/arbiter.pbenum.dart
Normal file
11
useragent/lib/proto/arbiter.pbenum.dart
Normal 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
|
||||
124
useragent/lib/proto/arbiter.pbjson.dart
Normal file
124
useragent/lib/proto/arbiter.pbjson.dart
Normal 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==');
|
||||
56
useragent/lib/proto/arbiter.pbserver.dart
Normal file
56
useragent/lib/proto/arbiter.pbserver.dart
Normal 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;
|
||||
}
|
||||
551
useragent/lib/proto/client.pb.dart
Normal file
551
useragent/lib/proto/client.pb.dart
Normal 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');
|
||||
42
useragent/lib/proto/client.pbenum.dart
Normal file
42
useragent/lib/proto/client.pbenum.dart
Normal 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');
|
||||
197
useragent/lib/proto/client.pbjson.dart
Normal file
197
useragent/lib/proto/client.pbjson.dart
Normal 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==');
|
||||
2582
useragent/lib/proto/evm.pb.dart
Normal file
2582
useragent/lib/proto/evm.pb.dart
Normal file
File diff suppressed because it is too large
Load Diff
40
useragent/lib/proto/evm.pbenum.dart
Normal file
40
useragent/lib/proto/evm.pbenum.dart
Normal 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');
|
||||
950
useragent/lib/proto/evm.pbjson.dart
Normal file
950
useragent/lib/proto/evm.pbjson.dart
Normal 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==');
|
||||
1166
useragent/lib/proto/user_agent.pb.dart
Normal file
1166
useragent/lib/proto/user_agent.pb.dart
Normal file
File diff suppressed because it is too large
Load Diff
71
useragent/lib/proto/user_agent.pbenum.dart
Normal file
71
useragent/lib/proto/user_agent.pbenum.dart
Normal 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');
|
||||
457
useragent/lib/proto/user_agent.pbjson.dart
Normal file
457
useragent/lib/proto/user_agent.pbjson.dart
Normal 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==');
|
||||
60
useragent/lib/providers/key.dart
Normal file
60
useragent/lib/providers/key.dart
Normal 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() {}
|
||||
}
|
||||
94
useragent/lib/providers/key.g.dart
Normal file
94
useragent/lib/providers/key.g.dart
Normal 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
32
useragent/lib/router.dart
Normal 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();
|
||||
}
|
||||
}
|
||||
9
useragent/lib/screens/about.dart
Normal file
9
useragent/lib/screens/about.dart
Normal 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");
|
||||
}
|
||||
}
|
||||
74
useragent/lib/screens/calc.dart
Normal file
74
useragent/lib/screens/calc.dart
Normal 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',
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user