Convenience: combine the FeeRegistry reads for one op type into the
compound shape the pay handler validates against.
For 'grant' opType the result includes both registration + data_access
components; for other op types data_access is always disabled with
amount=0. Disabled components contribute 0 to the signed total —
callers compute amount = registrationFee + dataAccessFee and the pay
handler accepts (or short-circuits with 'Payment not required' when
both are 0).
Throws on asset mismatch ONLY when both components are enabled — a
disabled fee never lands as a SettleOp, so its asset is moot.
Convenience: combine the FeeRegistry reads for one op type into the compound shape the pay handler validates against.
For 'grant' opType the result includes both registration + data_access components; for other op types data_access is always disabled with amount=0. Disabled components contribute 0 to the signed total — callers compute
amount = registrationFee + dataAccessFeeand the pay handler accepts (or short-circuits with 'Payment not required' when both are 0).Throws on asset mismatch ONLY when both components are enabled — a disabled fee never lands as a SettleOp, so its asset is moot.