pub struct UnbondArgs {
pub to_mbps: Option<u64>,
pub all: bool,
pub amount: Option<u128>,
pub yes: bool,
pub chain: ChainArgs,
}Expand description
decdn node unbond — lower the bond via CapacityBond.requestUnbond +
unbond (ADR 026 § Capacity-bond curve). One command covers all three
phases of the window; which one runs is read from chain state, not from a
flag. A run that lost its requestUnbond after declareMbps landed resumes
on re-run, the way BondArgs converges; once requestUnbond HAS landed a
re-run with an amount flag is a deliberate error, since the request can no
longer be changed.
The amount flags apply only when starting a request — passing one while a request is already in flight is an error rather than a silent no-op. All three are mutually exclusive; exactly one is required to start a request.
Fields§
§to_mbps: Option<u64>Reduce the declared capacity tier to MBPS and release the surplus
bond. The released amount is derived from the on-chain
bondRequired curve — you do not pass a token amount. The retained
bond is max(minBond, bondRequired(MBPS)), so the node stays
eligible at the new tier. Must not exceed the current declared tier
(raise with decdn node bond --mbps); passing the tier the node is
already at is accepted and skips the redundant declareMbps, which is
how a partially-failed run resumes. A tier that will actually be
declared must be inside the governable
[minCapacityMbps, maxCapacityMbps] band.
all: boolRelease everything the bond curve permits, retaining only
bondRequired(declaredMbps). Unlike --to-mbps this ignores the
minBond floor, so at low declared tiers the retained bond can land
below minBond and the node stays inactive until it re-bonds. Whether
it does is tier-dependent; the command reports below_min_bond before
submitting.
For an operator that is NOT in the registered set — ejected, or bonded
and declared but never registered — this additionally clears the
declared tier (declareMbps(0)), making it a full exit: nothing is
retained. That is the only route to the bond those operators have, since
decdn node deregister requires an active registration. A registered
node exits by running decdn node deregister first.
amount: Option<u128>Release exactly this many TOKEN base units (1 TOKEN = 1e18).
Escape hatch for an exact figure; the curve is still pre-checked, so
an amount the contract would reject fails with the decdn node bond --mbps invocation needed to make it legal.
yes: boolSkip the interactive confirmation. Required when starting a request from a non-interactive shell, since that deactivates the node for the full window; the withdrawal phase never prompts. The consequences are printed either way — this suppresses the prompt, not the warning.
chain: ChainArgsChain coordinates: RPC endpoint, contract addresses, and keystore.
Trait Implementations§
Source§impl Args for UnbondArgs
impl Args for UnbondArgs
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl Debug for UnbondArgs
impl Debug for UnbondArgs
Source§impl FromArgMatches for UnbondArgs
impl FromArgMatches for UnbondArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for UnbondArgs
impl RefUnwindSafe for UnbondArgs
impl Send for UnbondArgs
impl Sync for UnbondArgs
impl Unpin for UnbondArgs
impl UnsafeUnpin for UnbondArgs
impl UnwindSafe for UnbondArgs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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