use std::net;
use fuel_core::fuel_core_graphql_api::DEFAULT_QUERY_COSTS;
#[derive(Debug, Clone, clap::Args)]
pub struct GraphQLArgs {
#[clap(long = "ip", default_value = "127.0.0.1", value_parser, env)]
pub ip: net::IpAddr,
#[clap(long = "port", default_value = "4000", env)]
pub port: u16,
#[clap(long = "graphql-number-of-threads", default_value = "2", env)]
pub graphql_number_of_threads: usize,
#[clap(long = "graphql-database-batch-size", default_value = "100", env)]
pub database_batch_size: usize,
#[clap(long = "block-subscription-queue", default_value = "100", env)]
pub block_subscriptions_queue: usize,
#[clap(long = "graphql-max-depth", default_value = "16", env)]
pub graphql_max_depth: usize,
#[clap(long = "graphql-max-complexity", default_value = "80000", env)]
pub graphql_max_complexity: usize,
#[clap(long = "graphql-max-recursive-depth", default_value = "24", env)]
pub graphql_max_recursive_depth: usize,
#[clap(
long = "graphql-max-resolver-recursive-depth",
default_value = "1",
env
)]
pub max_queries_resolver_recursive_depth: usize,
#[clap(long = "graphql-max-directives", default_value = "10", env)]
pub max_queries_directives: usize,
#[clap(long = "graphql-max-concurrent-queries", default_value = "1024", env)]
pub graphql_max_concurrent_queries: usize,
#[clap(
long = "graphql-request-body-bytes-limit",
default_value = "1048576",
env
)]
pub graphql_request_body_bytes_limit: usize,
#[clap(long = "query-log-threshold-time", default_value = "2s", env)]
pub query_log_threshold_time: humantime::Duration,
#[clap(long = "api-request-timeout", default_value = "30s", env)]
pub api_request_timeout: humantime::Duration,
#[clap(long = "assemble-tx-dry-run-limit", default_value = "3", env)]
pub assemble_tx_dry_run_limit: usize,
#[clap(
long = "assemble-tx-estimate-predicates-limit",
default_value = "10",
env
)]
pub assemble_tx_estimate_predicates_limit: usize,
#[clap(
long = "graphql-required-block-height-tolerance",
default_value = "10",
env
)]
pub required_fuel_block_height_tolerance: u32,
#[clap(
long = "graphql-required-block-height-min-timeout-seconds",
default_value = "30s",
env
)]
pub required_fuel_block_height_timeout: humantime::Duration,
#[clap(flatten)]
pub costs: QueryCosts,
}
#[derive(Debug, Clone, clap::Args)]
pub struct QueryCosts {
#[clap(
long = "query-cost-balance-query",
default_value = DEFAULT_QUERY_COSTS.balance_query.to_string(),
env
)]
pub balance_query: usize,
#[clap(
long = "query-cost-coins-to-spend",
default_value = DEFAULT_QUERY_COSTS.coins_to_spend.to_string(),
env)]
pub coins_to_spend: usize,
#[clap(
long = "query-cost-get-peers",
default_value = DEFAULT_QUERY_COSTS.get_peers.to_string(),
env
)]
pub get_peers: usize,
#[clap(
long = "query-cost-estimate-predicates",
default_value = DEFAULT_QUERY_COSTS.estimate_predicates.to_string(),
env
)]
pub estimate_predicates: usize,
#[clap(
long = "query-cost-dry-run",
default_value = DEFAULT_QUERY_COSTS.dry_run.to_string(),
env
)]
pub dry_run: usize,
#[clap(
long = "query-cost-assemble-tx",
default_value = DEFAULT_QUERY_COSTS.assemble_tx.to_string(),
env
)]
pub assemble_tx: usize,
#[clap(
long = "query-cost-storage-read-replay",
default_value = DEFAULT_QUERY_COSTS.storage_read_replay.to_string(),
env
)]
pub storage_read_replay: usize,
#[clap(
long = "query-cost-submit",
default_value = DEFAULT_QUERY_COSTS.submit.to_string(),
env
)]
pub submit: usize,
#[clap(
long = "query-cost-submit-and-await",
default_value = DEFAULT_QUERY_COSTS.submit_and_await.to_string(),
env
)]
pub submit_and_await: usize,
#[clap(
long = "query-cost-status-change",
default_value = DEFAULT_QUERY_COSTS.status_change.to_string(),
env
)]
pub status_change: usize,
#[clap(
long = "query-cost-storage-read",
default_value = DEFAULT_QUERY_COSTS.storage_read.to_string(),
env
)]
pub storage_read: usize,
#[clap(
long = "query-cost-tx-get",
default_value = DEFAULT_QUERY_COSTS.tx_get.to_string(),
env
)]
pub tx_get: usize,
#[clap(
long = "query-cost-tx-status-read",
default_value = DEFAULT_QUERY_COSTS.tx_status_read.to_string(),
env
)]
pub tx_status_read: usize,
#[clap(
long = "query-cost-tx-raw-payload",
default_value = DEFAULT_QUERY_COSTS.tx_raw_payload.to_string(),
env
)]
pub tx_raw_payload: usize,
#[clap(
long = "query-cost-block-header",
default_value = DEFAULT_QUERY_COSTS.block_header.to_string(),
env
)]
pub block_header: usize,
#[clap(
long = "query-cost-block-transactions",
default_value = DEFAULT_QUERY_COSTS.block_transactions.to_string(),
env
)]
pub block_transactions: usize,
#[clap(
long = "query-cost-block-transactions-ids",
default_value = DEFAULT_QUERY_COSTS.block_transactions_ids.to_string(),
env
)]
pub block_transactions_ids: usize,
#[clap(
long = "query-cost-storage-iterator",
default_value = DEFAULT_QUERY_COSTS.storage_iterator.to_string(),
env
)]
pub storage_iterator: usize,
#[clap(
long = "query-cost-bytecode-read",
default_value = DEFAULT_QUERY_COSTS.bytecode_read.to_string(),
env
)]
pub bytecode_read: usize,
#[clap(
long = "query-cost-state-transition-bytecode-read",
default_value = DEFAULT_QUERY_COSTS.state_transition_bytecode_read.to_string(),
env
)]
pub state_transition_bytecode_read: usize,
#[clap(
long = "query-cost-da-compressed-block-read",
default_value = DEFAULT_QUERY_COSTS.da_compressed_block_read.to_string(),
env
)]
pub da_compressed_block_read: usize,
}