Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
karim-en committed Jan 8, 2025
1 parent cc62b6b commit 74e876b
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 14 deletions.
39 changes: 33 additions & 6 deletions near/omni-tests/src/fin_transfer.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#[cfg(test)]
mod tests {
use crate::helpers::tests::{
account_n, eth_eoa_address, eth_factory_address, relayer_account_id, LOCKER_PATH,
MOCK_PROVER_PATH, MOCK_TOKEN_PATH, NEP141_DEPOSIT,
account_n, eth_eoa_address, eth_factory_address, eth_token_address, relayer_account_id,
LOCKER_PATH, MOCK_PROVER_PATH, MOCK_TOKEN_PATH, NEP141_DEPOSIT,
};
use near_sdk::{borsh, json_types::U128, serde_json::json, AccountId};
use near_workspaces::types::NearToken;
use omni_types::{
locker_args::{FinTransferArgs, StorageDepositAction},
prover_result::{InitTransferMessage, ProverResult},
locker_args::{BindTokenArgs, FinTransferArgs, StorageDepositAction},
prover_result::{DeployTokenMessage, InitTransferMessage, ProverResult},
Fee, OmniAddress,
};
use rstest::rstest;
Expand Down Expand Up @@ -73,7 +73,9 @@ mod tests {
"Expected an error but got success"
),
Err(result_error) => {
let error = expected_error.expect("Got an error when none was expected");
let error = expected_error.expect(&format!(
"Got an error {result_error} when none was expected"
));
assert!(
result_error.to_string().contains(error),
"Wrong error. Got: {}, Expected: {}",
Expand Down Expand Up @@ -166,6 +168,31 @@ mod tests {
.await?
.into_result()?;

// Bind token
let required_balance_for_bind_token: NearToken = locker_contract
.view("required_balance_for_bind_token")
.await?
.json()?;

relayer_account
.call(locker_contract.id(), "bind_token")
.args_borsh(BindTokenArgs {
chain_kind: omni_types::ChainKind::Eth,
prover_args: borsh::to_vec(&ProverResult::DeployToken(DeployTokenMessage {
token: token_contract.id().clone(),
token_address: eth_token_address(),
decimals: 24,
origin_decimals: 24,
emitter_address: eth_factory_address(),
}))
.unwrap(),
})
.deposit(required_balance_for_bind_token)
.max_gas()
.transact()
.await?
.into_result()?;

let required_deposit_for_fin_transfer = NEP141_DEPOSIT
.saturating_mul(storage_deposit_accounts.len() as u128)
.saturating_add(required_balance_for_fin_transfer);
Expand All @@ -187,7 +214,7 @@ mod tests {
storage_deposit_actions,
prover_args: borsh::to_vec(&ProverResult::InitTransfer(InitTransferMessage {
origin_nonce: 1,
token: OmniAddress::Near(token_contract.id().clone()),
token: eth_token_address(),
recipient: OmniAddress::Near(account_n(1)),
amount: U128(amount),
fee: Fee {
Expand Down
19 changes: 18 additions & 1 deletion near/omni-tests/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,22 @@ pub mod tests {
.unwrap()
}

pub fn arb_factory_address() -> OmniAddress {
"arb:0x252e87862A3A720287E7fd527cE6e8d0738427A2"
.parse()
.unwrap()
}

pub fn base_factory_address() -> OmniAddress {
"base:0x252e87862A3A720287E7fd527cE6e8d0738427A2"
.parse()
.unwrap()
}

pub fn sol_factory_address() -> OmniAddress {
"sol:11111111111111111111111111111111".parse().unwrap()
}

pub fn eth_eoa_address() -> OmniAddress {
"eth:0xc5ed912ca6db7b41de4ef3632fa0a5641e42bf09"
.parse()
Expand Down Expand Up @@ -88,14 +104,15 @@ pub mod tests {

pub fn get_test_deploy_token_args(
token_address: &OmniAddress,
factory_contract_address: &OmniAddress,
token_metadata: &BasicMetadata,
) -> DeployTokenArgs {
let log_metadata_message = LogMetadataMessage {
token_address: token_address.clone(),
name: token_metadata.name.clone(),
symbol: token_metadata.symbol.clone(),
decimals: token_metadata.decimals,
emitter_address: token_address.clone(),
emitter_address: factory_contract_address.clone(),
};

let prover_result = ProverResult::LogMetadata(log_metadata_message);
Expand Down
36 changes: 29 additions & 7 deletions near/omni-tests/src/omni_token.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#[cfg(test)]
mod tests {
use crate::helpers::tests::{
account_n, arb_token_address, base_token_address, eth_eoa_address, eth_token_address,
get_test_deploy_token_args, sol_token_address, LOCKER_PATH, MOCK_PROVER_PATH,
NEP141_DEPOSIT, TOKEN_DEPLOYER_PATH,
account_n, arb_factory_address, arb_token_address, base_factory_address,
base_token_address, eth_eoa_address, eth_factory_address, eth_token_address,
get_test_deploy_token_args, sol_factory_address, sol_token_address, LOCKER_PATH,
MOCK_PROVER_PATH, NEP141_DEPOSIT, TOKEN_DEPLOYER_PATH,
};
use anyhow;
use near_sdk::borsh;
Expand All @@ -23,6 +24,7 @@ mod tests {
locker: near_workspaces::Contract,
token_contract: near_workspaces::Contract,
init_token_address: OmniAddress,
factory_contract_address: OmniAddress,
token_metadata: BasicMetadata,
}

Expand Down Expand Up @@ -86,25 +88,40 @@ mod tests {
.await?
.into_result()?;

let factory_contract_address = match init_token_address.get_chain() {
ChainKind::Eth => eth_factory_address(),
ChainKind::Sol => sol_factory_address(),
ChainKind::Arb => arb_factory_address(),
ChainKind::Base => base_factory_address(),
_ => panic!("Unsupported chain"),
};

locker
.call("add_factory")
.args_json(json!({
"address": init_token_address,
"address": factory_contract_address,
}))
.max_gas()
.transact()
.await?
.into_result()?;

// Deploy token
let token_contract =
Self::deploy_token(&worker, &locker, &init_token_address, &token_metadata).await?;
let token_contract = Self::deploy_token(
&worker,
&locker,
&init_token_address,
&factory_contract_address,
&token_metadata,
)
.await?;

Ok(Self {
worker,
locker,
token_contract,
init_token_address,
factory_contract_address,
token_metadata,
})
}
Expand All @@ -118,6 +135,7 @@ mod tests {
worker: &near_workspaces::Worker<near_workspaces::network::Sandbox>,
locker: &near_workspaces::Contract,
init_token_address: &OmniAddress,
factoty_contract_address: &OmniAddress,
token_metadata: &BasicMetadata,
) -> anyhow::Result<near_workspaces::Contract> {
let token_deploy_initiator = worker
Expand Down Expand Up @@ -150,6 +168,7 @@ mod tests {
.call(locker.id(), "deploy_token")
.args_borsh(get_test_deploy_token_args(
init_token_address,
&factoty_contract_address,
token_metadata,
))
.deposit(required_storage)
Expand Down Expand Up @@ -259,6 +278,7 @@ mod tests {
&env.token_contract,
&recipient,
env.init_token_address,
env.factory_contract_address,
amount,
)
.await?;
Expand Down Expand Up @@ -314,6 +334,7 @@ mod tests {
&env.token_contract,
&sender,
env.init_token_address,
env.factory_contract_address,
amount,
)
.await?;
Expand Down Expand Up @@ -369,6 +390,7 @@ mod tests {
locker_contract: &near_workspaces::Contract,
token_contract: &near_workspaces::Contract,
recipient: &near_workspaces::Account,
token_address: OmniAddress,
emitter_address: OmniAddress,
amount: U128,
) -> anyhow::Result<()> {
Expand All @@ -392,7 +414,7 @@ mod tests {
storage_deposit_actions,
prover_args: borsh::to_vec(&ProverResult::InitTransfer(InitTransferMessage {
origin_nonce: 1,
token: OmniAddress::Near(token_contract.id().clone()),
token: token_address,
recipient: OmniAddress::Near(recipient.id().clone()),
amount,
fee: Fee {
Expand Down

0 comments on commit 74e876b

Please sign in to comment.