Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add integration tests for OmniToken. #148

Merged
merged 3 commits into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions near/omni-tests/src/fin_transfer.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#[cfg(test)]
mod tests {
use crate::helpers::tests::{
account_1, account_2, 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, 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;
Expand All @@ -14,46 +14,46 @@ mod tests {
use rstest::rstest;

#[rstest]
#[case(vec![(account_1(), true), (relayer_account_id(), true)], 1000, 1, None)]
#[case(vec![(account_1(), true)], 1000, 0, None)]
#[case(vec![(account_n(1), true), (relayer_account_id(), true)], 1000, 1, None)]
#[case(vec![(account_n(1), true)], 1000, 0, None)]
#[case(
vec![
(account_1(), true),
(account_n(1), true),
(relayer_account_id(), true),
(account_2(), true),
(account_2(), true),
(account_n(2), true),
(account_n(2), true),
],
1000,
1,
Some("Invalid len of accounts for storage deposit")
)]
#[case(
vec![(relayer_account_id(), true), (account_1(), true)],
vec![(relayer_account_id(), true), (account_n(1), true)],
1000,
1,
Some("STORAGE_ERR: The transfer recipient is omitted")
)]
#[case(
vec![(account_1(), true)],
vec![(account_n(1), true)],
1000,
1,
Some("STORAGE_ERR: The fee recipient is omitted")
)]
#[case(vec![], 1000, 1, Some("STORAGE_ERR: The transfer recipient is omitted"))]
#[case(
vec![(account_1(), false), (relayer_account_id(), false)],
vec![(account_n(1), false), (relayer_account_id(), false)],
1000,
1,
Some("STORAGE_ERR: The transfer recipient is omitted")
)]
#[case(
vec![(account_1(), true), (relayer_account_id(), false)],
vec![(account_n(1), true), (relayer_account_id(), false)],
1000,
1,
Some("STORAGE_ERR: The fee recipient is omitted")
)]
#[case(
vec![(account_1(), false), (relayer_account_id(), true)],
vec![(account_n(1), false), (relayer_account_id(), true)],
1000,
1,
Some("STORAGE_ERR: The transfer recipient is omitted")
Expand Down Expand Up @@ -188,7 +188,7 @@ mod tests {
prover_args: borsh::to_vec(&ProverResult::InitTransfer(InitTransferMessage {
origin_nonce: 1,
token: OmniAddress::Near(token_contract.id().clone()),
recipient: OmniAddress::Near(account_1()),
recipient: OmniAddress::Near(account_n(1)),
amount: U128(amount),
fee: Fee {
fee: U128(fee),
Expand All @@ -210,7 +210,7 @@ mod tests {
let recipient_balance: U128 = token_contract
.view("ft_balance_of")
.args_json(json!({
"account_id": account_1(),
"account_id": account_n(1),
}))
.await?
.json()?;
Expand Down
53 changes: 44 additions & 9 deletions near/omni-tests/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,25 @@ pub mod tests {
use near_sdk::{borsh, json_types::U128, serde_json, AccountId};
use near_workspaces::types::NearToken;
use omni_types::{
locker_args::{BindTokenArgs, ClaimFeeArgs},
prover_result::{DeployTokenMessage, FinTransferMessage, ProverResult},
ChainKind, Nonce, OmniAddress, TransferId,
locker_args::{BindTokenArgs, ClaimFeeArgs, DeployTokenArgs},
prover_result::{DeployTokenMessage, FinTransferMessage, LogMetadataMessage, ProverResult},
BasicMetadata, ChainKind, Nonce, OmniAddress, TransferId,
};

pub const MOCK_TOKEN_PATH: &str = "./../target/wasm32-unknown-unknown/release/mock_token.wasm";
pub const MOCK_PROVER_PATH: &str =
"./../target/wasm32-unknown-unknown/release/mock_prover.wasm";
pub const LOCKER_PATH: &str = "./../target/wasm32-unknown-unknown/release/omni_bridge.wasm";
pub const NEP141_DEPOSIT: NearToken = NearToken::from_yoctonear(1250000000000000000000);
pub const TOKEN_DEPLOYER_PATH: &str =
"./../target/wasm32-unknown-unknown/release/token_deployer.wasm";

pub fn relayer_account_id() -> AccountId {
"relayer".parse().unwrap()
}

pub fn account_1() -> AccountId {
"account_1".parse().unwrap()
}

pub fn account_2() -> AccountId {
"account_2".parse().unwrap()
pub fn account_n(n: u8) -> AccountId {
format!("account_{}", n).parse().unwrap()
}

pub fn eth_factory_address() -> OmniAddress {
Expand All @@ -44,6 +42,22 @@ pub mod tests {
.unwrap()
}

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

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

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

pub fn get_claim_fee_args_near(
origin_chain: ChainKind,
destination_chain: ChainKind,
Expand Down Expand Up @@ -72,6 +86,27 @@ pub mod tests {
}
}

pub fn get_test_deploy_token_args(
token_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(),
};

let prover_result = ProverResult::LogMetadata(log_metadata_message);
let prover_args = borsh::to_vec(&prover_result).expect("Failed to serialize prover result");

DeployTokenArgs {
chain_kind: token_address.get_chain(),
prover_args,
}
}

pub fn get_bind_token_args(
token: &AccountId,
token_address: &OmniAddress,
Expand Down
4 changes: 2 additions & 2 deletions near/omni-tests/src/init_transfer.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(test)]
mod tests {
use crate::helpers::tests::{
account_1, eth_eoa_address, eth_factory_address, eth_token_address, get_bind_token_args,
account_n, eth_eoa_address, eth_factory_address, eth_token_address, get_bind_token_args,
get_claim_fee_args_near, get_event_data, relayer_account_id, LOCKER_PATH, MOCK_PROVER_PATH,
MOCK_TOKEN_PATH, NEP141_DEPOSIT,
};
Expand Down Expand Up @@ -82,7 +82,7 @@ mod tests {

// Create sender account. (Default account in sandbox has 100 NEAR)
let sender_account = worker
.create_tla(account_1(), worker.dev_generate().await.1)
.create_tla(account_n(1), worker.dev_generate().await.1)
.await?
.unwrap();

Expand Down
1 change: 1 addition & 0 deletions near/omni-tests/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
mod fin_transfer;
mod helpers;
mod init_transfer;
mod omni_token;
Loading
Loading