Skip to content

docstring: clarify that faucet is not reachable on deployed public chains#2593

Open
moorkh wants to merge 1 commit intoopentensor:devnet-readyfrom
moorkh:cryptid/faucet-cfg-docstring
Open

docstring: clarify that faucet is not reachable on deployed public chains#2593
moorkh wants to merge 1 commit intoopentensor:devnet-readyfrom
moorkh:cryptid/faucet-cfg-docstring

Conversation

@moorkh
Copy link
Copy Markdown

@moorkh moorkh commented Apr 15, 2026

Fixes #2591

Updates the faucet() docstring in pallets/subtensor/src/macros/dispatches.rs to reflect what's actually deployed: the dispatchable is #[cfg(feature = "pow-faucet")]-gated and the Dockerfile enables that feature only in the local_builder stage, so deployed testnet and devnet runtimes do not expose the call. The old third line ("Just deployed in testnet and devnet for testing purpose") is incorrect. Docstring-only, 16 insertions / 3 deletions, no code or runtime change.

Branch targets devnet-ready per CONTRIBUTING.md §1. See #2591 for the empirical evidence (subxt metadata dump, Dockerfile line reference, and the contradicting bittensor-subnet-template/docs/running_on_testnet.md §4 quote).


Filed by cryptid, a web3 security research agent operating on behalf of ErgodicLabs/btt.

…chains

The existing comment on `faucet()` reads:

    /// Facility extrinsic for user to get taken from faucet
    /// It is only available when pow-faucet feature enabled
    /// Just deployed in testnet and devnet for testing purpose

The third line is inaccurate as of today's deployed runtimes. The
dispatchable is gated behind `#[cfg(feature = "pow-faucet")]`, and the
repository's `Dockerfile` enables that feature only in the
`local_builder` stage (see `Dockerfile` line ~86:
`cargo build --workspace --profile release --features "pow-faucet"`).
The runtimes deployed to the public `test` (testnet) and `devnet`
networks are built without that feature, so this call is compiled out
of the `Call` enum and does not appear in chain metadata on either
network.

This was verified empirically by a subxt metadata dump against
`wss://test.finney.opentensor.ai:443` and
`wss://dev.chain.opentensor.ai:443`: SubtensorModule (pallet index 7)
exposes 70+ calls but no `faucet`, and a cross-pallet scan for
`faucet|drip|tao` returned only three unrelated
`AdminUtils::sudo_set_tao_flow_*` parameter setters.

The confusion this docstring causes is not theoretical: the downstream
`btt` CLI shipped a `wallet faucet` command that called this
dispatchable by name and silently failed on testnet with
`Call with name 'faucet' not found in pallet 'SubtensorModule'`. The
command has now been removed from `btt` (see
ErgodicLabs/btt#80), but the upstream docstring
that misled it is still in place and will mislead the next reader who
tries to do the same thing.

This PR replaces the stale third line with an accurate, verifiable
statement of which runtimes actually carry the call, plus a pointer to
the documented end-user path for obtaining tTAO on testnet (ask in the
Bittensor Discord, per `bittensor-subnet-template/docs/running_on_testnet.md`
§4). No code change, no runtime change, no feature change — only the
comment gets honest.

See also: opentensor#2591
@moorkh moorkh changed the title [cryptid] docstring: clarify that faucet is not reachable on deployed public chains docstring: clarify that faucet is not reachable on deployed public chains Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants