diff --git a/arbiter-core/src/middleware/mod.rs b/arbiter-core/src/middleware/mod.rs index 92954974..355559f9 100644 --- a/arbiter-core/src/middleware/mod.rs +++ b/arbiter-core/src/middleware/mod.rs @@ -459,6 +459,10 @@ impl Middleware for ArbiterMiddleware { let outcome = provider.outcome_receiver.recv()??; if let Outcome::TransactionCompleted(execution_result, receipt_data) = outcome { + let mut block_hasher = Sha256::new(); + block_hasher.update(receipt_data.block_number.to_string().as_bytes()); + let block_hash = block_hasher.finalize(); + let block_hash = Some(H256::from_slice(&block_hash)); match execution_result { ExecutionResult::Revert { gas_used, output } => { return Err(ArbiterCoreError::ExecutionRevert { @@ -494,7 +498,7 @@ impl Middleware for ArbiterMiddleware { match output { Output::Create(_, address) => { let tx_receipt = TransactionReceipt { - block_hash: None, + block_hash, block_number: Some(receipt_data.block_number), contract_address: Some(recast_address(address.unwrap())), logs: logs.clone(), @@ -546,7 +550,7 @@ impl Middleware for ArbiterMiddleware { } Output::Call(_) => { let tx_receipt = TransactionReceipt { - block_hash: None, + block_hash, block_number: Some(receipt_data.block_number), contract_address: None, logs: logs.clone(), diff --git a/arbiter-core/tests/environment_integration.rs b/arbiter-core/tests/environment_integration.rs index c1ccdea6..b10030ac 100644 --- a/arbiter-core/tests/environment_integration.rs +++ b/arbiter-core/tests/environment_integration.rs @@ -29,7 +29,7 @@ async fn receipt_data() { block_hasher.update(receipt.block_number.unwrap().to_string().as_bytes()); let block_hash = block_hasher.finalize(); let block_hash = Some(H256::from_slice(&block_hash)); - assert_eq!(receipt.block_hash, block_hash); + assert_eq!(receipt.block_hash, block_hash); // panic here left side is none assert_eq!(receipt.status, Some(1.into())); assert!(receipt.contract_address.is_none()); diff --git a/arbiter-core/tests/middleware_integration.rs b/arbiter-core/tests/middleware_integration.rs index bdfbee23..e9d95f42 100644 --- a/arbiter-core/tests/middleware_integration.rs +++ b/arbiter-core/tests/middleware_integration.rs @@ -597,7 +597,7 @@ async fn access() { #[tokio::test] async fn stream_with_meta() { - let (_, client) = startup(); + let (_environment, client) = startup(); let arbx = deploy_arbx(client.clone()).await;