Skip to content

Commit a156114

Browse files
0xmovsesmusitdev
andauthored
feat: partial fix seq-num (#1100)
Co-authored-by: musitdev <philippe.delrieu@free.fr>
1 parent 8314209 commit a156114

File tree

27 files changed

+1039
-618
lines changed

27 files changed

+1039
-618
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,5 @@ venv
3030
*.env
3131
.debug
3232
.out
33+
log_file.txt
34+
full-node-logs.txt

Cargo.lock

+194-359
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+41-39
Original file line numberDiff line numberDiff line change
@@ -164,44 +164,44 @@ borsh = { version = "0.10" } # todo: internalize jmt and bump
164164

165165
### We use a forked version so that we can override dependency versions. This is required
166166
### to be avoid dependency conflicts with other Sovereign Labs crates.
167-
aptos-api = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
168-
aptos-api-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
169-
aptos-bitvec = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
170-
aptos-block-executor = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
171-
aptos-cached-packages = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
172-
aptos-config = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
173-
aptos-consensus-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
174-
aptos-crypto = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf", features = [
175-
"cloneable-private-keys",
167+
aptos-api = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
168+
aptos-api-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
169+
aptos-bitvec = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
170+
aptos-block-executor = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
171+
aptos-cached-packages = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
172+
aptos-config = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
173+
aptos-consensus-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
174+
aptos-crypto = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67", features = [
175+
"cloneable-private-keys",
176176
] }
177-
aptos-db = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
178-
aptos-executor = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
179-
aptos-executor-test-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
180-
aptos-executor-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
181-
aptos-faucet-core = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
182-
aptos-framework = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
183-
aptos-language-e2e-tests = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
184-
aptos-mempool = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
185-
aptos-proptest-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
186-
aptos-sdk = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
187-
aptos-state-view = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
188-
aptos-storage-interface = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
189-
aptos-temppath = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
190-
aptos-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
191-
aptos-vm = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
192-
aptos-vm-genesis = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
193-
aptos-vm-logging = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
194-
aptos-vm-validator = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
195-
aptos-logger = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
196-
aptos-vm-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
197-
aptos-indexer = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
198-
aptos-indexer-grpc-fullnode = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
199-
aptos-indexer-grpc-table-info = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
200-
aptos-protos = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
201-
aptos-release-builder = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
202-
aptos-gas-schedule = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
203-
move-package = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
204-
movement = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "109737d10424a7e0f04fbda329058cc581334faf" }
177+
aptos-db = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
178+
aptos-executor = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
179+
aptos-executor-test-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
180+
aptos-executor-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
181+
aptos-faucet-core = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
182+
aptos-framework = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
183+
aptos-language-e2e-tests = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
184+
aptos-mempool = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
185+
aptos-proptest-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
186+
aptos-sdk = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
187+
aptos-state-view = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
188+
aptos-storage-interface = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
189+
aptos-temppath = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
190+
aptos-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
191+
aptos-vm = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
192+
aptos-vm-genesis = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
193+
aptos-vm-logging = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
194+
aptos-vm-validator = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
195+
aptos-logger = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
196+
aptos-vm-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
197+
aptos-indexer = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
198+
aptos-indexer-grpc-fullnode = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
199+
aptos-indexer-grpc-table-info = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
200+
aptos-protos = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
201+
aptos-release-builder = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
202+
aptos-gas-schedule = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
203+
move-package = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
204+
movement = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
205205

206206
# Indexer
207207
processor = { git = "https://github.com/movementlabsxyz/aptos-indexer-processors", rev = "77a36245400250e7d8a854360194288d078681bc" }
@@ -258,7 +258,9 @@ alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b
258258
alloy-sol-types = { version = "0.7.2", features = ["json"] }
259259
alloy-signer = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
260260
alloy-transport = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
261-
alloy-transport-http = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2", features = ["reqwest-rustls-tls"] }
261+
alloy-transport-http = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2", features = [
262+
"reqwest-rustls-tls",
263+
] }
262264
alloy-transport-ws = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
263265

264266
anyhow = "1.0"
@@ -373,7 +375,7 @@ aws-sdk-s3 = "1.42.0"
373375

374376
# movement
375377
movement-client = { path = "networks/movement/movement-client" }
376-
simple_asn1 = "0.6.3"
378+
simple_asn1 = "0.6.3"
377379
dotenv = "0.15.0"
378380
rand_core = "0.9.0"
379381

networks/movement/movement-client/Cargo.toml

+6-4
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@ rust-version = { workspace = true }
1313
[[bin]]
1414
name = "demo_scenario"
1515
path = "src/bin/e2e/demo_scenario.rs"
16-
#[[bin]]
17-
# name = "basic_alice_bob"
18-
# path = "bin/basic_alice_bob.rs"
1916

20-
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
17+
[[bin]]
18+
name = "movement-tests-e2e-basic-alice-bob"
19+
path = "src/bin/e2e/basic_alice_bob.rs"
2120

2221
[[bin]]
2322
name = "movement-tests-e2e-simple-interaction"
@@ -47,6 +46,9 @@ path = "src/bin/e2e/transfer.rs"
4746
name = "movement-tests-e2e-key-rotation"
4847
path = "src/bin/e2e/key_rotation.rs"
4948

49+
[[bin]]
50+
name = "movement-tests-sequence-number-ooo"
51+
path = "src/bin/e2e/sequence_number_ooo.rs"
5052

5153
[dependencies]
5254
aptos-language-e2e-tests = { workspace = true }

networks/movement/movement-client/src/bin/e2e/basic_alice_bob.rs

+49-16
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use aptos_sdk::{
55
types::LocalAccount,
66
};
77
use movement_client::load_soak_testing::{execute_test, init_test, ExecutionConfig, Scenario};
8+
use once_cell::sync::Lazy;
89
use std::str::FromStr;
910
use std::sync::Arc;
1011
use url::Url;
@@ -38,25 +39,57 @@ impl BasicScenario {
3839
}
3940
}
4041

42+
static SUZUKA_CONFIG: Lazy<movement_config::Config> = Lazy::new(|| {
43+
let dot_movement = dot_movement::DotMovement::try_from_env().unwrap();
44+
let config = dot_movement.try_get_config_from_json::<movement_config::Config>().unwrap();
45+
config
46+
});
47+
48+
static NODE_URL: Lazy<Url> = Lazy::new(|| {
49+
let node_connection_address = SUZUKA_CONFIG
50+
.execution_config
51+
.maptos_config
52+
.client
53+
.maptos_rest_connection_hostname
54+
.clone();
55+
let node_connection_port = SUZUKA_CONFIG
56+
.execution_config
57+
.maptos_config
58+
.client
59+
.maptos_rest_connection_port
60+
.clone();
61+
62+
let node_connection_url =
63+
format!("http://{}:{}", node_connection_address, node_connection_port);
64+
65+
Url::from_str(node_connection_url.as_str()).unwrap()
66+
});
67+
68+
static FAUCET_URL: Lazy<Url> = Lazy::new(|| {
69+
let faucet_listen_address = SUZUKA_CONFIG
70+
.execution_config
71+
.maptos_config
72+
.client
73+
.maptos_faucet_rest_connection_hostname
74+
.clone();
75+
let faucet_listen_port = SUZUKA_CONFIG
76+
.execution_config
77+
.maptos_config
78+
.client
79+
.maptos_faucet_rest_connection_port
80+
.clone();
81+
82+
let faucet_listen_url = format!("http://{}:{}", faucet_listen_address, faucet_listen_port);
83+
84+
Url::from_str(faucet_listen_url.as_str()).unwrap()
85+
});
86+
4187
#[async_trait::async_trait]
4288
impl Scenario for BasicScenario {
4389
async fn run(self: Box<Self>) -> Result<()> {
44-
let movement_config = maptos_execution_util::config::Config::try_from_env()
45-
.context("Failed to create the movement_config")?;
46-
let node_url = Url::from_str(
47-
format!("http://{}", movement_config.aptos_config.aptos_rest_listen_url.as_str())
48-
.as_str(),
49-
)?;
50-
51-
let faucet_url = Url::from_str(
52-
format!("http://{}", movement_config.aptos_config.aptos_faucet_listen_url.as_str())
53-
.as_str(),
54-
)?;
55-
56-
let rest_client = Client::new(node_url.clone());
57-
let faucet_client = FaucetClient::new(faucet_url.clone(), node_url.clone()); // <:!:section_1a
58-
59-
let coin_client = CoinClient::new(&rest_client); // <:!:section_1b
90+
let rest_client = Client::new(NODE_URL.clone());
91+
let faucet_client = FaucetClient::new(FAUCET_URL.clone(), NODE_URL.clone());
92+
let coin_client = CoinClient::new(&rest_client);
6093

6194
// Create two accounts locally, Alice and Bob.
6295
let mut alice = LocalAccount::generate(&mut rand::rngs::OsRng);

networks/movement/movement-client/src/bin/e2e/gas_dos.rs

-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ static SUZUKA_CONFIG: Lazy<movement_config::Config> = Lazy::new(|| {
2323
config
2424
});
2525

26-
// :!:>section_1c
2726
static NODE_URL: Lazy<Url> = Lazy::new(|| {
2827
let node_connection_address = SUZUKA_CONFIG
2928
.execution_config
@@ -62,7 +61,6 @@ static FAUCET_URL: Lazy<Url> = Lazy::new(|| {
6261

6362
Url::from_str(faucet_listen_url.as_str()).unwrap()
6463
});
65-
// <:!:section_1c
6664

6765
pub async fn create_fake_signed_transaction(
6866
chain_id: u8,

0 commit comments

Comments
 (0)