Skip to content

Commit ab31e6f

Browse files
committed
fix
1 parent 813e2f9 commit ab31e6f

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

substrate/frame/revive/src/evm/tracing/opcode_tracing.rs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pub struct OpcodeTracer<Gas, GasMapper> {
5252
failed: bool,
5353

5454
/// The return value of the transaction.
55-
return_value: Vec<u8>,
55+
return_value: Bytes,
5656

5757
/// Pending step that's waiting for gas cost to be recorded.
5858
pending_step: Option<OpcodeStep<Gas>>,
@@ -78,22 +78,17 @@ impl<Gas, GasMapper> OpcodeTracer<Gas, GasMapper> {
7878
step_count: 0,
7979
total_gas_used: Gas::default(),
8080
failed: false,
81-
return_value: Vec::new(),
81+
return_value: Bytes::default(),
8282
pending_step: None,
8383
pending_gas_before: None,
8484
storages_per_call: alloc::vec![Default::default()],
8585
}
8686
}
8787

8888
/// Collect the traces and return them.
89-
pub fn collect_trace(&mut self) -> OpcodeTrace<Gas>
90-
where
91-
Gas: Copy,
92-
{
93-
let struct_logs = core::mem::take(&mut self.steps);
94-
let return_value = crate::evm::Bytes(self.return_value.clone());
95-
96-
OpcodeTrace { gas: self.total_gas_used, failed: self.failed, return_value, struct_logs }
89+
pub fn collect_trace(self) -> OpcodeTrace<Gas> {
90+
let Self { steps: struct_logs, return_value, total_gas_used: gas, failed, .. } = self;
91+
OpcodeTrace { gas, failed, return_value, struct_logs }
9792
}
9893

9994
/// Record an error in the current step.
@@ -105,7 +100,7 @@ impl<Gas, GasMapper> OpcodeTracer<Gas, GasMapper> {
105100

106101
/// Record return data.
107102
pub fn record_return_data(&mut self, data: &[u8]) {
108-
self.return_value = data.to_vec();
103+
self.return_value = Bytes(data.to_vec());
109104
}
110105

111106
/// Mark the transaction as failed.

0 commit comments

Comments
 (0)