Trace excess fees and expired call value to the right Arbitrum accounts

A retryable ticket has distinct destinations for excess fees and escrowed call value. Looking only at the parent-chain payer can make a refund appear missing.

Decode both refund parameters

Read the original Inbox call and the effective addresses recorded for the child message. Account for the chosen creation entry point’s address-aliasing behavior for contract refund recipients. Keep the parent payer, child fee-refund address and child value beneficiary as separate fields.

parent payer P
excessFeeRefundAddress E
callValueRefundAddress V

If the ticket expires unredeemed, investigate the escrowed call value at V on the child chain. An excess-fee refund instead follows the excess-fee route E. Neither role is automatically the payer P in this example.

Reconcile amounts by event and state transition

Do not assume that the original deposited amount was entirely refundable. Submission and execution can consume fees. Match the ticket ID, redemption or expiry outcome and currency before reconciling a balance difference. docs.arbitrum.io Arbitrum documentation