Skip to content

Arbitrum TXID Graph omission causes permanent verificationHash mismatch and blocks downstream POI generation #143

Description

@venusgrasshopper-droid

Environment

  • RAILGUN Engine: 9.6.0
  • Chain: Arbitrum (42161)
  • Wallet client: Railway Wallet

Affected POI transaction

Public unshield tx:

0x17756ad47053b97140da73455829e2a499c6223c26065353b84422d1aad0aae4

Internal railgunTxid:

2e340a52fac1f89e5bc7ba8593a5f72a38bbcc4880376e611af45b8c48604f16

Current state:

  • On-chain unshield completed successfully.
  • Railway reports MISSING INTERNAL POI / PRIVATE POI PENDING.
  • targetSpent = 0 for the railgunTxid.
  • The public tx remains in getChainTxidsStillPendingSpentPOIs.
  • ppoi.info reports Missing.
  • Repeated TXID synchronization does not make progress.

TXID tree failure

The local TXID tree repeatedly stops at:

txidIndex: 61169

Last valid verificationHash:

0x3b4babe44b477bbe2e67b2c6a9462a866dc89ab58fe3d9f24a1e81d0a617d6ac

The first verificationHash mismatch occurs in public transaction:

0xcc51cc50038fa53505d05fea42506ec40a68d52ee83adddd4b275894ccd22cac

Block:

491612310

RAILGUN contract:

0xFA7093CDD9EE6932B4eb2c9e1cde7CE00B1FA4b9

Reproduced Graph omission

Canonical Arbitrum receipt events for that public transaction are:

logIndex 1:
Nullified
treeNumber: 1
nullifier:
0x02baa71f623b794e2358cbb099151a2cf597e73e900322da68b73c50df95d6af

logIndex 4:
Unshield

logIndex 5:
Transact
treeNumber: 1
startPosition: 51528

logIndex 6:
Nullified
treeNumber: 1
nullifier:
0x1169a881dcca72f964547404c5a16b21e8dd18f2847d348987df2f0daac14350

logIndex 7:
Transact
treeNumber: 1
startPosition: 51530

However, quickSyncRailgunTransactionsV2 returns the RailgunTransaction associated with:

0x1169a881dcca72f964547404c5a16b21e8dd18f2847d348987df2f0daac14350

but does not return the preceding RailgunTransaction associated with:

0x02baa71f623b794e2358cbb099151a2cf597e73e900322da68b73c50df95d6af

The returned transaction is:

railgunTxid:
24114ecb79f4cee2a080e6b856a8f8598a7df3b6105e409aeb499375e760269d

Graph verificationHash:

0x329307d13d8257d6744c6271bd7324eba84f09b433ed5fb62489ed07fa333f26

Because the preceding RailgunTransaction is absent from the Graph result, Engine calculates:

0xb1ccb5faaeec31a2e1c743597f29abc307894c863c9c7f3c8e5ecc82289693de

instead.

We independently folded the canonical on-chain nullifiers in their actual order:

0x3b4babe44b477bbe2e67b2c6a9462a866dc89ab58fe3d9f24a1e81d0a617d6ac
-> 0x02baa71f623b794e2358cbb099151a2cf597e73e900322da68b73c50df95d6af
-> 0x1169a881dcca72f964547404c5a16b21e8dd18f2847d348987df2f0daac14350

Result:

0x329307d13d8257d6744c6271bd7324eba84f09b433ed5fb62489ed07fa333f26

This exactly matches the verificationHash returned for the second Graph transaction.

Therefore the returned verificationHash is internally consistent with the canonical two-transaction on-chain sequence, but the Graph query result omits the first RailgunTransaction required to reproduce that hash.

Engine behavior

Repeated synchronization produces:

  • Invalid verification hash
  • TXID index remains 61169
  • targetSpent remains 0
  • downstream transaction remains pending for Private POI
  • POI generation cannot proceed because the target railgunTxid is not linked into the spent/unshield state

No verificationHash bypass, Engine source modification, or LevelDB modification was used.

Request

Could you please:

  1. Check/reindex the Arbitrum TXID data around block 491612310.
  2. Check the missing RailgunTransaction associated with nullifier:

0x02baa71f623b794e2358cbb099151a2cf597e73e900322da68b73c50df95d6af

  1. Confirm whether there is an official recovery/resync procedure after the indexer data is corrected.
  2. Confirm whether the affected downstream railgunTxid should then become available for normal POI generation:

2e340a52fac1f89e5bc7ba8593a5f72a38bbcc4880376e611af45b8c48604f16

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions