Skip to content

refactor(api): remove dead WalletExtension gRPC service and config - #6975

Open
0xbigapple wants to merge 1 commit into
tronprotocol:release_v4.8.3from
0xbigapple:feature/remove-wallet-extension-service
Open

0xbigapple wants to merge 1 commit into
tronprotocol:release_v4.8.3from
0xbigapple:feature/remove-wallet-extension-service

Conversation

@0xbigapple

Copy link
Copy Markdown
Collaborator

What does this PR do?

close #6931.
Removes the dead WalletExtension gRPC service and everything reachable only from it:

  • api.proto: service WalletExtension (GetTransactionsFromThis/2, GetTransactionsToThis/2), plus messages AccountPaginated, TransactionList, TransactionListExtention (referenced only by these four RPCs) and TimeMessage / TimePaginatedMessage (request types of the WalletExtension *ByTimestamp RPCs deleted in 2018, orphaned ever since)
  • RpcApiService: the registration branch and the empty WalletExtensionApi inner class
  • The node.walletExtensionApi config item: CommonParameter / NodeConfig fields, the Args binding, and the key in reference.conf / config.conf / config-shield.conf. Following the retirement convention for node.* keys, NodeConfig.fromConfig now logs a removal warning when the old key is still present in an operator config
  • Dead code only reachable from the above: Util.printTransactionList (sole caller was its own mock test), the WalletExtension stub and wrappers in test utilities GrpcClient / WalletClient, HttpMethed.getTransactions{From,To}ThisFromSolidity (targets /walletextension/* HTTP paths that have no servlet), and commented-out getTransactionsByTimestamp / getAssetIssueListByTimestamp blocks

Why are these changes required?

WalletExtension has had no implementation in any release since v3.7 (2020-03): RpcApiService$WalletExtensionApi overrides none of the four RPCs, so every call falls through to the generated ImplBase default handlers and returns UNIMPLEMENTED. This makes node.walletExtensionApi behavior-irrelevant — enabled, it registers a service with zero implemented methods; disabled, callers get the same UNIMPLEMENTED. The only observable effect of enabling it is that gRPC reflection advertises a service that always fails. Removing it also resolves the default-value inconsistency between config.conf (true) and reference.conf (false).

Six years of unconditional UNIMPLEMENTED rules out any functional dependency, so the service is removed directly without a deprecation period, following existing practice for dead interfaces.

This PR has been tested by:

  • Unit Tests
  • Manual Test

Follow up

Ecosystem code that still compiles against the removed stubs/messages needs a sync: the tronprotocol/protocol mirror, the documentation site, and older wallet-cli/trident versions. Compile-time impact only — runtime behavior is unchanged (UNIMPLEMENTED before and after).

Extra details

None.

The four WalletExtension RPCs have returned UNIMPLEMENTED since 2019;
the service was only registered on solidity nodes behind
node.walletExtensionApi, which config.conf enabled but reference.conf
disabled. Remove the service, its now-unreferenced messages (including
the TimeMessage/TimePaginatedMessage orphans left by the 2018 RPC
removal), the config key, and the dead client/test helpers. Log a
removal warning when the old key is still present in operator configs.
@halibobo1205 halibobo1205 added this to the GreatVoyage-v4.8.3 milestone Sep 17, 2026
@317787106
317787106 changed the base branch from develop to release_v4.8.3 September 17, 2026 07:19
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.

[Feature] Remove the dead WalletExtension gRPC service and config

2 participants