diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index a7fac3d6db..b946538d99 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -99,6 +99,7 @@ jobs: run: | rustup toolchain install nightly-2022-10-29 --no-self-update --profile=minimal rustup default nightly-2022-10-29 + rustup target add x86_64-apple-darwin - name: Install build deps uses: ./.github/actions/deps-install @@ -209,8 +210,9 @@ jobs: - uses: actions/checkout@v3 - name: Install toolchain run: | - rustup toolchain install nightly-2022-10-29 --no-self-update --profile=minimal - rustup default nightly-2022-10-29 + rustup toolchain install nightly-2022-10-29-x86_64-apple-darwin --no-self-update --profile=minimal + rustup default nightly-2022-10-29-x86_64-apple-darwin + rustup target add x86_64-apple-darwin - name: Install build deps uses: ./.github/actions/deps-install diff --git a/mm2src/coins/eth/eth_tests.rs b/mm2src/coins/eth/eth_tests.rs index 5f4aad702f..9fc7d903e0 100644 --- a/mm2src/coins/eth/eth_tests.rs +++ b/mm2src/coins/eth/eth_tests.rs @@ -4,8 +4,8 @@ use common::{block_on, now_sec}; #[cfg(not(target_arch = "wasm32"))] use ethkey::{Generator, Random}; use mm2_core::mm_ctx::{MmArc, MmCtxBuilder}; -use mm2_test_helpers::for_tests::{eth_jst_testnet_conf, eth_testnet_conf, ETH_DEV_NODES, ETH_DEV_SWAP_CONTRACT, - ETH_DEV_TOKEN_CONTRACT, ETH_MAINNET_NODE}; +use mm2_test_helpers::for_tests::{eth_testnet_conf, ETH_MAINNET_NODE, ETH_SEPOLIA_NODE, ETH_SEPOLIA_SWAP_CONTRACT, + ETH_SEPOLIA_TOKEN_CONTRACT}; use mocktopus::mocking::*; /// The gas price for the tests @@ -57,12 +57,7 @@ fn eth_coin_from_keypair( drop_mutability!(web3_instances); - let conf = json!({ - "coins":[ - eth_testnet_conf(), - eth_jst_testnet_conf() - ] - }); + let conf = json!({ "coins": [eth_testnet_conf()] }); let ctx = MmCtxBuilder::new().with_conf(conf).into_mm_arc(); let ticker = match coin_type { EthCoinType::Eth => "ETH".to_string(), @@ -80,7 +75,7 @@ fn eth_coin_from_keypair( my_address: key_pair.address(), sign_message_prefix: Some(String::from("Ethereum Signed Message:\n")), priv_key_policy: key_pair.into(), - swap_contract_address: Address::from_str(ETH_DEV_SWAP_CONTRACT).unwrap(), + swap_contract_address: Address::from_str(ETH_SEPOLIA_SWAP_CONTRACT).unwrap(), fallback_swap_contract, contract_supports_watchers: false, ticker, @@ -230,7 +225,7 @@ fn test_wait_for_payment_spend_timeout() { EthCoin::current_block.mock_safe(|_| MockResult::Return(Box::new(futures01::future::ok(900)))); let key_pair = Random.generate().unwrap(); - let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_DEV_NODES, None, key_pair); + let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_SEPOLIA_NODE, None, key_pair); let wait_until = now_sec() - 1; let from_block = 1; @@ -339,7 +334,7 @@ fn test_withdraw_impl_fee_details() { let (_ctx, coin) = eth_coin_for_test( EthCoinType::Erc20 { platform: "ETH".to_string(), - token_addr: Address::from_str(ETH_DEV_TOKEN_CONTRACT).unwrap(), + token_addr: Address::from_str(ETH_SEPOLIA_TOKEN_CONTRACT).unwrap(), }, &["http://dummy.dummy"], None, @@ -876,7 +871,7 @@ fn polygon_check_if_my_payment_sent() { #[test] fn test_message_hash() { let key_pair = Random.generate().unwrap(); - let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_DEV_NODES, None, key_pair); + let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_SEPOLIA_NODE, None, key_pair); let message_hash = coin.sign_message_hash("test").unwrap(); assert_eq!( @@ -891,7 +886,7 @@ fn test_sign_verify_message() { &hex::decode("809465b17d0a4ddb3e4c69e8f23c2cabad868f51f8bed5c765ad1d6516c3306f").unwrap(), ) .unwrap(); - let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_DEV_NODES, None, key_pair); + let (_ctx, coin) = eth_coin_from_keypair(EthCoinType::Eth, ETH_SEPOLIA_NODE, None, key_pair); let message = "test"; let signature = coin.sign_message(message).unwrap(); diff --git a/mm2src/coins/eth/eth_wasm_tests.rs b/mm2src/coins/eth/eth_wasm_tests.rs index ea2dace0cd..32d412aadc 100644 --- a/mm2src/coins/eth/eth_wasm_tests.rs +++ b/mm2src/coins/eth/eth_wasm_tests.rs @@ -1,10 +1,8 @@ use super::*; use crate::lp_coininit; -use crypto::privkey::key_pair_from_seed; use crypto::CryptoCtx; use mm2_core::mm_ctx::MmCtxBuilder; -use mm2_test_helpers::for_tests::{ETH_DEV_NODE, ETH_DEV_SWAP_CONTRACT}; -use mm2_test_helpers::get_passphrase; +use mm2_test_helpers::for_tests::{ETH_SEPOLIA_NODE, ETH_SEPOLIA_SWAP_CONTRACT}; use wasm_bindgen_test::*; use web_sys::console; @@ -16,61 +14,6 @@ fn pass() { let _coins_context = CoinsContext::from_ctx(&ctx).unwrap(); } -#[wasm_bindgen_test] -async fn test_send() { - let seed = get_passphrase!(".env.client", "ALICE_PASSPHRASE").unwrap(); - let keypair = key_pair_from_seed(&seed).unwrap(); - let key_pair = KeyPair::from_secret_slice(keypair.private_ref()).unwrap(); - let node = HttpTransportNode { - uri: ETH_DEV_NODE.parse().unwrap(), - gui_auth: false, - }; - let transport = Web3Transport::new_http(node); - let web3 = Web3::new(transport); - let ctx = MmCtxBuilder::new().into_mm_arc(); - let coin = EthCoin(Arc::new(EthCoinImpl { - ticker: "ETH".into(), - coin_type: EthCoinType::Eth, - my_address: key_pair.address(), - sign_message_prefix: Some(String::from("Ethereum Signed Message:\n")), - priv_key_policy: key_pair.into(), - swap_contract_address: Address::from_str(ETH_DEV_SWAP_CONTRACT).unwrap(), - fallback_swap_contract: None, - contract_supports_watchers: false, - web3_instances: AsyncMutex::new(vec![Web3Instance { web3, is_parity: false }]), - decimals: 18, - gas_station_url: None, - gas_station_decimals: ETH_GAS_STATION_DECIMALS, - gas_station_policy: GasStationPricePolicy::MeanAverageFast, - history_sync_state: Mutex::new(HistorySyncState::NotStarted), - ctx: ctx.weak(), - required_confirmations: 1.into(), - chain_id: None, - logs_block_range: DEFAULT_LOGS_BLOCK_RANGE, - nonce_lock: new_nonce_lock(), - erc20_tokens_infos: Default::default(), - nfts_infos: Default::default(), - abortable_system: AbortableQueue::default(), - })); - let maker_payment_args = SendPaymentArgs { - time_lock_duration: 0, - time_lock: 1000, - other_pubkey: &DEX_FEE_ADDR_RAW_PUBKEY, - secret_hash: &[1; 20], - amount: "0.001".parse().unwrap(), - swap_contract_address: &coin.swap_contract_address(), - swap_unique_data: &[], - payment_instructions: &None, - watcher_reward: None, - wait_for_confirmation_until: 0, - }; - let tx = coin.send_maker_payment(maker_payment_args).compat().await.unwrap(); - console::log_1(&format!("{:?}", tx).into()); - - let block = coin.current_block().compat().await.unwrap(); - console::log_1(&format!("{:?}", block).into()); -} - async fn init_eth_coin_helper() -> Result<(MmArc, MmCoinEnum), String> { let conf = json!({ "coins": [{ @@ -93,8 +36,8 @@ async fn init_eth_coin_helper() -> Result<(MmArc, MmCoinEnum), String> { .unwrap(); let req = json!({ - "urls":[ETH_DEV_NODE], - "swap_contract_address":ETH_DEV_SWAP_CONTRACT + "urls":ETH_SEPOLIA_NODE, + "swap_contract_address":ETH_SEPOLIA_SWAP_CONTRACT }); Ok((ctx.clone(), lp_coininit(&ctx, "ETH", &req).await?)) } diff --git a/mm2src/coins/eth/web3_transport/http_transport.rs b/mm2src/coins/eth/web3_transport/http_transport.rs index b60a1d5659..e722b16824 100644 --- a/mm2src/coins/eth/web3_transport/http_transport.rs +++ b/mm2src/coins/eth/web3_transport/http_transport.rs @@ -57,7 +57,7 @@ pub struct HttpTransportNode { impl HttpTransport { #[inline] - #[cfg(any(test, target_arch = "wasm32"))] + #[cfg(all(test, not(target_arch = "wasm32")))] pub fn new(node: HttpTransportNode) -> Self { HttpTransport { id: Arc::new(AtomicUsize::new(0)), diff --git a/mm2src/coins/eth/web3_transport/mod.rs b/mm2src/coins/eth/web3_transport/mod.rs index 1858dddfc4..1ec688f25d 100644 --- a/mm2src/coins/eth/web3_transport/mod.rs +++ b/mm2src/coins/eth/web3_transport/mod.rs @@ -61,7 +61,7 @@ impl Web3Transport { } } - #[cfg(any(test, target_arch = "wasm32"))] + #[cfg(all(test, not(target_arch = "wasm32")))] pub fn new_http(node: http_transport::HttpTransportNode) -> Web3Transport { http_transport::HttpTransport::new(node).into() } diff --git a/mm2src/mm2_main/src/lp_swap/maker_swap.rs b/mm2src/mm2_main/src/lp_swap/maker_swap.rs index bc2151ef2d..282d43dc95 100644 --- a/mm2src/mm2_main/src/lp_swap/maker_swap.rs +++ b/mm2src/mm2_main/src/lp_swap/maker_swap.rs @@ -2349,7 +2349,7 @@ mod maker_swap_tests { use coins::eth::{addr_from_str, signed_eth_tx_from_bytes, SignedEthTx}; use coins::{MarketCoinOps, MmCoin, SwapOps, TestCoin}; use common::block_on; - use mm2_test_helpers::for_tests::{mm_ctx_with_iguana, ETH_DEV_SWAP_CONTRACT}; + use mm2_test_helpers::for_tests::{mm_ctx_with_iguana, ETH_SEPOLIA_SWAP_CONTRACT}; use mocktopus::mocking::*; use serde_json as json; @@ -2768,7 +2768,7 @@ mod maker_swap_tests { let ctx = mm_ctx_with_iguana(PASSPHRASE); // swap file contains only maker_coin_swap_contract_address - let maker_saved_json = r#"{"type":"Maker","uuid":"c52659d7-4e13-41f5-9c1a-30cc2f646033","events":[{"timestamp":1608541830095,"event":{"type":"Started","data":{"taker_coin":"JST","maker_coin":"ETH","taker":"031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3","secret":"dc45c1d22028970d8d30d1ddacbfc50eb92403b0d6076c94f2216c4c44512b41","secret_hash":"943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3","my_persistent_pub":"03c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","lock_duration":7800,"maker_amount":"0.1","taker_amount":"0.1","maker_payment_confirmations":1,"maker_payment_requires_nota":false,"taker_payment_confirmations":1,"taker_payment_requires_nota":false,"maker_payment_lock":1608557429,"uuid":"c52659d7-4e13-41f5-9c1a-30cc2f646033","started_at":1608541829,"maker_coin_start_block":14353,"taker_coin_start_block":14353,"maker_coin_swap_contract_address":"83965c539899cc0f918552e5a26915de40ee8852"}}},{"timestamp":1608541830399,"event":{"type":"Negotiated","data":{"taker_payment_locktime":1608549629,"taker_pubkey":"02031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3"}}},{"timestamp":1608541831810,"event":{"type":"TakerFeeValidated","data":{"tx_hex":"f8a7821fb58083033450942b294f029fde858b2c62184e8390591755521d8e80b844a9059cbb000000000000000000000000d8997941dd1346e9231118d5685d866294f59e5b0000000000000000000000000000000000000000000000000000750d557426e01ba06ddad2dfe6933b8d70d5739beb3005c8f367bc72eac4e5609b81c2f8e5843cd9a07fa695cc42f8c6b6a7b10f6ae9e4dca3e750e37f64a85b54dec736236790f05e","tx_hash":"b13c3428f70b46d8c1d7f5863af020a27c380a8ede0927554beabf234998bcc8"}}},{"timestamp":1608541832884,"event":{"type":"MakerPaymentSent","data":{"tx_hex":"f8ef82021980830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd88016345785d8a0000b884152cf3af7c7ce37fac65bd995eae3d58ccdc367d79f3a10e6ca55f609e6dcefac960982b000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa29943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3000000000000000000000000000000000000000000000000000000000000000000000000000000005fe0a3751ca03ab6306b8b8875c7d2cbaa71a3991eb8e7ae44e192dc9974cecc1f9dcfe5e4d6a04ec2808db06fe7b246134997fcce81ca201ced1257f1f8e93cacadd6554ca653","tx_hash":"ceba36dff0b2c7aec69cb2d5be7055858e09889959ba63f7957b45a15dceade4"}}},{"timestamp":1608541835207,"event":{"type":"TakerPaymentReceived","data":{"tx_hex":"f90127821fb680830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8c49b415b2a64bdf61f195a1767f547bb0886ed697f3c1a063ce928ff9a47222c0b5d099200000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000002b294f029fde858b2c62184e8390591755521d8e0000000000000000000000004b2d0d6c2c785217457b69b922a2a9cea98f71e9943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3000000000000000000000000000000000000000000000000000000000000000000000000000000005fe084fd1ba0a5b6ef54217c5a03a588d01410ef1187ce6107bdb075306ced06a06e25a50984a03f541f1f392079ae2590d0f48f2065f8721a8b46c44a060ae53f00bfb5160118","tx_hash":"1247a1be3da89f3612ca33d83d493808388775e2897036f640c0efe69c3b162f"}}},{"timestamp":1608541835208,"event":{"type":"TakerPaymentWaitConfirmStarted"}},{"timestamp":1608541836196,"event":{"type":"TakerPaymentValidatedAndConfirmed"}},{"timestamp":1608541837173,"event":{"type":"TakerPaymentSpent","data":{"tx_hex":"f9010782021a80830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8a402ed292b64bdf61f195a1767f547bb0886ed697f3c1a063ce928ff9a47222c0b5d099200000000000000000000000000000000000000000000000000016345785d8a0000dc45c1d22028970d8d30d1ddacbfc50eb92403b0d6076c94f2216c4c44512b410000000000000000000000002b294f029fde858b2c62184e8390591755521d8e000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa291ba053af89feb4ab066b26e76de9788c85ec1bf14ae6dcbdd7ff53e561e48e1b822ca043796d45bd4233500a120a1571b3fee95a34e8cc6b616c69552da4352c0d8e39","tx_hash":"d9a839c6eead3fbf538eca0a4ec39e28647104920a5c8b9c107524287dd90165"}}},{"timestamp":1608541837175,"event":{"type":"TakerPaymentSpendConfirmStarted"}},{"timestamp":1608541837612,"event":{"type":"TakerPaymentSpendConfirmed"}},{"timestamp":1608541837614,"event":{"type":"Finished"}}],"maker_amount":"0.1","maker_coin":"ETH","taker_amount":"0.1","taker_coin":"JST","gui":"nogui","mm_version":"1a6082121","success_events":["Started","Negotiated","TakerFeeValidated","MakerPaymentSent","TakerPaymentReceived","TakerPaymentWaitConfirmStarted","TakerPaymentValidatedAndConfirmed","TakerPaymentSpent","TakerPaymentSpendConfirmStarted","TakerPaymentSpendConfirmed","Finished"],"error_events":["StartFailed","NegotiateFailed","TakerFeeValidateFailed","MakerPaymentTransactionFailed","MakerPaymentDataSendFailed","MakerPaymentWaitConfirmFailed","TakerPaymentValidateFailed","TakerPaymentWaitConfirmFailed","TakerPaymentSpendFailed","TakerPaymentSpendConfirmFailed","MakerPaymentWaitRefundStarted","MakerPaymentRefunded","MakerPaymentRefundFailed"]}"#; + let maker_saved_json = r#"{"type":"Maker","uuid":"c52659d7-4e13-41f5-9c1a-30cc2f646033","events":[{"timestamp":1608541830095,"event":{"type":"Started","data":{"taker_coin":"JST","maker_coin":"ETH","taker":"031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3","secret":"dc45c1d22028970d8d30d1ddacbfc50eb92403b0d6076c94f2216c4c44512b41","secret_hash":"943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3","my_persistent_pub":"03c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","lock_duration":7800,"maker_amount":"0.1","taker_amount":"0.1","maker_payment_confirmations":1,"maker_payment_requires_nota":false,"taker_payment_confirmations":1,"taker_payment_requires_nota":false,"maker_payment_lock":1608557429,"uuid":"c52659d7-4e13-41f5-9c1a-30cc2f646033","started_at":1608541829,"maker_coin_start_block":14353,"taker_coin_start_block":14353,"maker_coin_swap_contract_address":"eA6D65434A15377081495a9E7C5893543E7c32cB"}}},{"timestamp":1608541830399,"event":{"type":"Negotiated","data":{"taker_payment_locktime":1608549629,"taker_pubkey":"02031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3"}}},{"timestamp":1608541831810,"event":{"type":"TakerFeeValidated","data":{"tx_hex":"f8a7821fb58083033450942b294f029fde858b2c62184e8390591755521d8e80b844a9059cbb000000000000000000000000d8997941dd1346e9231118d5685d866294f59e5b0000000000000000000000000000000000000000000000000000750d557426e01ba06ddad2dfe6933b8d70d5739beb3005c8f367bc72eac4e5609b81c2f8e5843cd9a07fa695cc42f8c6b6a7b10f6ae9e4dca3e750e37f64a85b54dec736236790f05e","tx_hash":"b13c3428f70b46d8c1d7f5863af020a27c380a8ede0927554beabf234998bcc8"}}},{"timestamp":1608541832884,"event":{"type":"MakerPaymentSent","data":{"tx_hex":"f8ef82021980830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd88016345785d8a0000b884152cf3af7c7ce37fac65bd995eae3d58ccdc367d79f3a10e6ca55f609e6dcefac960982b000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa29943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3000000000000000000000000000000000000000000000000000000000000000000000000000000005fe0a3751ca03ab6306b8b8875c7d2cbaa71a3991eb8e7ae44e192dc9974cecc1f9dcfe5e4d6a04ec2808db06fe7b246134997fcce81ca201ced1257f1f8e93cacadd6554ca653","tx_hash":"ceba36dff0b2c7aec69cb2d5be7055858e09889959ba63f7957b45a15dceade4"}}},{"timestamp":1608541835207,"event":{"type":"TakerPaymentReceived","data":{"tx_hex":"f90127821fb680830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8c49b415b2a64bdf61f195a1767f547bb0886ed697f3c1a063ce928ff9a47222c0b5d099200000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000002b294f029fde858b2c62184e8390591755521d8e0000000000000000000000004b2d0d6c2c785217457b69b922a2a9cea98f71e9943e11f7c74e2d6493ef8ad01a06ef2ce9bd1fb3000000000000000000000000000000000000000000000000000000000000000000000000000000005fe084fd1ba0a5b6ef54217c5a03a588d01410ef1187ce6107bdb075306ced06a06e25a50984a03f541f1f392079ae2590d0f48f2065f8721a8b46c44a060ae53f00bfb5160118","tx_hash":"1247a1be3da89f3612ca33d83d493808388775e2897036f640c0efe69c3b162f"}}},{"timestamp":1608541835208,"event":{"type":"TakerPaymentWaitConfirmStarted"}},{"timestamp":1608541836196,"event":{"type":"TakerPaymentValidatedAndConfirmed"}},{"timestamp":1608541837173,"event":{"type":"TakerPaymentSpent","data":{"tx_hex":"f9010782021a80830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8a402ed292b64bdf61f195a1767f547bb0886ed697f3c1a063ce928ff9a47222c0b5d099200000000000000000000000000000000000000000000000000016345785d8a0000dc45c1d22028970d8d30d1ddacbfc50eb92403b0d6076c94f2216c4c44512b410000000000000000000000002b294f029fde858b2c62184e8390591755521d8e000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa291ba053af89feb4ab066b26e76de9788c85ec1bf14ae6dcbdd7ff53e561e48e1b822ca043796d45bd4233500a120a1571b3fee95a34e8cc6b616c69552da4352c0d8e39","tx_hash":"d9a839c6eead3fbf538eca0a4ec39e28647104920a5c8b9c107524287dd90165"}}},{"timestamp":1608541837175,"event":{"type":"TakerPaymentSpendConfirmStarted"}},{"timestamp":1608541837612,"event":{"type":"TakerPaymentSpendConfirmed"}},{"timestamp":1608541837614,"event":{"type":"Finished"}}],"maker_amount":"0.1","maker_coin":"ETH","taker_amount":"0.1","taker_coin":"JST","gui":"nogui","mm_version":"1a6082121","success_events":["Started","Negotiated","TakerFeeValidated","MakerPaymentSent","TakerPaymentReceived","TakerPaymentWaitConfirmStarted","TakerPaymentValidatedAndConfirmed","TakerPaymentSpent","TakerPaymentSpendConfirmStarted","TakerPaymentSpendConfirmed","Finished"],"error_events":["StartFailed","NegotiateFailed","TakerFeeValidateFailed","MakerPaymentTransactionFailed","MakerPaymentDataSendFailed","MakerPaymentWaitConfirmFailed","TakerPaymentValidateFailed","TakerPaymentWaitConfirmFailed","TakerPaymentSpendFailed","TakerPaymentSpendConfirmFailed","MakerPaymentWaitRefundStarted","MakerPaymentRefunded","MakerPaymentRefundFailed"]}"#; let maker_saved_swap: MakerSavedSwap = json::from_str(maker_saved_json).unwrap(); TestCoin::ticker.mock_safe(|_| MockResult::Return("ticker")); @@ -2782,7 +2782,7 @@ mod maker_swap_tests { let (maker_swap, _) = MakerSwap::load_from_saved(ctx, maker_coin, taker_coin, maker_saved_swap).unwrap(); assert_eq!(unsafe { SWAP_CONTRACT_ADDRESS_CALLED }, 1); - let expected_addr = addr_from_str(ETH_DEV_SWAP_CONTRACT).unwrap(); + let expected_addr = addr_from_str(ETH_SEPOLIA_SWAP_CONTRACT).unwrap(); let expected = BytesJson::from(expected_addr.0.as_ref()); assert_eq!(maker_swap.r().data.maker_coin_swap_contract_address, Some(expected)); assert_eq!( diff --git a/mm2src/mm2_main/src/lp_swap/taker_swap.rs b/mm2src/mm2_main/src/lp_swap/taker_swap.rs index e4acf1b968..1364950e7f 100644 --- a/mm2src/mm2_main/src/lp_swap/taker_swap.rs +++ b/mm2src/mm2_main/src/lp_swap/taker_swap.rs @@ -2665,7 +2665,7 @@ mod taker_swap_tests { use coins::utxo::UtxoTx; use coins::{FoundSwapTxSpend, MarketCoinOps, MmCoin, SwapOps, TestCoin}; use common::{block_on, new_uuid}; - use mm2_test_helpers::for_tests::{mm_ctx_with_iguana, ETH_DEV_SWAP_CONTRACT}; + use mm2_test_helpers::for_tests::{mm_ctx_with_iguana, ETH_SEPOLIA_SWAP_CONTRACT}; use mocktopus::mocking::*; const PASSPHRASE: Option<&str> = @@ -3024,7 +3024,7 @@ mod taker_swap_tests { let ctx = mm_ctx_with_iguana(PASSPHRASE); // swap file contains only maker_coin_swap_contract_address - let taker_saved_json = r#"{"type":"Taker","uuid":"49c79ea4-e1eb-4fb2-a0ef-265bded0b77f","events":[{"timestamp":1608542326909,"event":{"type":"Started","data":{"taker_coin":"RICK","maker_coin":"ETH","maker":"c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","my_persistent_pub":"02031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3","lock_duration":7800,"maker_amount":"0.1","taker_amount":"0.1","maker_payment_confirmations":1,"maker_payment_requires_nota":false,"taker_payment_confirmations":0,"taker_payment_requires_nota":false,"taker_payment_lock":1608550126,"uuid":"49c79ea4-e1eb-4fb2-a0ef-265bded0b77f","started_at":1608542326,"maker_payment_wait":1608545446,"maker_coin_start_block":14360,"taker_coin_start_block":723123,"maker_coin_swap_contract_address":"83965c539899cc0f918552e5a26915de40ee8852"}}},{"timestamp":1608542327416,"event":{"type":"Negotiated","data":{"maker_payment_locktime":1608557926,"maker_pubkey":"03c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","secret_hash":"8b0221f3b977c1c65dddf17c1c28e2bbced9e7b4"}}},{"timestamp":1608542332604,"event":{"type":"TakerFeeSent","data":{"tx_hex":"0400008085202f89011ca964f77200b73d64b481f47de84098041d3470d6256e44f2741f080e2b11cf020000006b4830450221008a064f5e51ef8281d43eb7bcd016fed7e560ea1eb7b0713ec977602c96d8f79b02205bfaa6655b849b9922c03276b938273f2edb8fb9ffcaa2a9212d7220560f6060012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff0246320000000000001976a914ca1e04745e8ca0c60d8c5881531d51bec470743f88ac62752e27000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac7768e05f000000000000000000000000000000","tx_hash":"3793df28ed2aac6188d2c48ec65eff12eea301089d60da655fc96f598326d708"}}},{"timestamp":1608542334018,"event":{"type":"MakerPaymentReceived","data":{"tx_hex":"f8ef82021c80830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd88016345785d8a0000b884152cf3af50aebafeaf827c62c2eed09e265fa5aa9e013c0f27f0a88259f1aaa1279f0c32000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa298b0221f3b977c1c65dddf17c1c28e2bbced9e7b4000000000000000000000000000000000000000000000000000000000000000000000000000000005fe0a5661ba0f18a0c5c349462b51dacd1a0761e4997d4572a01e48480c4e310d69a40308ad3a04510513f01a79c59f22c9cb79952547c8dfc4c74785b630f512d64369323e0c1","tx_hash":"6782323490584a2bc768cd5199506bfa1ed91e7515b35bb72fa269604b7dc0aa"}}},{"timestamp":1608542334019,"event":{"type":"MakerPaymentWaitConfirmStarted"}},{"timestamp":1608542334825,"event":{"type":"MakerPaymentValidatedAndConfirmed"}},{"timestamp":1608542337671,"event":{"type":"TakerPaymentSent","data":{"tx_hex":"0400008085202f890108d72683596fc95f65da609d0801a3ee12ff5ec68ec4d28861ac2aed28df9337010000006b48304502210086a03db599438b243bee2b02af56e23447f85d09854416b51305536b9ca5890e02204b288acdea4cdc7ab1ffbd9766a7bdf95f5bd02d2917dfb7089dbf29032591b0012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff03809698000000000017a914888e9e1816214c3960eac7b55e35521ca4426b0c870000000000000000166a148b0221f3b977c1c65dddf17c1c28e2bbced9e7b4fada9526000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac7f68e05f000000000000000000000000000000","tx_hash":"44fa493757df5fdca823bbac05a8b8feb5862d799d4947fd544abcd129feceea"}}},{"timestamp":1608542348271,"event":{"type":"TakerPaymentSpent","data":{"transaction":{"tx_hex":"0400008085202f8901eacefe29d1bc4a54fd47499d792d86b5feb8a805acbb23a8dc5fdf573749fa4400000000d74730440220508c853cc4f1fcb9e6aa00e704eef99adaee9a4ea63a1fd6393bb7ff18da02c802200396bb5d52157bd77ff26ac521ed75aca388d3ec1e5e3ebb7b3aed73c3d33ec50120df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e004c6b6304ee86e05fb1752102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ac6782012088a9148b0221f3b977c1c65dddf17c1c28e2bbced9e7b4882103c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3edac68ffffffff0198929800000000001976a9146d9d2b554d768232320587df75c4338ecc8bf37d88ac725ae05f000000000000000000000000000000","tx_hash":"9376dde62249802a0aba8259f51def9bb2e509af85a5ec7df04b479a9da28a29"},"secret":"df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e"}}},{"timestamp":1608542349372,"event":{"type":"MakerPaymentSpent","data":{"tx_hex":"f90107821fb980830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8a402ed292b50aebafeaf827c62c2eed09e265fa5aa9e013c0f27f0a88259f1aaa1279f0c32000000000000000000000000000000000000000000000000016345785d8a0000df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b2d0d6c2c785217457b69b922a2a9cea98f71e91ca0ed6a4942a78c7ae6eb3c9dec496459a9ef68b34cb389acd939d13d3ecaf7e4aca021bb77e80fc60acf25a7a01cc1272b1b76594a521fb1abe1322d650e58a672c2","tx_hash":"c2d206e665aee159a5ab9aff60f76444e97bdad8f9152eccb6ca07d9204974ca"}}},{"timestamp":1608542349373,"event":{"type":"Finished"}}],"maker_amount":"0.1","maker_coin":"ETH","taker_amount":"0.1","taker_coin":"RICK","gui":"nogui","mm_version":"1a6082121","success_events":["Started","Negotiated","TakerFeeSent","MakerPaymentReceived","MakerPaymentWaitConfirmStarted","MakerPaymentValidatedAndConfirmed","TakerPaymentSent","TakerPaymentSpent","MakerPaymentSpent","Finished"],"error_events":["StartFailed","NegotiateFailed","TakerFeeSendFailed","MakerPaymentValidateFailed","MakerPaymentWaitConfirmFailed","TakerPaymentTransactionFailed","TakerPaymentWaitConfirmFailed","TakerPaymentDataSendFailed","TakerPaymentWaitForSpendFailed","MakerPaymentSpendFailed","TakerPaymentWaitRefundStarted","TakerPaymentRefunded","TakerPaymentRefundedByWatcher","TakerPaymentRefundFailed"]}"#; + let taker_saved_json = r#"{"type":"Taker","uuid":"49c79ea4-e1eb-4fb2-a0ef-265bded0b77f","events":[{"timestamp":1608542326909,"event":{"type":"Started","data":{"taker_coin":"RICK","maker_coin":"ETH","maker":"c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","my_persistent_pub":"02031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3","lock_duration":7800,"maker_amount":"0.1","taker_amount":"0.1","maker_payment_confirmations":1,"maker_payment_requires_nota":false,"taker_payment_confirmations":0,"taker_payment_requires_nota":false,"taker_payment_lock":1608550126,"uuid":"49c79ea4-e1eb-4fb2-a0ef-265bded0b77f","started_at":1608542326,"maker_payment_wait":1608545446,"maker_coin_start_block":14360,"taker_coin_start_block":723123,"maker_coin_swap_contract_address":"eA6D65434A15377081495a9E7C5893543E7c32cB"}}},{"timestamp":1608542327416,"event":{"type":"Negotiated","data":{"maker_payment_locktime":1608557926,"maker_pubkey":"03c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3ed","secret_hash":"8b0221f3b977c1c65dddf17c1c28e2bbced9e7b4"}}},{"timestamp":1608542332604,"event":{"type":"TakerFeeSent","data":{"tx_hex":"0400008085202f89011ca964f77200b73d64b481f47de84098041d3470d6256e44f2741f080e2b11cf020000006b4830450221008a064f5e51ef8281d43eb7bcd016fed7e560ea1eb7b0713ec977602c96d8f79b02205bfaa6655b849b9922c03276b938273f2edb8fb9ffcaa2a9212d7220560f6060012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff0246320000000000001976a914ca1e04745e8ca0c60d8c5881531d51bec470743f88ac62752e27000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac7768e05f000000000000000000000000000000","tx_hash":"3793df28ed2aac6188d2c48ec65eff12eea301089d60da655fc96f598326d708"}}},{"timestamp":1608542334018,"event":{"type":"MakerPaymentReceived","data":{"tx_hex":"f8ef82021c80830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd88016345785d8a0000b884152cf3af50aebafeaf827c62c2eed09e265fa5aa9e013c0f27f0a88259f1aaa1279f0c32000000000000000000000000bab36286672fbdc7b250804bf6d14be0df69fa298b0221f3b977c1c65dddf17c1c28e2bbced9e7b4000000000000000000000000000000000000000000000000000000000000000000000000000000005fe0a5661ba0f18a0c5c349462b51dacd1a0761e4997d4572a01e48480c4e310d69a40308ad3a04510513f01a79c59f22c9cb79952547c8dfc4c74785b630f512d64369323e0c1","tx_hash":"6782323490584a2bc768cd5199506bfa1ed91e7515b35bb72fa269604b7dc0aa"}}},{"timestamp":1608542334019,"event":{"type":"MakerPaymentWaitConfirmStarted"}},{"timestamp":1608542334825,"event":{"type":"MakerPaymentValidatedAndConfirmed"}},{"timestamp":1608542337671,"event":{"type":"TakerPaymentSent","data":{"tx_hex":"0400008085202f890108d72683596fc95f65da609d0801a3ee12ff5ec68ec4d28861ac2aed28df9337010000006b48304502210086a03db599438b243bee2b02af56e23447f85d09854416b51305536b9ca5890e02204b288acdea4cdc7ab1ffbd9766a7bdf95f5bd02d2917dfb7089dbf29032591b0012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff03809698000000000017a914888e9e1816214c3960eac7b55e35521ca4426b0c870000000000000000166a148b0221f3b977c1c65dddf17c1c28e2bbced9e7b4fada9526000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac7f68e05f000000000000000000000000000000","tx_hash":"44fa493757df5fdca823bbac05a8b8feb5862d799d4947fd544abcd129feceea"}}},{"timestamp":1608542348271,"event":{"type":"TakerPaymentSpent","data":{"transaction":{"tx_hex":"0400008085202f8901eacefe29d1bc4a54fd47499d792d86b5feb8a805acbb23a8dc5fdf573749fa4400000000d74730440220508c853cc4f1fcb9e6aa00e704eef99adaee9a4ea63a1fd6393bb7ff18da02c802200396bb5d52157bd77ff26ac521ed75aca388d3ec1e5e3ebb7b3aed73c3d33ec50120df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e004c6b6304ee86e05fb1752102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ac6782012088a9148b0221f3b977c1c65dddf17c1c28e2bbced9e7b4882103c6a78589e18b482aea046975e6d0acbdea7bf7dbf04d9d5bd67fda917815e3edac68ffffffff0198929800000000001976a9146d9d2b554d768232320587df75c4338ecc8bf37d88ac725ae05f000000000000000000000000000000","tx_hash":"9376dde62249802a0aba8259f51def9bb2e509af85a5ec7df04b479a9da28a29"},"secret":"df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e"}}},{"timestamp":1608542349372,"event":{"type":"MakerPaymentSpent","data":{"tx_hex":"f90107821fb980830249f094a09ad3cd7e96586ebd05a2607ee56b56fb2db8fd80b8a402ed292b50aebafeaf827c62c2eed09e265fa5aa9e013c0f27f0a88259f1aaa1279f0c32000000000000000000000000000000000000000000000000016345785d8a0000df871242dcbcc4fe9ed4d3413e21b2f8ce606a3ee7128c9b2d2e31fcedc1848e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b2d0d6c2c785217457b69b922a2a9cea98f71e91ca0ed6a4942a78c7ae6eb3c9dec496459a9ef68b34cb389acd939d13d3ecaf7e4aca021bb77e80fc60acf25a7a01cc1272b1b76594a521fb1abe1322d650e58a672c2","tx_hash":"c2d206e665aee159a5ab9aff60f76444e97bdad8f9152eccb6ca07d9204974ca"}}},{"timestamp":1608542349373,"event":{"type":"Finished"}}],"maker_amount":"0.1","maker_coin":"ETH","taker_amount":"0.1","taker_coin":"RICK","gui":"nogui","mm_version":"1a6082121","success_events":["Started","Negotiated","TakerFeeSent","MakerPaymentReceived","MakerPaymentWaitConfirmStarted","MakerPaymentValidatedAndConfirmed","TakerPaymentSent","TakerPaymentSpent","MakerPaymentSpent","Finished"],"error_events":["StartFailed","NegotiateFailed","TakerFeeSendFailed","MakerPaymentValidateFailed","MakerPaymentWaitConfirmFailed","TakerPaymentTransactionFailed","TakerPaymentWaitConfirmFailed","TakerPaymentDataSendFailed","TakerPaymentWaitForSpendFailed","MakerPaymentSpendFailed","TakerPaymentWaitRefundStarted","TakerPaymentRefunded","TakerPaymentRefundedByWatcher","TakerPaymentRefundFailed"]}"#; let taker_saved_swap: TakerSavedSwap = json::from_str(taker_saved_json).unwrap(); TestCoin::ticker.mock_safe(|_| MockResult::Return("ticker")); @@ -3044,7 +3044,7 @@ mod taker_swap_tests { .unwrap(); assert_eq!(unsafe { SWAP_CONTRACT_ADDRESS_CALLED }, 1); - let expected_addr = addr_from_str(ETH_DEV_SWAP_CONTRACT).unwrap(); + let expected_addr = addr_from_str(ETH_SEPOLIA_SWAP_CONTRACT).unwrap(); let expected = BytesJson::from(expected_addr.0.as_ref()); assert_eq!(taker_swap.r().data.maker_coin_swap_contract_address, Some(expected)); assert_eq!( diff --git a/mm2src/mm2_main/tests/docker_tests/docker_tests_common.rs b/mm2src/mm2_main/tests/docker_tests/docker_tests_common.rs index ac099fcc16..9b11c46e3e 100644 --- a/mm2src/mm2_main/tests/docker_tests/docker_tests_common.rs +++ b/mm2src/mm2_main/tests/docker_tests/docker_tests_common.rs @@ -2,17 +2,16 @@ pub use common::{block_on, now_ms, now_sec, wait_until_ms, wait_until_sec}; pub use mm2_number::MmNumber; use mm2_rpc::data::legacy::BalanceResponse; pub use mm2_test_helpers::for_tests::{check_my_swap_status, check_recent_swaps, enable_eth_coin, enable_native, - enable_native_bch, erc20_dev_conf, eth_dev_conf, eth_jst_testnet_conf, - eth_sepolia_conf, eth_testnet_conf, jst_sepolia_conf, mm_dump, - wait_check_stats_swap_status, MarketMakerIt, ETH_DEV_NODES, - ETH_DEV_SWAP_CONTRACT, ETH_DEV_TOKEN_CONTRACT, MAKER_ERROR_EVENTS, - MAKER_SUCCESS_EVENTS, TAKER_ERROR_EVENTS, TAKER_SUCCESS_EVENTS}; + enable_native_bch, erc20_dev_conf, eth_dev_conf, eth_sepolia_conf, + eth_testnet_conf, jst_sepolia_conf, mm_dump, wait_check_stats_swap_status, + MarketMakerIt, MAKER_ERROR_EVENTS, MAKER_SUCCESS_EVENTS, TAKER_ERROR_EVENTS, + TAKER_SUCCESS_EVENTS}; use super::eth_docker_tests::{erc20_contract_checksum, fill_eth, fill_eth_erc20_with_private_key, geth_account, swap_contract}; use bitcrypto::{dhash160, ChecksumType}; use chain::TransactionOutput; -use coins::eth::{addr_from_raw_pubkey, eth_coin_from_conf_and_request, EthCoin}; +use coins::eth::addr_from_raw_pubkey; use coins::qrc20::rpc_clients::for_tests::Qrc20NativeWalletOps; use coins::qrc20::{qrc20_coin_with_priv_key, Qrc20ActivationParams, Qrc20Coin}; use coins::utxo::bch::{bch_coin_with_priv_key, BchActivationRequest, BchCoin}; @@ -23,7 +22,7 @@ use coins::utxo::utxo_common::send_outputs_from_my_address; use coins::utxo::utxo_standard::{utxo_standard_coin_with_priv_key, UtxoStandardCoin}; use coins::utxo::{coin_daemon_data_dir, sat_from_big_decimal, zcash_params_path, UtxoActivationParams, UtxoAddressFormat, UtxoCoinFields, UtxoCommonOps}; -use coins::{CoinProtocol, ConfirmPaymentInput, MarketCoinOps, PrivKeyBuildPolicy, Transaction}; +use coins::{ConfirmPaymentInput, MarketCoinOps, Transaction}; use crypto::privkey::key_pair_from_seed; use crypto::Secp256k1Secret; use ethabi::Token; @@ -64,7 +63,6 @@ lazy_static! { // Due to the SLP protocol limitations only 19 outputs (18 + change) can be sent in one transaction, which is sufficient for now though. // Supply more privkeys when 18 will be not enough. pub static ref SLP_TOKEN_OWNERS: Mutex> = Mutex::new(Vec::with_capacity(18)); - static ref ETH_DISTRIBUTOR: EthCoin = eth_distributor(); pub static ref MM_CTX: MmArc = MmCtxBuilder::new().into_mm_arc(); pub static ref GETH_WEB3: Web3 = Web3::new(Http::new(GETH_RPC_URL).unwrap()); // Mutex used to prevent nonce re-usage during funding addresses used in tests @@ -179,38 +177,6 @@ pub struct BchDockerOps { coin: BchCoin, } -// builds the EthCoin using the external dev Parity/OpenEthereum node -// the address belonging to the default passphrase has million of ETH that it can distribute to -// random privkeys generated in tests -pub fn eth_distributor() -> EthCoin { - let req = json!({ - "method": "enable", - "coin": "ETH", - "urls": ETH_DEV_NODES, - "swap_contract_address": ETH_DEV_SWAP_CONTRACT, - }); - let alice_passphrase = get_passphrase!(".env.client", "ALICE_PASSPHRASE").unwrap(); - let keypair = key_pair_from_seed(&alice_passphrase).unwrap(); - let priv_key_policy = PrivKeyBuildPolicy::IguanaPrivKey(keypair.private().secret); - block_on(eth_coin_from_conf_and_request( - &MM_CTX, - "ETH", - ð_testnet_conf(), - &req, - CoinProtocol::ETH, - priv_key_policy, - )) - .unwrap() -} - -// pass address without 0x prefix to this fn -pub fn _fill_eth(to_addr: &str) { - ETH_DISTRIBUTOR - .send_to_address(to_addr.parse().unwrap(), 1_000_000_000_000_000_000u64.into()) - .wait() - .unwrap(); -} - impl BchDockerOps { pub fn from_ticker(ticker: &str) -> BchDockerOps { let conf = json!({"asset": ticker,"txfee":1000,"network": "regtest","txversion":4,"overwintered":1}); diff --git a/mm2src/mm2_main/tests/docker_tests/docker_tests_inner.rs b/mm2src/mm2_main/tests/docker_tests/docker_tests_inner.rs index b49c3950ce..7f061dd21a 100644 --- a/mm2src/mm2_main/tests/docker_tests/docker_tests_inner.rs +++ b/mm2src/mm2_main/tests/docker_tests/docker_tests_inner.rs @@ -4042,7 +4042,11 @@ fn test_withdraw_and_send_eth_erc20() { fn test_withdraw_and_send_hd_eth_erc20() { const PASSPHRASE: &str = "tank abandon bind salon remove wisdom net size aspect direct source fossil"; - let KeyPairPolicy::GlobalHDAccount(hd_acc) = CryptoCtx::init_with_global_hd_account(MM_CTX.clone(), PASSPHRASE).unwrap().key_pair_policy().clone() else { + let KeyPairPolicy::GlobalHDAccount(hd_acc) = CryptoCtx::init_with_global_hd_account(MM_CTX.clone(), PASSPHRASE) + .unwrap() + .key_pair_policy() + .clone() + else { panic!("Expected 'KeyPairPolicy::GlobalHDAccount'"); }; diff --git a/mm2src/mm2_main/tests/docker_tests/swap_watcher_tests.rs b/mm2src/mm2_main/tests/docker_tests/swap_watcher_tests.rs index cb11ff351a..635b14d439 100644 --- a/mm2src/mm2_main/tests/docker_tests/swap_watcher_tests.rs +++ b/mm2src/mm2_main/tests/docker_tests/swap_watcher_tests.rs @@ -1,4 +1,4 @@ -use crate::docker_tests::docker_tests_common::{eth_distributor, GETH_RPC_URL}; +use crate::docker_tests::docker_tests_common::GETH_RPC_URL; use crate::docker_tests::eth_docker_tests::{erc20_coin_with_random_privkey, erc20_contract_checksum, eth_coin_with_random_privkey, watchers_swap_contract}; use crate::integration_tests_common::*; @@ -3285,7 +3285,7 @@ fn test_send_taker_payment_refund_preimage_utxo() { fn test_watcher_reward() { let timeout = wait_until_sec(300); // timeout if test takes more than 300 seconds to run let (_ctx, utxo_coin, _) = generate_utxo_coin_with_random_privkey("MYCOIN", 1000u64.into()); - let eth_coin = eth_distributor(); + let eth_coin = eth_coin_with_random_privkey(watchers_swap_contract()); let watcher_reward = block_on(eth_coin.get_taker_watcher_reward(&MmCoinEnum::EthCoin(eth_coin.clone()), None, None, None, timeout)) diff --git a/mm2src/mm2_main/tests/mm2_tests/best_orders_tests.rs b/mm2src/mm2_main/tests/mm2_tests/best_orders_tests.rs index b836ed62c7..80b751b2ff 100644 --- a/mm2src/mm2_main/tests/mm2_tests/best_orders_tests.rs +++ b/mm2src/mm2_main/tests/mm2_tests/best_orders_tests.rs @@ -3,9 +3,9 @@ use common::{block_on, log}; use http::StatusCode; use mm2_number::BigDecimal; use mm2_rpc::data::legacy::CoinInitResponse; -use mm2_test_helpers::for_tests::{best_orders_v2, best_orders_v2_by_number, eth_jst_testnet_conf, eth_testnet_conf, - get_passphrase, morty_conf, rick_conf, tbtc_conf, tbtc_segwit_conf, MarketMakerIt, - Mm2TestConf, DOC_ELECTRUM_ADDRS, ETH_DEV_NODES, TBTC_ELECTRUMS}; +use mm2_test_helpers::for_tests::{best_orders_v2, best_orders_v2_by_number, get_passphrase, morty_conf, rick_conf, + tbtc_conf, tbtc_segwit_conf, MarketMakerIt, Mm2TestConf, DOC_ELECTRUM_ADDRS, + MARTY_ELECTRUM_ADDRS, TBTC_ELECTRUMS}; use mm2_test_helpers::structs::{BestOrdersResponse, SetPriceResponse}; use serde_json::{self as json, json}; use std::collections::BTreeSet; @@ -17,7 +17,7 @@ use uuid::Uuid; #[test] #[cfg(not(target_arch = "wasm32"))] fn test_best_orders_v2_exclude_mine() { - let coins = json!([rick_conf(), morty_conf(), eth_testnet_conf(), eth_jst_testnet_conf()]); + let coins = json!([rick_conf(), morty_conf()]); let bob_passphrase = get_passphrase(&".env.seed", "BOB_PASSPHRASE").unwrap(); let mm_bob = MarketMakerIt::start( json! ({ @@ -37,7 +37,8 @@ fn test_best_orders_v2_exclude_mine() { .unwrap(); thread::sleep(Duration::from_secs(2)); - let _ = block_on(enable_coins_eth_electrum(&mm_bob, ETH_DEV_NODES, None)); + let _ = block_on(enable_electrum(&mm_bob, "RICK", false, DOC_ELECTRUM_ADDRS, None)); + let _ = block_on(enable_electrum(&mm_bob, "MORTY", false, MARTY_ELECTRUM_ADDRS, None)); let bob_orders = [ ("RICK", "MORTY", "0.9", "0.9", None), ("RICK", "MORTY", "0.8", "0.9", None), @@ -79,7 +80,8 @@ fn test_best_orders_v2_exclude_mine() { .unwrap(); thread::sleep(Duration::from_secs(2)); - let _ = block_on(enable_coins_eth_electrum(&mm_alice, ETH_DEV_NODES, None)); + let _ = block_on(enable_electrum(&mm_alice, "RICK", false, DOC_ELECTRUM_ADDRS, None)); + let _ = block_on(enable_electrum(&mm_alice, "MORTY", false, MARTY_ELECTRUM_ADDRS, None)); let alice_orders = [("RICK", "MORTY", "0.85", "1", None)]; let mut alice_order_ids = BTreeSet::::new(); for (base, rel, price, volume, min_volume) in alice_orders.iter() { diff --git a/mm2src/mm2_main/tests/mm2_tests/eth_tests.rs b/mm2src/mm2_main/tests/mm2_tests/eth_tests.rs index 25d4bff9f4..470a8b2b48 100644 --- a/mm2src/mm2_main/tests/mm2_tests/eth_tests.rs +++ b/mm2src/mm2_main/tests/mm2_tests/eth_tests.rs @@ -1,7 +1,7 @@ use common::block_on; use http::StatusCode; -use mm2_test_helpers::for_tests::{eth_testnet_conf, get_passphrase, MarketMakerIt, Mm2TestConf, ETH_DEV_NODES, - ETH_DEV_SWAP_CONTRACT}; +use mm2_test_helpers::for_tests::{eth_testnet_conf, get_passphrase, MarketMakerIt, Mm2TestConf, ETH_SEPOLIA_NODE, + ETH_SEPOLIA_SWAP_CONTRACT}; use serde_json::{json, Value as Json}; use std::str::FromStr; @@ -12,7 +12,7 @@ fn test_sign_eth_transaction() { let coins = json!([eth_testnet_conf()]); let conf = Mm2TestConf::seednode(&passphrase, &coins); let mm = block_on(MarketMakerIt::start_async(conf.conf, conf.rpc_password, None)).unwrap(); - block_on(enable_eth(&mm, "ETH", ETH_DEV_NODES)); + block_on(enable_eth(&mm, "ETH", ETH_SEPOLIA_NODE)); let signed_tx = block_on(call_sign_eth_transaction( &mm, "ETH", @@ -32,7 +32,7 @@ async fn enable_eth(mm: &MarketMakerIt, platform_coin: &str, nodes: &[&str]) -> "method": "enable", "coin": platform_coin, "urls": nodes, - "swap_contract_address": ETH_DEV_SWAP_CONTRACT, + "swap_contract_address": ETH_SEPOLIA_SWAP_CONTRACT, "mm2": 1, })) .await diff --git a/mm2src/mm2_main/tests/mm2_tests/mm2_tests_inner.rs b/mm2src/mm2_main/tests/mm2_tests/mm2_tests_inner.rs index ac4cf569a1..d90718508d 100644 --- a/mm2src/mm2_main/tests/mm2_tests/mm2_tests_inner.rs +++ b/mm2src/mm2_main/tests/mm2_tests/mm2_tests_inner.rs @@ -19,8 +19,8 @@ use mm2_test_helpers::for_tests::{btc_segwit_conf, btc_with_spv_conf, btc_with_s start_swaps, tbtc_segwit_conf, tbtc_with_spv_conf, test_qrc20_history_impl, tqrc20_conf, verify_message, wait_for_swaps_finish_and_check_status, wait_till_history_has_records, MarketMakerIt, Mm2InitPrivKeyPolicy, Mm2TestConf, - Mm2TestConfForSwap, RaiiDump, DOC_ELECTRUM_ADDRS, ETH_DEV_NODES, - ETH_DEV_SWAP_CONTRACT, ETH_MAINNET_NODE, ETH_MAINNET_SWAP_CONTRACT, + Mm2TestConfForSwap, RaiiDump, DOC_ELECTRUM_ADDRS, ETH_MAINNET_NODE, + ETH_MAINNET_SWAP_CONTRACT, ETH_SEPOLIA_NODE, ETH_SEPOLIA_SWAP_CONTRACT, MARTY_ELECTRUM_ADDRS, MORTY, QRC20_ELECTRUMS, RICK, RICK_ELECTRUM_ADDRS, TBTC_ELECTRUMS, T_BCH_ELECTRUMS}; use mm2_test_helpers::get_passphrase; @@ -737,7 +737,6 @@ async fn trade_base_rel_electrum( let coins = json!([ rick_conf(), morty_conf(), - eth_testnet_conf(), {"coin":"ZOMBIE","asset":"ZOMBIE","fname":"ZOMBIE (TESTCOIN)","txversion":4,"overwintered":1,"mm2":1,"protocol":{"type":"ZHTLC"},"required_confirmations":0}, ]); @@ -793,12 +792,23 @@ async fn trade_base_rel_electrum( log!("enable ZOMBIE alice {:?}", zombie_alice); } // Enable coins on Bob side. Print the replies in case we need the address. - let rc = enable_coins_eth_electrum(&mm_bob, ETH_DEV_NODES, bob_path_to_address).await; - log!("enable_coins (bob): {:?}", rc); + let rc = enable_electrum(&mm_bob, "RICK", false, DOC_ELECTRUM_ADDRS, bob_path_to_address.clone()).await; + log!("enable RICK (bob): {:?}", rc); + let rc = enable_electrum(&mm_bob, "MORTY", false, MARTY_ELECTRUM_ADDRS, bob_path_to_address).await; + log!("enable MORTY (bob): {:?}", rc); // Enable coins on Alice side. Print the replies in case we need the address. - let rc = enable_coins_eth_electrum(&mm_alice, ETH_DEV_NODES, alice_path_to_address).await; - log!("enable_coins (alice): {:?}", rc); + let rc = enable_electrum( + &mm_alice, + "RICK", + false, + DOC_ELECTRUM_ADDRS, + alice_path_to_address.clone(), + ) + .await; + log!("enable RICK (alice): {:?}", rc); + let rc = enable_electrum(&mm_alice, "MORTY", false, MARTY_ELECTRUM_ADDRS, alice_path_to_address).await; + log!("enable MORTY (alice): {:?}", rc); let uuids = start_swaps(&mut mm_bob, &mut mm_alice, pairs, maker_price, taker_price, volume).await; @@ -2150,7 +2160,7 @@ fn test_show_priv_key() { log!("Log path: {}", mm.log_path.display()); log!( "enable_coins: {:?}", - block_on(enable_coins_eth_electrum(&mm, ETH_DEV_NODES, None)) + block_on(enable_coins_eth_electrum(&mm, ETH_SEPOLIA_NODE, None)) ); check_priv_key(&mm, "RICK", "UvCjJf4dKSs2vFGVtCnUTAhR5FTZGdg43DDRa9s7s5DV1sSDX14g"); @@ -2238,9 +2248,9 @@ fn test_electrum_and_enable_response() { "userpass": mm.userpass, "method": "enable", "coin": "ETH", - "urls": ETH_DEV_NODES, + "urls": ETH_SEPOLIA_NODE, "mm2": 1, - "swap_contract_address": ETH_DEV_SWAP_CONTRACT, + "swap_contract_address": ETH_SEPOLIA_SWAP_CONTRACT, "required_confirmations": 10, "requires_notarization": true }))) @@ -2885,7 +2895,7 @@ fn test_convert_eth_address() { let (_dump_log, _dump_dashboard) = mm.mm_dump(); log!("log path: {}", mm.log_path.display()); - block_on(enable_native(&mm, "ETH", ETH_DEV_NODES, None)); + block_on(enable_native(&mm, "ETH", ETH_SEPOLIA_NODE, None)); // test single-case to mixed-case let rc = block_on(mm.rpc(&json! ({ @@ -3350,7 +3360,7 @@ fn test_validateaddress() { .unwrap(); let (_dump_log, _dump_dashboard) = mm.mm_dump(); log!("Log path: {}", mm.log_path.display()); - log!("{:?}", block_on(enable_coins_eth_electrum(&mm, ETH_DEV_NODES, None))); + log!("{:?}", block_on(enable_coins_eth_electrum(&mm, ETH_SEPOLIA_NODE, None))); // test valid RICK address @@ -5510,7 +5520,7 @@ fn test_sign_verify_message_eth() { // Enable coins on Bob side. Print the replies in case we need the "address". log!( "enable_coins (bob): {:?}", - block_on(enable_native(&mm_bob, "ETH", ETH_DEV_NODES, None)) + block_on(enable_native(&mm_bob, "ETH", ETH_SEPOLIA_NODE, None)) ); let response = block_on(sign_message(&mm_bob, "ETH")); diff --git a/mm2src/mm2_main/tests/mm2_tests/orderbook_sync_tests.rs b/mm2src/mm2_main/tests/mm2_tests/orderbook_sync_tests.rs index 9bfba4ca1d..d27d646190 100644 --- a/mm2src/mm2_main/tests/mm2_tests/orderbook_sync_tests.rs +++ b/mm2src/mm2_main/tests/mm2_tests/orderbook_sync_tests.rs @@ -1,15 +1,13 @@ -use crate::integration_tests_common::{enable_coins_eth_electrum, enable_coins_rick_morty_electrum, enable_electrum, - enable_electrum_json}; +use crate::integration_tests_common::{enable_coins_rick_morty_electrum, enable_electrum, enable_electrum_json}; use common::{block_on, log}; use http::StatusCode; use mm2_main::mm2::lp_ordermatch::MIN_ORDER_KEEP_ALIVE_INTERVAL; use mm2_number::{BigDecimal, BigRational, MmNumber}; use mm2_rpc::data::legacy::{AggregatedOrderbookEntry, CoinInitResponse, OrderbookResponse}; use mm2_test_helpers::electrums::doc_electrums; -use mm2_test_helpers::for_tests::{enable_z_coin_light, eth_testnet_conf, get_passphrase, morty_conf, orderbook_v2, - rick_conf, zombie_conf, MarketMakerIt, Mm2TestConf, DOC_ELECTRUM_ADDRS, - ETH_DEV_NODES, MARTY_ELECTRUM_ADDRS, RICK, ZOMBIE_ELECTRUMS, - ZOMBIE_LIGHTWALLETD_URLS, ZOMBIE_TICKER}; +use mm2_test_helpers::for_tests::{enable_z_coin_light, get_passphrase, morty_conf, orderbook_v2, rick_conf, + zombie_conf, MarketMakerIt, Mm2TestConf, DOC_ELECTRUM_ADDRS, MARTY_ELECTRUM_ADDRS, + RICK, ZOMBIE_ELECTRUMS, ZOMBIE_LIGHTWALLETD_URLS, ZOMBIE_TICKER}; use mm2_test_helpers::get_passphrase; use mm2_test_helpers::structs::{GetPublicKeyResult, OrderbookV2Response, RpcV2Response, SetPriceResponse}; use serde_json::{self as json, json, Value as Json}; @@ -1047,7 +1045,7 @@ fn orderbook_should_display_base_rel_volumes() { fn orderbook_should_work_without_coins_activation() { let bob_passphrase = get_passphrase(&".env.seed", "BOB_PASSPHRASE").unwrap(); - let coins = json!([rick_conf(), morty_conf(), eth_testnet_conf()]); + let coins = json!([rick_conf(), morty_conf()]); let mm_bob = MarketMakerIt::start( json!({ @@ -1089,10 +1087,10 @@ fn orderbook_should_work_without_coins_activation() { let (_alice_dump_log, _alice_dump_dashboard) = mm_alice.mm_dump(); log!("Alice log path: {}", mm_alice.log_path.display()); - log!( - "enable_coins (bob): {:?}", - block_on(enable_coins_eth_electrum(&mm_bob, ETH_DEV_NODES, None)) - ); + let electrum = block_on(enable_electrum(&mm_bob, "RICK", false, DOC_ELECTRUM_ADDRS, None)); + log!("enable RICK on Bob: {:?}", electrum); + let electrum = block_on(enable_electrum(&mm_bob, "MORTY", false, MARTY_ELECTRUM_ADDRS, None)); + log!("enable MORTY on Bob: {:?}", electrum); let rc = block_on(mm_bob.rpc(&json!({ "userpass": mm_bob.userpass, @@ -1199,7 +1197,7 @@ fn test_all_orders_per_pair_per_node_must_be_displayed_in_orderbook() { fn setprice_min_volume_should_be_displayed_in_orderbook() { let bob_passphrase = get_passphrase(&".env.seed", "BOB_PASSPHRASE").unwrap(); - let coins = json!([rick_conf(), morty_conf(), eth_testnet_conf()]); + let coins = json!([rick_conf(), morty_conf()]); let mm_bob = MarketMakerIt::start( json!({ @@ -1241,14 +1239,15 @@ fn setprice_min_volume_should_be_displayed_in_orderbook() { let (_alice_dump_log, _alice_dump_dashboard) = mm_alice.mm_dump(); log!("Alice log path: {}", mm_alice.log_path.display()); - log!( - "enable_coins (bob): {:?}", - block_on(enable_coins_eth_electrum(&mm_bob, ETH_DEV_NODES, None)) - ); - log!( - "enable_coins (alice): {:?}", - block_on(enable_coins_eth_electrum(&mm_alice, ETH_DEV_NODES, None)) - ); + let electrum = block_on(enable_electrum(&mm_bob, "RICK", false, DOC_ELECTRUM_ADDRS, None)); + log!("enable RICK on Bob: {:?}", electrum); + let electrum = block_on(enable_electrum(&mm_bob, "MORTY", false, MARTY_ELECTRUM_ADDRS, None)); + log!("enable MORTY on Bob: {:?}", electrum); + + let electrum = block_on(enable_electrum(&mm_alice, "RICK", false, DOC_ELECTRUM_ADDRS, None)); + log!("enable RICK on Alice: {:?}", electrum); + let electrum = block_on(enable_electrum(&mm_alice, "MORTY", false, MARTY_ELECTRUM_ADDRS, None)); + log!("enable MORTY on Alice: {:?}", electrum); // issue orderbook call on Alice side to trigger subscription to a topic block_on(mm_alice.rpc(&json!({ diff --git a/mm2src/mm2_test_helpers/src/for_tests.rs b/mm2src/mm2_test_helpers/src/for_tests.rs index f10388fb52..fc86b22c17 100644 --- a/mm2src/mm2_test_helpers/src/for_tests.rs +++ b/mm2src/mm2_test_helpers/src/for_tests.rs @@ -233,12 +233,6 @@ pub const TBTC_ELECTRUMS: &[&str] = &[ pub const ETH_MAINNET_NODE: &str = "https://mainnet.infura.io/v3/c01c1b4cf66642528547624e1d6d9d6b"; pub const ETH_MAINNET_SWAP_CONTRACT: &str = "0x24abe4c71fc658c91313b6552cd40cd808b3ea80"; -pub const ETH_DEV_NODE: &str = "http://195.201.137.5:8545"; -pub const ETH_DEV_NODES: &[&str] = &["http://195.201.137.5:8545"]; -pub const ETH_DEV_SWAP_CONTRACT: &str = "0x83965c539899cc0f918552e5a26915de40ee8852"; -pub const ETH_DEV_FALLBACK_CONTRACT: &str = "0xEA6CFe3D0f6B8814A88027b9cA865b82816409a4"; -pub const ETH_DEV_TOKEN_CONTRACT: &str = "0x6c2858f6aFaC835c43ffDa248aFA167e1a58436C"; - pub const ETH_SEPOLIA_NODE: &[&str] = &["https://rpc2.sepolia.org"]; pub const ETH_SEPOLIA_SWAP_CONTRACT: &str = "0xeA6D65434A15377081495a9E7C5893543E7c32cB"; pub const ETH_SEPOLIA_TOKEN_CONTRACT: &str = "0x09d0d71FBC00D7CCF9CFf132f5E6825C88293F19"; @@ -864,7 +858,7 @@ pub fn eth_jst_testnet_conf() -> Json { "type": "ERC20", "protocol_data": { "platform": "ETH", - "contract_address": ETH_DEV_TOKEN_CONTRACT + "contract_address": ETH_SEPOLIA_TOKEN_CONTRACT } } }) @@ -1873,7 +1867,7 @@ pub async fn enable_native( "coin": coin, "urls": urls, // Dev chain swap contract address - "swap_contract_address": ETH_DEV_SWAP_CONTRACT, + "swap_contract_address": ETH_SEPOLIA_SWAP_CONTRACT, "path_to_address": path_to_address.unwrap_or_default(), "mm2": 1, }))