Skip to content

Commit

Permalink
feat: adapted according to new structure in sdk (#199)
Browse files Browse the repository at this point in the history
* feat: handle gas estimation error

* fix: estimate gas in a correct place

* chore: fmt

* feat: adapted according to new structure in sdk

* chore: renamed `near_tx_hash` to `tx_hash`

* chore: added redis to config

* chore: updated lock
  • Loading branch information
frolvanya authored Jan 27, 2025
1 parent e56190e commit 31a1156
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 83 deletions.
78 changes: 39 additions & 39 deletions omni-relayer/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions omni-relayer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ alloy = { version = "0.9", features = ["node-bindings", "providers", "rpc-types"
redis = { version = "0.28.1", features = ["aio", "tokio-comp"] }
reqwest = "0.12"

eth-proof = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "eth-proof", branch = "feat/added-gas-estimation" }
eth-proof = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "eth-proof" }

bridge-connector-common = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "bridge-connector-common", branch = "feat/added-gas-estimation" }
bridge-connector-common = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "bridge-connector-common" }

near-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "near-bridge-client", branch = "feat/added-gas-estimation" }
evm-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "evm-bridge-client", branch = "feat/added-gas-estimation" }
solana-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "solana-bridge-client", branch = "feat/added-gas-estimation" }
wormhole-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "wormhole-bridge-client", branch = "feat/added-gas-estimation" }
near-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "near-bridge-client" }
evm-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "evm-bridge-client" }
solana-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "solana-bridge-client" }
wormhole-bridge-client = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "wormhole-bridge-client" }

omni-connector = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "omni-connector", branch = "feat/added-gas-estimation" }
omni-connector = { git = "https://github.com/Near-One/bridge-sdk-rs", package = "omni-connector" }

[features]
disable_fee_check = []
3 changes: 3 additions & 0 deletions omni-relayer/example-mainnet-config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[redis]
url = "redis://127.0.0.1/"

[bridge_indexer]
api_url = "http://127.0.0.1:8080"

Expand Down
36 changes: 13 additions & 23 deletions omni-relayer/src/workers/evm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use ethereum_types::H256;
use omni_connector::OmniConnector;
#[cfg(not(feature = "disable_fee_check"))]
use omni_types::Fee;
use omni_types::{prover_result::ProofKind, ChainKind, OmniAddress};
use omni_types::{ChainKind, OmniAddress};

use crate::{config, utils};

Expand Down Expand Up @@ -216,26 +216,8 @@ async fn handle_init_transfer_event(
}
}

let Some(topic) = init_transfer_with_timestamp.log.topic0() else {
warn!("No topic0 in log: {:?}", init_transfer_with_timestamp.log);
return;
};

let tx_hash = H256::from_slice(tx_hash.as_slice());

let Some(prover_args) = utils::evm::construct_prover_args(
&config,
vaa,
tx_hash,
H256::from_slice(topic.as_slice()),
ProofKind::InitTransfer,
)
.await
else {
warn!("Failed to construct prover args");
return;
};

let storage_deposit_actions = match utils::storage::get_storage_deposit_actions(
&connector,
init_transfer_with_timestamp.chain_kind,
Expand All @@ -253,10 +235,18 @@ async fn handle_init_transfer_event(
}
};

let fin_transfer_args = omni_connector::FinTransferArgs::NearFinTransfer {
chain_kind: init_transfer_with_timestamp.chain_kind,
storage_deposit_actions,
prover_args,
let fin_transfer_args = if let Some(vaa) = vaa {
omni_connector::FinTransferArgs::NearFinTransferWithVaa {
chain_kind: init_transfer_with_timestamp.chain_kind,
storage_deposit_actions,
vaa,
}
} else {
omni_connector::FinTransferArgs::NearFinTransferWithEvmProof {
chain_kind: init_transfer_with_timestamp.chain_kind,
tx_hash,
storage_deposit_actions,
}
};

match connector.fin_transfer(fin_transfer_args).await {
Expand Down
17 changes: 3 additions & 14 deletions omni-relayer/src/workers/solana.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ use log::{info, warn};
use omni_connector::OmniConnector;
#[cfg(not(feature = "disable_fee_check"))]
use omni_types::Fee;
use omni_types::{
prover_args::WormholeVerifyProofArgs, prover_result::ProofKind, ChainKind, OmniAddress,
};
use omni_types::{ChainKind, OmniAddress};
use solana_client::nonblocking::rpc_client::RpcClient;
#[cfg(not(feature = "disable_fee_check"))]
use solana_sdk::pubkey::Pubkey;
Expand Down Expand Up @@ -280,15 +278,6 @@ async fn handle_init_transfer_event(
return;
};

let wormhole_proof_args = WormholeVerifyProofArgs {
proof_kind: ProofKind::InitTransfer,
vaa,
};
let Ok(prover_args) = borsh::to_vec(&wormhole_proof_args) else {
warn!("Failed to serialize WormholeVerifyProofArgs");
return;
};

let storage_deposit_actions = match utils::storage::get_storage_deposit_actions(
&connector,
ChainKind::Sol,
Expand All @@ -306,10 +295,10 @@ async fn handle_init_transfer_event(
}
};

let fin_transfer_args = omni_connector::FinTransferArgs::NearFinTransfer {
let fin_transfer_args = omni_connector::FinTransferArgs::NearFinTransferWithVaa {
chain_kind: ChainKind::Sol,
storage_deposit_actions,
prover_args,
vaa,
};

match connector.fin_transfer(fin_transfer_args).await {
Expand Down

0 comments on commit 31a1156

Please sign in to comment.