Skip to content
This repository was archived by the owner on Aug 15, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove fields irrelevant from proof
  • Loading branch information
yrong committed Mar 19, 2024
commit 4eb471c0b14c4872a7e494ff86bce6cb1a10338d
Original file line number Diff line number Diff line change
Expand Up @@ -1238,8 +1238,6 @@ pub fn make_inbound_fixture() -> InboundQueueFixture {
data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").into(),
},
proof: Proof {
block_hash: hex!("6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131").into(),
tx_index: 0,
receipt_proof: (vec![
hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").to_vec(),
hex!("4a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f").to_vec(),
Expand Down
36 changes: 3 additions & 33 deletions bridges/snowbridge/pallets/ethereum-client/src/impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,36 +16,13 @@ impl<T: Config> Verifier for Pallet<T> {
/// the log should be in the beacon client storage, meaning it has been verified and is an
/// ancestor of a finalized beacon block.
fn verify(event_log: &Log, proof: &Proof) -> Result<(), VerificationError> {
log::info!(
target: "ethereum-client",
"💫 Verifying message with block hash {}",
proof.block_hash,
);

Self::verify_execution_proof(&proof.execution_proof)
.map_err(|e| InvalidExecutionProof(e.into()))?;

let receipt = match Self::verify_receipt_inclusion(
let receipt = Self::verify_receipt_inclusion(
proof.execution_proof.execution_header.receipts_root(),
&proof.receipt_proof.1,
) {
Ok(receipt) => receipt,
Err(err) => {
log::error!(
target: "ethereum-client",
"💫 Verification of receipt inclusion failed for block {}: {:?}",
proof.block_hash,
err
);
return Err(err)
},
};

log::trace!(
target: "ethereum-client",
"💫 Verified receipt inclusion for transaction at index {} in block {}",
proof.tx_index, proof.block_hash,
);
)?;

event_log.validate().map_err(|_| InvalidLog)?;

Expand All @@ -59,18 +36,11 @@ impl<T: Config> Verifier for Pallet<T> {
if !receipt.contains_log(&event_log) {
log::error!(
target: "ethereum-client",
"💫 Event log not found in receipt for transaction at index {} in block {}",
proof.tx_index, proof.block_hash,
"💫 Event log not found in receipt for transaction",
);
return Err(LogNotFound)
}

log::info!(
target: "ethereum-client",
"💫 Receipt verification successful for {}",
proof.block_hash,
);

Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ pub fn make_register_token_message() -> InboundQueueFixture {
data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").into(),
},
proof: Proof {
block_hash: hex!("6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131").into(),
tx_index: 0,
receipt_proof: (vec![
hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").to_vec(),
hex!("4a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f").to_vec(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ pub fn make_send_token_message() -> InboundQueueFixture {
data: hex!("00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005f00a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000").into(),
},
proof: Proof {
block_hash: hex!("585a07122a30339b03b6481eae67c2d3de2b6b64f9f426230986519bf0f1bdfe").into(),
tx_index: 0,
receipt_proof: (vec![
hex!("f9d844c5b79638609ba385b910fec3b5d891c9d7b189f135f0432f33473de915").to_vec(),
], vec![
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ pub fn make_send_token_to_penpal_message() -> InboundQueueFixture {
data: hex!("00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007300a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d01d00700001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c00286bee000000000000000000000000000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000000000000000000000000000").into(),
},
proof: Proof {
block_hash: hex!("ce24fe3047aa20a8f222cd1d04567c12b39455400d681141962c2130e690953f").into(),
tx_index: 0,
receipt_proof: (vec![
hex!("106f1eaeac04e469da0020ad5c8a72af66323638bd3f561a3c8236063202c120").to_vec(),
], vec![
Expand Down
16 changes: 0 additions & 16 deletions bridges/snowbridge/pallets/inbound-queue/src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ fn test_submit_happy_path() {
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand Down Expand Up @@ -78,8 +76,6 @@ fn test_submit_xcm_invalid_channel() {
let message = Message {
event_log: mock_event_log_invalid_channel(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand All @@ -105,8 +101,6 @@ fn test_submit_with_invalid_gateway() {
let message = Message {
event_log: mock_event_log_invalid_gateway(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand All @@ -132,8 +126,6 @@ fn test_submit_with_invalid_nonce() {
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand Down Expand Up @@ -167,8 +159,6 @@ fn test_submit_no_funds_to_reward_relayers_just_ignore() {
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand All @@ -186,8 +176,6 @@ fn test_set_operating_mode() {
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand Down Expand Up @@ -229,8 +217,6 @@ fn test_submit_no_funds_to_reward_relayers_and_ed_preserved() {
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand All @@ -247,8 +233,6 @@ fn test_submit_no_funds_to_reward_relayers_and_ed_preserved() {
let message = Message {
event_log,
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
receipt_proof: Default::default(),
execution_proof: mock_execution_proof(),
},
Expand Down
4 changes: 0 additions & 4 deletions bridges/snowbridge/primitives/core/src/inbound.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@ impl Log {
/// Inclusion proof for a transaction receipt
#[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo)]
pub struct Proof {
// The block hash of the block in which the receipt was included.
pub block_hash: H256,
// The index of the transaction (and receipt) within the block.
pub tx_index: u32,
// Proof keys and values (receipts tree)
pub receipt_proof: (Vec<Vec<u8>>, Vec<Vec<u8>>),
// The execution proof which includes ancestry proof
Expand Down