From 13ebfa35c899c14f88a4e47e8e55380ea741d489 Mon Sep 17 00:00:00 2001 From: Ivan Frolov <59515280+frolvanya@users.noreply.github.com> Date: Thu, 13 Feb 2025 22:49:50 -0500 Subject: [PATCH] fix: u128 serialization (#258) * fix: u128 serialization * fix: u128 serialization using near-sdk --- omni-relayer/Cargo.lock | 32 +++++++++++++------------------- omni-relayer/Cargo.toml | 3 ++- omni-relayer/src/utils/solana.rs | 4 ++-- omni-relayer/src/workers/mod.rs | 9 +++++---- 4 files changed, 22 insertions(+), 26 deletions(-) diff --git a/omni-relayer/Cargo.lock b/omni-relayer/Cargo.lock index a272ad26..fe4007ab 100644 --- a/omni-relayer/Cargo.lock +++ b/omni-relayer/Cargo.lock @@ -1193,7 +1193,7 @@ dependencies = [ "fastrand", "hex", "http 0.2.12", - "ring 0.17.8", + "ring 0.17.9", "time", "tokio", "tracing", @@ -1361,7 +1361,7 @@ dependencies = [ "once_cell", "p256", "percent-encoding", - "ring 0.17.8", + "ring 0.17.9", "sha2 0.10.8", "subtle", "time", @@ -5922,7 +5922,7 @@ dependencies = [ [[package]] name = "omni-relayer" -version = "0.3.1" +version = "0.3.2" dependencies = [ "alloy", "anyhow", @@ -5943,6 +5943,7 @@ dependencies = [ "near-jsonrpc-primitives", "near-lake-framework", "near-primitives 0.28.0", + "near-sdk", "omni-connector", "omni-types", "pretty_env_logger", @@ -6587,7 +6588,7 @@ dependencies = [ "bytes", "getrandom 0.2.15", "rand 0.8.5", - "ring 0.17.8", + "ring 0.17.9", "rustc-hash", "rustls 0.23.23", "rustls-pki-types", @@ -6949,7 +6950,7 @@ dependencies = [ "cc", "libc", "once_cell", - "spin 0.5.2", + "spin", "untrusted 0.7.1", "web-sys", "winapi", @@ -6957,15 +6958,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" dependencies = [ "cc", "cfg-if 1.0.0", "getrandom 0.2.15", "libc", - "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -7106,7 +7106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.8", + "ring 0.17.9", "rustls-webpki 0.101.7", "sct", ] @@ -7118,7 +7118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "once_cell", - "ring 0.17.8", + "ring 0.17.9", "rustls-pki-types", "rustls-webpki 0.102.8", "subtle", @@ -7210,7 +7210,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.8", + "ring 0.17.9", "untrusted 0.9.0", ] @@ -7220,7 +7220,7 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.8", + "ring 0.17.9", "rustls-pki-types", "untrusted 0.9.0", ] @@ -7365,7 +7365,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.8", + "ring 0.17.9", "untrusted 0.9.0", ] @@ -9124,12 +9124,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spinning_top" version = "0.3.0" diff --git a/omni-relayer/Cargo.toml b/omni-relayer/Cargo.toml index aee48f34..2fe71e0c 100644 --- a/omni-relayer/Cargo.toml +++ b/omni-relayer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "omni-relayer" -version = "0.3.1" +version = "0.3.2" edition = "2021" resolver = "2" repository = "https://github.com/Near-One/omni-bridge" @@ -36,6 +36,7 @@ near-jsonrpc-client = "0.15.1" near-jsonrpc-primitives = "0.28.0" near-primitives = "0.28.0" near-crypto = "0.28.0" +near-sdk = "5.8.0" hex = "0.4.3" alloy = { version = "0.9", features = ["node-bindings", "providers", "rpc-types", "sol-types", "provider-ws", "signers", "signer-local"] } diff --git a/omni-relayer/src/utils/solana.rs b/omni-relayer/src/utils/solana.rs index 8eae38e9..6f948dc1 100644 --- a/omni-relayer/src/utils/solana.rs +++ b/omni-relayer/src/utils/solana.rs @@ -136,11 +136,11 @@ async fn decode_instruction( utils::redis::EVENTS, signature.to_string(), Transfer::Solana { - amount: payload.amount, + amount: payload.amount.into(), token: token.clone(), sender: sender.clone(), recipient: payload.recipient.clone(), - fee: payload.fee, + fee: payload.fee.into(), native_fee: payload.native_fee, message: payload.message.clone(), emitter: emitter.clone(), diff --git a/omni-relayer/src/workers/mod.rs b/omni-relayer/src/workers/mod.rs index 09f6c573..a5346fe9 100644 --- a/omni-relayer/src/workers/mod.rs +++ b/omni-relayer/src/workers/mod.rs @@ -13,6 +13,7 @@ use ethereum_types::H256; use near_bridge_client::TransactionOptions; use near_jsonrpc_client::JsonRpcClient; use near_primitives::{hash::CryptoHash, types::AccountId, views::TxExecutionStatus}; +use near_sdk::json_types::U128; use solana_client::rpc_request::RpcResponseErrorData; use solana_rpc_client_api::{client_error::ErrorKind, request::RpcError}; use solana_sdk::{instruction::InstructionError, pubkey::Pubkey, transaction::TransactionError}; @@ -52,11 +53,11 @@ pub enum Transfer { expected_finalization_time: i64, }, Solana { - amount: u128, + amount: U128, token: String, sender: String, recipient: String, - fee: u128, + fee: U128, native_fee: u64, message: String, emitter: String, @@ -960,7 +961,7 @@ async fn process_solana_init_transfer_event( match utils::fee::is_fee_sufficient( &config, Fee { - fee: fee.into(), + fee, native_fee: u128::from(native_fee).into(), }, &sender, @@ -994,7 +995,7 @@ async fn process_solana_init_transfer_event( ChainKind::Sol, &recipient, token, - fee, + fee.0, u128::from(native_fee), ) .await