feat(useragent): initial impl
128
CLAUDE.md
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
Arbiter is a **permissioned signing service** for cryptocurrency wallets. It consists of:
|
||||||
|
- **`server/`** — Rust gRPC daemon that holds encrypted keys and enforces policies
|
||||||
|
- **`useragent/`** — Flutter desktop app (macOS/Windows) with a Rust backend via Rinf
|
||||||
|
- **`protobufs/`** — Protocol Buffer definitions shared between server and client
|
||||||
|
|
||||||
|
The vault never exposes key material; it only produces signatures when requests satisfy configured policies.
|
||||||
|
|
||||||
|
## Toolchain Setup
|
||||||
|
|
||||||
|
Tools are managed via [mise](https://mise.jdx.dev/). Install all required tools:
|
||||||
|
```sh
|
||||||
|
mise install
|
||||||
|
```
|
||||||
|
|
||||||
|
Key versions: Rust 1.93.0 (with clippy), Flutter 3.38.9-stable, protoc 29.6, diesel_cli 2.3.6 (sqlite).
|
||||||
|
|
||||||
|
## Server (Rust workspace at `server/`)
|
||||||
|
|
||||||
|
### Crates
|
||||||
|
|
||||||
|
| Crate | Purpose |
|
||||||
|
|---|---|
|
||||||
|
| `arbiter-proto` | Generated gRPC stubs + protobuf types; compiled from `protobufs/*.proto` via `tonic-prost-build` |
|
||||||
|
| `arbiter-server` | Main daemon — actors, DB, EVM policy engine, gRPC service implementation |
|
||||||
|
| `arbiter-useragent` | Rust client library for the user agent side of the gRPC protocol |
|
||||||
|
| `arbiter-client` | Rust client library for SDK clients |
|
||||||
|
|
||||||
|
### Common Commands
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd server
|
||||||
|
|
||||||
|
# Build
|
||||||
|
cargo build
|
||||||
|
|
||||||
|
# Run the server daemon
|
||||||
|
cargo run -p arbiter-server
|
||||||
|
|
||||||
|
# Run all tests (preferred over cargo test)
|
||||||
|
cargo nextest run
|
||||||
|
|
||||||
|
# Run a single test
|
||||||
|
cargo nextest run <test_name>
|
||||||
|
|
||||||
|
# Lint
|
||||||
|
cargo clippy
|
||||||
|
|
||||||
|
# Security audit
|
||||||
|
cargo audit
|
||||||
|
|
||||||
|
# Check unused dependencies
|
||||||
|
cargo shear
|
||||||
|
|
||||||
|
# Run snapshot tests and update snapshots
|
||||||
|
cargo insta review
|
||||||
|
```
|
||||||
|
|
||||||
|
### Architecture
|
||||||
|
|
||||||
|
The server is actor-based using the **kameo** crate. All long-lived state lives in `GlobalActors`:
|
||||||
|
|
||||||
|
- **`Bootstrapper`** — Manages the one-time bootstrap token written to `~/.arbiter/bootstrap_token` on first run.
|
||||||
|
- **`KeyHolder`** — Holds the encrypted root key and manages the Sealed/Unsealed vault state machine. On unseal, decrypts the root key into a `memsafe` hardened memory cell.
|
||||||
|
- **`MessageRouter`** — Coordinates streaming messages between user agents and SDK clients.
|
||||||
|
- **`EvmActor`** — Handles EVM transaction policy enforcement and signing.
|
||||||
|
|
||||||
|
Per-connection actors live under `actors/user_agent/` and `actors/client/`, each with `auth` (challenge-response authentication) and `session` (post-auth operations) sub-modules.
|
||||||
|
|
||||||
|
**Database:** SQLite via `diesel-async` + `bb8` connection pool. Schema managed by embedded Diesel migrations in `crates/arbiter-server/migrations/`. DB file lives at `~/.arbiter/arbiter.sqlite`. Tests use a temp-file DB via `db::create_test_pool()`.
|
||||||
|
|
||||||
|
**Cryptography:**
|
||||||
|
- Authentication: ed25519 (challenge-response, nonce-tracked per peer)
|
||||||
|
- Encryption at rest: XChaCha20-Poly1305 (versioned via `scheme` field for transparent migration on unseal)
|
||||||
|
- Password KDF: Argon2
|
||||||
|
- Unseal transport: X25519 ephemeral key exchange
|
||||||
|
- TLS: self-signed certificate (aws-lc-rs backend), fingerprint distributed via `ArbiterUrl`
|
||||||
|
|
||||||
|
**Protocol:** gRPC with Protocol Buffers. The `ArbiterUrl` type encodes host, port, CA cert, and bootstrap token into a single shareable string (printed to console on first run).
|
||||||
|
|
||||||
|
### Proto Regeneration
|
||||||
|
|
||||||
|
When `.proto` files in `protobufs/` change, rebuild to regenerate:
|
||||||
|
```sh
|
||||||
|
cd server && cargo build -p arbiter-proto
|
||||||
|
```
|
||||||
|
|
||||||
|
### Database Migrations
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create a new migration
|
||||||
|
diesel migration generate <name> --migration-dir crates/arbiter-server/migrations
|
||||||
|
|
||||||
|
# Run migrations manually (server also runs them on startup)
|
||||||
|
diesel migration run --migration-dir crates/arbiter-server/migrations
|
||||||
|
```
|
||||||
|
|
||||||
|
## User Agent (Flutter + Rinf at `useragent/`)
|
||||||
|
|
||||||
|
The Flutter app uses [Rinf](https://rinf.cunarist.org) to call Rust code. The Rust logic lives in `useragent/native/hub/` as a separate crate that uses `arbiter-useragent` for the gRPC client.
|
||||||
|
|
||||||
|
Communication between Dart and Rust uses typed **signals** defined in `useragent/native/hub/src/signals/`. After modifying signal structs, regenerate Dart bindings:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd useragent && rinf gen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Commands
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd useragent
|
||||||
|
|
||||||
|
# Run the app (macOS or Windows)
|
||||||
|
flutter run
|
||||||
|
|
||||||
|
# Regenerate Rust↔Dart signal bindings
|
||||||
|
rinf gen
|
||||||
|
|
||||||
|
# Analyze Dart code
|
||||||
|
flutter analyze
|
||||||
|
```
|
||||||
|
|
||||||
|
The Rinf Rust entry point is `useragent/native/hub/src/lib.rs`. It spawns actors defined in `useragent/native/hub/src/actors/` which handle Dart↔server communication via signals.
|
||||||
@@ -42,6 +42,10 @@ backend = "cargo:diesel_cli"
|
|||||||
default-features = "false"
|
default-features = "false"
|
||||||
features = "sqlite,sqlite-bundled"
|
features = "sqlite,sqlite-bundled"
|
||||||
|
|
||||||
|
[[tools."cargo:rinf_cli"]]
|
||||||
|
version = "8.9.1"
|
||||||
|
backend = "cargo:rinf_cli"
|
||||||
|
|
||||||
[[tools.flutter]]
|
[[tools.flutter]]
|
||||||
version = "3.38.9-stable"
|
version = "3.38.9-stable"
|
||||||
backend = "asdf:flutter"
|
backend = "asdf:flutter"
|
||||||
|
|||||||
@@ -10,3 +10,11 @@ protoc = "29.6"
|
|||||||
"cargo:cargo-shear" = "latest"
|
"cargo:cargo-shear" = "latest"
|
||||||
"cargo:cargo-insta" = "1.46.3"
|
"cargo:cargo-insta" = "1.46.3"
|
||||||
python = "3.14.3"
|
python = "3.14.3"
|
||||||
|
|
||||||
|
[tasks.codegen]
|
||||||
|
sources = ['protobufs/*.proto']
|
||||||
|
outputs = ['useragent/lib/proto/*']
|
||||||
|
run = '''
|
||||||
|
dart pub global activate protoc_plugin && \
|
||||||
|
protoc --dart_out=useragent/lib/proto --proto_path=protobufs/ protobufs/*.proto
|
||||||
|
'''
|
||||||
@@ -168,6 +168,9 @@ impl UserAgentSession {
|
|||||||
UserAgentRequestPayload::UnsealEncryptedKey(unseal_encrypted_key) => {
|
UserAgentRequestPayload::UnsealEncryptedKey(unseal_encrypted_key) => {
|
||||||
self.handle_unseal_encrypted_key(unseal_encrypted_key).await
|
self.handle_unseal_encrypted_key(unseal_encrypted_key).await
|
||||||
}
|
}
|
||||||
|
UserAgentRequestPayload::QueryVaultState(_) => {
|
||||||
|
self.handle_query_vault_state().await
|
||||||
|
}
|
||||||
UserAgentRequestPayload::EvmWalletCreate(_) => self.handle_evm_wallet_create().await,
|
UserAgentRequestPayload::EvmWalletCreate(_) => self.handle_evm_wallet_create().await,
|
||||||
UserAgentRequestPayload::EvmWalletList(_) => self.handle_evm_wallet_list().await,
|
UserAgentRequestPayload::EvmWalletList(_) => self.handle_evm_wallet_list().await,
|
||||||
_ => Err(TransportResponseError::UnexpectedRequestPayload),
|
_ => Err(TransportResponseError::UnexpectedRequestPayload),
|
||||||
@@ -290,6 +293,27 @@ impl UserAgentSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl UserAgentSession {
|
||||||
|
async fn handle_query_vault_state(&mut self) -> Output {
|
||||||
|
use arbiter_proto::proto::user_agent::VaultState;
|
||||||
|
use crate::actors::keyholder::{GetState, StateDiscriminants};
|
||||||
|
|
||||||
|
let vault_state = match self.props.actors.key_holder.ask(GetState {}).await {
|
||||||
|
Ok(StateDiscriminants::Unbootstrapped) => VaultState::Unbootstrapped,
|
||||||
|
Ok(StateDiscriminants::Sealed) => VaultState::Sealed,
|
||||||
|
Ok(StateDiscriminants::Unsealed) => VaultState::Unsealed,
|
||||||
|
Err(err) => {
|
||||||
|
error!(?err, actor = "useragent", "keyholder.query.failed");
|
||||||
|
VaultState::Error
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(response(UserAgentResponsePayload::VaultState(
|
||||||
|
vault_state.into(),
|
||||||
|
)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl UserAgentSession {
|
impl UserAgentSession {
|
||||||
async fn handle_evm_wallet_create(&mut self) -> Output {
|
async fn handle_evm_wallet_create(&mut self) -> Output {
|
||||||
use evm_proto::wallet_create_response::Result as CreateResult;
|
use evm_proto::wallet_create_response::Result as CreateResult;
|
||||||
|
|||||||
@@ -254,4 +254,126 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
mod grpc;
|
mod grpc;
|
||||||
pub use grpc::{ConnectError, connect_grpc};
|
pub use grpc::{connect_grpc, ConnectError, UserAgentGrpc};
|
||||||
|
|
||||||
|
use arbiter_proto::proto::user_agent::{
|
||||||
|
UnsealEncryptedKey, UnsealStart,
|
||||||
|
user_agent_request::Payload as RequestPayload,
|
||||||
|
user_agent_response::Payload as ResponsePayload,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Send an `UnsealStart` request and await the server's `UnsealStartResponse`.
|
||||||
|
pub struct SendUnsealStart {
|
||||||
|
pub client_pubkey: Vec<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Send an `UnsealEncryptedKey` request and await the server's `UnsealResult`.
|
||||||
|
pub struct SendUnsealEncryptedKey {
|
||||||
|
pub nonce: Vec<u8>,
|
||||||
|
pub ciphertext: Vec<u8>,
|
||||||
|
pub associated_data: Vec<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Query the server for the current `VaultState`.
|
||||||
|
pub struct QueryVaultState;
|
||||||
|
|
||||||
|
/// Errors that can occur during post-authentication session operations.
|
||||||
|
#[derive(Debug, thiserror::Error)]
|
||||||
|
pub enum SessionError {
|
||||||
|
#[error("Transport send failed")]
|
||||||
|
TransportSendFailed,
|
||||||
|
#[error("Transport closed unexpectedly")]
|
||||||
|
TransportClosed,
|
||||||
|
#[error("Server sent an unexpected response payload")]
|
||||||
|
UnexpectedResponse,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Transport> kameo::message::Message<SendUnsealStart> for UserAgentActor<Transport>
|
||||||
|
where
|
||||||
|
Transport: Bi<UserAgentResponse, UserAgentRequest>,
|
||||||
|
{
|
||||||
|
type Reply = Result<arbiter_proto::proto::user_agent::UnsealStartResponse, SessionError>;
|
||||||
|
|
||||||
|
async fn handle(
|
||||||
|
&mut self,
|
||||||
|
msg: SendUnsealStart,
|
||||||
|
_ctx: &mut kameo::message::Context<Self, Self::Reply>,
|
||||||
|
) -> Self::Reply {
|
||||||
|
self.transport
|
||||||
|
.send(UserAgentRequest {
|
||||||
|
payload: Some(RequestPayload::UnsealStart(UnsealStart {
|
||||||
|
client_pubkey: msg.client_pubkey,
|
||||||
|
})),
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.map_err(|_| SessionError::TransportSendFailed)?;
|
||||||
|
|
||||||
|
match self.transport.recv().await {
|
||||||
|
Some(resp) => match resp.payload {
|
||||||
|
Some(ResponsePayload::UnsealStartResponse(r)) => Ok(r),
|
||||||
|
_ => Err(SessionError::UnexpectedResponse),
|
||||||
|
},
|
||||||
|
None => Err(SessionError::TransportClosed),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Transport> kameo::message::Message<SendUnsealEncryptedKey> for UserAgentActor<Transport>
|
||||||
|
where
|
||||||
|
Transport: Bi<UserAgentResponse, UserAgentRequest>,
|
||||||
|
{
|
||||||
|
type Reply = Result<i32, SessionError>;
|
||||||
|
|
||||||
|
async fn handle(
|
||||||
|
&mut self,
|
||||||
|
msg: SendUnsealEncryptedKey,
|
||||||
|
_ctx: &mut kameo::message::Context<Self, Self::Reply>,
|
||||||
|
) -> Self::Reply {
|
||||||
|
self.transport
|
||||||
|
.send(UserAgentRequest {
|
||||||
|
payload: Some(RequestPayload::UnsealEncryptedKey(UnsealEncryptedKey {
|
||||||
|
nonce: msg.nonce,
|
||||||
|
ciphertext: msg.ciphertext,
|
||||||
|
associated_data: msg.associated_data,
|
||||||
|
})),
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.map_err(|_| SessionError::TransportSendFailed)?;
|
||||||
|
|
||||||
|
match self.transport.recv().await {
|
||||||
|
Some(resp) => match resp.payload {
|
||||||
|
Some(ResponsePayload::UnsealResult(r)) => Ok(r),
|
||||||
|
_ => Err(SessionError::UnexpectedResponse),
|
||||||
|
},
|
||||||
|
None => Err(SessionError::TransportClosed),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Transport> kameo::message::Message<QueryVaultState> for UserAgentActor<Transport>
|
||||||
|
where
|
||||||
|
Transport: Bi<UserAgentResponse, UserAgentRequest>,
|
||||||
|
{
|
||||||
|
type Reply = Result<i32, SessionError>;
|
||||||
|
|
||||||
|
async fn handle(
|
||||||
|
&mut self,
|
||||||
|
_msg: QueryVaultState,
|
||||||
|
_ctx: &mut kameo::message::Context<Self, Self::Reply>,
|
||||||
|
) -> Self::Reply {
|
||||||
|
self.transport
|
||||||
|
.send(UserAgentRequest {
|
||||||
|
payload: Some(RequestPayload::QueryVaultState(())),
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.map_err(|_| SessionError::TransportSendFailed)?;
|
||||||
|
|
||||||
|
match self.transport.recv().await {
|
||||||
|
Some(resp) => match resp.payload {
|
||||||
|
Some(ResponsePayload::VaultState(v)) => Ok(v),
|
||||||
|
_ => Err(SessionError::UnexpectedResponse),
|
||||||
|
},
|
||||||
|
None => Err(SessionError::TransportClosed),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
Extension Discovery Cache
|
|
||||||
=========================
|
|
||||||
|
|
||||||
This folder is used by `package:extension_discovery` to cache lists of
|
|
||||||
packages that contains extensions for other packages.
|
|
||||||
|
|
||||||
DO NOT USE THIS FOLDER
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
* Do not read (or rely) the contents of this folder.
|
|
||||||
* Do write to this folder.
|
|
||||||
|
|
||||||
If you're interested in the lists of extensions stored in this folder use the
|
|
||||||
API offered by package `extension_discovery` to get this information.
|
|
||||||
|
|
||||||
If this package doesn't work for your use-case, then don't try to read the
|
|
||||||
contents of this folder. It may change, and will not remain stable.
|
|
||||||
|
|
||||||
Use package `extension_discovery`
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
If you want to access information from this folder.
|
|
||||||
|
|
||||||
Feel free to delete this folder
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Files in this folder act as a cache, and the cache is discarded if the files
|
|
||||||
are older than the modification time of `.dart_tool/package_config.json`.
|
|
||||||
|
|
||||||
Hence, it should never be necessary to clear this cache manually, if you find a
|
|
||||||
need to do please file a bug.
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"version":2,"entries":[{"package":"arbiter","rootUri":"../","packageUri":"lib/"}]}
|
|
||||||
@@ -1,60 +1,402 @@
|
|||||||
{
|
{
|
||||||
"configVersion": 2,
|
"configVersion": 2,
|
||||||
"packages": [
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "_fe_analyzer_shared",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-91.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "analyzer",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/analyzer-8.4.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "analyzer_buffer",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/analyzer_buffer-0.1.11",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ansicolor",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/ansicolor-2.0.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "args",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/args-2.7.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "async",
|
"name": "async",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/async-2.13.0",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/async-2.13.0",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "biometric_signature",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/biometric_signature-10.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bloc",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/bloc-9.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.14"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "boolean_selector",
|
"name": "boolean_selector",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.1"
|
"languageVersion": "3.1"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "build",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/build-4.0.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "build_config",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/build_config-1.3.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "build_daemon",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/build_daemon-4.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "build_runner",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/build_runner-2.12.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "built_collection",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/built_collection-5.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "built_value",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/built_value-8.12.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "characters",
|
"name": "characters",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/characters-1.4.0",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/characters-1.4.0",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "checked_yaml",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cli_config",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/cli_config-0.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "clock",
|
"name": "clock",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/clock-1.1.2",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/clock-1.1.2",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "code_assets",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/code_assets-1.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "code_builder",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/code_builder-4.11.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "collection",
|
"name": "collection",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/collection-1.19.1",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/collection-1.19.1",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "convert",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/convert-3.1.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coverage",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/coverage-1.15.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cross_file",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/cross_file-0.3.5+2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "crypto",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/crypto-3.0.7",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cryptography",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/cryptography-2.9.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cryptography_flutter",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/cryptography_flutter-2.3.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cupertino_icons",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dart_style",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/dart_style-3.1.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "fake_async",
|
"name": "fake_async",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/fake_async-1.3.3",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/fake_async-1.3.3",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.3"
|
"languageVersion": "3.3"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "ffi",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/ffi-2.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "file",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/file-7.0.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fixnum",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.1"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "flutter",
|
"name": "flutter",
|
||||||
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/packages/flutter",
|
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/packages/flutter",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.8"
|
"languageVersion": "3.8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_adaptive_scaffold",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/git/flutter_adaptive_scaffold-4852b5041d8d9ed6cacb4dc4c6723086f0612e37/",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_bloc",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_hooks",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.17"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "flutter_lints",
|
"name": "flutter_lints",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_lints-6.0.0",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_lints-6.0.0",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.8"
|
"languageVersion": "3.8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_riverpod",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_riverpod-3.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage-10.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage_darwin",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage_darwin-0.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage_linux",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-3.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage_platform_interface",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-2.0.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage_web",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-2.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_secure_storage_windows",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-4.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_spinkit",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/flutter_spinkit-5.2.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "flutter_test",
|
"name": "flutter_test",
|
||||||
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/packages/flutter_test",
|
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/packages/flutter_test",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.8"
|
"languageVersion": "3.8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "flutter_web_plugins",
|
||||||
|
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/packages/flutter_web_plugins",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "freezed_annotation",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/freezed_annotation-3.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_server_client",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "glob",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/glob-2.1.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "google_identity_services_web",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/google_identity_services_web-0.3.3+1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "googleapis_auth",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/googleapis_auth-2.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "graphs",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/graphs-2.3.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group_button",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/group_button-5.3.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "grpc",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/grpc-5.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hooks",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/hooks-1.0.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hooks_riverpod",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/hooks_riverpod-3.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "http",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/http-1.6.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "http2",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/http2-2.3.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "http_multi_server",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "http_parser",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/http_parser-4.1.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "io",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/io-1.0.5",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "js",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/js-0.7.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "json_annotation",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/json_annotation-4.11.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "leak_tracker",
|
"name": "leak_tracker",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/leak_tracker-11.0.2",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/leak_tracker-11.0.2",
|
||||||
@@ -79,6 +421,12 @@
|
|||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.8"
|
"languageVersion": "3.8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "logging",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/logging-1.3.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "matcher",
|
"name": "matcher",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/matcher-0.12.17",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/matcher-0.12.17",
|
||||||
@@ -97,18 +445,246 @@
|
|||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.5"
|
"languageVersion": "3.5"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "mime",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/mime-2.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mockito",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/mockito-5.6.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mtcore",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/git.markettakers.org%2547api%2547packages%2547MarketTakers%2547pub%2547/mtcore-1.0.6",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "native_toolchain_c",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/native_toolchain_c-0.17.5",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nested",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/nested-1.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "node_preamble",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/node_preamble-2.0.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "objective_c",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/objective_c-9.3.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "package_config",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/package_config-2.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "path",
|
"name": "path",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path-1.9.1",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path-1.9.1",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider-2.1.5",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider_android",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider_android-2.2.22",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider_foundation",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider_foundation-2.6.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider_linux",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider_platform_interface",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "path_provider_windows",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "percent_indicator",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/percent_indicator-4.2.5",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "platform",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/platform-3.1.6",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plugin_platform_interface",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pool",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/pool-1.5.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "protobuf",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/protobuf-6.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "provider",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/provider-6.1.5+1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pub_semver",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/pub_semver-2.2.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pubspec_parse",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rive",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/rive-0.14.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rive_native",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/rive_native-0.1.4",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "riverpod",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/riverpod-3.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "riverpod_analyzer_utils",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/riverpod_analyzer_utils-1.0.0-dev.8",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "riverpod_annotation",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/riverpod_annotation-4.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "riverpod_generator",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/riverpod_generator-4.0.0+1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "share_plus",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/share_plus-12.0.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "share_plus_platform_interface",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/share_plus_platform_interface-6.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "shelf",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/shelf-1.4.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "shelf_packages_handler",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "shelf_static",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/shelf_static-1.1.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "shelf_web_socket",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sizer",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/sizer-3.1.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "sky_engine",
|
"name": "sky_engine",
|
||||||
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/bin/cache/pkg/sky_engine",
|
"rootUri": "file:///Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable/bin/cache/pkg/sky_engine",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.8"
|
"languageVersion": "3.8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "source_gen",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/source_gen-4.2.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "source_map_stack_trace",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "source_maps",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/source_maps-0.10.13",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "source_span",
|
"name": "source_span",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/source_span-1.10.2",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/source_span-1.10.2",
|
||||||
@@ -121,30 +697,108 @@
|
|||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "state_notifier",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/state_notifier-1.0.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.12"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "stream_channel",
|
"name": "stream_channel",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/stream_channel-2.1.4",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/stream_channel-2.1.4",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.3"
|
"languageVersion": "3.3"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "stream_transform",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/stream_transform-2.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.1"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "string_scanner",
|
"name": "string_scanner",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.1"
|
"languageVersion": "3.1"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "talker",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/talker-5.1.15",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "talker_flutter",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/talker_flutter-5.1.15",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "talker_logger",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/talker_logger-5.1.15",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "2.15"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "term_glyph",
|
"name": "term_glyph",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.1"
|
"languageVersion": "3.1"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "test",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/test-1.26.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.5"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "test_api",
|
"name": "test_api",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/test_api-0.7.7",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/test_api-0.7.7",
|
||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.5"
|
"languageVersion": "3.5"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "test_core",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/test_core-0.6.12",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "typed_data",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "url_launcher_linux",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "url_launcher_platform_interface",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "url_launcher_web",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.2",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "url_launcher_windows",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.5",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "uuid",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/uuid-4.5.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "vector_math",
|
"name": "vector_math",
|
||||||
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/vector_math-2.2.0",
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/vector_math-2.2.0",
|
||||||
@@ -157,6 +811,54 @@
|
|||||||
"packageUri": "lib/",
|
"packageUri": "lib/",
|
||||||
"languageVersion": "3.5"
|
"languageVersion": "3.5"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "watcher",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/watcher-1.2.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/web-1.1.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web_socket",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/web_socket-1.0.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web_socket_channel",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webkit_inspection_protocol",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "win32",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/win32-5.15.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "xdg_directories",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "yaml",
|
||||||
|
"rootUri": "file:///Users/kaska/.pub-cache/hosted/pub.dev/yaml-3.1.3",
|
||||||
|
"packageUri": "lib/",
|
||||||
|
"languageVersion": "3.4"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "arbiter",
|
"name": "arbiter",
|
||||||
"rootUri": "../",
|
"rootUri": "../",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# app
|
# useragent
|
||||||
|
|
||||||
A new Flutter project.
|
A new Flutter project.
|
||||||
|
|
||||||
|
|||||||
14
useragent/android/.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
gradle-wrapper.jar
|
||||||
|
/.gradle
|
||||||
|
/captures/
|
||||||
|
/gradlew
|
||||||
|
/gradlew.bat
|
||||||
|
/local.properties
|
||||||
|
GeneratedPluginRegistrant.java
|
||||||
|
.cxx/
|
||||||
|
|
||||||
|
# Remember to never publicly share your keystore.
|
||||||
|
# See https://flutter.dev/to/reference-keystore
|
||||||
|
key.properties
|
||||||
|
**/*.keystore
|
||||||
|
**/*.jks
|
||||||
44
useragent/android/app/build.gradle.kts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
plugins {
|
||||||
|
id("com.android.application")
|
||||||
|
id("kotlin-android")
|
||||||
|
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||||
|
id("dev.flutter.flutter-gradle-plugin")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.example.useragent"
|
||||||
|
compileSdk = flutter.compileSdkVersion
|
||||||
|
ndkVersion = flutter.ndkVersion
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
|
applicationId = "com.example.useragent"
|
||||||
|
// You can update the following values to match your application needs.
|
||||||
|
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||||
|
minSdk = flutter.minSdkVersion
|
||||||
|
targetSdk = flutter.targetSdkVersion
|
||||||
|
versionCode = flutter.versionCode
|
||||||
|
versionName = flutter.versionName
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
// TODO: Add your own signing config for the release build.
|
||||||
|
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||||
|
signingConfig = signingConfigs.getByName("debug")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flutter {
|
||||||
|
source = "../.."
|
||||||
|
}
|
||||||
7
useragent/android/app/src/debug/AndroidManifest.xml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<!-- The INTERNET permission is required for development. Specifically,
|
||||||
|
the Flutter tool needs it to communicate with the running application
|
||||||
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
|
-->
|
||||||
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
|
</manifest>
|
||||||
45
useragent/android/app/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<application
|
||||||
|
android:label="useragent"
|
||||||
|
android:name="${applicationName}"
|
||||||
|
android:icon="@mipmap/ic_launcher">
|
||||||
|
<activity
|
||||||
|
android:name=".MainActivity"
|
||||||
|
android:exported="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:taskAffinity=""
|
||||||
|
android:theme="@style/LaunchTheme"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
|
android:windowSoftInputMode="adjustResize">
|
||||||
|
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||||
|
the Android process has started. This theme is visible to the user
|
||||||
|
while the Flutter UI initializes. After that, this theme continues
|
||||||
|
to determine the Window background behind the Flutter UI. -->
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
|
android:resource="@style/NormalTheme"
|
||||||
|
/>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<!-- Don't delete the meta-data below.
|
||||||
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||||
|
<meta-data
|
||||||
|
android:name="flutterEmbedding"
|
||||||
|
android:value="2" />
|
||||||
|
</application>
|
||||||
|
<!-- Required to query activities that can process text, see:
|
||||||
|
https://developer.android.com/training/package-visibility and
|
||||||
|
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||||
|
|
||||||
|
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||||||
|
<queries>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||||
|
<data android:mimeType="text/plain"/>
|
||||||
|
</intent>
|
||||||
|
</queries>
|
||||||
|
</manifest>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.useragent
|
||||||
|
|
||||||
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
|
|
||||||
|
class MainActivity : FlutterActivity()
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Modify this file to customize your launch splash screen -->
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="?android:colorBackground" />
|
||||||
|
|
||||||
|
<!-- You can insert your own image assets here -->
|
||||||
|
<!-- <item>
|
||||||
|
<bitmap
|
||||||
|
android:gravity="center"
|
||||||
|
android:src="@mipmap/launch_image" />
|
||||||
|
</item> -->
|
||||||
|
</layer-list>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Modify this file to customize your launch splash screen -->
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="@android:color/white" />
|
||||||
|
|
||||||
|
<!-- You can insert your own image assets here -->
|
||||||
|
<!-- <item>
|
||||||
|
<bitmap
|
||||||
|
android:gravity="center"
|
||||||
|
android:src="@mipmap/launch_image" />
|
||||||
|
</item> -->
|
||||||
|
</layer-list>
|
||||||
BIN
useragent/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 544 B |
BIN
useragent/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 442 B |
BIN
useragent/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 721 B |
BIN
useragent/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
18
useragent/android/app/src/main/res/values-night/styles.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
the Flutter engine draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
||||||
18
useragent/android/app/src/main/res/values/styles.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
the Flutter engine draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
||||||
7
useragent/android/app/src/profile/AndroidManifest.xml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<!-- The INTERNET permission is required for development. Specifically,
|
||||||
|
the Flutter tool needs it to communicate with the running application
|
||||||
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
|
-->
|
||||||
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
|
</manifest>
|
||||||
24
useragent/android/build.gradle.kts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val newBuildDir: Directory =
|
||||||
|
rootProject.layout.buildDirectory
|
||||||
|
.dir("../../build")
|
||||||
|
.get()
|
||||||
|
rootProject.layout.buildDirectory.value(newBuildDir)
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
|
||||||
|
project.layout.buildDirectory.value(newSubprojectBuildDir)
|
||||||
|
}
|
||||||
|
subprojects {
|
||||||
|
project.evaluationDependsOn(":app")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Delete>("clean") {
|
||||||
|
delete(rootProject.layout.buildDirectory)
|
||||||
|
}
|
||||||
2
useragent/android/gradle.properties
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||||
|
android.useAndroidX=true
|
||||||
5
useragent/android/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionPath=wrapper/dists
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
|
||||||
26
useragent/android/settings.gradle.kts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
pluginManagement {
|
||||||
|
val flutterSdkPath =
|
||||||
|
run {
|
||||||
|
val properties = java.util.Properties()
|
||||||
|
file("local.properties").inputStream().use { properties.load(it) }
|
||||||
|
val flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||||
|
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
|
||||||
|
flutterSdkPath
|
||||||
|
}
|
||||||
|
|
||||||
|
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||||
|
id("com.android.application") version "8.11.1" apply false
|
||||||
|
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
|
||||||
|
}
|
||||||
|
|
||||||
|
include(":app")
|
||||||
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
@@ -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
@@ -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
@@ -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
@@ -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() {
|
void main() {
|
||||||
runApp(const MyApp());
|
runApp(
|
||||||
}
|
MaterialApp(
|
||||||
|
home: ProviderScope(child: Scaffold(body: Router())),
|
||||||
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),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
|||||||
@@ -5,6 +5,16 @@
|
|||||||
import FlutterMacOS
|
import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
import biometric_signature
|
||||||
|
import cryptography_flutter
|
||||||
|
import flutter_secure_storage_darwin
|
||||||
|
import rive_native
|
||||||
|
import share_plus
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
|
BiometricSignaturePlugin.register(with: registry.registrar(forPlugin: "BiometricSignaturePlugin"))
|
||||||
|
CryptographyFlutterPlugin.register(with: registry.registrar(forPlugin: "CryptographyFlutterPlugin"))
|
||||||
|
FlutterSecureStorageDarwinPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageDarwinPlugin"))
|
||||||
|
RiveNativePlugin.register(with: registry.registrar(forPlugin: "RiveNativePlugin"))
|
||||||
|
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
FLUTTER_ROOT=/Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable
|
FLUTTER_ROOT=/Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable
|
||||||
FLUTTER_APPLICATION_PATH=/Users/kaska/Documents/Projects/Major/arbiter/useragent
|
FLUTTER_APPLICATION_PATH=/Users/kaska/Documents/Projects/Major/arbiter/useragent
|
||||||
COCOAPODS_PARALLEL_CODE_SIGN=true
|
COCOAPODS_PARALLEL_CODE_SIGN=true
|
||||||
|
FLUTTER_TARGET=/Users/kaska/Documents/Projects/Major/arbiter/useragent/lib/main.dart
|
||||||
FLUTTER_BUILD_DIR=build
|
FLUTTER_BUILD_DIR=build
|
||||||
FLUTTER_BUILD_NAME=0.1.0
|
FLUTTER_BUILD_NAME=1.0.0
|
||||||
FLUTTER_BUILD_NUMBER=0.1.0
|
FLUTTER_BUILD_NUMBER=1
|
||||||
|
DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44
|
||||||
DART_OBFUSCATION=false
|
DART_OBFUSCATION=false
|
||||||
TRACK_WIDGET_CREATION=true
|
TRACK_WIDGET_CREATION=true
|
||||||
TREE_SHAKE_ICONS=false
|
TREE_SHAKE_ICONS=false
|
||||||
PACKAGE_CONFIG=.dart_tool/package_config.json
|
PACKAGE_CONFIG=/Users/kaska/Documents/Projects/Major/arbiter/useragent/.dart_tool/package_config.json
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
export "FLUTTER_ROOT=/Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable"
|
export "FLUTTER_ROOT=/Users/kaska/.local/share/mise/installs/flutter/3.38.9-stable"
|
||||||
export "FLUTTER_APPLICATION_PATH=/Users/kaska/Documents/Projects/Major/arbiter/useragent"
|
export "FLUTTER_APPLICATION_PATH=/Users/kaska/Documents/Projects/Major/arbiter/useragent"
|
||||||
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
||||||
|
export "FLUTTER_TARGET=/Users/kaska/Documents/Projects/Major/arbiter/useragent/lib/main.dart"
|
||||||
export "FLUTTER_BUILD_DIR=build"
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
export "FLUTTER_BUILD_NAME=0.1.0"
|
export "FLUTTER_BUILD_NAME=1.0.0"
|
||||||
export "FLUTTER_BUILD_NUMBER=0.1.0"
|
export "FLUTTER_BUILD_NUMBER=1"
|
||||||
|
export "DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44"
|
||||||
export "DART_OBFUSCATION=false"
|
export "DART_OBFUSCATION=false"
|
||||||
export "TRACK_WIDGET_CREATION=true"
|
export "TRACK_WIDGET_CREATION=true"
|
||||||
export "TREE_SHAKE_ICONS=false"
|
export "TREE_SHAKE_ICONS=false"
|
||||||
export "PACKAGE_CONFIG=.dart_tool/package_config.json"
|
export "PACKAGE_CONFIG=/Users/kaska/Documents/Projects/Major/arbiter/useragent/.dart_tool/package_config.json"
|
||||||
|
|||||||
42
useragent/macos/Podfile
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
platform :osx, '10.15'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutter_root
|
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||||
|
return matches[1].strip if matches
|
||||||
|
end
|
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||||
|
|
||||||
|
flutter_macos_podfile_setup
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
|
||||||
|
target 'RunnerTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
flutter_additional_macos_build_settings(target)
|
||||||
|
end
|
||||||
|
end
|
||||||
47
useragent/macos/Podfile.lock
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
PODS:
|
||||||
|
- biometric_signature (10.2.0):
|
||||||
|
- FlutterMacOS
|
||||||
|
- cryptography_flutter (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- flutter_secure_storage_darwin (10.0.0):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- FlutterMacOS (1.0.0)
|
||||||
|
- rive_native (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- share_plus (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- biometric_signature (from `Flutter/ephemeral/.symlinks/plugins/biometric_signature/macos`)
|
||||||
|
- cryptography_flutter (from `Flutter/ephemeral/.symlinks/plugins/cryptography_flutter/macos`)
|
||||||
|
- flutter_secure_storage_darwin (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_darwin/darwin`)
|
||||||
|
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||||
|
- rive_native (from `Flutter/ephemeral/.symlinks/plugins/rive_native/macos`)
|
||||||
|
- share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`)
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
biometric_signature:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/biometric_signature/macos
|
||||||
|
cryptography_flutter:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/cryptography_flutter/macos
|
||||||
|
flutter_secure_storage_darwin:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_darwin/darwin
|
||||||
|
FlutterMacOS:
|
||||||
|
:path: Flutter/ephemeral
|
||||||
|
rive_native:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/rive_native/macos
|
||||||
|
share_plus:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
biometric_signature: 7ef6a703fcc2c3b0e3d937a8560507b1ba9d3414
|
||||||
|
cryptography_flutter: be2b3e0e31603521b6a1c2bea232a88a2488a91c
|
||||||
|
flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23
|
||||||
|
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
|
||||||
|
rive_native: 1c53d33e44c2b54424810effea4590671dd220c7
|
||||||
|
share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009
|
||||||
|
|
||||||
|
COCOAPODS: 1.16.2
|
||||||
@@ -27,6 +27,8 @@
|
|||||||
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
||||||
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
||||||
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
||||||
|
89374438F7FC24C1E409AC55 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BA779FA182F4B90ADDD656 /* Pods_RunnerTests.framework */; };
|
||||||
|
9812E904D4443BD8157BA2CD /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFE2551831D6F491FC95F4C0 /* Pods_Runner.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@@ -64,7 +66,7 @@
|
|||||||
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
||||||
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
||||||
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
||||||
33CC10ED2044A3C60003C045 /* app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "app.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
33CC10ED2044A3C60003C045 /* useragent.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = useragent.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
||||||
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
@@ -76,8 +78,16 @@
|
|||||||
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
||||||
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
||||||
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
||||||
|
5385F9987FF8E7FD3BA4E87E /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
||||||
|
84BA779FA182F4B90ADDD656 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
|
989E0AE288EA0AECFF244CAB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
ADF8B0EB51CA38AE67931C44 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
DC537F8D4AE9B12FB802E110 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
F06E58390BD453D6E42AD67C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
F9C83BBEBB84A7F9ACC93B93 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
FFE2551831D6F491FC95F4C0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -85,6 +95,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
89374438F7FC24C1E409AC55 /* Pods_RunnerTests.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -92,6 +103,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
9812E904D4443BD8157BA2CD /* Pods_Runner.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -125,13 +137,14 @@
|
|||||||
331C80D6294CF71000263BE5 /* RunnerTests */,
|
331C80D6294CF71000263BE5 /* RunnerTests */,
|
||||||
33CC10EE2044A3C60003C045 /* Products */,
|
33CC10EE2044A3C60003C045 /* Products */,
|
||||||
D73912EC22F37F3D000D13A0 /* Frameworks */,
|
D73912EC22F37F3D000D13A0 /* Frameworks */,
|
||||||
|
C5764DB16A5CAE65539863D1 /* Pods */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
33CC10EE2044A3C60003C045 /* Products */ = {
|
33CC10EE2044A3C60003C045 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
33CC10ED2044A3C60003C045 /* app.app */,
|
33CC10ED2044A3C60003C045 /* useragent.app */,
|
||||||
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
|
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
@@ -172,9 +185,25 @@
|
|||||||
path = Runner;
|
path = Runner;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
C5764DB16A5CAE65539863D1 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
989E0AE288EA0AECFF244CAB /* Pods-Runner.debug.xcconfig */,
|
||||||
|
F06E58390BD453D6E42AD67C /* Pods-Runner.release.xcconfig */,
|
||||||
|
F9C83BBEBB84A7F9ACC93B93 /* Pods-Runner.profile.xcconfig */,
|
||||||
|
DC537F8D4AE9B12FB802E110 /* Pods-RunnerTests.debug.xcconfig */,
|
||||||
|
5385F9987FF8E7FD3BA4E87E /* Pods-RunnerTests.release.xcconfig */,
|
||||||
|
ADF8B0EB51CA38AE67931C44 /* Pods-RunnerTests.profile.xcconfig */,
|
||||||
|
);
|
||||||
|
name = Pods;
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
|
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
FFE2551831D6F491FC95F4C0 /* Pods_Runner.framework */,
|
||||||
|
84BA779FA182F4B90ADDD656 /* Pods_RunnerTests.framework */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -186,6 +215,7 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
72217D999FDDB4A0040A839E /* [CP] Check Pods Manifest.lock */,
|
||||||
331C80D1294CF70F00263BE5 /* Sources */,
|
331C80D1294CF70F00263BE5 /* Sources */,
|
||||||
331C80D2294CF70F00263BE5 /* Frameworks */,
|
331C80D2294CF70F00263BE5 /* Frameworks */,
|
||||||
331C80D3294CF70F00263BE5 /* Resources */,
|
331C80D3294CF70F00263BE5 /* Resources */,
|
||||||
@@ -204,11 +234,13 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
|
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
4909404BD2C11CE7688B3B73 /* [CP] Check Pods Manifest.lock */,
|
||||||
33CC10E92044A3C60003C045 /* Sources */,
|
33CC10E92044A3C60003C045 /* Sources */,
|
||||||
33CC10EA2044A3C60003C045 /* Frameworks */,
|
33CC10EA2044A3C60003C045 /* Frameworks */,
|
||||||
33CC10EB2044A3C60003C045 /* Resources */,
|
33CC10EB2044A3C60003C045 /* Resources */,
|
||||||
33CC110E2044A8840003C045 /* Bundle Framework */,
|
33CC110E2044A8840003C045 /* Bundle Framework */,
|
||||||
3399D490228B24CF009A79C7 /* ShellScript */,
|
3399D490228B24CF009A79C7 /* ShellScript */,
|
||||||
|
2AF2BC4AB258588AFC797EA4 /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -217,7 +249,7 @@
|
|||||||
);
|
);
|
||||||
name = Runner;
|
name = Runner;
|
||||||
productName = Runner;
|
productName = Runner;
|
||||||
productReference = 33CC10ED2044A3C60003C045 /* app.app */;
|
productReference = 33CC10ED2044A3C60003C045 /* useragent.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
@@ -291,6 +323,23 @@
|
|||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
2AF2BC4AB258588AFC797EA4 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
3399D490228B24CF009A79C7 /* ShellScript */ = {
|
3399D490228B24CF009A79C7 /* ShellScript */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
alwaysOutOfDate = 1;
|
alwaysOutOfDate = 1;
|
||||||
@@ -329,6 +378,50 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
|
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
|
||||||
};
|
};
|
||||||
|
4909404BD2C11CE7688B3B73 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
72217D999FDDB4A0040A839E /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
@@ -380,43 +473,46 @@
|
|||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
331C80DB294CF71000263BE5 /* Debug */ = {
|
331C80DB294CF71000263BE5 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = DC537F8D4AE9B12FB802E110 /* Pods-RunnerTests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.useragent.RunnerTests;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/useragent.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/useragent";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
331C80DC294CF71000263BE5 /* Release */ = {
|
331C80DC294CF71000263BE5 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 5385F9987FF8E7FD3BA4E87E /* Pods-RunnerTests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.useragent.RunnerTests;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/useragent.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/useragent";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
331C80DD294CF71000263BE5 /* Profile */ = {
|
331C80DD294CF71000263BE5 /* Profile */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = ADF8B0EB51CA38AE67931C44 /* Pods-RunnerTests.profile.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.useragent.RunnerTests;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/useragent.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/useragent";
|
||||||
};
|
};
|
||||||
name = Profile;
|
name = Profile;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "app.app"
|
BuildableName = "useragent.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "app.app"
|
BuildableName = "useragent.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "app.app"
|
BuildableName = "useragent.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "app.app"
|
BuildableName = "useragent.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|||||||
@@ -4,4 +4,7 @@
|
|||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Runner.xcodeproj">
|
location = "group:Runner.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
// 'flutter create' template.
|
// 'flutter create' template.
|
||||||
|
|
||||||
// The application's name. By default this is also the title of the Flutter window.
|
// The application's name. By default this is also the title of the Flutter window.
|
||||||
PRODUCT_NAME = app
|
PRODUCT_NAME = useragent
|
||||||
|
|
||||||
// The application's bundle identifier
|
// The application's bundle identifier
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.app
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.useragent
|
||||||
|
|
||||||
// The copyright displayed in application information
|
// The copyright displayed in application information
|
||||||
PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved.
|
PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved.
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
name: arbiter
|
name: arbiter
|
||||||
description: "User agent for Arbiter"
|
description: "Useragent for Arbiter project"
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
version: 1.0.0+1
|
||||||
version: 0.1.0
|
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.10.8
|
sdk: ^3.10.8
|
||||||
@@ -11,11 +10,31 @@ dependencies:
|
|||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
|
cupertino_icons: ^1.0.8
|
||||||
|
flutter_adaptive_scaffold:
|
||||||
|
git: https://github.com/hdbg/flutter_adaptive_scaffold.git
|
||||||
|
talker: ^5.1.15
|
||||||
|
riverpod: ^3.1.0
|
||||||
|
hooks_riverpod: ^3.1.0
|
||||||
|
sizer: ^3.1.3
|
||||||
|
biometric_signature: ^10.2.0
|
||||||
|
mtcore:
|
||||||
|
hosted: https://git.markettakers.org/api/packages/MarketTakers/pub/
|
||||||
|
version: ^1.0.6
|
||||||
|
cryptography: ^2.9.0
|
||||||
|
flutter_secure_storage: ^10.0.0
|
||||||
|
cryptography_flutter: ^2.3.4
|
||||||
|
riverpod_annotation: ^4.0.0
|
||||||
|
grpc: ^5.1.0
|
||||||
|
flutter_hooks: ^0.21.3+1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
flutter_lints: ^6.0.0
|
flutter_lints: ^6.0.0
|
||||||
|
riverpod_generator: ^4.0.0+1
|
||||||
|
build_runner: ^2.12.2
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
BIN
useragent/web/favicon.png
Normal file
|
After Width: | Height: | Size: 917 B |
BIN
useragent/web/icons/Icon-192.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
useragent/web/icons/Icon-512.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
useragent/web/icons/Icon-maskable-192.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
useragent/web/icons/Icon-maskable-512.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
38
useragent/web/index.html
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<!--
|
||||||
|
If you are serving your web app in a path other than the root, change the
|
||||||
|
href value below to reflect the base path you are serving from.
|
||||||
|
|
||||||
|
The path provided below has to start and end with a slash "/" in order for
|
||||||
|
it to work correctly.
|
||||||
|
|
||||||
|
For more details:
|
||||||
|
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
|
||||||
|
|
||||||
|
This is a placeholder for base href that will be replaced by the value of
|
||||||
|
the `--base-href` argument provided to `flutter build`.
|
||||||
|
-->
|
||||||
|
<base href="$FLUTTER_BASE_HREF">
|
||||||
|
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
||||||
|
<meta name="description" content="A new Flutter project.">
|
||||||
|
|
||||||
|
<!-- iOS meta tags & icons -->
|
||||||
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||||
|
<meta name="apple-mobile-web-app-title" content="useragent">
|
||||||
|
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
||||||
|
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="icon" type="image/png" href="favicon.png"/>
|
||||||
|
|
||||||
|
<title>useragent</title>
|
||||||
|
<link rel="manifest" href="manifest.json">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script src="flutter_bootstrap.js" async></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
35
useragent/web/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "useragent",
|
||||||
|
"short_name": "useragent",
|
||||||
|
"start_url": ".",
|
||||||
|
"display": "standalone",
|
||||||
|
"background_color": "#0175C2",
|
||||||
|
"theme_color": "#0175C2",
|
||||||
|
"description": "A new Flutter project.",
|
||||||
|
"orientation": "portrait-primary",
|
||||||
|
"prefer_related_applications": false,
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "icons/Icon-192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "icons/Icon-512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "icons/Icon-maskable-192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png",
|
||||||
|
"purpose": "maskable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "icons/Icon-maskable-512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png",
|
||||||
|
"purpose": "maskable"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
# Project-level configuration.
|
# Project-level configuration.
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
project(app LANGUAGES CXX)
|
project(useragent LANGUAGES CXX)
|
||||||
|
|
||||||
# The name of the executable created for the application. Change this to change
|
# The name of the executable created for the application. Change this to change
|
||||||
# the on-disk name of your application.
|
# the on-disk name of your application.
|
||||||
set(BINARY_NAME "app")
|
set(BINARY_NAME "useragent")
|
||||||
|
|
||||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||||
# versions of CMake.
|
# versions of CMake.
|
||||||
|
|||||||
@@ -6,6 +6,21 @@
|
|||||||
|
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
#include <biometric_signature/biometric_signature_plugin.h>
|
||||||
|
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
|
||||||
|
#include <rive_native/rive_native_plugin.h>
|
||||||
|
#include <share_plus/share_plus_windows_plugin_c_api.h>
|
||||||
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
|
BiometricSignaturePluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("BiometricSignaturePlugin"));
|
||||||
|
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
|
||||||
|
RiveNativePluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("RiveNativePlugin"));
|
||||||
|
SharePlusWindowsPluginCApiRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
|
||||||
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,11 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
|
biometric_signature
|
||||||
|
flutter_secure_storage_windows
|
||||||
|
rive_native
|
||||||
|
share_plus
|
||||||
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
|||||||
@@ -90,12 +90,12 @@ BEGIN
|
|||||||
BLOCK "040904e4"
|
BLOCK "040904e4"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "com.example" "\0"
|
VALUE "CompanyName", "com.example" "\0"
|
||||||
VALUE "FileDescription", "app" "\0"
|
VALUE "FileDescription", "useragent" "\0"
|
||||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||||
VALUE "InternalName", "app" "\0"
|
VALUE "InternalName", "useragent" "\0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0"
|
VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0"
|
||||||
VALUE "OriginalFilename", "app.exe" "\0"
|
VALUE "OriginalFilename", "useragent.exe" "\0"
|
||||||
VALUE "ProductName", "app" "\0"
|
VALUE "ProductName", "useragent" "\0"
|
||||||
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
|
|||||||
FlutterWindow window(project);
|
FlutterWindow window(project);
|
||||||
Win32Window::Point origin(10, 10);
|
Win32Window::Point origin(10, 10);
|
||||||
Win32Window::Size size(1280, 720);
|
Win32Window::Size size(1280, 720);
|
||||||
if (!window.Create(L"app", origin, size)) {
|
if (!window.Create(L"useragent", origin, size)) {
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
window.SetQuitOnClose(true);
|
window.SetQuitOnClose(true);
|
||||||
|
|||||||