feat(evm): add wallet access grant/revoke functionality
Some checks failed
Some checks failed
This commit is contained in:
@@ -145,6 +145,10 @@ message SdkClientRevokeWalletAccess {
|
|||||||
repeated SdkClientWalletAccess accesses = 1;
|
repeated SdkClientWalletAccess accesses = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message ListWalletAccessResponse {
|
||||||
|
repeated SdkClientWalletAccess accesses = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message UserAgentRequest {
|
message UserAgentRequest {
|
||||||
int32 id = 16;
|
int32 id = 16;
|
||||||
oneof payload {
|
oneof payload {
|
||||||
@@ -162,8 +166,9 @@ message UserAgentRequest {
|
|||||||
SdkClientRevokeRequest sdk_client_revoke = 12;
|
SdkClientRevokeRequest sdk_client_revoke = 12;
|
||||||
google.protobuf.Empty sdk_client_list = 13;
|
google.protobuf.Empty sdk_client_list = 13;
|
||||||
BootstrapEncryptedKey bootstrap_encrypted_key = 14;
|
BootstrapEncryptedKey bootstrap_encrypted_key = 14;
|
||||||
SdkClientGrantWalletAccess grant_wallet_access_list = 15;
|
SdkClientGrantWalletAccess grant_wallet_access = 15;
|
||||||
SdkClientRevokeWalletAccess revoke_wallet_access_list = 17;
|
SdkClientRevokeWalletAccess revoke_wallet_access = 17;
|
||||||
|
google.protobuf.Empty list_wallet_access = 18;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
message UserAgentResponse {
|
message UserAgentResponse {
|
||||||
@@ -184,5 +189,6 @@ message UserAgentResponse {
|
|||||||
SdkClientRevokeResponse sdk_client_revoke_response = 13;
|
SdkClientRevokeResponse sdk_client_revoke_response = 13;
|
||||||
SdkClientListResponse sdk_client_list_response = 14;
|
SdkClientListResponse sdk_client_list_response = 14;
|
||||||
BootstrapResult bootstrap_result = 15;
|
BootstrapResult bootstrap_result = 15;
|
||||||
|
ListWalletAccessResponse list_wallet_access_response = 17;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ impl EvmActor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[message]
|
#[message]
|
||||||
pub async fn list_wallets(&self) -> Result<Vec<Address>, Error> {
|
pub async fn list_wallets(&self) -> Result<Vec<(i32, Address)>, Error> {
|
||||||
let mut conn = self.db.get().await?;
|
let mut conn = self.db.get().await?;
|
||||||
let rows: Vec<models::EvmWallet> = schema::evm_wallet::table
|
let rows: Vec<models::EvmWallet> = schema::evm_wallet::table
|
||||||
.select(models::EvmWallet::as_select())
|
.select(models::EvmWallet::as_select())
|
||||||
@@ -139,7 +139,7 @@ impl EvmActor {
|
|||||||
|
|
||||||
Ok(rows
|
Ok(rows
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|w| Address::from_slice(&w.address))
|
.map(|w| (w.id, Address::from_slice(&w.address)))
|
||||||
.collect())
|
.collect())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,11 @@ use crate::{
|
|||||||
db::{self, models::KeyType},
|
db::{self, models::KeyType},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub struct EvmAccessEntry {
|
||||||
|
pub wallet_id: i32,
|
||||||
|
pub sdk_client_id: i32,
|
||||||
|
}
|
||||||
|
|
||||||
/// Abstraction over Ed25519 / ECDSA-secp256k1 / RSA public keys used during the auth handshake.
|
/// Abstraction over Ed25519 / ECDSA-secp256k1 / RSA public keys used during the auth handshake.
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub enum AuthPublicKey {
|
pub enum AuthPublicKey {
|
||||||
|
|||||||
@@ -58,13 +58,7 @@ pub struct UserAgentSession {
|
|||||||
pending_client_approvals: HashMap<VerifyingKey, PendingClientApproval>,
|
pending_client_approvals: HashMap<VerifyingKey, PendingClientApproval>,
|
||||||
}
|
}
|
||||||
|
|
||||||
mod connection;
|
pub mod connection;
|
||||||
pub(crate) use connection::{
|
|
||||||
BootstrapError, HandleBootstrapEncryptedKey, HandleEvmWalletCreate, HandleEvmWalletList,
|
|
||||||
HandleGrantCreate, HandleGrantDelete, HandleGrantList, HandleNewClientApprove,
|
|
||||||
HandleQueryVaultState, HandleSdkClientList,
|
|
||||||
};
|
|
||||||
pub use connection::{HandleUnsealEncryptedKey, HandleUnsealRequest, UnsealError};
|
|
||||||
|
|
||||||
impl UserAgentSession {
|
impl UserAgentSession {
|
||||||
pub(crate) fn new(props: UserAgentConnection, sender: Box<dyn Sender<OutOfBand>>) -> Self {
|
pub(crate) fn new(props: UserAgentConnection, sender: Box<dyn Sender<OutOfBand>>) -> Self {
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ use std::sync::Mutex;
|
|||||||
|
|
||||||
use alloy::primitives::Address;
|
use alloy::primitives::Address;
|
||||||
use chacha20poly1305::{AeadInPlace, XChaCha20Poly1305, XNonce, aead::KeyInit};
|
use chacha20poly1305::{AeadInPlace, XChaCha20Poly1305, XNonce, aead::KeyInit};
|
||||||
use diesel::{QueryDsl as _, SelectableHelper};
|
use diesel::sql_types::ops::Add;
|
||||||
use diesel_async::RunQueryDsl;
|
use diesel::{BoolExpressionMethods as _, ExpressionMethods as _, QueryDsl as _, SelectableHelper};
|
||||||
|
use diesel_async::{AsyncConnection, RunQueryDsl};
|
||||||
use kameo::error::SendError;
|
use kameo::error::SendError;
|
||||||
use kameo::prelude::Context;
|
use kameo::prelude::Context;
|
||||||
use kameo::{message, messages};
|
use kameo::{message, messages};
|
||||||
@@ -12,8 +13,10 @@ use x25519_dalek::{EphemeralSecret, PublicKey};
|
|||||||
|
|
||||||
use crate::actors::flow_coordinator::client_connect_approval::ClientApprovalAnswer;
|
use crate::actors::flow_coordinator::client_connect_approval::ClientApprovalAnswer;
|
||||||
use crate::actors::keyholder::KeyHolderState;
|
use crate::actors::keyholder::KeyHolderState;
|
||||||
|
use crate::actors::user_agent::EvmAccessEntry;
|
||||||
use crate::actors::user_agent::session::Error;
|
use crate::actors::user_agent::session::Error;
|
||||||
use crate::db::models::{ProgramClient, ProgramClientMetadata};
|
use crate::db::models::{ProgramClient, ProgramClientMetadata};
|
||||||
|
use crate::db::schema::evm_wallet_access;
|
||||||
use crate::evm::policies::{Grant, SpecificGrant};
|
use crate::evm::policies::{Grant, SpecificGrant};
|
||||||
use crate::safe_cell::SafeCell;
|
use crate::safe_cell::SafeCell;
|
||||||
use crate::{
|
use crate::{
|
||||||
@@ -290,7 +293,7 @@ impl UserAgentSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[message]
|
#[message]
|
||||||
pub(crate) async fn handle_evm_wallet_list(&mut self) -> Result<Vec<Address>, Error> {
|
pub(crate) async fn handle_evm_wallet_list(&mut self) -> Result<Vec<(i32, Address)>, Error> {
|
||||||
match self.props.actors.evm.ask(ListWallets {}).await {
|
match self.props.actors.evm.ask(ListWallets {}).await {
|
||||||
Ok(wallets) => Ok(wallets),
|
Ok(wallets) => Ok(wallets),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
@@ -301,6 +304,8 @@ impl UserAgentSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#[messages]
|
#[messages]
|
||||||
impl UserAgentSession {
|
impl UserAgentSession {
|
||||||
#[message]
|
#[message]
|
||||||
@@ -351,6 +356,79 @@ impl UserAgentSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[message]
|
||||||
|
pub(crate) async fn handle_grant_evm_wallet_access(
|
||||||
|
&mut self,
|
||||||
|
entries: Vec<EvmAccessEntry>,
|
||||||
|
) -> Result<(), Error> {
|
||||||
|
let mut conn = self.props.db.get().await?;
|
||||||
|
conn.transaction(|conn| {
|
||||||
|
Box::pin(async move {
|
||||||
|
use crate::db::models::NewEvmWalletAccess;
|
||||||
|
use crate::db::schema::evm_wallet_access;
|
||||||
|
|
||||||
|
for entry in entries {
|
||||||
|
diesel::insert_into(evm_wallet_access::table)
|
||||||
|
.values(&NewEvmWalletAccess {
|
||||||
|
wallet_id: entry.wallet_id,
|
||||||
|
client_id: entry.sdk_client_id,
|
||||||
|
})
|
||||||
|
.on_conflict_do_nothing()
|
||||||
|
.execute(conn)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Result::<_, Error>::Ok(())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[message]
|
||||||
|
pub(crate) async fn handle_revoke_evm_wallet_access(
|
||||||
|
&mut self,
|
||||||
|
entries: Vec<EvmAccessEntry>,
|
||||||
|
) -> Result<(), Error> {
|
||||||
|
let mut conn = self.props.db.get().await?;
|
||||||
|
conn.transaction(|conn| {
|
||||||
|
Box::pin(async move {
|
||||||
|
use crate::db::schema::evm_wallet_access;
|
||||||
|
for entry in entries {
|
||||||
|
diesel::delete(evm_wallet_access::table)
|
||||||
|
.filter(
|
||||||
|
evm_wallet_access::wallet_id
|
||||||
|
.eq(entry.wallet_id)
|
||||||
|
.and(evm_wallet_access::client_id.eq(entry.sdk_client_id)),
|
||||||
|
)
|
||||||
|
.execute(conn)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Result::<_, Error>::Ok(())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[message]
|
||||||
|
pub(crate) async fn handle_list_wallet_access(&mut self) -> Result<Vec<EvmAccessEntry>, Error> {
|
||||||
|
let mut conn = self.props.db.get().await?;
|
||||||
|
use crate::db::schema::evm_wallet_access;
|
||||||
|
let access_entries = evm_wallet_access::table
|
||||||
|
.select((evm_wallet_access::wallet_id, evm_wallet_access::client_id))
|
||||||
|
.load::<(i32, i32)>(&mut conn)
|
||||||
|
.await?
|
||||||
|
.into_iter()
|
||||||
|
.map(|(wallet_id, sdk_client_id)| EvmAccessEntry {
|
||||||
|
wallet_id,
|
||||||
|
sdk_client_id,
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
Ok(access_entries)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[messages]
|
#[messages]
|
||||||
@@ -391,12 +469,15 @@ impl UserAgentSession {
|
|||||||
pub(crate) async fn handle_sdk_client_list(
|
pub(crate) async fn handle_sdk_client_list(
|
||||||
&mut self,
|
&mut self,
|
||||||
) -> Result<Vec<(ProgramClient, ProgramClientMetadata)>, Error> {
|
) -> Result<Vec<(ProgramClient, ProgramClientMetadata)>, Error> {
|
||||||
use crate::db::schema::{program_client, client_metadata};
|
use crate::db::schema::{client_metadata, program_client};
|
||||||
let mut conn = self.props.db.get().await?;
|
let mut conn = self.props.db.get().await?;
|
||||||
|
|
||||||
let clients = program_client::table
|
let clients = program_client::table
|
||||||
.inner_join(client_metadata::table)
|
.inner_join(client_metadata::table)
|
||||||
.select((ProgramClient::as_select(), ProgramClientMetadata::as_select()))
|
.select((
|
||||||
|
ProgramClient::as_select(),
|
||||||
|
ProgramClientMetadata::as_select(),
|
||||||
|
))
|
||||||
.load::<(ProgramClient, ProgramClientMetadata)>(&mut conn)
|
.load::<(ProgramClient, ProgramClientMetadata)>(&mut conn)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
|||||||
@@ -187,6 +187,12 @@ pub struct EvmWallet {
|
|||||||
|
|
||||||
#[derive(Models, Queryable, Debug, Insertable, Selectable, Clone)]
|
#[derive(Models, Queryable, Debug, Insertable, Selectable, Clone)]
|
||||||
#[diesel(table_name = schema::evm_wallet_access, check_for_backend(Sqlite))]
|
#[diesel(table_name = schema::evm_wallet_access, check_for_backend(Sqlite))]
|
||||||
|
#[view(
|
||||||
|
NewEvmWalletAccess,
|
||||||
|
derive(Insertable),
|
||||||
|
omit(id, created_at),
|
||||||
|
attributes_with = "deriveless"
|
||||||
|
)]
|
||||||
pub struct EvmWalletAccess {
|
pub struct EvmWalletAccess {
|
||||||
pub id: i32,
|
pub id: i32,
|
||||||
pub wallet_id: i32,
|
pub wallet_id: i32,
|
||||||
|
|||||||
@@ -15,14 +15,15 @@ use arbiter_proto::{
|
|||||||
},
|
},
|
||||||
user_agent::{
|
user_agent::{
|
||||||
BootstrapEncryptedKey as ProtoBootstrapEncryptedKey,
|
BootstrapEncryptedKey as ProtoBootstrapEncryptedKey,
|
||||||
BootstrapResult as ProtoBootstrapResult,
|
BootstrapResult as ProtoBootstrapResult, ListWalletAccessResponse,
|
||||||
SdkClientConnectionCancel as ProtoSdkClientConnectionCancel,
|
SdkClientConnectionCancel as ProtoSdkClientConnectionCancel,
|
||||||
SdkClientConnectionRequest as ProtoSdkClientConnectionRequest,
|
SdkClientConnectionRequest as ProtoSdkClientConnectionRequest,
|
||||||
SdkClientEntry as ProtoSdkClientEntry, SdkClientError as ProtoSdkClientError,
|
SdkClientEntry as ProtoSdkClientEntry, SdkClientError as ProtoSdkClientError,
|
||||||
SdkClientList as ProtoSdkClientList,
|
SdkClientGrantWalletAccess, SdkClientList as ProtoSdkClientList,
|
||||||
SdkClientListResponse as ProtoSdkClientListResponse,
|
SdkClientListResponse as ProtoSdkClientListResponse, SdkClientRevokeWalletAccess,
|
||||||
UnsealEncryptedKey as ProtoUnsealEncryptedKey, UnsealResult as ProtoUnsealResult,
|
SdkClientWalletAccess, UnsealEncryptedKey as ProtoUnsealEncryptedKey,
|
||||||
UnsealStart, UserAgentRequest, UserAgentResponse, VaultState as ProtoVaultState,
|
UnsealResult as ProtoUnsealResult, UnsealStart, UserAgentRequest, UserAgentResponse,
|
||||||
|
VaultState as ProtoVaultState,
|
||||||
sdk_client_list_response::Result as ProtoSdkClientListResult,
|
sdk_client_list_response::Result as ProtoSdkClientListResult,
|
||||||
user_agent_request::Payload as UserAgentRequestPayload,
|
user_agent_request::Payload as UserAgentRequestPayload,
|
||||||
user_agent_response::Payload as UserAgentResponsePayload,
|
user_agent_response::Payload as UserAgentResponsePayload,
|
||||||
@@ -43,11 +44,8 @@ use crate::{
|
|||||||
keyholder::KeyHolderState,
|
keyholder::KeyHolderState,
|
||||||
user_agent::{
|
user_agent::{
|
||||||
OutOfBand, UserAgentConnection, UserAgentSession,
|
OutOfBand, UserAgentConnection, UserAgentSession,
|
||||||
session::{
|
session::connection::{
|
||||||
BootstrapError, HandleBootstrapEncryptedKey, HandleEvmWalletCreate,
|
BootstrapError, HandleBootstrapEncryptedKey, HandleEvmWalletCreate, HandleEvmWalletList, HandleGrantCreate, HandleGrantDelete, HandleGrantEvmWalletAccess, HandleGrantList, HandleListWalletAccess, HandleNewClientApprove, HandleQueryVaultState, HandleRevokeEvmWalletAccess, HandleSdkClientList, HandleUnsealEncryptedKey, HandleUnsealRequest, UnsealError
|
||||||
HandleEvmWalletList, HandleGrantCreate, HandleGrantDelete, HandleGrantList,
|
|
||||||
HandleNewClientApprove, HandleQueryVaultState, HandleSdkClientList,
|
|
||||||
HandleUnsealEncryptedKey, HandleUnsealRequest, UnsealError,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -263,9 +261,9 @@ async fn dispatch_inner(
|
|||||||
Ok(wallets) => WalletListResult::Wallets(WalletList {
|
Ok(wallets) => WalletListResult::Wallets(WalletList {
|
||||||
wallets: wallets
|
wallets: wallets
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|w| WalletEntry {
|
.map(|(id, address)| WalletEntry {
|
||||||
address: w.to_vec(),
|
address: address.to_vec(),
|
||||||
id: todo!(),
|
id,
|
||||||
})
|
})
|
||||||
.collect(),
|
.collect(),
|
||||||
}),
|
}),
|
||||||
@@ -384,8 +382,48 @@ async fn dispatch_inner(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
UserAgentRequestPayload::GrantWalletAccessList(_)
|
UserAgentRequestPayload::GrantWalletAccess(SdkClientGrantWalletAccess { accesses }) => {
|
||||||
| UserAgentRequestPayload::RevokeWalletAccessList(_) => todo!(),
|
let entries = accesses.try_convert()?;
|
||||||
|
|
||||||
|
match actor.ask(HandleGrantEvmWalletAccess { entries }).await {
|
||||||
|
Ok(()) => {
|
||||||
|
info!("Successfully granted wallet access");
|
||||||
|
return Ok(None);
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
warn!(error = ?err, "Failed to grant wallet access");
|
||||||
|
return Err(Status::internal("Failed to grant wallet access"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UserAgentRequestPayload::RevokeWalletAccess(SdkClientRevokeWalletAccess { accesses }) => {
|
||||||
|
let entries = accesses.try_convert()?;
|
||||||
|
|
||||||
|
match actor.ask(HandleRevokeEvmWalletAccess { entries }).await {
|
||||||
|
Ok(()) => {
|
||||||
|
info!("Successfully revoked wallet access");
|
||||||
|
return Ok(None);
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
warn!(error = ?err, "Failed to revoke wallet access");
|
||||||
|
return Err(Status::internal("Failed to revoke wallet access"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UserAgentRequestPayload::ListWalletAccess(_) => {
|
||||||
|
let result = match actor.ask(HandleListWalletAccess {}).await {
|
||||||
|
Ok(accesses) => ListWalletAccessResponse {
|
||||||
|
accesses: accesses.into_iter().map(|a| a.convert()).collect(),
|
||||||
|
},
|
||||||
|
Err(err) => {
|
||||||
|
warn!(error = ?err, "Failed to list wallet access");
|
||||||
|
return Err(Status::internal("Failed to list wallet access"));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
UserAgentResponsePayload::ListWalletAccessResponse(result)
|
||||||
|
}
|
||||||
|
|
||||||
UserAgentRequestPayload::AuthChallengeRequest(..)
|
UserAgentRequestPayload::AuthChallengeRequest(..)
|
||||||
| UserAgentRequestPayload::AuthChallengeSolution(..) => {
|
| UserAgentRequestPayload::AuthChallengeSolution(..) => {
|
||||||
|
|||||||
@@ -7,11 +7,13 @@ use arbiter_proto::proto::evm::{
|
|||||||
VolumeRateLimit as ProtoVolumeRateLimit,
|
VolumeRateLimit as ProtoVolumeRateLimit,
|
||||||
specific_grant::Grant as ProtoSpecificGrantType,
|
specific_grant::Grant as ProtoSpecificGrantType,
|
||||||
};
|
};
|
||||||
|
use arbiter_proto::proto::user_agent::SdkClientWalletAccess;
|
||||||
use alloy::primitives::{Address, U256};
|
use alloy::primitives::{Address, U256};
|
||||||
use chrono::{DateTime, TimeZone, Utc};
|
use chrono::{DateTime, TimeZone, Utc};
|
||||||
use prost_types::Timestamp as ProtoTimestamp;
|
use prost_types::Timestamp as ProtoTimestamp;
|
||||||
use tonic::Status;
|
use tonic::Status;
|
||||||
|
|
||||||
|
use crate::actors::user_agent::EvmAccessEntry;
|
||||||
use crate::{
|
use crate::{
|
||||||
evm::policies::{
|
evm::policies::{
|
||||||
SharedGrantSettings, SpecificGrant, TransactionRateLimit, VolumeRateLimit,
|
SharedGrantSettings, SpecificGrant, TransactionRateLimit, VolumeRateLimit,
|
||||||
@@ -133,3 +135,18 @@ impl TryConvert for ProtoSpecificGrant {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl TryConvert for Vec<SdkClientWalletAccess> {
|
||||||
|
type Output = Vec<EvmAccessEntry>;
|
||||||
|
type Error = Status;
|
||||||
|
|
||||||
|
fn try_convert(self) -> Result<Vec<EvmAccessEntry>, Status> {
|
||||||
|
Ok(self
|
||||||
|
.into_iter()
|
||||||
|
.map(|SdkClientWalletAccess { client_id, wallet_id }| EvmAccessEntry {
|
||||||
|
wallet_id,
|
||||||
|
sdk_client_id: client_id,
|
||||||
|
})
|
||||||
|
.collect())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
use arbiter_proto::proto::evm::{
|
use arbiter_proto::proto::{
|
||||||
EtherTransferSettings as ProtoEtherTransferSettings,
|
evm::{
|
||||||
SharedSettings as ProtoSharedSettings,
|
EtherTransferSettings as ProtoEtherTransferSettings, SharedSettings as ProtoSharedSettings,
|
||||||
SpecificGrant as ProtoSpecificGrant,
|
SpecificGrant as ProtoSpecificGrant, TokenTransferSettings as ProtoTokenTransferSettings,
|
||||||
TokenTransferSettings as ProtoTokenTransferSettings,
|
TransactionRateLimit as ProtoTransactionRateLimit, VolumeRateLimit as ProtoVolumeRateLimit,
|
||||||
TransactionRateLimit as ProtoTransactionRateLimit,
|
specific_grant::Grant as ProtoSpecificGrantType,
|
||||||
VolumeRateLimit as ProtoVolumeRateLimit,
|
},
|
||||||
specific_grant::Grant as ProtoSpecificGrantType,
|
user_agent::SdkClientWalletAccess as ProtoSdkClientWalletAccess,
|
||||||
};
|
};
|
||||||
use chrono::{DateTime, Utc};
|
use chrono::{DateTime, Utc};
|
||||||
use prost_types::Timestamp as ProtoTimestamp;
|
use prost_types::Timestamp as ProtoTimestamp;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
actors::user_agent::EvmAccessEntry,
|
||||||
evm::policies::{SharedGrantSettings, SpecificGrant, TransactionRateLimit, VolumeRateLimit},
|
evm::policies::{SharedGrantSettings, SpecificGrant, TransactionRateLimit, VolumeRateLimit},
|
||||||
grpc::Convert,
|
grpc::Convert,
|
||||||
};
|
};
|
||||||
@@ -83,10 +84,25 @@ impl Convert for SpecificGrant {
|
|||||||
ProtoSpecificGrantType::TokenTransfer(ProtoTokenTransferSettings {
|
ProtoSpecificGrantType::TokenTransfer(ProtoTokenTransferSettings {
|
||||||
token_contract: s.token_contract.to_vec(),
|
token_contract: s.token_contract.to_vec(),
|
||||||
target: s.target.map(|a| a.to_vec()),
|
target: s.target.map(|a| a.to_vec()),
|
||||||
volume_limits: s.volume_limits.into_iter().map(VolumeRateLimit::convert).collect(),
|
volume_limits: s
|
||||||
|
.volume_limits
|
||||||
|
.into_iter()
|
||||||
|
.map(VolumeRateLimit::convert)
|
||||||
|
.collect(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ProtoSpecificGrant { grant: Some(grant) }
|
ProtoSpecificGrant { grant: Some(grant) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Convert for EvmAccessEntry {
|
||||||
|
type Output = ProtoSdkClientWalletAccess;
|
||||||
|
|
||||||
|
fn convert(self) -> Self::Output {
|
||||||
|
ProtoSdkClientWalletAccess {
|
||||||
|
client_id: self.sdk_client_id,
|
||||||
|
wallet_id: self.wallet_id,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ use arbiter_server::{
|
|||||||
actors::{
|
actors::{
|
||||||
GlobalActors,
|
GlobalActors,
|
||||||
keyholder::{Bootstrap, Seal},
|
keyholder::{Bootstrap, Seal},
|
||||||
user_agent::session::{
|
user_agent::{UserAgentSession, session::connection::{
|
||||||
HandleUnsealEncryptedKey, HandleUnsealRequest, UnsealError, UserAgentSession,
|
HandleUnsealEncryptedKey, HandleUnsealRequest, UnsealError,
|
||||||
},
|
}},
|
||||||
},
|
},
|
||||||
db,
|
db,
|
||||||
safe_cell::{SafeCell, SafeCellHandle as _},
|
safe_cell::{SafeCell, SafeCellHandle as _},
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ final class CalloutManagerProvider
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String _$calloutManagerHash() => r'1d42ddcd9e5b8669a7ec08709b9dde9df6865bda';
|
String _$calloutManagerHash() => r'ff8c9a03a6bbbca822242eb497c503b18240a289';
|
||||||
|
|
||||||
abstract class _$CalloutManager extends $Notifier<Map<String, ActiveCallout>> {
|
abstract class _$CalloutManager extends $Notifier<Map<String, ActiveCallout>> {
|
||||||
Map<String, ActiveCallout> build();
|
Map<String, ActiveCallout> build();
|
||||||
|
|||||||
@@ -26,9 +26,11 @@ export 'evm.pbenum.dart';
|
|||||||
|
|
||||||
class WalletEntry extends $pb.GeneratedMessage {
|
class WalletEntry extends $pb.GeneratedMessage {
|
||||||
factory WalletEntry({
|
factory WalletEntry({
|
||||||
|
$core.int? id,
|
||||||
$core.List<$core.int>? address,
|
$core.List<$core.int>? address,
|
||||||
}) {
|
}) {
|
||||||
final result = create();
|
final result = create();
|
||||||
|
if (id != null) result.id = id;
|
||||||
if (address != null) result.address = address;
|
if (address != null) result.address = address;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -46,8 +48,9 @@ class WalletEntry extends $pb.GeneratedMessage {
|
|||||||
_omitMessageNames ? '' : 'WalletEntry',
|
_omitMessageNames ? '' : 'WalletEntry',
|
||||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.evm'),
|
package: const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.evm'),
|
||||||
createEmptyInstance: create)
|
createEmptyInstance: create)
|
||||||
|
..aI(1, _omitFieldNames ? '' : 'id')
|
||||||
..a<$core.List<$core.int>>(
|
..a<$core.List<$core.int>>(
|
||||||
1, _omitFieldNames ? '' : 'address', $pb.PbFieldType.OY)
|
2, _omitFieldNames ? '' : 'address', $pb.PbFieldType.OY)
|
||||||
..hasRequiredFields = false;
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
@@ -70,13 +73,22 @@ class WalletEntry extends $pb.GeneratedMessage {
|
|||||||
static WalletEntry? _defaultInstance;
|
static WalletEntry? _defaultInstance;
|
||||||
|
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
$core.List<$core.int> get address => $_getN(0);
|
$core.int get id => $_getIZ(0);
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
set address($core.List<$core.int> value) => $_setBytes(0, value);
|
set id($core.int value) => $_setSignedInt32(0, value);
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
$core.bool hasAddress() => $_has(0);
|
$core.bool hasId() => $_has(0);
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
void clearAddress() => $_clearField(1);
|
void clearId() => $_clearField(1);
|
||||||
|
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$core.List<$core.int> get address => $_getN(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
set address($core.List<$core.int> value) => $_setBytes(1, value);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$core.bool hasAddress() => $_has(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
void clearAddress() => $_clearField(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
class WalletList extends $pb.GeneratedMessage {
|
class WalletList extends $pb.GeneratedMessage {
|
||||||
|
|||||||
@@ -34,13 +34,15 @@ final $typed_data.Uint8List evmErrorDescriptor = $convert.base64Decode(
|
|||||||
const WalletEntry$json = {
|
const WalletEntry$json = {
|
||||||
'1': 'WalletEntry',
|
'1': 'WalletEntry',
|
||||||
'2': [
|
'2': [
|
||||||
{'1': 'address', '3': 1, '4': 1, '5': 12, '10': 'address'},
|
{'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'},
|
||||||
|
{'1': 'address', '3': 2, '4': 1, '5': 12, '10': 'address'},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Descriptor for `WalletEntry`. Decode as a `google.protobuf.DescriptorProto`.
|
/// Descriptor for `WalletEntry`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
final $typed_data.Uint8List walletEntryDescriptor = $convert
|
final $typed_data.Uint8List walletEntryDescriptor = $convert.base64Decode(
|
||||||
.base64Decode('CgtXYWxsZXRFbnRyeRIYCgdhZGRyZXNzGAEgASgMUgdhZGRyZXNz');
|
'CgtXYWxsZXRFbnRyeRIOCgJpZBgBIAEoBVICaWQSGAoHYWRkcmVzcxgCIAEoDFIHYWRkcmVzcw'
|
||||||
|
'==');
|
||||||
|
|
||||||
@$core.Deprecated('Use walletListDescriptor instead')
|
@$core.Deprecated('Use walletListDescriptor instead')
|
||||||
const WalletList$json = {
|
const WalletList$json = {
|
||||||
|
|||||||
@@ -1072,6 +1072,230 @@ class SdkClientConnectionCancel extends $pb.GeneratedMessage {
|
|||||||
void clearPubkey() => $_clearField(1);
|
void clearPubkey() => $_clearField(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SdkClientWalletAccess extends $pb.GeneratedMessage {
|
||||||
|
factory SdkClientWalletAccess({
|
||||||
|
$core.int? clientId,
|
||||||
|
$core.int? walletId,
|
||||||
|
}) {
|
||||||
|
final result = create();
|
||||||
|
if (clientId != null) result.clientId = clientId;
|
||||||
|
if (walletId != null) result.walletId = walletId;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
SdkClientWalletAccess._();
|
||||||
|
|
||||||
|
factory SdkClientWalletAccess.fromBuffer($core.List<$core.int> data,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromBuffer(data, registry);
|
||||||
|
factory SdkClientWalletAccess.fromJson($core.String json,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromJson(json, registry);
|
||||||
|
|
||||||
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
|
_omitMessageNames ? '' : 'SdkClientWalletAccess',
|
||||||
|
package:
|
||||||
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
|
createEmptyInstance: create)
|
||||||
|
..aI(1, _omitFieldNames ? '' : 'clientId')
|
||||||
|
..aI(2, _omitFieldNames ? '' : 'walletId')
|
||||||
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientWalletAccess clone() => deepCopy();
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientWalletAccess copyWith(
|
||||||
|
void Function(SdkClientWalletAccess) updates) =>
|
||||||
|
super.copyWith((message) => updates(message as SdkClientWalletAccess))
|
||||||
|
as SdkClientWalletAccess;
|
||||||
|
|
||||||
|
@$core.override
|
||||||
|
$pb.BuilderInfo get info_ => _i;
|
||||||
|
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientWalletAccess create() => SdkClientWalletAccess._();
|
||||||
|
@$core.override
|
||||||
|
SdkClientWalletAccess createEmptyInstance() => create();
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientWalletAccess getDefault() => _defaultInstance ??=
|
||||||
|
$pb.GeneratedMessage.$_defaultFor<SdkClientWalletAccess>(create);
|
||||||
|
static SdkClientWalletAccess? _defaultInstance;
|
||||||
|
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$core.int get clientId => $_getIZ(0);
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
set clientId($core.int value) => $_setSignedInt32(0, value);
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$core.bool hasClientId() => $_has(0);
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
void clearClientId() => $_clearField(1);
|
||||||
|
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$core.int get walletId => $_getIZ(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
set walletId($core.int value) => $_setSignedInt32(1, value);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$core.bool hasWalletId() => $_has(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
void clearWalletId() => $_clearField(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SdkClientGrantWalletAccess extends $pb.GeneratedMessage {
|
||||||
|
factory SdkClientGrantWalletAccess({
|
||||||
|
$core.Iterable<SdkClientWalletAccess>? accesses,
|
||||||
|
}) {
|
||||||
|
final result = create();
|
||||||
|
if (accesses != null) result.accesses.addAll(accesses);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
SdkClientGrantWalletAccess._();
|
||||||
|
|
||||||
|
factory SdkClientGrantWalletAccess.fromBuffer($core.List<$core.int> data,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromBuffer(data, registry);
|
||||||
|
factory SdkClientGrantWalletAccess.fromJson($core.String json,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromJson(json, registry);
|
||||||
|
|
||||||
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
|
_omitMessageNames ? '' : 'SdkClientGrantWalletAccess',
|
||||||
|
package:
|
||||||
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
|
createEmptyInstance: create)
|
||||||
|
..pPM<SdkClientWalletAccess>(1, _omitFieldNames ? '' : 'accesses',
|
||||||
|
subBuilder: SdkClientWalletAccess.create)
|
||||||
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientGrantWalletAccess clone() => deepCopy();
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientGrantWalletAccess copyWith(
|
||||||
|
void Function(SdkClientGrantWalletAccess) updates) =>
|
||||||
|
super.copyWith(
|
||||||
|
(message) => updates(message as SdkClientGrantWalletAccess))
|
||||||
|
as SdkClientGrantWalletAccess;
|
||||||
|
|
||||||
|
@$core.override
|
||||||
|
$pb.BuilderInfo get info_ => _i;
|
||||||
|
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientGrantWalletAccess create() => SdkClientGrantWalletAccess._();
|
||||||
|
@$core.override
|
||||||
|
SdkClientGrantWalletAccess createEmptyInstance() => create();
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientGrantWalletAccess getDefault() => _defaultInstance ??=
|
||||||
|
$pb.GeneratedMessage.$_defaultFor<SdkClientGrantWalletAccess>(create);
|
||||||
|
static SdkClientGrantWalletAccess? _defaultInstance;
|
||||||
|
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$pb.PbList<SdkClientWalletAccess> get accesses => $_getList(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SdkClientRevokeWalletAccess extends $pb.GeneratedMessage {
|
||||||
|
factory SdkClientRevokeWalletAccess({
|
||||||
|
$core.Iterable<SdkClientWalletAccess>? accesses,
|
||||||
|
}) {
|
||||||
|
final result = create();
|
||||||
|
if (accesses != null) result.accesses.addAll(accesses);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
SdkClientRevokeWalletAccess._();
|
||||||
|
|
||||||
|
factory SdkClientRevokeWalletAccess.fromBuffer($core.List<$core.int> data,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromBuffer(data, registry);
|
||||||
|
factory SdkClientRevokeWalletAccess.fromJson($core.String json,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromJson(json, registry);
|
||||||
|
|
||||||
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
|
_omitMessageNames ? '' : 'SdkClientRevokeWalletAccess',
|
||||||
|
package:
|
||||||
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
|
createEmptyInstance: create)
|
||||||
|
..pPM<SdkClientWalletAccess>(1, _omitFieldNames ? '' : 'accesses',
|
||||||
|
subBuilder: SdkClientWalletAccess.create)
|
||||||
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientRevokeWalletAccess clone() => deepCopy();
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
SdkClientRevokeWalletAccess copyWith(
|
||||||
|
void Function(SdkClientRevokeWalletAccess) updates) =>
|
||||||
|
super.copyWith(
|
||||||
|
(message) => updates(message as SdkClientRevokeWalletAccess))
|
||||||
|
as SdkClientRevokeWalletAccess;
|
||||||
|
|
||||||
|
@$core.override
|
||||||
|
$pb.BuilderInfo get info_ => _i;
|
||||||
|
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientRevokeWalletAccess create() =>
|
||||||
|
SdkClientRevokeWalletAccess._();
|
||||||
|
@$core.override
|
||||||
|
SdkClientRevokeWalletAccess createEmptyInstance() => create();
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static SdkClientRevokeWalletAccess getDefault() => _defaultInstance ??=
|
||||||
|
$pb.GeneratedMessage.$_defaultFor<SdkClientRevokeWalletAccess>(create);
|
||||||
|
static SdkClientRevokeWalletAccess? _defaultInstance;
|
||||||
|
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$pb.PbList<SdkClientWalletAccess> get accesses => $_getList(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ListWalletAccessResponse extends $pb.GeneratedMessage {
|
||||||
|
factory ListWalletAccessResponse({
|
||||||
|
$core.Iterable<SdkClientWalletAccess>? accesses,
|
||||||
|
}) {
|
||||||
|
final result = create();
|
||||||
|
if (accesses != null) result.accesses.addAll(accesses);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
ListWalletAccessResponse._();
|
||||||
|
|
||||||
|
factory ListWalletAccessResponse.fromBuffer($core.List<$core.int> data,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromBuffer(data, registry);
|
||||||
|
factory ListWalletAccessResponse.fromJson($core.String json,
|
||||||
|
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||||
|
create()..mergeFromJson(json, registry);
|
||||||
|
|
||||||
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
|
_omitMessageNames ? '' : 'ListWalletAccessResponse',
|
||||||
|
package:
|
||||||
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
|
createEmptyInstance: create)
|
||||||
|
..pPM<SdkClientWalletAccess>(1, _omitFieldNames ? '' : 'accesses',
|
||||||
|
subBuilder: SdkClientWalletAccess.create)
|
||||||
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
ListWalletAccessResponse clone() => deepCopy();
|
||||||
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
|
ListWalletAccessResponse copyWith(
|
||||||
|
void Function(ListWalletAccessResponse) updates) =>
|
||||||
|
super.copyWith((message) => updates(message as ListWalletAccessResponse))
|
||||||
|
as ListWalletAccessResponse;
|
||||||
|
|
||||||
|
@$core.override
|
||||||
|
$pb.BuilderInfo get info_ => _i;
|
||||||
|
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static ListWalletAccessResponse create() => ListWalletAccessResponse._();
|
||||||
|
@$core.override
|
||||||
|
ListWalletAccessResponse createEmptyInstance() => create();
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static ListWalletAccessResponse getDefault() => _defaultInstance ??=
|
||||||
|
$pb.GeneratedMessage.$_defaultFor<ListWalletAccessResponse>(create);
|
||||||
|
static ListWalletAccessResponse? _defaultInstance;
|
||||||
|
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$pb.PbList<SdkClientWalletAccess> get accesses => $_getList(0);
|
||||||
|
}
|
||||||
|
|
||||||
enum UserAgentRequest_Payload {
|
enum UserAgentRequest_Payload {
|
||||||
authChallengeRequest,
|
authChallengeRequest,
|
||||||
authChallengeSolution,
|
authChallengeSolution,
|
||||||
@@ -1087,6 +1311,9 @@ enum UserAgentRequest_Payload {
|
|||||||
sdkClientRevoke,
|
sdkClientRevoke,
|
||||||
sdkClientList,
|
sdkClientList,
|
||||||
bootstrapEncryptedKey,
|
bootstrapEncryptedKey,
|
||||||
|
grantWalletAccess,
|
||||||
|
revokeWalletAccess,
|
||||||
|
listWalletAccess,
|
||||||
notSet
|
notSet
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1106,7 +1333,10 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
SdkClientRevokeRequest? sdkClientRevoke,
|
SdkClientRevokeRequest? sdkClientRevoke,
|
||||||
$1.Empty? sdkClientList,
|
$1.Empty? sdkClientList,
|
||||||
BootstrapEncryptedKey? bootstrapEncryptedKey,
|
BootstrapEncryptedKey? bootstrapEncryptedKey,
|
||||||
|
SdkClientGrantWalletAccess? grantWalletAccess,
|
||||||
$core.int? id,
|
$core.int? id,
|
||||||
|
SdkClientRevokeWalletAccess? revokeWalletAccess,
|
||||||
|
$1.Empty? listWalletAccess,
|
||||||
}) {
|
}) {
|
||||||
final result = create();
|
final result = create();
|
||||||
if (authChallengeRequest != null)
|
if (authChallengeRequest != null)
|
||||||
@@ -1128,7 +1358,11 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
if (sdkClientList != null) result.sdkClientList = sdkClientList;
|
if (sdkClientList != null) result.sdkClientList = sdkClientList;
|
||||||
if (bootstrapEncryptedKey != null)
|
if (bootstrapEncryptedKey != null)
|
||||||
result.bootstrapEncryptedKey = bootstrapEncryptedKey;
|
result.bootstrapEncryptedKey = bootstrapEncryptedKey;
|
||||||
|
if (grantWalletAccess != null) result.grantWalletAccess = grantWalletAccess;
|
||||||
if (id != null) result.id = id;
|
if (id != null) result.id = id;
|
||||||
|
if (revokeWalletAccess != null)
|
||||||
|
result.revokeWalletAccess = revokeWalletAccess;
|
||||||
|
if (listWalletAccess != null) result.listWalletAccess = listWalletAccess;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1154,9 +1388,12 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
9: UserAgentRequest_Payload.evmGrantDelete,
|
9: UserAgentRequest_Payload.evmGrantDelete,
|
||||||
10: UserAgentRequest_Payload.evmGrantList,
|
10: UserAgentRequest_Payload.evmGrantList,
|
||||||
11: UserAgentRequest_Payload.sdkClientConnectionResponse,
|
11: UserAgentRequest_Payload.sdkClientConnectionResponse,
|
||||||
13: UserAgentRequest_Payload.sdkClientRevoke,
|
12: UserAgentRequest_Payload.sdkClientRevoke,
|
||||||
14: UserAgentRequest_Payload.sdkClientList,
|
13: UserAgentRequest_Payload.sdkClientList,
|
||||||
15: UserAgentRequest_Payload.bootstrapEncryptedKey,
|
14: UserAgentRequest_Payload.bootstrapEncryptedKey,
|
||||||
|
15: UserAgentRequest_Payload.grantWalletAccess,
|
||||||
|
17: UserAgentRequest_Payload.revokeWalletAccess,
|
||||||
|
18: UserAgentRequest_Payload.listWalletAccess,
|
||||||
0: UserAgentRequest_Payload.notSet
|
0: UserAgentRequest_Payload.notSet
|
||||||
};
|
};
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
@@ -1164,7 +1401,7 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
package:
|
package:
|
||||||
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
createEmptyInstance: create)
|
createEmptyInstance: create)
|
||||||
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15])
|
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18])
|
||||||
..aOM<AuthChallengeRequest>(
|
..aOM<AuthChallengeRequest>(
|
||||||
1, _omitFieldNames ? '' : 'authChallengeRequest',
|
1, _omitFieldNames ? '' : 'authChallengeRequest',
|
||||||
subBuilder: AuthChallengeRequest.create)
|
subBuilder: AuthChallengeRequest.create)
|
||||||
@@ -1190,14 +1427,22 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
..aOM<SdkClientConnectionResponse>(
|
..aOM<SdkClientConnectionResponse>(
|
||||||
11, _omitFieldNames ? '' : 'sdkClientConnectionResponse',
|
11, _omitFieldNames ? '' : 'sdkClientConnectionResponse',
|
||||||
subBuilder: SdkClientConnectionResponse.create)
|
subBuilder: SdkClientConnectionResponse.create)
|
||||||
..aOM<SdkClientRevokeRequest>(13, _omitFieldNames ? '' : 'sdkClientRevoke',
|
..aOM<SdkClientRevokeRequest>(12, _omitFieldNames ? '' : 'sdkClientRevoke',
|
||||||
subBuilder: SdkClientRevokeRequest.create)
|
subBuilder: SdkClientRevokeRequest.create)
|
||||||
..aOM<$1.Empty>(14, _omitFieldNames ? '' : 'sdkClientList',
|
..aOM<$1.Empty>(13, _omitFieldNames ? '' : 'sdkClientList',
|
||||||
subBuilder: $1.Empty.create)
|
subBuilder: $1.Empty.create)
|
||||||
..aOM<BootstrapEncryptedKey>(
|
..aOM<BootstrapEncryptedKey>(
|
||||||
15, _omitFieldNames ? '' : 'bootstrapEncryptedKey',
|
14, _omitFieldNames ? '' : 'bootstrapEncryptedKey',
|
||||||
subBuilder: BootstrapEncryptedKey.create)
|
subBuilder: BootstrapEncryptedKey.create)
|
||||||
|
..aOM<SdkClientGrantWalletAccess>(
|
||||||
|
15, _omitFieldNames ? '' : 'grantWalletAccess',
|
||||||
|
subBuilder: SdkClientGrantWalletAccess.create)
|
||||||
..aI(16, _omitFieldNames ? '' : 'id')
|
..aI(16, _omitFieldNames ? '' : 'id')
|
||||||
|
..aOM<SdkClientRevokeWalletAccess>(
|
||||||
|
17, _omitFieldNames ? '' : 'revokeWalletAccess',
|
||||||
|
subBuilder: SdkClientRevokeWalletAccess.create)
|
||||||
|
..aOM<$1.Empty>(18, _omitFieldNames ? '' : 'listWalletAccess',
|
||||||
|
subBuilder: $1.Empty.create)
|
||||||
..hasRequiredFields = false;
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
@@ -1230,9 +1475,12 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
@$pb.TagNumber(9)
|
@$pb.TagNumber(9)
|
||||||
@$pb.TagNumber(10)
|
@$pb.TagNumber(10)
|
||||||
@$pb.TagNumber(11)
|
@$pb.TagNumber(11)
|
||||||
|
@$pb.TagNumber(12)
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(13)
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(14)
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(15)
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
@$pb.TagNumber(18)
|
||||||
UserAgentRequest_Payload whichPayload() =>
|
UserAgentRequest_Payload whichPayload() =>
|
||||||
_UserAgentRequest_PayloadByTag[$_whichOneof(0)]!;
|
_UserAgentRequest_PayloadByTag[$_whichOneof(0)]!;
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
@@ -1246,9 +1494,12 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
@$pb.TagNumber(9)
|
@$pb.TagNumber(9)
|
||||||
@$pb.TagNumber(10)
|
@$pb.TagNumber(10)
|
||||||
@$pb.TagNumber(11)
|
@$pb.TagNumber(11)
|
||||||
|
@$pb.TagNumber(12)
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(13)
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(14)
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(15)
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
@$pb.TagNumber(18)
|
||||||
void clearPayload() => $_clearField($_whichOneof(0));
|
void clearPayload() => $_clearField($_whichOneof(0));
|
||||||
|
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
@@ -1375,48 +1626,83 @@ class UserAgentRequest extends $pb.GeneratedMessage {
|
|||||||
SdkClientConnectionResponse ensureSdkClientConnectionResponse() =>
|
SdkClientConnectionResponse ensureSdkClientConnectionResponse() =>
|
||||||
$_ensure(10);
|
$_ensure(10);
|
||||||
|
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(12)
|
||||||
SdkClientRevokeRequest get sdkClientRevoke => $_getN(11);
|
SdkClientRevokeRequest get sdkClientRevoke => $_getN(11);
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(12)
|
||||||
set sdkClientRevoke(SdkClientRevokeRequest value) => $_setField(13, value);
|
set sdkClientRevoke(SdkClientRevokeRequest value) => $_setField(12, value);
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(12)
|
||||||
$core.bool hasSdkClientRevoke() => $_has(11);
|
$core.bool hasSdkClientRevoke() => $_has(11);
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(12)
|
||||||
void clearSdkClientRevoke() => $_clearField(13);
|
void clearSdkClientRevoke() => $_clearField(12);
|
||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(12)
|
||||||
SdkClientRevokeRequest ensureSdkClientRevoke() => $_ensure(11);
|
SdkClientRevokeRequest ensureSdkClientRevoke() => $_ensure(11);
|
||||||
|
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(13)
|
||||||
$1.Empty get sdkClientList => $_getN(12);
|
$1.Empty get sdkClientList => $_getN(12);
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(13)
|
||||||
set sdkClientList($1.Empty value) => $_setField(14, value);
|
set sdkClientList($1.Empty value) => $_setField(13, value);
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(13)
|
||||||
$core.bool hasSdkClientList() => $_has(12);
|
$core.bool hasSdkClientList() => $_has(12);
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(13)
|
||||||
void clearSdkClientList() => $_clearField(14);
|
void clearSdkClientList() => $_clearField(13);
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(13)
|
||||||
$1.Empty ensureSdkClientList() => $_ensure(12);
|
$1.Empty ensureSdkClientList() => $_ensure(12);
|
||||||
|
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(14)
|
||||||
BootstrapEncryptedKey get bootstrapEncryptedKey => $_getN(13);
|
BootstrapEncryptedKey get bootstrapEncryptedKey => $_getN(13);
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(14)
|
||||||
set bootstrapEncryptedKey(BootstrapEncryptedKey value) =>
|
set bootstrapEncryptedKey(BootstrapEncryptedKey value) =>
|
||||||
$_setField(15, value);
|
$_setField(14, value);
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(14)
|
||||||
$core.bool hasBootstrapEncryptedKey() => $_has(13);
|
$core.bool hasBootstrapEncryptedKey() => $_has(13);
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(14)
|
||||||
void clearBootstrapEncryptedKey() => $_clearField(15);
|
void clearBootstrapEncryptedKey() => $_clearField(14);
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(14)
|
||||||
BootstrapEncryptedKey ensureBootstrapEncryptedKey() => $_ensure(13);
|
BootstrapEncryptedKey ensureBootstrapEncryptedKey() => $_ensure(13);
|
||||||
|
|
||||||
|
@$pb.TagNumber(15)
|
||||||
|
SdkClientGrantWalletAccess get grantWalletAccess => $_getN(14);
|
||||||
|
@$pb.TagNumber(15)
|
||||||
|
set grantWalletAccess(SdkClientGrantWalletAccess value) =>
|
||||||
|
$_setField(15, value);
|
||||||
|
@$pb.TagNumber(15)
|
||||||
|
$core.bool hasGrantWalletAccess() => $_has(14);
|
||||||
|
@$pb.TagNumber(15)
|
||||||
|
void clearGrantWalletAccess() => $_clearField(15);
|
||||||
|
@$pb.TagNumber(15)
|
||||||
|
SdkClientGrantWalletAccess ensureGrantWalletAccess() => $_ensure(14);
|
||||||
|
|
||||||
@$pb.TagNumber(16)
|
@$pb.TagNumber(16)
|
||||||
$core.int get id => $_getIZ(14);
|
$core.int get id => $_getIZ(15);
|
||||||
@$pb.TagNumber(16)
|
@$pb.TagNumber(16)
|
||||||
set id($core.int value) => $_setSignedInt32(14, value);
|
set id($core.int value) => $_setSignedInt32(15, value);
|
||||||
@$pb.TagNumber(16)
|
@$pb.TagNumber(16)
|
||||||
$core.bool hasId() => $_has(14);
|
$core.bool hasId() => $_has(15);
|
||||||
@$pb.TagNumber(16)
|
@$pb.TagNumber(16)
|
||||||
void clearId() => $_clearField(16);
|
void clearId() => $_clearField(16);
|
||||||
|
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
SdkClientRevokeWalletAccess get revokeWalletAccess => $_getN(16);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
set revokeWalletAccess(SdkClientRevokeWalletAccess value) =>
|
||||||
|
$_setField(17, value);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
$core.bool hasRevokeWalletAccess() => $_has(16);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
void clearRevokeWalletAccess() => $_clearField(17);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
SdkClientRevokeWalletAccess ensureRevokeWalletAccess() => $_ensure(16);
|
||||||
|
|
||||||
|
@$pb.TagNumber(18)
|
||||||
|
$1.Empty get listWalletAccess => $_getN(17);
|
||||||
|
@$pb.TagNumber(18)
|
||||||
|
set listWalletAccess($1.Empty value) => $_setField(18, value);
|
||||||
|
@$pb.TagNumber(18)
|
||||||
|
$core.bool hasListWalletAccess() => $_has(17);
|
||||||
|
@$pb.TagNumber(18)
|
||||||
|
void clearListWalletAccess() => $_clearField(18);
|
||||||
|
@$pb.TagNumber(18)
|
||||||
|
$1.Empty ensureListWalletAccess() => $_ensure(17);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum UserAgentResponse_Payload {
|
enum UserAgentResponse_Payload {
|
||||||
@@ -1435,6 +1721,7 @@ enum UserAgentResponse_Payload {
|
|||||||
sdkClientRevokeResponse,
|
sdkClientRevokeResponse,
|
||||||
sdkClientListResponse,
|
sdkClientListResponse,
|
||||||
bootstrapResult,
|
bootstrapResult,
|
||||||
|
listWalletAccessResponse,
|
||||||
notSet
|
notSet
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1456,6 +1743,7 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
SdkClientListResponse? sdkClientListResponse,
|
SdkClientListResponse? sdkClientListResponse,
|
||||||
BootstrapResult? bootstrapResult,
|
BootstrapResult? bootstrapResult,
|
||||||
$core.int? id,
|
$core.int? id,
|
||||||
|
ListWalletAccessResponse? listWalletAccessResponse,
|
||||||
}) {
|
}) {
|
||||||
final result = create();
|
final result = create();
|
||||||
if (authChallenge != null) result.authChallenge = authChallenge;
|
if (authChallenge != null) result.authChallenge = authChallenge;
|
||||||
@@ -1479,6 +1767,8 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
result.sdkClientListResponse = sdkClientListResponse;
|
result.sdkClientListResponse = sdkClientListResponse;
|
||||||
if (bootstrapResult != null) result.bootstrapResult = bootstrapResult;
|
if (bootstrapResult != null) result.bootstrapResult = bootstrapResult;
|
||||||
if (id != null) result.id = id;
|
if (id != null) result.id = id;
|
||||||
|
if (listWalletAccessResponse != null)
|
||||||
|
result.listWalletAccessResponse = listWalletAccessResponse;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1508,6 +1798,7 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
13: UserAgentResponse_Payload.sdkClientRevokeResponse,
|
13: UserAgentResponse_Payload.sdkClientRevokeResponse,
|
||||||
14: UserAgentResponse_Payload.sdkClientListResponse,
|
14: UserAgentResponse_Payload.sdkClientListResponse,
|
||||||
15: UserAgentResponse_Payload.bootstrapResult,
|
15: UserAgentResponse_Payload.bootstrapResult,
|
||||||
|
17: UserAgentResponse_Payload.listWalletAccessResponse,
|
||||||
0: UserAgentResponse_Payload.notSet
|
0: UserAgentResponse_Payload.notSet
|
||||||
};
|
};
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||||
@@ -1515,7 +1806,7 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
package:
|
package:
|
||||||
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
const $pb.PackageName(_omitMessageNames ? '' : 'arbiter.user_agent'),
|
||||||
createEmptyInstance: create)
|
createEmptyInstance: create)
|
||||||
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
|
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17])
|
||||||
..aOM<AuthChallenge>(1, _omitFieldNames ? '' : 'authChallenge',
|
..aOM<AuthChallenge>(1, _omitFieldNames ? '' : 'authChallenge',
|
||||||
subBuilder: AuthChallenge.create)
|
subBuilder: AuthChallenge.create)
|
||||||
..aE<AuthResult>(2, _omitFieldNames ? '' : 'authResult',
|
..aE<AuthResult>(2, _omitFieldNames ? '' : 'authResult',
|
||||||
@@ -1551,6 +1842,9 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
..aE<BootstrapResult>(15, _omitFieldNames ? '' : 'bootstrapResult',
|
..aE<BootstrapResult>(15, _omitFieldNames ? '' : 'bootstrapResult',
|
||||||
enumValues: BootstrapResult.values)
|
enumValues: BootstrapResult.values)
|
||||||
..aI(16, _omitFieldNames ? '' : 'id')
|
..aI(16, _omitFieldNames ? '' : 'id')
|
||||||
|
..aOM<ListWalletAccessResponse>(
|
||||||
|
17, _omitFieldNames ? '' : 'listWalletAccessResponse',
|
||||||
|
subBuilder: ListWalletAccessResponse.create)
|
||||||
..hasRequiredFields = false;
|
..hasRequiredFields = false;
|
||||||
|
|
||||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||||
@@ -1587,6 +1881,7 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(13)
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(14)
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(15)
|
||||||
|
@$pb.TagNumber(17)
|
||||||
UserAgentResponse_Payload whichPayload() =>
|
UserAgentResponse_Payload whichPayload() =>
|
||||||
_UserAgentResponse_PayloadByTag[$_whichOneof(0)]!;
|
_UserAgentResponse_PayloadByTag[$_whichOneof(0)]!;
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
@@ -1604,6 +1899,7 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
@$pb.TagNumber(13)
|
@$pb.TagNumber(13)
|
||||||
@$pb.TagNumber(14)
|
@$pb.TagNumber(14)
|
||||||
@$pb.TagNumber(15)
|
@$pb.TagNumber(15)
|
||||||
|
@$pb.TagNumber(17)
|
||||||
void clearPayload() => $_clearField($_whichOneof(0));
|
void clearPayload() => $_clearField($_whichOneof(0));
|
||||||
|
|
||||||
@$pb.TagNumber(1)
|
@$pb.TagNumber(1)
|
||||||
@@ -1775,6 +2071,18 @@ class UserAgentResponse extends $pb.GeneratedMessage {
|
|||||||
$core.bool hasId() => $_has(15);
|
$core.bool hasId() => $_has(15);
|
||||||
@$pb.TagNumber(16)
|
@$pb.TagNumber(16)
|
||||||
void clearId() => $_clearField(16);
|
void clearId() => $_clearField(16);
|
||||||
|
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
ListWalletAccessResponse get listWalletAccessResponse => $_getN(16);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
set listWalletAccessResponse(ListWalletAccessResponse value) =>
|
||||||
|
$_setField(17, value);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
$core.bool hasListWalletAccessResponse() => $_has(16);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
void clearListWalletAccessResponse() => $_clearField(17);
|
||||||
|
@$pb.TagNumber(17)
|
||||||
|
ListWalletAccessResponse ensureListWalletAccessResponse() => $_ensure(16);
|
||||||
}
|
}
|
||||||
|
|
||||||
const $core.bool _omitFieldNames =
|
const $core.bool _omitFieldNames =
|
||||||
|
|||||||
@@ -418,6 +418,83 @@ final $typed_data.Uint8List sdkClientConnectionCancelDescriptor =
|
|||||||
$convert.base64Decode(
|
$convert.base64Decode(
|
||||||
'ChlTZGtDbGllbnRDb25uZWN0aW9uQ2FuY2VsEhYKBnB1YmtleRgBIAEoDFIGcHVia2V5');
|
'ChlTZGtDbGllbnRDb25uZWN0aW9uQ2FuY2VsEhYKBnB1YmtleRgBIAEoDFIGcHVia2V5');
|
||||||
|
|
||||||
|
@$core.Deprecated('Use sdkClientWalletAccessDescriptor instead')
|
||||||
|
const SdkClientWalletAccess$json = {
|
||||||
|
'1': 'SdkClientWalletAccess',
|
||||||
|
'2': [
|
||||||
|
{'1': 'client_id', '3': 1, '4': 1, '5': 5, '10': 'clientId'},
|
||||||
|
{'1': 'wallet_id', '3': 2, '4': 1, '5': 5, '10': 'walletId'},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Descriptor for `SdkClientWalletAccess`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
|
final $typed_data.Uint8List sdkClientWalletAccessDescriptor = $convert.base64Decode(
|
||||||
|
'ChVTZGtDbGllbnRXYWxsZXRBY2Nlc3MSGwoJY2xpZW50X2lkGAEgASgFUghjbGllbnRJZBIbCg'
|
||||||
|
'l3YWxsZXRfaWQYAiABKAVSCHdhbGxldElk');
|
||||||
|
|
||||||
|
@$core.Deprecated('Use sdkClientGrantWalletAccessDescriptor instead')
|
||||||
|
const SdkClientGrantWalletAccess$json = {
|
||||||
|
'1': 'SdkClientGrantWalletAccess',
|
||||||
|
'2': [
|
||||||
|
{
|
||||||
|
'1': 'accesses',
|
||||||
|
'3': 1,
|
||||||
|
'4': 3,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.SdkClientWalletAccess',
|
||||||
|
'10': 'accesses'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Descriptor for `SdkClientGrantWalletAccess`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
|
final $typed_data.Uint8List sdkClientGrantWalletAccessDescriptor =
|
||||||
|
$convert.base64Decode(
|
||||||
|
'ChpTZGtDbGllbnRHcmFudFdhbGxldEFjY2VzcxJFCghhY2Nlc3NlcxgBIAMoCzIpLmFyYml0ZX'
|
||||||
|
'IudXNlcl9hZ2VudC5TZGtDbGllbnRXYWxsZXRBY2Nlc3NSCGFjY2Vzc2Vz');
|
||||||
|
|
||||||
|
@$core.Deprecated('Use sdkClientRevokeWalletAccessDescriptor instead')
|
||||||
|
const SdkClientRevokeWalletAccess$json = {
|
||||||
|
'1': 'SdkClientRevokeWalletAccess',
|
||||||
|
'2': [
|
||||||
|
{
|
||||||
|
'1': 'accesses',
|
||||||
|
'3': 1,
|
||||||
|
'4': 3,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.SdkClientWalletAccess',
|
||||||
|
'10': 'accesses'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Descriptor for `SdkClientRevokeWalletAccess`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
|
final $typed_data.Uint8List sdkClientRevokeWalletAccessDescriptor =
|
||||||
|
$convert.base64Decode(
|
||||||
|
'ChtTZGtDbGllbnRSZXZva2VXYWxsZXRBY2Nlc3MSRQoIYWNjZXNzZXMYASADKAsyKS5hcmJpdG'
|
||||||
|
'VyLnVzZXJfYWdlbnQuU2RrQ2xpZW50V2FsbGV0QWNjZXNzUghhY2Nlc3Nlcw==');
|
||||||
|
|
||||||
|
@$core.Deprecated('Use listWalletAccessResponseDescriptor instead')
|
||||||
|
const ListWalletAccessResponse$json = {
|
||||||
|
'1': 'ListWalletAccessResponse',
|
||||||
|
'2': [
|
||||||
|
{
|
||||||
|
'1': 'accesses',
|
||||||
|
'3': 1,
|
||||||
|
'4': 3,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.SdkClientWalletAccess',
|
||||||
|
'10': 'accesses'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Descriptor for `ListWalletAccessResponse`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
|
final $typed_data.Uint8List listWalletAccessResponseDescriptor =
|
||||||
|
$convert.base64Decode(
|
||||||
|
'ChhMaXN0V2FsbGV0QWNjZXNzUmVzcG9uc2USRQoIYWNjZXNzZXMYASADKAsyKS5hcmJpdGVyLn'
|
||||||
|
'VzZXJfYWdlbnQuU2RrQ2xpZW50V2FsbGV0QWNjZXNzUghhY2Nlc3Nlcw==');
|
||||||
|
|
||||||
@$core.Deprecated('Use userAgentRequestDescriptor instead')
|
@$core.Deprecated('Use userAgentRequestDescriptor instead')
|
||||||
const UserAgentRequest$json = {
|
const UserAgentRequest$json = {
|
||||||
'1': 'UserAgentRequest',
|
'1': 'UserAgentRequest',
|
||||||
@@ -524,7 +601,7 @@ const UserAgentRequest$json = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'1': 'sdk_client_revoke',
|
'1': 'sdk_client_revoke',
|
||||||
'3': 13,
|
'3': 12,
|
||||||
'4': 1,
|
'4': 1,
|
||||||
'5': 11,
|
'5': 11,
|
||||||
'6': '.arbiter.user_agent.SdkClientRevokeRequest',
|
'6': '.arbiter.user_agent.SdkClientRevokeRequest',
|
||||||
@@ -533,7 +610,7 @@ const UserAgentRequest$json = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'1': 'sdk_client_list',
|
'1': 'sdk_client_list',
|
||||||
'3': 14,
|
'3': 13,
|
||||||
'4': 1,
|
'4': 1,
|
||||||
'5': 11,
|
'5': 11,
|
||||||
'6': '.google.protobuf.Empty',
|
'6': '.google.protobuf.Empty',
|
||||||
@@ -542,13 +619,40 @@ const UserAgentRequest$json = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'1': 'bootstrap_encrypted_key',
|
'1': 'bootstrap_encrypted_key',
|
||||||
'3': 15,
|
'3': 14,
|
||||||
'4': 1,
|
'4': 1,
|
||||||
'5': 11,
|
'5': 11,
|
||||||
'6': '.arbiter.user_agent.BootstrapEncryptedKey',
|
'6': '.arbiter.user_agent.BootstrapEncryptedKey',
|
||||||
'9': 0,
|
'9': 0,
|
||||||
'10': 'bootstrapEncryptedKey'
|
'10': 'bootstrapEncryptedKey'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'1': 'grant_wallet_access',
|
||||||
|
'3': 15,
|
||||||
|
'4': 1,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.SdkClientGrantWalletAccess',
|
||||||
|
'9': 0,
|
||||||
|
'10': 'grantWalletAccess'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'1': 'revoke_wallet_access',
|
||||||
|
'3': 17,
|
||||||
|
'4': 1,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.SdkClientRevokeWalletAccess',
|
||||||
|
'9': 0,
|
||||||
|
'10': 'revokeWalletAccess'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'1': 'list_wallet_access',
|
||||||
|
'3': 18,
|
||||||
|
'4': 1,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.google.protobuf.Empty',
|
||||||
|
'9': 0,
|
||||||
|
'10': 'listWalletAccess'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
'8': [
|
'8': [
|
||||||
{'1': 'payload'},
|
{'1': 'payload'},
|
||||||
@@ -574,12 +678,16 @@ final $typed_data.Uint8List userAgentRequestDescriptor = $convert.base64Decode(
|
|||||||
'c3QYCiABKAsyIC5hcmJpdGVyLmV2bS5Fdm1HcmFudExpc3RSZXF1ZXN0SABSDGV2bUdyYW50TG'
|
'c3QYCiABKAsyIC5hcmJpdGVyLmV2bS5Fdm1HcmFudExpc3RSZXF1ZXN0SABSDGV2bUdyYW50TG'
|
||||||
'lzdBJ2Ch5zZGtfY2xpZW50X2Nvbm5lY3Rpb25fcmVzcG9uc2UYCyABKAsyLy5hcmJpdGVyLnVz'
|
'lzdBJ2Ch5zZGtfY2xpZW50X2Nvbm5lY3Rpb25fcmVzcG9uc2UYCyABKAsyLy5hcmJpdGVyLnVz'
|
||||||
'ZXJfYWdlbnQuU2RrQ2xpZW50Q29ubmVjdGlvblJlc3BvbnNlSABSG3Nka0NsaWVudENvbm5lY3'
|
'ZXJfYWdlbnQuU2RrQ2xpZW50Q29ubmVjdGlvblJlc3BvbnNlSABSG3Nka0NsaWVudENvbm5lY3'
|
||||||
'Rpb25SZXNwb25zZRJYChFzZGtfY2xpZW50X3Jldm9rZRgNIAEoCzIqLmFyYml0ZXIudXNlcl9h'
|
'Rpb25SZXNwb25zZRJYChFzZGtfY2xpZW50X3Jldm9rZRgMIAEoCzIqLmFyYml0ZXIudXNlcl9h'
|
||||||
'Z2VudC5TZGtDbGllbnRSZXZva2VSZXF1ZXN0SABSD3Nka0NsaWVudFJldm9rZRJACg9zZGtfY2'
|
'Z2VudC5TZGtDbGllbnRSZXZva2VSZXF1ZXN0SABSD3Nka0NsaWVudFJldm9rZRJACg9zZGtfY2'
|
||||||
'xpZW50X2xpc3QYDiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFINc2RrQ2xpZW50TGlz'
|
'xpZW50X2xpc3QYDSABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFINc2RrQ2xpZW50TGlz'
|
||||||
'dBJjChdib290c3RyYXBfZW5jcnlwdGVkX2tleRgPIAEoCzIpLmFyYml0ZXIudXNlcl9hZ2VudC'
|
'dBJjChdib290c3RyYXBfZW5jcnlwdGVkX2tleRgOIAEoCzIpLmFyYml0ZXIudXNlcl9hZ2VudC'
|
||||||
'5Cb290c3RyYXBFbmNyeXB0ZWRLZXlIAFIVYm9vdHN0cmFwRW5jcnlwdGVkS2V5QgkKB3BheWxv'
|
'5Cb290c3RyYXBFbmNyeXB0ZWRLZXlIAFIVYm9vdHN0cmFwRW5jcnlwdGVkS2V5EmAKE2dyYW50'
|
||||||
'YWQ=');
|
'X3dhbGxldF9hY2Nlc3MYDyABKAsyLi5hcmJpdGVyLnVzZXJfYWdlbnQuU2RrQ2xpZW50R3Jhbn'
|
||||||
|
'RXYWxsZXRBY2Nlc3NIAFIRZ3JhbnRXYWxsZXRBY2Nlc3MSYwoUcmV2b2tlX3dhbGxldF9hY2Nl'
|
||||||
|
'c3MYESABKAsyLy5hcmJpdGVyLnVzZXJfYWdlbnQuU2RrQ2xpZW50UmV2b2tlV2FsbGV0QWNjZX'
|
||||||
|
'NzSABSEnJldm9rZVdhbGxldEFjY2VzcxJGChJsaXN0X3dhbGxldF9hY2Nlc3MYEiABKAsyFi5n'
|
||||||
|
'b29nbGUucHJvdG9idWYuRW1wdHlIAFIQbGlzdFdhbGxldEFjY2Vzc0IJCgdwYXlsb2Fk');
|
||||||
|
|
||||||
@$core.Deprecated('Use userAgentResponseDescriptor instead')
|
@$core.Deprecated('Use userAgentResponseDescriptor instead')
|
||||||
const UserAgentResponse$json = {
|
const UserAgentResponse$json = {
|
||||||
@@ -721,6 +829,15 @@ const UserAgentResponse$json = {
|
|||||||
'9': 0,
|
'9': 0,
|
||||||
'10': 'bootstrapResult'
|
'10': 'bootstrapResult'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'1': 'list_wallet_access_response',
|
||||||
|
'3': 17,
|
||||||
|
'4': 1,
|
||||||
|
'5': 11,
|
||||||
|
'6': '.arbiter.user_agent.ListWalletAccessResponse',
|
||||||
|
'9': 0,
|
||||||
|
'10': 'listWalletAccessResponse'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
'8': [
|
'8': [
|
||||||
{'1': 'payload'},
|
{'1': 'payload'},
|
||||||
@@ -754,4 +871,6 @@ final $typed_data.Uint8List userAgentResponseDescriptor = $convert.base64Decode(
|
|||||||
'xpc3RfcmVzcG9uc2UYDiABKAsyKS5hcmJpdGVyLnVzZXJfYWdlbnQuU2RrQ2xpZW50TGlzdFJl'
|
'xpc3RfcmVzcG9uc2UYDiABKAsyKS5hcmJpdGVyLnVzZXJfYWdlbnQuU2RrQ2xpZW50TGlzdFJl'
|
||||||
'c3BvbnNlSABSFXNka0NsaWVudExpc3RSZXNwb25zZRJQChBib290c3RyYXBfcmVzdWx0GA8gAS'
|
'c3BvbnNlSABSFXNka0NsaWVudExpc3RSZXNwb25zZRJQChBib290c3RyYXBfcmVzdWx0GA8gAS'
|
||||||
'gOMiMuYXJiaXRlci51c2VyX2FnZW50LkJvb3RzdHJhcFJlc3VsdEgAUg9ib290c3RyYXBSZXN1'
|
'gOMiMuYXJiaXRlci51c2VyX2FnZW50LkJvb3RzdHJhcFJlc3VsdEgAUg9ib290c3RyYXBSZXN1'
|
||||||
'bHRCCQoHcGF5bG9hZEIFCgNfaWQ=');
|
'bHQSbQobbGlzdF93YWxsZXRfYWNjZXNzX3Jlc3BvbnNlGBEgASgLMiwuYXJiaXRlci51c2VyX2'
|
||||||
|
'FnZW50Lkxpc3RXYWxsZXRBY2Nlc3NSZXNwb25zZUgAUhhsaXN0V2FsbGV0QWNjZXNzUmVzcG9u'
|
||||||
|
'c2VCCQoHcGF5bG9hZEIFCgNfaWQ=');
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ final class ConnectionManagerProvider
|
|||||||
ConnectionManager create() => ConnectionManager();
|
ConnectionManager create() => ConnectionManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
String _$connectionManagerHash() => r'd01084e550f315bc6cadfe74413a7f959426a80e';
|
String _$connectionManagerHash() => r'f471afb49bdcde77238424942f5af1716634f084';
|
||||||
|
|
||||||
abstract class _$ConnectionManager extends $AsyncNotifier<Connection?> {
|
abstract class _$ConnectionManager extends $AsyncNotifier<Connection?> {
|
||||||
FutureOr<Connection?> build();
|
FutureOr<Connection?> build();
|
||||||
|
|||||||
25
useragent/lib/providers/sdk_clients/wallet_access.dart
Normal file
25
useragent/lib/providers/sdk_clients/wallet_access.dart
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||||
|
import 'package:arbiter/providers/connection/connection_manager.dart';
|
||||||
|
import 'package:mtcore/markettakers.dart';
|
||||||
|
import 'package:protobuf/well_known_types/google/protobuf/empty.pb.dart';
|
||||||
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
|
|
||||||
|
part 'wallet_access.g.dart';
|
||||||
|
|
||||||
|
@riverpod
|
||||||
|
Future<List<SdkClientWalletAccess>?> walletAccess(Ref ref) async {
|
||||||
|
final connection = await ref.watch(connectionManagerProvider.future);
|
||||||
|
if (connection == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
final accesses = await connection.ask(UserAgentRequest(listWalletAccess: Empty()));
|
||||||
|
|
||||||
|
if (accesses.hasListWalletAccessResponse()) {
|
||||||
|
return accesses.listWalletAccessResponse.accesses.toList();
|
||||||
|
} else {
|
||||||
|
talker.warning('Received unexpected response for listWalletAccess: $accesses');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
51
useragent/lib/providers/sdk_clients/wallet_access.g.dart
Normal file
51
useragent/lib/providers/sdk_clients/wallet_access.g.dart
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'wallet_access.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// RiverpodGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(walletAccess)
|
||||||
|
final walletAccessProvider = WalletAccessProvider._();
|
||||||
|
|
||||||
|
final class WalletAccessProvider
|
||||||
|
extends
|
||||||
|
$FunctionalProvider<
|
||||||
|
AsyncValue<List<SdkClientWalletAccess>?>,
|
||||||
|
List<SdkClientWalletAccess>?,
|
||||||
|
FutureOr<List<SdkClientWalletAccess>?>
|
||||||
|
>
|
||||||
|
with
|
||||||
|
$FutureModifier<List<SdkClientWalletAccess>?>,
|
||||||
|
$FutureProvider<List<SdkClientWalletAccess>?> {
|
||||||
|
WalletAccessProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'walletAccessProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$walletAccessHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
$FutureProviderElement<List<SdkClientWalletAccess>?> $createElement(
|
||||||
|
$ProviderPointer pointer,
|
||||||
|
) => $FutureProviderElement(pointer);
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOr<List<SdkClientWalletAccess>?> create(Ref ref) {
|
||||||
|
return walletAccess(ref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String _$walletAccessHash() => r'954aae12d2d18999efaa97d01be983bf849f2296';
|
||||||
@@ -9,27 +9,29 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
|
|
||||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
|
import 'package:arbiter/proto/user_agent.pb.dart' as _i13;
|
||||||
import 'package:arbiter/screens/bootstrap.dart' as _i2;
|
import 'package:arbiter/screens/bootstrap.dart' as _i2;
|
||||||
import 'package:arbiter/screens/dashboard.dart' as _i5;
|
import 'package:arbiter/screens/dashboard.dart' as _i6;
|
||||||
import 'package:arbiter/screens/dashboard/about.dart' as _i1;
|
import 'package:arbiter/screens/dashboard/about.dart' as _i1;
|
||||||
import 'package:arbiter/screens/dashboard/clients/table.dart' as _i3;
|
import 'package:arbiter/screens/dashboard/clients/details.dart' as _i3;
|
||||||
import 'package:arbiter/screens/dashboard/evm/evm.dart' as _i6;
|
import 'package:arbiter/screens/dashboard/clients/table.dart' as _i4;
|
||||||
import 'package:arbiter/screens/dashboard/evm/grants/grant_create.dart' as _i4;
|
import 'package:arbiter/screens/dashboard/evm/evm.dart' as _i7;
|
||||||
import 'package:arbiter/screens/server_connection.dart' as _i7;
|
import 'package:arbiter/screens/dashboard/evm/grants/grant_create.dart' as _i5;
|
||||||
import 'package:arbiter/screens/server_info_setup.dart' as _i8;
|
import 'package:arbiter/screens/server_connection.dart' as _i8;
|
||||||
import 'package:arbiter/screens/vault_setup.dart' as _i9;
|
import 'package:arbiter/screens/server_info_setup.dart' as _i9;
|
||||||
import 'package:auto_route/auto_route.dart' as _i10;
|
import 'package:arbiter/screens/vault_setup.dart' as _i10;
|
||||||
import 'package:flutter/material.dart' as _i11;
|
import 'package:auto_route/auto_route.dart' as _i11;
|
||||||
|
import 'package:flutter/material.dart' as _i12;
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i1.AboutScreen]
|
/// [_i1.AboutScreen]
|
||||||
class AboutRoute extends _i10.PageRouteInfo<void> {
|
class AboutRoute extends _i11.PageRouteInfo<void> {
|
||||||
const AboutRoute({List<_i10.PageRouteInfo>? children})
|
const AboutRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(AboutRoute.name, initialChildren: children);
|
: super(AboutRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'AboutRoute';
|
static const String name = 'AboutRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i1.AboutScreen();
|
return const _i1.AboutScreen();
|
||||||
@@ -39,13 +41,13 @@ class AboutRoute extends _i10.PageRouteInfo<void> {
|
|||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i2.Bootstrap]
|
/// [_i2.Bootstrap]
|
||||||
class Bootstrap extends _i10.PageRouteInfo<void> {
|
class Bootstrap extends _i11.PageRouteInfo<void> {
|
||||||
const Bootstrap({List<_i10.PageRouteInfo>? children})
|
const Bootstrap({List<_i11.PageRouteInfo>? children})
|
||||||
: super(Bootstrap.name, initialChildren: children);
|
: super(Bootstrap.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'Bootstrap';
|
static const String name = 'Bootstrap';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i2.Bootstrap();
|
return const _i2.Bootstrap();
|
||||||
@@ -54,77 +56,124 @@ class Bootstrap extends _i10.PageRouteInfo<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i3.ClientsScreen]
|
/// [_i3.ClientDetails]
|
||||||
class ClientsRoute extends _i10.PageRouteInfo<void> {
|
class ClientDetails extends _i11.PageRouteInfo<ClientDetailsArgs> {
|
||||||
const ClientsRoute({List<_i10.PageRouteInfo>? children})
|
ClientDetails({
|
||||||
|
_i12.Key? key,
|
||||||
|
required _i13.SdkClientEntry client,
|
||||||
|
List<_i11.PageRouteInfo>? children,
|
||||||
|
}) : super(
|
||||||
|
ClientDetails.name,
|
||||||
|
args: ClientDetailsArgs(key: key, client: client),
|
||||||
|
initialChildren: children,
|
||||||
|
);
|
||||||
|
|
||||||
|
static const String name = 'ClientDetails';
|
||||||
|
|
||||||
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
|
name,
|
||||||
|
builder: (data) {
|
||||||
|
final args = data.argsAs<ClientDetailsArgs>();
|
||||||
|
return _i3.ClientDetails(key: args.key, client: args.client);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ClientDetailsArgs {
|
||||||
|
const ClientDetailsArgs({this.key, required this.client});
|
||||||
|
|
||||||
|
final _i12.Key? key;
|
||||||
|
|
||||||
|
final _i13.SdkClientEntry client;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'ClientDetailsArgs{key: $key, client: $client}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
if (identical(this, other)) return true;
|
||||||
|
if (other is! ClientDetailsArgs) return false;
|
||||||
|
return key == other.key && client == other.client;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => key.hashCode ^ client.hashCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// generated route for
|
||||||
|
/// [_i4.ClientsScreen]
|
||||||
|
class ClientsRoute extends _i11.PageRouteInfo<void> {
|
||||||
|
const ClientsRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(ClientsRoute.name, initialChildren: children);
|
: super(ClientsRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'ClientsRoute';
|
static const String name = 'ClientsRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i3.ClientsScreen();
|
return const _i4.ClientsScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i4.CreateEvmGrantScreen]
|
/// [_i5.CreateEvmGrantScreen]
|
||||||
class CreateEvmGrantRoute extends _i10.PageRouteInfo<void> {
|
class CreateEvmGrantRoute extends _i11.PageRouteInfo<void> {
|
||||||
const CreateEvmGrantRoute({List<_i10.PageRouteInfo>? children})
|
const CreateEvmGrantRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(CreateEvmGrantRoute.name, initialChildren: children);
|
: super(CreateEvmGrantRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'CreateEvmGrantRoute';
|
static const String name = 'CreateEvmGrantRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i4.CreateEvmGrantScreen();
|
return const _i5.CreateEvmGrantScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i5.DashboardRouter]
|
/// [_i6.DashboardRouter]
|
||||||
class DashboardRouter extends _i10.PageRouteInfo<void> {
|
class DashboardRouter extends _i11.PageRouteInfo<void> {
|
||||||
const DashboardRouter({List<_i10.PageRouteInfo>? children})
|
const DashboardRouter({List<_i11.PageRouteInfo>? children})
|
||||||
: super(DashboardRouter.name, initialChildren: children);
|
: super(DashboardRouter.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'DashboardRouter';
|
static const String name = 'DashboardRouter';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i5.DashboardRouter();
|
return const _i6.DashboardRouter();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i6.EvmScreen]
|
/// [_i7.EvmScreen]
|
||||||
class EvmRoute extends _i10.PageRouteInfo<void> {
|
class EvmRoute extends _i11.PageRouteInfo<void> {
|
||||||
const EvmRoute({List<_i10.PageRouteInfo>? children})
|
const EvmRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(EvmRoute.name, initialChildren: children);
|
: super(EvmRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'EvmRoute';
|
static const String name = 'EvmRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i6.EvmScreen();
|
return const _i7.EvmScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i7.ServerConnectionScreen]
|
/// [_i8.ServerConnectionScreen]
|
||||||
class ServerConnectionRoute
|
class ServerConnectionRoute
|
||||||
extends _i10.PageRouteInfo<ServerConnectionRouteArgs> {
|
extends _i11.PageRouteInfo<ServerConnectionRouteArgs> {
|
||||||
ServerConnectionRoute({
|
ServerConnectionRoute({
|
||||||
_i11.Key? key,
|
_i12.Key? key,
|
||||||
String? arbiterUrl,
|
String? arbiterUrl,
|
||||||
List<_i10.PageRouteInfo>? children,
|
List<_i11.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
ServerConnectionRoute.name,
|
ServerConnectionRoute.name,
|
||||||
args: ServerConnectionRouteArgs(key: key, arbiterUrl: arbiterUrl),
|
args: ServerConnectionRouteArgs(key: key, arbiterUrl: arbiterUrl),
|
||||||
@@ -133,13 +182,13 @@ class ServerConnectionRoute
|
|||||||
|
|
||||||
static const String name = 'ServerConnectionRoute';
|
static const String name = 'ServerConnectionRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args = data.argsAs<ServerConnectionRouteArgs>(
|
final args = data.argsAs<ServerConnectionRouteArgs>(
|
||||||
orElse: () => const ServerConnectionRouteArgs(),
|
orElse: () => const ServerConnectionRouteArgs(),
|
||||||
);
|
);
|
||||||
return _i7.ServerConnectionScreen(
|
return _i8.ServerConnectionScreen(
|
||||||
key: args.key,
|
key: args.key,
|
||||||
arbiterUrl: args.arbiterUrl,
|
arbiterUrl: args.arbiterUrl,
|
||||||
);
|
);
|
||||||
@@ -150,7 +199,7 @@ class ServerConnectionRoute
|
|||||||
class ServerConnectionRouteArgs {
|
class ServerConnectionRouteArgs {
|
||||||
const ServerConnectionRouteArgs({this.key, this.arbiterUrl});
|
const ServerConnectionRouteArgs({this.key, this.arbiterUrl});
|
||||||
|
|
||||||
final _i11.Key? key;
|
final _i12.Key? key;
|
||||||
|
|
||||||
final String? arbiterUrl;
|
final String? arbiterUrl;
|
||||||
|
|
||||||
@@ -171,33 +220,33 @@ class ServerConnectionRouteArgs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i8.ServerInfoSetupScreen]
|
/// [_i9.ServerInfoSetupScreen]
|
||||||
class ServerInfoSetupRoute extends _i10.PageRouteInfo<void> {
|
class ServerInfoSetupRoute extends _i11.PageRouteInfo<void> {
|
||||||
const ServerInfoSetupRoute({List<_i10.PageRouteInfo>? children})
|
const ServerInfoSetupRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(ServerInfoSetupRoute.name, initialChildren: children);
|
: super(ServerInfoSetupRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'ServerInfoSetupRoute';
|
static const String name = 'ServerInfoSetupRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i8.ServerInfoSetupScreen();
|
return const _i9.ServerInfoSetupScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i9.VaultSetupScreen]
|
/// [_i10.VaultSetupScreen]
|
||||||
class VaultSetupRoute extends _i10.PageRouteInfo<void> {
|
class VaultSetupRoute extends _i11.PageRouteInfo<void> {
|
||||||
const VaultSetupRoute({List<_i10.PageRouteInfo>? children})
|
const VaultSetupRoute({List<_i11.PageRouteInfo>? children})
|
||||||
: super(VaultSetupRoute.name, initialChildren: children);
|
: super(VaultSetupRoute.name, initialChildren: children);
|
||||||
|
|
||||||
static const String name = 'VaultSetupRoute';
|
static const String name = 'VaultSetupRoute';
|
||||||
|
|
||||||
static _i10.PageInfo page = _i10.PageInfo(
|
static _i11.PageInfo page = _i11.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i9.VaultSetupScreen();
|
return const _i10.VaultSetupScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
17
useragent/lib/screens/dashboard/clients/details.dart
Normal file
17
useragent/lib/screens/dashboard/clients/details.dart
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
import 'package:arbiter/proto/user_agent.pb.dart';
|
||||||
|
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;
|
||||||
|
const ClientDetails({super.key, required this.client});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user