Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
1534761
GH-601: Introduce SentPayable Table (#611)
utkarshg6 Apr 4, 2025
24eb855
GH-608: Redesign the PendingPayableScanner for `sent_payable table` (…
utkarshg6 May 15, 2025
009e9a2
GH-602: Scanner system revamp (#640)
bertllll Jun 14, 2025
ba4823e
Merge branch 'master' into GH-598
Jun 14, 2025
c3aed7a
GH-631: Create `FailedPayables` Table (#646)
utkarshg6 Jun 19, 2025
f565cb2
GH-638: Proper gas price management for both payable modes (#659)
bertllll Jul 1, 2025
04515c5
GH-665: Introduce new states in FailedPayableDao (#666)
utkarshg6 Jul 8, 2025
3a11c6e
GH-672: Improve FailureReason (#673)
utkarshg6 Jul 21, 2025
5860bd1
GH-674: Refinement of FailureReason and TxStatus according to the lat…
bertllll Jul 24, 2025
b46c9b2
scanner_directory_reorganization: finished (#676)
bertllll Jul 30, 2025
7a664d6
GH-683: Well structualized blockchain errors (#684)
bertllll Aug 22, 2025
24e0a8a
GH-598-json-hotfix (#699)
bertllll Sep 9, 2025
ca6cb36
GH-642: Redesigning PendingPayableScanner (#677)
bertllll Sep 15, 2025
6e020c7
GH-689: Amend scanner scheduling: Handling ScanError msg (#691)
bertllll Sep 15, 2025
647d61a
GH-606: Sweeping for ending the first stage (#706)
bertllll Sep 16, 2025
2d7c20e
GH-605: Teach the PayableScanner on tx retries (#663)
utkarshg6 Sep 29, 2025
9378ffe
GH-598: merged master in
Sep 29, 2025
37f7343
GH-598: added special lines for Windows
Sep 29, 2025
f55708c
GH-598: fixed tests in verify bill payments
Sep 29, 2025
55c3339
GH-598: rewording in messages
Sep 29, 2025
8fbe7bf
GH-598: Adjusted assertions in MNT
Sep 30, 2025
d564fc0
GH-598: main thing fixed
Oct 2, 2025
13c3910
GH-598: debug to trace
Oct 2, 2025
11a7654
GH-598: merged master in
Oct 2, 2025
35dd4c4
GH-598: fixing due to windows issues
Oct 2, 2025
bedae7b
GH-598: first QA fix - big half of the review done
Oct 6, 2025
25f4be9
GH-598: first QA fix - review answered
Oct 7, 2025
0637769
GH-598: second QA fix: the main thing done
Oct 7, 2025
0e53e04
GH-598: second QA fix: added logging
Oct 8, 2025
bc95399
GH-598: second QA fix: formatting
Oct 8, 2025
b9f6c64
GH-598: second QA fix: finished all.sh
Oct 8, 2025
1acd12d
GH-598: second QA fix: fix according to rev advice
Oct 8, 2025
f77eaa9
GH-598: fixed test to be OS agnostic
Oct 8, 2025
738ead8
GH-598: add 5 mins interval for retry scan
utkarshg6 Oct 16, 2025
af1a075
GH-598: tests in accountant are passing
utkarshg6 Oct 19, 2025
268eeba
GH-598: retry payable scan interval is half the duration of payable s…
utkarshg6 Oct 20, 2025
77a1d1c
GH-598: add public rpc url for eth mainnet
utkarshg6 Oct 20, 2025
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
19 changes: 10 additions & 9 deletions USER-INTERFACE-INTERFACE.md
Original file line number Diff line number Diff line change
Expand Up @@ -358,8 +358,8 @@ Another reason the secrets might be missing is that there are not yet any secret
"exitServiceRate: <number>"
},
"scanIntervals": {
"pendingPayableSec": <number>,
"payableSec": <number>,
"pendingPayableSec": <number>,
"receivableSec": <number>
},
}
Expand Down Expand Up @@ -453,20 +453,21 @@ database password. If you want to know whether the password you have is the corr

* `scanIntervals`: These three intervals describe the length of three different scan cycles running automatically in the
background since the Node has connected to a qualified neighborhood that consists of neighbors enabling a complete
3-hop route. Each parameter can be set independently, but by default are all the same which currently is most desirable
for the consistency of service payments to and from your Node. Technically, there doesn't have to be any lower limit
for the minimum of time you can set; two scans of the same sort would never run at the same time but the next one is
3-hop route. Each parameter can be set independently. Technically, there doesn't have to be any lower limit for
* the minimum of time you can set; two scans of the same sort would never run at the same time but the next one is
always scheduled not earlier than the end of the previous one. These are ever present values, no matter if the user's
set any value, because defaults are prepared.

* `pendingPayableSec`: Amount of seconds between two sequential cycles of scanning for payments that are marked as currently
pending; the payments were sent to pay our debts, the payable. The purpose of this process is to confirm the status of
the pending payment; either the payment transaction was written on blockchain as successful or failed.

* `payableSec`: Amount of seconds between two sequential cycles of scanning aimed to find payable accounts of that meet
* `payableSec`: Amount of seconds between two sequential cycles of scanning aimed to find payable accounts that meet
the criteria set by the Payment Thresholds; these accounts are tracked on behalf of our creditors. If they meet the
Payment Threshold criteria, our Node will send a debt payment transaction to the creditor in question.

* `pendingPayableSec`: The time elapsed since the last payable transaction was processed. This scan operates
on an irregular schedule and is triggered after new transactions are sent or when failed transactions need
to be replaced. The scanner monitors pending transactions and verifies their blockchain status, determining whether
each payment was successfully recorded or failed. Any failed transaction is automatically resubmitted as soon
as the failure is detected.

* `receivableSec`: Amount of seconds between two sequential cycles of scanning for payments on the blockchain that have
been sent by our creditors to us, which are credited against receivables recorded for services provided.

Expand Down
69 changes: 54 additions & 15 deletions masq_lib/src/blockchains/blockchain_records.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,82 @@

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, DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC, DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC, 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};

pub const CHAINS: [BlockchainRecord; 7] = [
pub static 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC,
contract: MULTINODE_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK,
},
Expand All @@ -69,6 +88,8 @@ 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 default_pending_payable_interval_sec: u64,
pub contract: Address,
pub contract_creation_block: u64,
}
Expand Down Expand Up @@ -115,7 +136,11 @@ 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, DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC, DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC, WEIS_IN_GWEI,
};
use std::collections::HashSet;
use std::iter::FromIterator;

Expand Down Expand Up @@ -195,6 +220,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
contract: ETH_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -211,6 +238,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC,
contract: ETH_ROPSTEN_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: ETH_ROPSTEN_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -227,6 +256,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC,
contract: POLYGON_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -243,6 +274,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC,
contract: POLYGON_AMOY_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: POLYGON_AMOY_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -259,6 +292,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
contract: BASE_MAINNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_MAINNET_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -275,6 +310,8 @@ 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,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC,
contract: BASE_SEPOLIA_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: BASE_SEPOLIA_CONTRACT_CREATION_BLOCK,
}
Expand All @@ -291,6 +328,8 @@ mod tests {
num_chain_id: 2,
self_id: examined_chain,
literal_identifier: "dev",
gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128,
default_pending_payable_interval_sec: DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC,
contract: MULTINODE_TESTNET_CONTRACT_ADDRESS,
contract_creation_block: MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK,
}
Expand Down
2 changes: 2 additions & 0 deletions masq_lib/src/blockchains/chains.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ mod tests {
num_chain_id: 0,
self_id: Chain::PolyMainnet,
literal_identifier: "",
gas_price_safe_ceiling_minor: 0,
default_pending_payable_interval_sec: 0,
contract: Default::default(),
contract_creation_block: 0,
}
Expand Down
66 changes: 50 additions & 16 deletions masq_lib/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::data_version::DataVersion;
use const_format::concatcp;

pub const DEFAULT_CHAIN: Chain = Chain::BaseMainnet;
pub const CURRENT_SCHEMA_VERSION: usize = 11;
pub const CURRENT_SCHEMA_VERSION: usize = 12;

pub const HIGHEST_RANDOM_CLANDESTINE_PORT: u16 = 9999;
pub const HTTP_PORT: u16 = 80;
Expand All @@ -18,23 +18,16 @@ pub const MASQ_URL_PREFIX: &str = "masq://";
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 WALLET_ADDRESS_LENGTH: usize = 42;
pub const MASQ_TOTAL_SUPPLY: u64 = 37_500_000;
pub const WEIS_IN_GWEI: i128 = 1_000_000_000;

pub const DEFAULT_MAX_BLOCK_COUNT: u64 = 100_000;
pub const COMBINED_PARAMETERS_DELIMITER: char = '|';

pub const PAYLOAD_ZERO_SIZE: usize = 0usize;

pub const ETH_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 11_170_708;
pub const ETH_ROPSTEN_CONTRACT_CREATION_BLOCK: u64 = 8_688_171;
pub const POLYGON_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 14_863_650;
pub const POLYGON_AMOY_CONTRACT_CREATION_BLOCK: u64 = 5_323_366;
pub const BASE_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 19_711_235;
pub const BASE_SEPOLIA_CONTRACT_CREATION_BLOCK: u64 = 14_732_730;
pub const MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK: u64 = 0;
//descriptor
pub const CENTRAL_DELIMITER: char = '@';
pub const CHAIN_IDENTIFIER_DELIMITER: char = ':';

//Migration versions
////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -87,13 +80,20 @@ pub const VALUE_EXCEEDS_ALLOWED_LIMIT: u64 = ACCOUNTANT_PREFIX | 3;

////////////////////////////////////////////////////////////////////////////////////////////////////

pub const COMBINED_PARAMETERS_DELIMITER: char = '|';
pub const MASQ_TOTAL_SUPPLY: u64 = 37_500_000;

//descriptor
pub const CENTRAL_DELIMITER: char = '@';
pub const CHAIN_IDENTIFIER_DELIMITER: char = ':';
pub const DEFAULT_GAS_PRICE: u64 = 1; //TODO ?? Really
pub const DEFAULT_GAS_PRICE_MARGIN: u64 = 30;
pub const DEFAULT_MAX_BLOCK_COUNT: u64 = 100_000;

//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 @@ -107,6 +107,24 @@ pub const BASE_MAINNET_FULL_IDENTIFIER: &str = concatcp!(BASE_FAMILY, LINK, MAIN
pub const BASE_SEPOLIA_FULL_IDENTIFIER: &str = concatcp!(BASE_FAMILY, LINK, "sepolia");
pub const DEV_CHAIN_FULL_IDENTIFIER: &str = "dev";

pub const ETH_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 11_170_708;
pub const ETH_ROPSTEN_CONTRACT_CREATION_BLOCK: u64 = 8_688_171;
pub const POLYGON_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 14_863_650;
pub const POLYGON_AMOY_CONTRACT_CREATION_BLOCK: u64 = 5_323_366;
pub const BASE_MAINNET_CONTRACT_CREATION_BLOCK: u64 = 19_711_235;
pub const BASE_SEPOLIA_CONTRACT_CREATION_BLOCK: u64 = 14_732_730;
pub const MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK: u64 = 0;

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;

pub const DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC: u64 = 600;
pub const DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC: u64 = 120;
pub const DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC: u64 = 180;
pub const DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC: u64 = 120;

#[cfg(test)]
mod tests {
use super::*;
Expand All @@ -124,6 +142,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 +188,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 +206,14 @@ 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!(DEFAULT_PENDING_PAYABLE_INTERVAL_ETH_SEC, 600);
assert_eq!(DEFAULT_PENDING_PAYABLE_INTERVAL_BASE_SEC, 120);
assert_eq!(DEFAULT_PENDING_PAYABLE_INTERVAL_POLYGON_SEC, 180);
assert_eq!(DEFAULT_PENDING_PAYABLE_INTERVAL_DEV_SEC, 120);
assert_eq!(
CLIENT_REQUEST_PAYLOAD_CURRENT_VERSION,
DataVersion { major: 0, minor: 1 }
Expand Down
2 changes: 1 addition & 1 deletion masq_lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ pub mod crash_point;
pub mod data_version;
pub mod exit_locations;
pub mod shared_schema;
pub mod simple_clock;
pub mod test_utils;
pub mod type_obfuscation;
pub mod ui_gateway;
pub mod ui_traffic_converter;
Loading
Loading