Skip to content

Commit

Permalink
Fix fast transfer to other chain message
Browse files Browse the repository at this point in the history
  • Loading branch information
kiseln committed Dec 9, 2024
1 parent 7aa8115 commit a86a62e
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 4 deletions.
13 changes: 9 additions & 4 deletions near/omni-bridge/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,9 @@ impl FungibleTokenReceiver for Contract {
let parsed_msg: BridgeOnTransferMsg =
serde_json::from_str(&msg).sdk_expect("ERR_PARSE_MSG");
let promise_or_value = match parsed_msg {
BridgeOnTransferMsg::InitTransfer(init_transfer_msg) => {
PromiseOrValue::Value(self.init_transfer(sender_id, token_id, amount, init_transfer_msg))
}
BridgeOnTransferMsg::InitTransfer(init_transfer_msg) => PromiseOrValue::Value(
self.init_transfer(sender_id, token_id, amount, init_transfer_msg),
),
BridgeOnTransferMsg::FastFinTransfer(fast_fin_transfer_msg) => {
self.fast_fin_transfer(sender_id, token_id, amount, fast_fin_transfer_msg)
}
Expand Down Expand Up @@ -430,6 +430,7 @@ impl Contract {
sender: OmniAddress::Near(sender_id.clone()),
msg: String::new(),
destination_nonce,
parent_transfer_id: None,
};
require!(
transfer_message.fee.fee < transfer_message.amount,
Expand Down Expand Up @@ -534,6 +535,7 @@ impl Contract {
sender: init_transfer.sender,
msg: init_transfer.msg,
destination_nonce,
parent_transfer_id: None,
};

if let OmniAddress::Near(recipient) = transfer_message.recipient.clone() {
Expand Down Expand Up @@ -640,15 +642,18 @@ impl Contract {

let destination_nonce =
self.get_next_destination_nonce(fast_transfer.recipient.get_chain());
self.current_origin_nonce += 1;

let transfer_message = TransferMessage {
origin_nonce: fast_transfer.transfer_id.origin_nonce,
origin_nonce: self.current_origin_nonce,
token: OmniAddress::Near(fast_transfer.token_id.clone()),
amount: fast_transfer.amount,
recipient: fast_transfer.recipient,
fee: fast_transfer.fee,
sender: OmniAddress::Near(relayer_id.clone()),
msg: fast_transfer.msg,
destination_nonce,
parent_transfer_id: Some(fast_transfer.transfer_id),
};

required_balance = self
Expand Down
1 change: 1 addition & 0 deletions near/omni-bridge/src/storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ impl Contract {
sender: OmniAddress::Near(max_account_id.clone()),
msg: String::new(),
destination_nonce: 0,
parent_transfer_id: None,
},
owner: max_account_id,
}))
Expand Down
1 change: 1 addition & 0 deletions near/omni-bridge/src/tests/lib_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ fn run_update_transfer_fee(
sender: OmniAddress::Near(sender_id.clone().parse().unwrap()),
msg: "".to_string(),
destination_nonce: 1,
parent_transfer_id: None,
};

contract.insert_raw_transfer(
Expand Down
1 change: 1 addition & 0 deletions near/omni-types/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,7 @@ pub struct TransferMessage {
pub sender: OmniAddress,
pub msg: String,
pub destination_nonce: Nonce,
pub parent_transfer_id: Option<TransferId>,
}

impl TransferMessage {
Expand Down
3 changes: 3 additions & 0 deletions near/omni-types/src/tests/lib_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,7 @@ fn test_transfer_message_getters() {
fee: Fee::default(),
sender: OmniAddress::Eth(evm_addr.clone()),
msg: "".to_string(),
parent_transfer_id: None,
},
ChainKind::Eth,
TransferId {
Expand All @@ -363,6 +364,7 @@ fn test_transfer_message_getters() {
fee: Fee::default(),
sender: OmniAddress::Near("alice.near".parse().unwrap()),
msg: "".to_string(),
parent_transfer_id: None,
},
ChainKind::Near,
TransferId {
Expand All @@ -381,6 +383,7 @@ fn test_transfer_message_getters() {
fee: Fee::default(),
sender: OmniAddress::Sol("11111111111111111111111111111111".parse().unwrap()),
msg: "".to_string(),
parent_transfer_id: None,
},
ChainKind::Sol,
TransferId {
Expand Down

0 comments on commit a86a62e

Please sign in to comment.