Skip to main content

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