diff --git a/Cargo.toml b/Cargo.toml index 1c7c2d0..51868eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ parallel = ["penumbra-wallet/parallel"] # Penumbra dependencies penumbra-proto = { path = "../penumbra/crates/proto", features = ["rpc", "box-grpc"] } penumbra-asset = { path = "../penumbra/crates/core/asset" } +penumbra-fee = { path = "../penumbra/crates/core/component/fee" } penumbra-keys = { path = "../penumbra/crates/core/keys" } penumbra-custody = { path = "../penumbra/crates/custody" } penumbra-wallet = { path = "../penumbra/crates/wallet" } diff --git a/src/opt/serve.rs b/src/opt/serve.rs index ab9c537..60031a6 100644 --- a/src/opt/serve.rs +++ b/src/opt/serve.rs @@ -27,9 +27,6 @@ use crate::{ #[derive(Debug, Clone, Parser)] pub struct Serve { - /// The transaction fee for each response (paid in upenumbra). - #[structopt(long, default_value = "0")] - fee: u64, /// Per-user rate limit (e.g. "10m" or "1day"). #[clap(short, long, default_value = "1day", parse(try_from_str = humantime::parse_duration))] rate_limit: Duration, diff --git a/src/sender.rs b/src/sender.rs index e73aa2d..282a3be 100644 --- a/src/sender.rs +++ b/src/sender.rs @@ -11,6 +11,8 @@ use penumbra_proto::view::v1::broadcast_transaction_response::Status as Broadcas use penumbra_asset::Value; use penumbra_custody::{AuthorizeRequest, CustodyClient}; +use penumbra_fee::FeeTier; +use penumbra_fee::GasPrices; use penumbra_keys::{Address, FullViewingKey}; use penumbra_txhash::TransactionId; use penumbra_view::ViewClient; @@ -70,7 +72,19 @@ where "tried to send empty list of values to address" )); } + let mut planner = Planner::new(OsRng); + + // Here we hardcode low fees. It'd be nice to override via CLI arg. + // Look up GasPrices, because merely calling `set_fee_tier` is not sufficient. + let gp: GasPrices = self2 + .view + .gas_prices() + .await + .expect("failed to look up GasPrices"); + planner.set_gas_prices(gp); + planner.set_fee_tier(FeeTier::Low); + for value in values { planner.output(value, address.clone()); }