Skip to content

fix(db): cover consumed permission-change tx in getVerifyTxs#6796

Open
xxo1shine wants to merge 1 commit into
tronprotocol:release_v4.8.2from
xxo1shine:fix/getverifytxs-cover-consumed-permission-tx
Open

fix(db): cover consumed permission-change tx in getVerifyTxs#6796
xxo1shine wants to merge 1 commit into
tronprotocol:release_v4.8.2from
xxo1shine:fix/getverifytxs-cover-consumed-permission-tx

Conversation

@xxo1shine
Copy link
Copy Markdown
Collaborator

What does this PR do?

Initialize multiAddresses from ownerAddressSet so that getVerifyTxs still forces re-verification of an owner's later txs even after the owner's permission-change tx has been packed and is no longer present in pendingTransactions.

Main changes:

  • Manager.getVerifyTxs: seed multiAddresses with ownerAddressSet to cover the case where a permission-change tx has been consumed but ownerAddressSet still retains the owner (kept alive by in-flight txs in pushTransactionQueue / rePushTransactions via filterOwnerAddress).
  • ManagerTest: add getVerifyTxsSkipsBlockWhenPermissionTxAlreadyConsumed reproducing the bypass — pending contains only B (transfer, old sig, isVerified=true), ownerAddressSet contains the owner, block contains only B without the permission-change tx. Assertion checks B is placed in the re-verify list instead of being short-circuited via setVerified.

Why are these changes required?

This PR has been tested by:

  • Unit Tests
  • Manual Testing

Follow up

Extra details

Initialize multiAddresses from ownerAddressSet so that getVerifyTxs
still forces re-verification of an owner's later txs even after the
owner's permission-change tx has been packed and is no longer present
in pendingTransactions.

Main changes:
- Manager.getVerifyTxs: seed multiAddresses with ownerAddressSet to
  cover the case where a permission-change tx has been consumed but
  ownerAddressSet still retains the owner (kept alive by in-flight
  txs in pushTransactionQueue / rePushTransactions via
  filterOwnerAddress).
- ManagerTest: add getVerifyTxsSkipsBlockWhenPermissionTxAlreadyConsumed
  reproducing the bypass — pending contains only B (transfer, old sig,
  isVerified=true), ownerAddressSet contains the owner, block contains
  only B without the permission-change tx. Assertion checks B is placed
  in the re-verify list instead of being short-circuited via setVerified.
@github-actions github-actions Bot requested a review from halibobo1205 May 21, 2026 10:59
@lvs0075 lvs0075 added this to the GreatVoyage-v4.8.2 milestone May 21, 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