merge: @main into client-integrity-verification
Some checks failed
ci/woodpecker/push/server-vet Pipeline failed
ci/woodpecker/push/server-lint Pipeline failed
ci/woodpecker/pr/useragent-analyze Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/push/useragent-analyze Pipeline failed
ci/woodpecker/push/server-test Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/push/server-audit Pipeline was successful
ci/woodpecker/pr/server-audit Pipeline was successful
Some checks failed
ci/woodpecker/push/server-vet Pipeline failed
ci/woodpecker/push/server-lint Pipeline failed
ci/woodpecker/pr/useragent-analyze Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/push/useragent-analyze Pipeline failed
ci/woodpecker/push/server-test Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/push/server-audit Pipeline was successful
ci/woodpecker/pr/server-audit Pipeline was successful
This commit was merged in pull request #43.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import 'package:arbiter/proto/client.pb.dart';
|
||||
import 'package:arbiter/proto/shared/client.pb.dart';
|
||||
import 'package:arbiter/theme/palette.dart';
|
||||
import 'package:arbiter/widgets/cream_frame.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ClientDetails extends ConsumerWidget {
|
||||
final SdkClientEntry client;
|
||||
final ua_sdk.Entry client;
|
||||
const ClientDetails({super.key, required this.client});
|
||||
|
||||
@override
|
||||
@@ -14,4 +14,4 @@ class ClientDetails extends ConsumerWidget {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:arbiter/providers/sdk_clients/details.dart';
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/screens/dashboard/clients/details/widgets/client_details_content.dart';
|
||||
import 'package:arbiter/screens/dashboard/clients/details/widgets/client_details_state_panel.dart';
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
@@ -40,7 +40,7 @@ class _ClientDetailsState extends StatelessWidget {
|
||||
const _ClientDetailsState({required this.clientId, required this.client});
|
||||
|
||||
final int clientId;
|
||||
final SdkClientEntry? client;
|
||||
final ua_sdk.Entry? client;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/providers/sdk_clients/wallet_access.dart';
|
||||
import 'package:arbiter/screens/dashboard/clients/details/widgets/client_details_header.dart';
|
||||
import 'package:arbiter/screens/dashboard/clients/details/widgets/client_summary_card.dart';
|
||||
@@ -16,7 +16,7 @@ class ClientDetailsContent extends ConsumerWidget {
|
||||
});
|
||||
|
||||
final int clientId;
|
||||
final SdkClientEntry client;
|
||||
final ua_sdk.Entry client;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/widgets/cream_frame.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ClientSummaryCard extends StatelessWidget {
|
||||
const ClientSummaryCard({super.key, required this.client});
|
||||
|
||||
final SdkClientEntry client;
|
||||
final ua_sdk.Entry client;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/providers/connection/connection_manager.dart';
|
||||
import 'package:arbiter/router.gr.dart';
|
||||
import 'package:arbiter/providers/sdk_clients/list.dart';
|
||||
@@ -175,7 +175,7 @@ class _ClientTableHeader extends StatelessWidget {
|
||||
class _ClientTableRow extends HookWidget {
|
||||
const _ClientTableRow({required this.client});
|
||||
|
||||
final SdkClientEntry client;
|
||||
final ua_sdk.Entry client;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -366,7 +366,7 @@ class _ClientTableRow extends HookWidget {
|
||||
class _ClientTable extends StatelessWidget {
|
||||
const _ClientTable({required this.clients});
|
||||
|
||||
final List<SdkClientEntry> clients;
|
||||
final List<ua_sdk.Entry> clients;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// lib/screens/dashboard/evm/grants/create/fields/client_picker_field.dart
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/providers/sdk_clients/list.dart';
|
||||
import 'package:arbiter/screens/dashboard/evm/grants/create/provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -12,7 +12,7 @@ class ClientPickerField extends ConsumerWidget {
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final clients =
|
||||
ref.watch(sdkClientsProvider).asData?.value ?? const <SdkClientEntry>[];
|
||||
ref.watch(sdkClientsProvider).asData?.value ?? const <ua_sdk.Entry>[];
|
||||
|
||||
return FormBuilderDropdown<int>(
|
||||
name: 'clientId',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// lib/screens/dashboard/evm/grants/create/fields/wallet_access_picker_field.dart
|
||||
import 'package:arbiter/proto/evm.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/providers/evm/evm.dart';
|
||||
import 'package:arbiter/providers/sdk_clients/wallet_access_list.dart';
|
||||
import 'package:arbiter/screens/dashboard/evm/grants/create/provider.dart';
|
||||
@@ -17,13 +17,13 @@ class WalletAccessPickerField extends ConsumerWidget {
|
||||
final state = ref.watch(grantCreationProvider);
|
||||
final allAccesses =
|
||||
ref.watch(walletAccessListProvider).asData?.value ??
|
||||
const <SdkClientWalletAccess>[];
|
||||
const <ua_sdk.WalletAccessEntry>[];
|
||||
final wallets =
|
||||
ref.watch(evmProvider).asData?.value ?? const <WalletEntry>[];
|
||||
|
||||
final walletById = <int, WalletEntry>{for (final w in wallets) w.id: w};
|
||||
final accesses = state.selectedClientId == null
|
||||
? const <SdkClientWalletAccess>[]
|
||||
? const <ua_sdk.WalletAccessEntry>[]
|
||||
: allAccesses
|
||||
.where((a) => a.access.sdkClientId == state.selectedClientId)
|
||||
.toList();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:arbiter/proto/evm.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||
import 'package:arbiter/proto/user_agent/sdk_client.pb.dart' as ua_sdk;
|
||||
import 'package:arbiter/providers/evm/evm.dart';
|
||||
import 'package:arbiter/providers/evm/evm_grants.dart';
|
||||
import 'package:arbiter/providers/sdk_clients/list.dart';
|
||||
@@ -30,7 +30,6 @@ class GrantCard extends ConsumerWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
// Enrichment lookups — each watch scopes rebuilds to this card only
|
||||
final walletAccesses =
|
||||
ref.watch(walletAccessListProvider).asData?.value ?? const [];
|
||||
final wallets = ref.watch(evmProvider).asData?.value ?? const [];
|
||||
@@ -44,8 +43,7 @@ class GrantCard extends ConsumerWidget {
|
||||
final theme = Theme.of(context);
|
||||
final muted = Palette.ink.withValues(alpha: 0.62);
|
||||
|
||||
// Resolve wallet_access_id → wallet address + client name
|
||||
final accessById = <int, SdkClientWalletAccess>{
|
||||
final accessById = <int, ua_sdk.WalletAccessEntry>{
|
||||
for (final a in walletAccesses) a.id: a,
|
||||
};
|
||||
final walletById = <int, WalletEntry>{
|
||||
@@ -94,7 +92,6 @@ class GrantCard extends ConsumerWidget {
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
// Accent strip
|
||||
Container(
|
||||
width: 0.8.w,
|
||||
decoration: BoxDecoration(
|
||||
@@ -104,7 +101,6 @@ class GrantCard extends ConsumerWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
// Card body
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
@@ -114,7 +110,6 @@ class GrantCard extends ConsumerWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Row 1: type badge · chain · spacer · revoke button
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
@@ -184,7 +179,6 @@ class GrantCard extends ConsumerWidget {
|
||||
],
|
||||
),
|
||||
SizedBox(height: 0.8.h),
|
||||
// Row 2: wallet address · client name
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'package:arbiter/features/connection/vault.dart';
|
||||
import 'package:arbiter/proto/user_agent.pbenum.dart';
|
||||
import 'package:arbiter/proto/shared/vault.pbenum.dart';
|
||||
import 'package:arbiter/proto/user_agent/vault/bootstrap.pbenum.dart';
|
||||
import 'package:arbiter/proto/user_agent/vault/unseal.pbenum.dart';
|
||||
import 'package:arbiter/providers/connection/connection_manager.dart';
|
||||
import 'package:arbiter/providers/vault_state.dart';
|
||||
import 'package:arbiter/router.gr.dart';
|
||||
|
||||
Reference in New Issue
Block a user