pcli::command

Enum TxCmd

Source
pub enum TxCmd {
Show 14 variants Auction(AuctionCmd), Send { to: String, values: Vec<String>, source: u32, memo: Option<String>, fee_tier: FeeTier, }, Delegate { to: String, amount: String, source: u32, fee_tier: FeeTier, }, Undelegate { amount: String, source: u32, fee_tier: FeeTier, }, UndelegateClaim { fee_tier: FeeTier, }, Swap { input: String, into: String, source: u32, fee_tier: FeeTier, }, Vote { source: u32, vote: VoteCmd, fee_tier: FeeTier, }, Proposal(ProposalCmd), CommunityPoolDeposit { values: Vec<String>, source: u32, fee_tier: FeeTier, }, Position(PositionCmd), Sweep, Withdraw { to: String, value: String, channel: u64, timeout_height: Option<Height>, timeout_timestamp: u64, source: u32, fee_tier: FeeTier, use_compat_address: bool, }, RegisterForwardingAccount { noble_node: Url, channel: String, address_or_index: String, ephemeral: bool, }, Broadcast { transaction: PathBuf, },
}

Variants§

§

Auction(AuctionCmd)

Auction related commands.

§

Send

Send funds to a Penumbra address.

Fields

§to: String

The destination address to send funds to.

§values: Vec<String>

The amounts to send, written as typed values 1.87penumbra, 12cubes, etc.

§source: u32

Only spend funds originally received by the given account.

§memo: Option<String>

Optional. Set the transaction’s memo field to the provided text.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Delegate

Deposit stake into a validator’s delegation pool.

Fields

§to: String

The identity key of the validator to delegate to.

§amount: String

The amount of stake to delegate.

§source: u32

Only spend funds originally received by the given account.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Undelegate

Withdraw stake from a validator’s delegation pool.

Fields

§amount: String

The amount of delegation tokens to undelegate.

§source: u32

Only spend funds originally received by the given account.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

UndelegateClaim

Claim any undelegations that have finished unbonding.

Fields

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Swap

Swap tokens of one denomination for another using the DEX.

Swaps are batched and executed at the market-clearing price.

A swap generates two transactions: an initial “swap” transaction that submits the swap, and a “swap claim” transaction that privately mints the output funds once the batch has executed. The second transaction will be created and submitted automatically.

Fields

§input: String

The input amount to swap, written as a typed value 1.87penumbra, 12cubes, etc.

§into: String

The denomination to swap the input into, e.g. gm

§source: u32

Only spend funds originally received by the given account.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Vote

Vote on a governance proposal in your role as a delegator (see also: pcli validator vote).

Fields

§source: u32

Only spend funds and vote with staked delegation tokens originally received by the given account.

§vote: VoteCmd
§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Proposal(ProposalCmd)

Submit or withdraw a governance proposal.

§

CommunityPoolDeposit

Deposit funds into the Community Pool.

Fields

§values: Vec<String>

The amounts to send, written as typed values 1.87penumbra, 12cubes, etc.

§source: u32

Only spend funds originally received by the given account.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§

Position(PositionCmd)

Manage liquidity positions.

§

Sweep

Consolidate many small notes into a few larger notes.

Since Penumbra transactions reveal their arity (how many spends, outputs, etc), but transactions are unlinkable from each other, it is slightly preferable to sweep small notes into larger ones in an isolated “sweep” transaction, rather than at the point that they should be spent.

Currently, only zero-fee sweep transactions are implemented.

§

Withdraw

Perform an ICS-20 withdrawal, moving funds from the Penumbra chain to a counterparty chain.

For a withdrawal to be processed on the counterparty, IBC packets must be relayed between the two chains. Relaying is out of scope for the pcli tool.

Fields

§to: String

Address on the receiving chain, e.g. cosmos1grgelyng2v6v3t8z87wu3sxgt9m5s03xvslewd. The chain_id for the counterparty chain will be discovered automatically, based on the --channel setting.

§value: String

The value to withdraw, eg “1000upenumbra”

§channel: u64

The IBC channel on the primary Penumbra chain to use for performing the withdrawal. This channel must already exist, as configured by a relayer client. You can search for channels via e.g. pcli query ibc channel transfer 0.

§timeout_height: Option<Height>

Block height on the counterparty chain, after which the withdrawal will be considered invalid if not already relayed. Must be specified as a tuple of revision number and block height, e.g. 5-1000000 means “chain revision 5, block height of 1000000”. You must know the chain id of the counterparty chain beforehand, e.g. osmosis-testnet-5, to know the revision number.

§timeout_timestamp: u64

Timestamp, specified in epoch time, after which the withdrawal will be considered invalid if not already relayed.

§source: u32

Only withdraw funds from the specified wallet id within Penumbra.

§fee_tier: FeeTier

The selected fee tier to multiply the fee amount by.

§use_compat_address: bool

Whether to use a Bech32(non-m) address for the withdrawal. Required for some chains for a successful acknowledgement.

§

RegisterForwardingAccount

Register a Noble forwarding account.

Fields

§noble_node: Url

The Noble node to submit the registration transaction to.

§channel: String

The Noble IBC channel to use for forwarding.

§address_or_index: String

The Penumbra address or address index to receive forwarded funds.

§ephemeral: bool

Whether or not to use an ephemeral address.

§

Broadcast

Broadcast a saved transaction to the network

Fields

§transaction: PathBuf

The transaction to be broadcast

Implementations§

Source§

impl TxCmd

Source

pub fn offline(&self) -> bool

Determine if this command requires a network sync before it executes.

Source

pub async fn exec(&self, app: &mut App) -> Result<()>

Trait Implementations§

Source§

impl Debug for TxCmd

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for TxCmd

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for TxCmd

Source§

fn augment_subcommands<'b>(__clap_app: Command<'b>) -> Command<'b>

Append to [Command] so it can instantiate Self. Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command<'b>) -> Command<'b>

Append to [Command] so it can update self. Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

Auto Trait Implementations§

§

impl Freeze for TxCmd

§

impl RefUnwindSafe for TxCmd

§

impl Send for TxCmd

§

impl Sync for TxCmd

§

impl Unpin for TxCmd

§

impl UnwindSafe for TxCmd

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more