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

@0xbigapple 0xbigapple commented Sep 17, 2026

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, a solidity node registers a service with zero implemented methods (advertised via gRPC reflection when node.rpc.reflectionService is on); disabled, callers get the same UNIMPLEMENTED. 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
Comment thread common/src/main/java/org/tron/core/config/args/NodeConfig.java
Comment thread common/src/main/java/org/tron/core/config/args/NodeConfig.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

[Feature] Remove the dead WalletExtension gRPC service and config

4 participants