Overview
RecorderCombinator chains multiple recorders into one, calling each in sequence. Since each operator slot accepts only one recorder address, use RecorderCombinator when you need multiple recorders for the same action.
Deployment
Deploy via RecorderCombinatorFactory:
const comboAddress = await recorderCombinatorFactory.write.deploy([
[escrowPeriodAddress, paymentIndexRecorderAddress] // Records auth time + payment index
]);
config.authorizeRecorder = comboAddress;
Behavior
- Recorders are called in the order provided
- If any recorder reverts, all revert — the entire recording is atomic
- Each recorder receives the same
paymentInfo, amount, and caller parameters
Limits
Max 10 recorders per combinator. Each additional recorder adds ~1k gas overhead for the delegation call.
Gas
Cost: Sum of all individual recorder costs + ~1k gas overhead per recorder for delegation.
Example: EscrowPeriod (~20k) + PaymentIndexRecorder (~20k) + ~2k overhead = ~42k gas total.
Next Steps