From 47098349f6513ec282463bb2aec8a6aef5687cbd Mon Sep 17 00:00:00 2001 From: Septen Date: Thu, 3 Jun 2021 04:51:49 +0300 Subject: [PATCH 1/2] Add `is_used_proof()` method. --- bridge-token-factory/src/lib.rs | 15 +++++++++------ bridge-token-factory/src/prover.rs | 11 ++++++++++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/bridge-token-factory/src/lib.rs b/bridge-token-factory/src/lib.rs index dcc1b9c7..0789872a 100644 --- a/bridge-token-factory/src/lib.rs +++ b/bridge-token-factory/src/lib.rs @@ -277,21 +277,24 @@ impl BridgeTokenFactory { format!("{}.{}", address, env::current_account_id()) } + /// Checks whether the provided proof is already used + pub fn is_used_proof(&self, #[serializer(borsh)] proof: Proof) -> bool { + self.used_events.contains(&proof.get_key()) + } + /// Record proof to make sure it is not re-used later for anther deposit. fn record_proof(&mut self, proof: &Proof) -> Balance { // TODO: Instead of sending the full proof (clone only relevant parts of the Proof) // log_index / receipt_index / header_data assert_self(); let initial_storage = env::storage_usage(); - let mut data = proof.log_index.try_to_vec().unwrap(); - data.extend(proof.receipt_index.try_to_vec().unwrap()); - data.extend(proof.header_data.clone()); - let key = env::sha256(&data); + + let proof_key = proof.get_key(); assert!( - !self.used_events.contains(&key), + !self.used_events.contains(&proof_key), "Event cannot be reused for depositing." ); - self.used_events.insert(&key); + self.used_events.insert(&proof_key); let current_storage = env::storage_usage(); let required_deposit = Balance::from(current_storage - initial_storage) * STORAGE_PRICE_PER_BYTE; diff --git a/bridge-token-factory/src/prover.rs b/bridge-token-factory/src/prover.rs index d3c920af..727efc72 100644 --- a/bridge-token-factory/src/prover.rs +++ b/bridge-token-factory/src/prover.rs @@ -4,7 +4,7 @@ use eth_types::*; use ethabi::{Event, EventParam, Hash, Log, ParamType, RawLog, Token}; use ethabi::param_type::Writer; use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::ext_contract; +use near_sdk::{env, ext_contract}; use near_sdk::serde::{Serialize, Deserialize}; use tiny_keccak::Keccak; @@ -43,6 +43,15 @@ pub struct Proof { pub proof: Vec>, } +impl Proof { + pub fn get_key(&self) -> Vec { + let mut data = self.log_index.try_to_vec().unwrap(); + data.extend(self.receipt_index.try_to_vec().unwrap()); + data.extend(self.header_data.clone()); + env::sha256(&data[..]) + } +} + pub type EthEventParams = Vec<(String, ParamType, bool)>; pub struct EthEvent { From ac49636e28e5d2c1afcda01d3bbc7f743dc1ef6b Mon Sep 17 00:00:00 2001 From: Septen Date: Thu, 3 Jun 2021 20:12:29 +0300 Subject: [PATCH 2/2] Update build files. --- res/bridge_token_factory.wasm | Bin 504740 -> 505912 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/res/bridge_token_factory.wasm b/res/bridge_token_factory.wasm index fc392c3b66e5fc29aa37de29619f20e740039409..7cc8d1b88c3bf5ce832b42f1e251b7193b9321d3 100755 GIT binary patch delta 42877 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%0AXhO0DFMgL1(l>$6!P8XfE7 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