Overview
- Type: Singleton (one per network)
- Purpose: Collect tokens from the receiver to refund the payer after capture
- Address:
0x88C9826dFA17Ad9d3a726015C667dD995394D341(all chains)
Features
- Refunds (after capture) - Pulls funds from the receiver’s wallet after the escrow has already released them
- Receiver approval required - The receiver must approve the collector contract or supply a signature
- Operator integration -
operator.refund()invokes the collector through the token collector interface
How it works
Once the escrow has released funds to the receiver (state:Captured), refunding the payer requires pulling tokens back out of the receiver’s wallet. The ReceiverRefundCollector handles that flow:
- Operator calls
refund(paymentInfo, amount, receiverRefundCollector, collectorData) - The collector transfers tokens from the receiver to the escrow contract
- The escrow contract returns tokens to the payer
The receiver must pre-approve the
ReceiverRefundCollector for token transfers, or collectorData must carry a valid receiver signature authorizing the refund.