Skip to content

Commit 88dbf0a

Browse files
committed
testing large tx submission
1 parent f06a95d commit 88dbf0a

File tree

3 files changed

+7
-308
lines changed
  • .github/workflows
  • subxt/src/backend/unstable
  • testing/integration-tests/src/full_client/client

3 files changed

+7
-308
lines changed

.github/workflows/rust.yml

Lines changed: 3 additions & 306 deletions
Original file line numberDiff line numberDiff line change
@@ -21,170 +21,8 @@ env:
2121
# Increase wasm test timeout from 20 seconds (default) to 1 minute.
2222
WASM_BINDGEN_TEST_TIMEOUT: 60
2323

24+
# DO NOT MERGE THIS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2425
jobs:
25-
check:
26-
name: Cargo check
27-
runs-on: ubuntu-latest
28-
steps:
29-
- name: Checkout sources
30-
uses: actions/checkout@v4
31-
32-
- name: Use substrate-node binary
33-
uses: ./.github/workflows/actions/use-substrate
34-
35-
- name: Install Rust stable toolchain
36-
uses: actions-rs/toolchain@v1
37-
with:
38-
profile: minimal
39-
toolchain: stable
40-
override: true
41-
42-
- name: Rust Cache
43-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
44-
45-
- name: Install cargo-hack
46-
uses: baptiste0928/cargo-install@v2
47-
with:
48-
crate: cargo-hack
49-
version: 0.5
50-
51-
# A basic check over all targets together. This may lead to features being combined etc,
52-
# and doesn't test combinations of different features.
53-
- name: Cargo check all targets.
54-
run: cargo check --all-targets
55-
56-
# Next, check subxt features.
57-
# - `native` feature must always be enabled
58-
# - `web` feature is always ignored.
59-
# - This means, don't check --no-default-features and don't try enabling --all-features; both will fail
60-
- name: Cargo hack; check each subxt feature
61-
run: cargo hack -p subxt --each-feature check --exclude-no-default-features --exclude-all-features --exclude-features web --features native
62-
63-
# Subxt-signer has the "subxt" features enabled in the "check all targets" test. Run it on its own to
64-
# check it without. We can't enable subxt or web features here, so no cargo hack.
65-
- name: Cargo check subxt-signer
66-
run: |
67-
cargo check -p subxt-signer
68-
cargo check -p subxt-signer --no-default-features --features sr25519,native
69-
cargo check -p subxt-signer --no-default-features --features ecdsa,native
70-
71-
# We can't enable web features here, so no cargo hack.
72-
- name: Cargo check subxt-lightclient
73-
run: cargo check -p subxt-lightclient
74-
75-
# Next, check each other package in isolation.
76-
- name: Cargo hack; check each feature/crate on its own
77-
run: cargo hack --exclude subxt --exclude subxt-signer --exclude subxt-lightclient --exclude-all-features --each-feature check --workspace
78-
79-
# Check the parachain-example code, which isn't a part of the workspace so is otherwise ignored.
80-
- name: Cargo check parachain-example
81-
run: cargo check --manifest-path examples/parachain-example/Cargo.toml
82-
83-
wasm_check:
84-
name: Cargo check (WASM)
85-
runs-on: ubuntu-latest
86-
steps:
87-
- name: Checkout sources
88-
uses: actions/checkout@v4
89-
90-
- name: Install Rust stable toolchain
91-
uses: actions-rs/toolchain@v1
92-
with:
93-
profile: minimal
94-
toolchain: stable
95-
target: wasm32-unknown-unknown
96-
override: true
97-
98-
- name: Rust Cache
99-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
100-
101-
# Check WASM examples, which aren't a part of the workspace and so are otherwise missed:
102-
- name: Cargo check WASM examples
103-
run: |
104-
cargo check --manifest-path examples/wasm-example/Cargo.toml --target wasm32-unknown-unknown
105-
106-
fmt:
107-
name: Cargo fmt
108-
runs-on: ubuntu-latest
109-
steps:
110-
- name: Checkout sources
111-
uses: actions/checkout@v4
112-
113-
- name: Install Rust nightly toolchain
114-
uses: actions-rs/toolchain@v1
115-
with:
116-
profile: minimal
117-
toolchain: stable
118-
override: true
119-
components: rustfmt
120-
121-
- name: Rust Cache
122-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
123-
124-
- name: Cargo fmt
125-
uses: actions-rs/[email protected]
126-
with:
127-
command: fmt
128-
args: --all -- --check
129-
130-
docs:
131-
name: Check documentation and run doc tests
132-
runs-on: ubuntu-latest
133-
steps:
134-
- name: Checkout sources
135-
uses: actions/checkout@v4
136-
137-
- name: Use substrate-node binary
138-
uses: ./.github/workflows/actions/use-substrate
139-
140-
- name: Install Rust stable toolchain
141-
uses: actions-rs/toolchain@v1
142-
with:
143-
profile: minimal
144-
toolchain: stable
145-
override: true
146-
147-
- name: Rust Cache
148-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
149-
150-
- name: Check internal documentation links
151-
run: RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc -vv --workspace --no-deps --document-private-items
152-
153-
- name: Run cargo test on documentation
154-
uses: actions-rs/[email protected]
155-
with:
156-
command: test
157-
args: --doc
158-
159-
tests:
160-
name: "Test (Native)"
161-
runs-on: ubuntu-latest-16-cores
162-
steps:
163-
- name: Checkout sources
164-
uses: actions/checkout@v4
165-
166-
- name: Use substrate-node binary
167-
uses: ./.github/workflows/actions/use-substrate
168-
169-
- name: Install Rust stable toolchain
170-
uses: actions-rs/toolchain@v1
171-
with:
172-
profile: minimal
173-
toolchain: stable
174-
override: true
175-
176-
- name: Rust Cache
177-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
178-
179-
- name: Install cargo-nextest
180-
run: cargo install cargo-nextest
181-
182-
- name: Run tests
183-
uses: actions-rs/[email protected]
184-
with:
185-
command: nextest
186-
args: run --workspace
187-
18826
unstable_backend_tests:
18927
name: "Test (Unstable Backend)"
19028
runs-on: ubuntu-latest-16-cores
@@ -202,146 +40,5 @@ jobs:
20240
toolchain: stable
20341
override: true
20442

205-
- name: Rust Cache
206-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
207-
208-
- name: Install cargo-nextest
209-
run: cargo install cargo-nextest
210-
211-
- name: Run tests
212-
uses: actions-rs/[email protected]
213-
with:
214-
command: nextest
215-
args: run --workspace --features unstable-backend-client
216-
217-
light_client_tests:
218-
name: "Test (Light Client)"
219-
runs-on: ubuntu-latest-16-cores
220-
timeout-minutes: 25
221-
steps:
222-
- name: Checkout sources
223-
uses: actions/checkout@v4
224-
225-
- name: Use substrate-node binary
226-
uses: ./.github/workflows/actions/use-substrate
227-
228-
- name: Install Rust stable toolchain
229-
uses: actions-rs/toolchain@v1
230-
with:
231-
profile: minimal
232-
toolchain: stable
233-
override: true
234-
235-
- name: Rust Cache
236-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
237-
238-
- name: Run tests
239-
uses: actions-rs/[email protected]
240-
with:
241-
command: test
242-
args: --release --package integration-tests --features unstable-light-client
243-
244-
wasm_tests:
245-
name: Test (WASM)
246-
runs-on: ubuntu-latest
247-
env:
248-
# Set timeout for wasm tests to be much bigger than the default 20 secs.
249-
WASM_BINDGEN_TEST_TIMEOUT: 300
250-
251-
steps:
252-
- uses: actions/checkout@v4
253-
254-
- name: Install wasm-pack
255-
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
256-
257-
- name: Install firefox
258-
uses: browser-actions/setup-firefox@latest
259-
260-
- name: Install chrome
261-
uses: browser-actions/setup-chrome@latest
262-
263-
- name: Rust Cache
264-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
265-
266-
- name: Use substrate-node binary
267-
uses: ./.github/workflows/actions/use-substrate
268-
269-
- name: Run subxt WASM tests
270-
run: |
271-
# `listen-addr` is used to configure p2p to accept websocket connections instead of TCP.
272-
# `node-key` provides a deterministic p2p address.
273-
substrate-node --dev --node-key 0000000000000000000000000000000000000000000000000000000000000001 --listen-addr /ip4/0.0.0.0/tcp/30333/ws > /dev/null 2>&1 &
274-
wasm-pack test --headless --firefox
275-
wasm-pack test --headless --chrome
276-
pkill substrate-node
277-
working-directory: testing/wasm-rpc-tests
278-
279-
- name: Run subxt-lightclient WASM tests
280-
run: |
281-
# `listen-addr` is used to configure p2p to accept websocket connections instead of TCP.
282-
# `node-key` provides a deterministic p2p address.
283-
substrate-node --dev --node-key 0000000000000000000000000000000000000000000000000000000000000001 --listen-addr /ip4/0.0.0.0/tcp/30333/ws > /dev/null 2>&1 &
284-
wasm-pack test --headless --firefox
285-
wasm-pack test --headless --chrome
286-
pkill substrate-node
287-
working-directory: testing/wasm-lightclient-tests
288-
289-
- name: Run subxt-signer WASM tests
290-
run: |
291-
wasm-pack test --headless --firefox
292-
wasm-pack test --headless --chrome
293-
working-directory: signer/wasm-tests
294-
295-
clippy:
296-
name: Cargo clippy
297-
runs-on: ubuntu-latest
298-
steps:
299-
- name: Checkout sources
300-
uses: actions/checkout@v4
301-
302-
- name: Use substrate-node binary
303-
uses: ./.github/workflows/actions/use-substrate
304-
305-
- name: Install Rust stable toolchain
306-
uses: actions-rs/toolchain@v1
307-
with:
308-
profile: minimal
309-
toolchain: stable
310-
components: clippy
311-
override: true
312-
313-
- name: Rust Cache
314-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
315-
316-
- name: Run clippy
317-
uses: actions-rs/cargo@v1
318-
with:
319-
command: clippy
320-
args: --all-targets -- -D warnings
321-
machete:
322-
name: "Check unused dependencies"
323-
runs-on: ubuntu-latest
324-
steps:
325-
- name: Checkout sources
326-
uses: actions/checkout@v4
327-
328-
- name: Use substrate-node binary
329-
uses: ./.github/workflows/actions/use-substrate
330-
331-
- name: Install Rust stable toolchain
332-
uses: actions-rs/toolchain@v1
333-
with:
334-
profile: minimal
335-
toolchain: stable
336-
override: true
337-
338-
- name: Rust Cache
339-
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
340-
341-
- name: Install cargo-machete
342-
run: cargo install cargo-machete
343-
344-
- name: Check unused dependencies
345-
uses: actions-rs/[email protected]
346-
with:
347-
command: machete
43+
- name: test
44+
- run: cargo test -p integration-tests --features unstable-backend-client -- submit_large_extrinsic --nocapture

subxt/src/backend/unstable/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ impl<T: Config + Send + Sync + 'static> Backend<T> for UnstableBackend<T> {
494494
}
495495
}
496496
SeenBlock::Finalized(block_refs) => {
497+
println!("Finalized blocks: {:?}", block_refs);
497498
for block_ref in block_refs {
498499
seen_blocks.insert(
499500
block_ref.hash(),
@@ -517,6 +518,7 @@ impl<T: Config + Send + Sync + 'static> Backend<T> for UnstableBackend<T> {
517518
};
518519
return Poll::Ready(Some(Ok(ev)));
519520
} else {
521+
println!("Tx not seen in finalized blocks; clearing");
520522
// Keep waiting for more finalized blocks until we find it (get rid of any other block refs
521523
// now, since none of them were what we were looking for anyway).
522524
seen_blocks.clear();
@@ -534,13 +536,14 @@ impl<T: Config + Send + Sync + 'static> Backend<T> for UnstableBackend<T> {
534536
Poll::Ready(Some(Err(e))) => return Poll::Ready(Some(Err(e))),
535537
Poll::Ready(Some(Ok(ev))) => ev,
536538
};
537-
539+
println!("Tx event: {ev:?}");
538540
// When we get one, map it to the correct format (or for finalized ev, wait for the pinned block):
539541
let ev = match ev {
540542
rpc_methods::TransactionStatus::Finalized { block } => {
541543
// We'll wait until we have seen this hash, to try to guarantee
542544
// that when we return this event, the corresponding block is
543545
// pinned and accessible.
546+
println!("tx finalised in block {:?}", block.hash);
544547
finalized_hash = Some(block.hash);
545548
continue;
546549
}

testing/integration-tests/src/full_client/client/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,6 @@ async fn external_signing() {
206206

207207
// TODO: Investigate and fix this test failure when using the UnstableBackend.
208208
// (https://github.com/paritytech/subxt/issues/1308)
209-
#[cfg(not(feature = "unstable-backend-client"))]
210209
#[tokio::test]
211210
async fn submit_large_extrinsic() {
212211
let ctx = test_context().await;

0 commit comments

Comments
 (0)