Skip to content
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
48 changes: 34 additions & 14 deletions masq_lib/src/blockchains/blockchain_records.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,75 @@

use crate::blockchains::chains::Chain;
use crate::constants::{
BASE_MAINNET_CONTRACT_CREATION_BLOCK, BASE_MAINNET_FULL_IDENTIFIER,
BASE_SEPOLIA_CONTRACT_CREATION_BLOCK, BASE_SEPOLIA_FULL_IDENTIFIER, DEV_CHAIN_FULL_IDENTIFIER,
ETH_MAINNET_CONTRACT_CREATION_BLOCK, ETH_MAINNET_FULL_IDENTIFIER,
BASE_GAS_PRICE_CEILING_WEI, BASE_MAINNET_CHAIN_ID, BASE_MAINNET_CONTRACT_CREATION_BLOCK,
BASE_MAINNET_FULL_IDENTIFIER, BASE_SEPOLIA_CHAIN_ID, BASE_SEPOLIA_CONTRACT_CREATION_BLOCK,
BASE_SEPOLIA_FULL_IDENTIFIER, DEV_CHAIN_FULL_IDENTIFIER, DEV_CHAIN_ID,
DEV_GAS_PRICE_CEILING_WEI, ETH_GAS_PRICE_CEILING_WEI, ETH_MAINNET_CHAIN_ID,
ETH_MAINNET_CONTRACT_CREATION_BLOCK, ETH_MAINNET_FULL_IDENTIFIER, ETH_ROPSTEN_CHAIN_ID,
ETH_ROPSTEN_CONTRACT_CREATION_BLOCK, ETH_ROPSTEN_FULL_IDENTIFIER,
MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK, POLYGON_AMOY_CONTRACT_CREATION_BLOCK,
POLYGON_AMOY_FULL_IDENTIFIER, POLYGON_MAINNET_CONTRACT_CREATION_BLOCK,
POLYGON_MAINNET_FULL_IDENTIFIER,
MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK, POLYGON_AMOY_CHAIN_ID,
POLYGON_AMOY_CONTRACT_CREATION_BLOCK, POLYGON_AMOY_FULL_IDENTIFIER,
POLYGON_GAS_PRICE_CEILING_WEI, POLYGON_MAINNET_CHAIN_ID,
POLYGON_MAINNET_CONTRACT_CREATION_BLOCK, POLYGON_MAINNET_FULL_IDENTIFIER,
};
use ethereum_types::{Address, H160};

// TODO these should probably be a static (it's a shame that we construct the data every time anew
// when we ask for the chain specs), and dynamic initialization should be allowed as well
pub const CHAINS: [BlockchainRecord; 7] = [
BlockchainRecord {
self_id: Chain::PolyMainnet,
num_chain_id: 137,
num_chain_id: POLYGON_MAINNET_CHAIN_ID,
literal_identifier: POLYGON_MAINNET_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: POLYGON_GAS_PRICE_CEILING_WEI,
contract: POLYGON_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_MAINNET_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::EthMainnet,
num_chain_id: 1,
num_chain_id: ETH_MAINNET_CHAIN_ID,
literal_identifier: ETH_MAINNET_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: ETH_GAS_PRICE_CEILING_WEI,
contract: ETH_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_MAINNET_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::BaseMainnet,
num_chain_id: 8453,
num_chain_id: BASE_MAINNET_CHAIN_ID,
literal_identifier: BASE_MAINNET_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: BASE_GAS_PRICE_CEILING_WEI,
contract: BASE_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_MAINNET_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::BaseSepolia,
num_chain_id: 84532,
num_chain_id: BASE_SEPOLIA_CHAIN_ID,
literal_identifier: BASE_SEPOLIA_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: BASE_GAS_PRICE_CEILING_WEI,
contract: BASE_SEPOLIA_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_SEPOLIA_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::PolyAmoy,
num_chain_id: 80002,
num_chain_id: POLYGON_AMOY_CHAIN_ID,
literal_identifier: POLYGON_AMOY_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: POLYGON_GAS_PRICE_CEILING_WEI,
contract: POLYGON_AMOY_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_AMOY_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::EthRopsten,
num_chain_id: 3,
num_chain_id: ETH_ROPSTEN_CHAIN_ID,
literal_identifier: ETH_ROPSTEN_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: ETH_GAS_PRICE_CEILING_WEI,
contract: ETH_ROPSTEN_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_ROPSTEN_CONTRACT_CREATION_BLOCK,
},
BlockchainRecord {
self_id: Chain::Dev,
num_chain_id: 2,
num_chain_id: DEV_CHAIN_ID,
literal_identifier: DEV_CHAIN_FULL_IDENTIFIER,
gas_price_safe_ceiling_minor: DEV_GAS_PRICE_CEILING_WEI,
contract: MULTINODE_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK,
},
Expand All @@ -69,6 +81,7 @@ pub struct BlockchainRecord {
pub self_id: Chain,
pub num_chain_id: u64,
pub literal_identifier: &'static str,
pub gas_price_safe_ceiling_minor: u128,
pub contract: Address,
pub contract_creation_block: u64,
}
Expand Down Expand Up @@ -115,7 +128,7 @@ const POLYGON_MAINNET_CONTRACT_ADDRESS: Address = H160([
mod tests {
use super::*;
use crate::blockchains::chains::chain_from_chain_identifier_opt;
use crate::constants::BASE_MAINNET_CONTRACT_CREATION_BLOCK;
use crate::constants::{BASE_MAINNET_CONTRACT_CREATION_BLOCK, WEIS_IN_GWEI};
use std::collections::HashSet;
use std::iter::FromIterator;

Expand Down Expand Up @@ -195,6 +208,7 @@ mod tests {
num_chain_id: 1,
self_id: examined_chain,
literal_identifier: "eth-mainnet",
gas_price_safe_ceiling_minor: 100 * WEIS_IN_GWEI as u128,
contract: ETH_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -211,6 +225,7 @@ mod tests {
num_chain_id: 3,
self_id: examined_chain,
literal_identifier: "eth-ropsten",
gas_price_safe_ceiling_minor: 100 * WEIS_IN_GWEI as u128,
contract: ETH_ROPSTEN_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_ROPSTEN_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -227,6 +242,7 @@ mod tests {
num_chain_id: 137,
self_id: examined_chain,
literal_identifier: "polygon-mainnet",
gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128,
contract: POLYGON_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -243,6 +259,7 @@ mod tests {
num_chain_id: 80002,
self_id: examined_chain,
literal_identifier: "polygon-amoy",
gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128,
contract: POLYGON_AMOY_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_AMOY_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -259,6 +276,7 @@ mod tests {
num_chain_id: 8453,
self_id: examined_chain,
literal_identifier: "base-mainnet",
gas_price_safe_ceiling_minor: 50 * WEIS_IN_GWEI as u128,
contract: BASE_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -275,6 +293,7 @@ mod tests {
num_chain_id: 84532,
self_id: examined_chain,
literal_identifier: "base-sepolia",
gas_price_safe_ceiling_minor: 50 * WEIS_IN_GWEI as u128,
contract: BASE_SEPOLIA_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_SEPOLIA_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -291,6 +310,7 @@ mod tests {
num_chain_id: 2,
self_id: examined_chain,
literal_identifier: "dev",
gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128,
contract: MULTINODE_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK,
}
Expand Down
1 change: 1 addition & 0 deletions masq_lib/src/blockchains/chains.rs
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ mod tests {
num_chain_id: 0,
self_id: Chain::PolyMainnet,
literal_identifier: "",
gas_price_safe_ceiling_minor: 0,
contract: Default::default(),
contract_creation_block: 0,
}
Expand Down
24 changes: 24 additions & 0 deletions masq_lib/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ pub const CURRENT_LOGFILE_NAME: &str = "MASQNode_rCURRENT.log";
pub const MASQ_PROMPT: &str = "masq> ";

pub const DEFAULT_GAS_PRICE: u64 = 1; //TODO ?? Really
pub const DEFAULT_GAS_PRICE_MARGIN: u64 = 30;

pub const WALLET_ADDRESS_LENGTH: usize = 42;
pub const MASQ_TOTAL_SUPPLY: u64 = 37_500_000;
Expand Down Expand Up @@ -94,6 +95,13 @@ pub const CENTRAL_DELIMITER: char = '@';
pub const CHAIN_IDENTIFIER_DELIMITER: char = ':';

//chains
pub const POLYGON_MAINNET_CHAIN_ID: u64 = 137;
pub const POLYGON_AMOY_CHAIN_ID: u64 = 80002;
pub const BASE_MAINNET_CHAIN_ID: u64 = 8453;
pub const BASE_SEPOLIA_CHAIN_ID: u64 = 84532;
pub const ETH_MAINNET_CHAIN_ID: u64 = 1;
pub const ETH_ROPSTEN_CHAIN_ID: u64 = 3;
pub const DEV_CHAIN_ID: u64 = 2;
const POLYGON_FAMILY: &str = "polygon";
const ETH_FAMILY: &str = "eth";
const BASE_FAMILY: &str = "base";
Expand All @@ -106,6 +114,10 @@ pub const ETH_ROPSTEN_FULL_IDENTIFIER: &str = concatcp!(ETH_FAMILY, LINK, "ropst
pub const BASE_MAINNET_FULL_IDENTIFIER: &str = concatcp!(BASE_FAMILY, LINK, MAINNET);
pub const BASE_SEPOLIA_FULL_IDENTIFIER: &str = concatcp!(BASE_FAMILY, LINK, "sepolia");
pub const DEV_CHAIN_FULL_IDENTIFIER: &str = "dev";
pub const POLYGON_GAS_PRICE_CEILING_WEI: u128 = 200_000_000_000;
pub const ETH_GAS_PRICE_CEILING_WEI: u128 = 100_000_000_000;
pub const BASE_GAS_PRICE_CEILING_WEI: u128 = 50_000_000_000;
pub const DEV_GAS_PRICE_CEILING_WEI: u128 = 200_000_000_000;

#[cfg(test)]
mod tests {
Expand All @@ -124,6 +136,7 @@ mod tests {
assert_eq!(CURRENT_LOGFILE_NAME, "MASQNode_rCURRENT.log");
assert_eq!(MASQ_PROMPT, "masq> ");
assert_eq!(DEFAULT_GAS_PRICE, 1);
assert_eq!(DEFAULT_GAS_PRICE_MARGIN, 30);
assert_eq!(WALLET_ADDRESS_LENGTH, 42);
assert_eq!(MASQ_TOTAL_SUPPLY, 37_500_000);
assert_eq!(WEIS_IN_GWEI, 1_000_000_000);
Expand Down Expand Up @@ -169,6 +182,13 @@ mod tests {
assert_eq!(VALUE_EXCEEDS_ALLOWED_LIMIT, ACCOUNTANT_PREFIX | 3);
assert_eq!(CENTRAL_DELIMITER, '@');
assert_eq!(CHAIN_IDENTIFIER_DELIMITER, ':');
assert_eq!(POLYGON_MAINNET_CHAIN_ID, 137);
assert_eq!(POLYGON_AMOY_CHAIN_ID, 80002);
assert_eq!(BASE_MAINNET_CHAIN_ID, 8453);
assert_eq!(BASE_SEPOLIA_CHAIN_ID, 84532);
assert_eq!(ETH_MAINNET_CHAIN_ID, 1);
assert_eq!(ETH_ROPSTEN_CHAIN_ID, 3);
assert_eq!(DEV_CHAIN_ID, 2);
assert_eq!(POLYGON_FAMILY, "polygon");
assert_eq!(ETH_FAMILY, "eth");
assert_eq!(BASE_FAMILY, "base");
Expand All @@ -180,6 +200,10 @@ mod tests {
assert_eq!(ETH_ROPSTEN_FULL_IDENTIFIER, "eth-ropsten");
assert_eq!(BASE_SEPOLIA_FULL_IDENTIFIER, "base-sepolia");
assert_eq!(DEV_CHAIN_FULL_IDENTIFIER, "dev");
assert_eq!(POLYGON_GAS_PRICE_CEILING_WEI, 200_000_000_000);
assert_eq!(ETH_GAS_PRICE_CEILING_WEI, 100_000_000_000);
assert_eq!(BASE_GAS_PRICE_CEILING_WEI, 50_000_000_000);
assert_eq!(DEV_GAS_PRICE_CEILING_WEI, 200_000_000_000);
assert_eq!(
CLIENT_REQUEST_PAYLOAD_CURRENT_VERSION,
DataVersion { major: 0, minor: 1 }
Expand Down
2 changes: 1 addition & 1 deletion masq_lib/src/test_utils/mock_blockchain_client_server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ impl MockBlockchainClientServer {
Err(e) if e.kind() == ErrorKind::TimedOut => (),
Err(e) => panic!("MBCS accept() failed: {:?}", e),
};
thread::sleep(Duration::from_millis(100));
thread::sleep(Duration::from_millis(50));
};
drop(listener);
conn.set_nonblocking(true).unwrap();
Expand Down
Loading