@@ -39,8 +39,6 @@ contract ProtocolAdapter is IProtocolAdapter, ReentrancyGuardTransient, Commitme
3939
4040 RiscZeroVerifierRouter internal immutable _TRUSTED_RISC_ZERO_VERIFIER_ROUTER;
4141
42- uint256 internal _txCount;
43-
4442 error ZeroNotAllowed ();
4543
4644 error ForwarderCallOutputMismatch (bytes expected , bytes actual );
@@ -156,7 +154,7 @@ contract ProtocolAdapter is IProtocolAdapter, ReentrancyGuardTransient, Commitme
156154 }
157155
158156 // Emit the event containing the transaction and new root
159- emit TransactionExecuted ({id: _txCount ++ , transaction: transaction , newRoot: newRoot});
157+ emit TransactionExecuted ({tags: tags , newRoot: newRoot});
160158 }
161159 // slither-disable-end reentrancy-no-eth
162160
@@ -237,6 +235,44 @@ contract ProtocolAdapter is IProtocolAdapter, ReentrancyGuardTransient, Commitme
237235 if (input.appData.externalPayload.length != 0 ) {
238236 _processForwarderCalls (input, consumed);
239237 }
238+
239+ _emitBlobs (input);
240+ }
241+
242+ /// @notice Emits app data blobs.
243+ /// @param input The logic verifier input containing the app data.
244+ function _emitBlobs (Logic.VerifierInput calldata input ) internal {
245+ Logic.ExpirableBlob[] calldata payload = input.appData.resourcePayload;
246+ uint256 n = payload.length ;
247+ for (uint256 i = 0 ; i < n; ++ i) {
248+ if (payload[i].deletionCriterion == Logic.DeletionCriterion.Never) {
249+ emit ResourcePayload ({tag: input.tag, blob: payload[i].blob});
250+ }
251+ }
252+
253+ payload = input.appData.discoveryPayload;
254+ n = payload.length ;
255+ for (uint256 i = 0 ; i < n; ++ i) {
256+ if (payload[i].deletionCriterion == Logic.DeletionCriterion.Never) {
257+ emit DiscoveryPayload ({tag: input.tag, blob: payload[i].blob});
258+ }
259+ }
260+
261+ payload = input.appData.externalPayload;
262+ n = payload.length ;
263+ for (uint256 i = 0 ; i < n; ++ i) {
264+ if (payload[i].deletionCriterion == Logic.DeletionCriterion.Never) {
265+ emit ExternalPayload ({tag: input.tag, blob: payload[i].blob});
266+ }
267+ }
268+
269+ payload = input.appData.applicationPayload;
270+ n = payload.length ;
271+ for (uint256 i = 0 ; i < n; ++ i) {
272+ if (payload[i].deletionCriterion == Logic.DeletionCriterion.Never) {
273+ emit ApplicationPayload ({tag: input.tag, blob: payload[i].blob});
274+ }
275+ }
240276 }
241277
242278 /// @notice Processes forwarder calls by verifying and executing them.
0 commit comments