Skip to content

Latest commit

 

History

History
85 lines (65 loc) · 2.78 KB

File metadata and controls

85 lines (65 loc) · 2.78 KB
title remove-proxy
description Revoke one proxy delegation.

{/* GENERATED by scripts/generate.py from the SDK registries — do not edit. */}

The (delegate, proxy_type, delay) triple must match the original add_proxy exactly — a mismatch fails with NotFound rather than removing a different delegation. The proxy deposit reserved at add time is returned to the signer. Check current delegations with btcli query proxies.

Signer Origin Pallet Wraps
coldkey signed account (pallet role may apply) Proxy Proxy.remove_proxy

Parameters

Parameter Type Required Description
delegate_ss58 string yes Delegate whose authorization to revoke.
proxy_type string no Type the delegation was granted with (must match exactly).
delay integer no Delay the delegation was granted with (must match exactly).

Address parameters (--hotkey, --coldkey, --dest, ...) accept a raw ss58 address, an address-book or proxy-book name, or a local wallet/hotkey name.

CLI

Preview with --dry-run (shows fee, effects, and policy result without submitting), then submit:

btcli tx remove-proxy \
  --delegate <ss58|name> --dry-run
btcli tx remove-proxy \
  --delegate <ss58|name> -w my_coldkey

Python

import bittensor as bt
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = bt.RemoveProxy(delegate_ss58="5F...")

sub = bt.Subtensor()
plan = sub.plan(intent, wallet)   # fee, effects, policy — no submission
result = sub.execute(intent, wallet)
if not result.success:
    print(result.error.code, result.error.remediation)

(bt.Subtensor is also the async client — async with bt.Subtensor() as client: — see The client.) Or build the intent by op name, as an agent would:

result = sub.execute_tool("remove_proxy", {...}, wallet)

On-chain implementation

Proxy.remove_proxypallets/proxy/src/lib.rs#L304:

#[pallet::call_index(2)]
#[pallet::weight(T::WeightInfo::remove_proxy(T::MaxProxies::get()))]
pub fn remove_proxy(
    origin: OriginFor<T>,
    delegate: AccountIdLookupOf<T>,
    proxy_type: T::ProxyType,
    delay: BlockNumberFor<T>,
) -> DispatchResult {
    let who = ensure_signed(origin)?;
    let delegate = T::Lookup::lookup(delegate)?;
    Self::remove_proxy_delegate(&who, delegate, proxy_type, delay)
}

Delegates to remove_proxy_delegate.

Every file is browsable under /code exactly as built into the runtime, or as plain text under /code/raw/<path> (index: /code/index.json).